Introducing a Modern Web Interface for USB Army Knife: Built for the Future

Search for a command to run...

No comments yet. Be the first to comment.
Building your own ESP32 tools and projects. Security labs, IoT automation, and maker experiments. Learn through creation, understand through building. If you can imagine it, you can make it.
The convergence of artificial intelligence and microcontrollers represents one of the most exciting developments in embedded systems. TinyML enables devices to make smart decisions without needing to send data to the cloud, which is beneficial from b...
Your team has 14 versions of the same code review skill across 5 repos, with no way to sync them. when one improves, the others don't. drop a folder in .claude/skills/ and pray nothing drifts. source

AI agents are unreasonably good at writing SQL. They get specific error messages, fix their own mistakes in one retry, and can introspect query performance with EXPLAIN ANALYZE before you even ask. No

n8n has over 400 integrations. Zapier claims 7,000+. Every single one was hand-built, tested against a moving API, and will eventually break when that API ships a v2. The entire workflow automation in

Part of the "Your Next Startup" series, where I break down startup ideas I think are worth building. Auth0 sold for \(6.5B. Okta is worth \)15B+. CyberArk, Delinea, BeyondTrust, all printing money fro

For as long as software has existed, we've been building two doors into our systems. Door one: the UI, a carefully designed surface where humans point, click, and occasionally rage-quit. Door two: the

I've created a brand new web interface for the USB Army Knife project - a complete reimagination built with modern web technologies and client-side best practices. While the original USB Army Knife is a powerful ESP32-based security tool, I wanted to build a modern, maintainable UI that leverages contemporary web development standards and provides a better user experience.
USB Army Knife is an ESP32-based multitool designed for security research, penetration testing, and hardware hacking. Built on the versatile ESP32 platform, it combines multiple capabilities into a single portable device, including BadUSB functionality, WiFi attacks, file management, and custom script execution.
While the original USB Army Knife has a functional interface, I wanted to create something that embraced modern web development practices:
Modern Client Code: Built with current web standards and frameworks for better performance and maintainability
Easier Maintenance: Clean, modular codebase that's straightforward to update and extend
Better UX: Intuitive design with responsive layouts and smooth interactions
Developer-Friendly: Well-structured code that other developers can easily contribute to
This isn't meant to replace the official interface - rather, it's an alternative for users who prefer a more modern web application experience and developers who want cleaner code to work with.
The new web interface provides a comprehensive dashboard accessible through your browser, offering real-time device monitoring and full control over all device capabilities. The interface is designed with usability in mind, featuring a clean navigation structure and intuitive controls.
The dashboard provides an at-a-glance view of your device status:
Device uptime and current status
USB mode indicator (Serial + HID)
Memory and heap usage monitoring
SD card storage status
Error tracking
Agent connection status
Hardware capabilities (SD, WiFi, TFT, Button, LED, Marauder)
System information including chip type and firmware version
The file management system allows you to:
Browse all files stored on the device's SD card
Upload new files directly through the browser
Download files from the device
Edit text-based configuration files
Execute scripts with a single click
View and display images stored on the device
Delete unwanted files
The interface supports multiple file types including scripts (.ds), images (.png), text files (.txt), and configuration files (.json).
One of the most powerful features is the script execution system:
Run DuckyScript files and custom commands
Browse available scripts with easy-to-read listings
Access a comprehensive command reference
Execute raw commands directly
View execution results in real-time
The built-in command reference includes support for delays, keyboard inputs, LED control, and display operations.
Control the device's display and LED indicators:
Display custom text at specific coordinates
Show images from the SD card
Control RGB LEDs (Red, Green, Blue, Off)
Clear the display
Upload and display custom graphics
For WiFi security testing, the interface includes full ESP32 Marauder support:
Execute Marauder attack commands
Common commands readily available (attack, scan, sniff, beacon, deauth, probe, list, select, clear, help)
View command results in the device logs
Easy command input with helpful placeholders
Send keystrokes to target devices using the virtual keyboard:
Full QWERTY layout with all standard keys
Support for modifier keys (Ctrl, Shift, Alt, Win)
Function keys (F1-F12)
Special keys (Tab, Caps, Enter, Backspace, etc.)
Navigation keys (Home, End, PgUp, PgDn, Insert, Delete)
Text input area for typing longer strings
Monitor all device activity through the comprehensive logging system:
Real-time log viewing
Track script execution
Monitor command execution
View display operations
Debug device behavior
Refresh logs on demand
Clear logs when needed
For developers, the interface includes full API documentation:
REST API endpoints for all device functions
WebSocket connections for real-time updates
Device status and information endpoints
File management operations
Script and command execution
Agent operations
Display control
Marauder command execution
Audio capture and streaming
Settings configuration
Okay, so there's this annoying browser security thing called CORS. Basically, browsers don't like it when web pages talk to random devices on your network (for good reason). The fix? Use Corsy, a lightweight CORS proxy I made. It's super simple and solves the problem.
If you're running the interface locally (like, actually cloning the repo and running it on your machine), you don't need Corsy. Otherwise, yeah, you'll want it.
Honestly? Tons of stuff:
But really, the best use case is "I wonder what happens if I do this..." and then spending your weekend finding out.
This project is what happens when you combine curiosity, modern web dev, and a love for hardware that does cool stuff. It's not perfect, it's not trying to be corporate, and it's definitely not the "official" anything. It's just a fun alternative that works well and is easy to tinker with.
The whole point is learning and experimentation - mixing software and hardware, seeing what you can build, and maybe learning something along the way. If you want to add features, change things, or just see how it works, go for it. The code is there, the hardware is fun, and there's always something new to try.
Whether you're into security research, hardware hacking, or just like building things that do stuff, give it a shot. And if you break something, hey, that's half the fun.
Pull requests welcome! Found a bug? Cool. Want to add a feature? Even better. The codebase is clean enough that you won't want to cry when you look at it, which is always a plus.
Disclaimer: This is for learning, research, and authorized testing only. Don't be that person who uses this stuff without permission. Seriously, don't.