← Back to Portfolio Infraestructura
OpenWardRivingT
OpenWrt hcxdumptool SQLite Leaflet.js BusyBox ash socat
GPS_LOCK: SECURED. SCANNING_SPECTRUM…
An active wireless auditing suite designed to run 100% autonomously inside vehicles, utilizing low-resource routers powered by OpenWrt.
The Problem
Traditional wardriving setup requires bulky laptops on the passenger seat, messy cabling for external antennas, and unreliable GPS receivers. Furthermore, constant write cycles of capture files (.pcapng) quickly degrade the internal flash memory (NAND) of embedded routers if written directly to the root filesystem.
The Solution: Autonomous Embedded Architecture
OpenWardRivingT decouples heavy processing and protects the hardware using a stateless CGI backend and lightweight POSIX ash scripts:
- NAND Protection: A hardware safety check halts execution if no external USB storage (ext4 formatted) is mounted at
/mnt/wardriving/. - PTY GPS Injection: Synthesizes NMEA sentences from the vehicle’s Android head unit or tablet browser (via HTML5 Geolocation) and POSTs them to
action=gps_push. The CGI redirects them to/tmp/vGPS_fifo, wheresocatforwards it to a virtual PTY device (/tmp/vGPS) to feedhcxdumptoolwithout dedicated router GPS hardware. - CPU Tuning: Capture loops execute in 1-minute windows. Heavy handshake extraction (
hcxpcapngtool) and SQLite inserts run with lowered scheduling priority (nice -n 10) to keep the uhttpd web interface responsive.
[Tablet GPS] ---> (CGI gps_push) ---> /tmp/vGPS_fifo ---> [socat PTY]
│
[wlan0mon] ───> [hcxdumptool] ───> (.pcapng) ───> [hcxpcapngtool] ───> [SQLite / master.hc2200]
Technical Features
- Offline Maps & UI: Uses Leaflet.js to map paths in real-time, with support for pre-downloaded offline cartography tiles.
- Spectrum Analyzer: Interactive accordion-style layout visualizes channel congestion graph metrics.
- Potfile Crack Integration: Allows uploading a
hashcat.potfileto automatically correlate cracked keys with real map coordinates. - Pwnagotchi Bridge: Local mothership that synchronizes and ingests captures from external Pwnagotchi devices.