Herramienta de Red Team para adquisición y análisis de firmware en dispositivos ESP32/ESP8266.
- Firmware dump automático — multi-baud con fallback automático (115200 → 921600)
- Análisis de strings y secretos — detección de AWS keys (
AKIA), tokens, contraseñas y certificados embebidos - Dashboard web interactivo — visualización de riesgo, findings y particiones en tiempo real
- Detección de riesgo — scoring automático con niveles BAJO / MEDIO / ALTO / CRÍTICO
- Forense del sistema — captura de
dmesg,lsusbe información del host - Integración con Ghidra — análisis de reversing headless en modo
--full - Pipeline automatizado — un solo comando de scan a dashboard
- Multi-distro — soporta Debian/Ubuntu, Fedora, Arch y macOS
git clone https://github.com/devsecuritymx/devsec
cd devsec
./install.sh- Python 3.6+
- esptool, fastapi, uvicorn (instaladas automáticamente)
- binutils (strings, sha256sum), file, xxd
- Git (para clonar ghidra-xtensa)
- Ghidra (opcional, para reversing avanzado)
devsec.sh— Script principalesp.sh— Core de adquisición y análisisdevsec_esptool.py— Wrapper de esptool con reintentosserver.py— API web para dashboardinstall.sh— Instalador multi-distrorequirements.txt— Dependencias Python.gitignore— Exclusiones para Gitweb/— Archivos estáticos del dashboard
El script esp.sh clona automáticamente ghidra-xtensa si no existe.
# Scan completo con etiqueta
./devsec.sh scan --port /dev/ttyUSB0 --full --tag produccion
# Scan rápido sin Ghidra, reporte JSON
./devsec.sh scan --fast --no-ghidra --format json
# Scan + abrir dashboard automáticamente al terminar
./devsec.sh scan --port /dev/ttyUSB0 --auto-web
# Solo forensics
./devsec.sh scan --forensic
# Ver último reporte
./devsec.sh analyze
# Dashboard web en puerto personalizado
./devsec.sh web --port-web 9090 --open
# Listar scans y limpiar los de más de 7 días
./devsec.sh list
./devsec.sh clean --days 7[1] Acquisition → Dump de flash via esptool (multi-baud)
[2] Validation → file(1) + sanity check 0xFF
[3] Processing → Extracción de app partition, hashes SHA256
[4] Forensics → dmesg, lsusb, info del sistema
[5] Analysis → Strings, secretos reales (AKIA/TOKEN), score de riesgo
[6] Reporting → JSON + TXT estructurado con tags y notas
[7] Visualization → Dashboard web interactivo
[8] Reversing → Ghidra headless (modo --full)
El pipeline detecta automáticamente:
| Patrón | Descripción | Peso |
|---|---|---|
AKIA[0-9A-Z]{16} |
AWS Access Key ID | +40 |
SECRET=, TOKEN=, API_KEY= |
Secretos genéricos | +30 |
BEGIN CERTIFICATE |
Certificados embebidos | +25 |
key|token|secret |
Keys genéricas | +25 |
password|passwd |
Strings de contraseña | +15 |
private|priv_key |
Claves privadas | +20 |
mqtt|amqp |
Brokers IoT | +10 |
https?:// |
Endpoints HTTP/S | +10 |
wifi|ssid |
Credenciales WiFi | +5 |
devsec-out/
└── 2026-04-23_12-00-00/
├── dump/
│ ├── firmware.bin # Dump completo
│ └── app.bin # Partición app (offset 0x10000)
├── analysis/
│ ├── strings.txt # Strings extraídas
│ ├── secrets_aws.txt # AWS keys detectadas
│ └── secrets_generic.txt
├── forensics/
│ ├── system.txt
│ ├── usb.txt
│ ├── dmesg.txt
│ ├── dump.sha256
│ └── app.sha256
├── report/
│ ├── report.json
│ └── report.txt
└── logs/
└── run.log
Automatizar completamente el proceso de adquisición y análisis de firmware embebido —
desde el dump hasta el dashboard — para que el operador pueda enfocarse en los hallazgos,
no en la infraestructura.
Para uso autorizado en auditorías de seguridad y entornos propios.
No usar en dispositivos sin autorización explícita del propietario.