LxveAce / Projects / Headless Marauder

Headless Marauder

The all-in-one ESP32 Marauder controller and multi-firmware flasher. Open source, cross-platform, one-click standalone exe — no Python, no browser, no cloud. Just download, run, and plug in your board.

v1.3.0 Active MIT Win / Linux / macOS / Pi

Overview

Most Marauder UIs are browser-based and depend on Web Serial (Chromium only). On Kali, Firefox doesn't work at all, and even Chrome's feature set is limited. Headless Marauder is a native desktop application that connects to ESP32 boards over USB serial — giving you a full command interface, live data parsing, multi-firmware flashing, and session logging without any browser dependency.

Works with any ESP32 running Marauder firmware — headless boards like a Lonely Binary Gold with an antenna and no screen, or screened devices like CYD, M5Stack, and Flipper devboards. Designed for Raspberry Pi, laptops, and cyberdeck builds where you need something reliable that runs over SSH, in a terminal, or as a full desktop app.

4 UI Frontends
70+ Commands
4 Firmware Targets
7 Chip Variants

What Sets This Apart

๐Ÿ”ง

All-in-One

Controller AND flasher in a single app. Connect, scan, attack, flash firmware, flash a suicide build — all without switching tools. No separate esptool workflow, no Arduino IDE, no web flasher.

๐Ÿ“ฆ

One-Click Exe

Standalone binaries for Windows, Linux x64, and ARM64. Everything is bundled — Python, PyQt5, all deps. Download, double-click, go. No install, no setup, no dependencies.

๐Ÿ’€

Suicide Build Support

The only Marauder controller with built-in support for flashing anti-forensic Suicide-Marauder bundles. Provision once, flash from the app with SHA256 integrity verification.

๐Ÿ”“

Open Source

MIT licensed, fully transparent. Read every line, fork it, modify it, contribute back. Community-driven with many more features to come.

Features

๐Ÿ–ฅ๏ธ

Four Native UIs

PyQt5 desktop GUI (recommended), Tkinter lightweight alternative, Textual terminal UI for SSH sessions, and a Flask + WebSocket browser UI at localhost. Dark theme across all of them.

๐Ÿ“ก

Live Data Parsing

Access points and stations populate in real-time as scans run. Auto-list polls every 3 seconds. Select targets with checkboxes and the app builds the correct Marauder select commands from real indices.

โšก

Multi-Firmware Flasher

Flash ESP32 Marauder, ESP32-DIV, Bruce, or any custom local .bin file. Auto chip detection for ESP32, S2, S3, C3, C5, and C6. App-only updates or full flash from scratch.

๐Ÿ”’

Security Hardened

HTTPS-only firmware fetching with host allowlist, path-traversal protection on all downloads, SSRF and redirect defense. Suicide bundles are SHA256-verified and staged to private temp before flashing.

๐Ÿ“

Session Logging

Raw serial logs, live JSON snapshots (atomic writes, pollable by other tools), and CSV exports for access points and stations. Every session is captured for analysis or feeding into Wireshark, hashcat, WiGLE, or Kismet.

๐Ÿ“–

Built-in Field Guide

In-app Guide tab covers attack chaining, data export workflows, and feeding output into other tools. Hover tooltips on every button, field, and checkbox with plain-language explanations.

๐Ÿ”„

Self-Updating & Installable

Check for Updates pulls the latest code and reinstalls deps automatically. Install script adds to PATH, app menu (Linux), and Start Menu (Windows). Run from anywhere.

๐Ÿงช

Mock Mode

Run the full UI without hardware using --mock for demo, development, or testing. Full interface, simulated serial stream, no board required.

Suicide Build

The suicide build is an anti-forensic firmware option — a defensive measure that protects the data on your own device if it's lost, stolen, or seized. This is an owner-only protection, not an attack tool.

๐Ÿ”‘

Boot Password

The board requires a password before it boots into Marauder. Without the password, the firmware doesn't run.

๐Ÿ’ฃ

2-Fail Wipe

After 2 failed password attempts, the device automatically wipes itself. Flash, NVS, everything — gone. Enforced at the bootloader level with eFuse locks.

๐Ÿ”Œ

GPIO Dead-Man Switch

Hardware kill trigger tied to a GPIO pin. Wire a button or tamper-detection switch — pull the pin and the board wipes instantly. Open-case detection for cyberdecks.

Two-repo workflow: provision bundles with Suicide-Marauder, then flash them from this app with integrity verification. Protections are permanent and hardware-enforced via eFuse locks and flash encryption.

Downloads

Standalone executables — no Python installation required. Everything bundled. Built automatically via GitHub Actions.

Standalone builds include the Qt GUI only. For the TUI, browser UI, or dev work, install from source. macOS is supported from source.

Command Coverage

WiFi Scanning

scanap scansta PMKID capture deauth + sniff probe scan directed probe

WiFi Sniffing

beacon sniff deauth sniff PMKID sniff probe sniff raw packet PCAP to SD

WiFi Attacks

deauth beacon spam probe spam evil portal AP clone karma

Bluetooth

BLE scan skimmer detect Pwnagotchi detect AirTag sniff BLE spam (7 modes) Flipper / Flock track

GPS & Wardrive

WiFi wardrive BT wardrive GPS queries WiGLE CSV export

Network & System

join AP ping scan TCP port scan LED control OTA updates SD file ops

Tech Stack

Python PyQt5 Tkinter Textual Flask SocketIO esptool PyInstaller GitHub Actions ESP32 Serial / USB

Hardware Compatibility

  • ESP32 (classic) — Lonely Binary Gold, generic WROOM/DevKit boards
  • ESP32-S2 — supported for flashing
  • ESP32-S3 — CYD displays, Marauder Mini, Flipper devboards
  • ESP32-C3 / C5 — newer variants supported
  • Any board running Marauder firmware with USB serial output

Firmware Targets

  • ESP32 Marauder — the primary firmware, full feature set
  • ESP32-DIV — RF research firmware (optional flash target)
  • Bruce — multi-tool firmware (optional flash target)
  • Custom — flash any local .bin file

Architecture

  • One command catalog and one parser feed all four front-ends
  • Serial layer streams to the UI, parser, and logger simultaneously
  • Core modules: controller, parsing, commands, flasher, capture, updater
  • Standalone builds via PyInstaller with bundled Python runtime
View full source on GitHub