Overview¶
Espilon is an ESP32-based embedded agent framework designed for security research, penetration testing, and IoT experimentation.
What is Espilon?¶
Espilon transforms affordable ESP32 microcontrollers into powerful networked agents that can:
- Connect to a Command & Control (C2) server via WiFi or GPRS
- Execute commands remotely through an encrypted channel
- Perform network reconnaissance and security testing
- Create fake access points and captive portals
- Operate autonomously on battery power
Key Features¶
Dual Network Modes¶
- WiFi Mode: Standard 802.11 b/g/n connectivity
- GPRS Mode: 2G cellular connectivity for remote deployments (LilyGO T-Call)
Modular Architecture¶
Enable only the features you need — all compiled in at build time:
- System: Basic device control, memory, uptime, reboot
- Network: Network scanning, ARP scan, TCP proxy, DoS
- FakeAP: Rogue access points, captive portal, sniffer
- Recon Camera: UDP video streaming from ESP32-CAM
- Recon MLAT: BLE/WiFi RSSI multilateration positioning
- Red Team: Autonomous WiFi hunting, mesh relay, persistence
- Honeypot: Fake TCP services, credential capture, event logging
- CAN Bus: MCP2515 sniffing, UDS, OBD-II, fuzzing
- OTA: Over-the-air firmware updates (dual A/B partitions)
Secure Communication¶
- ChaCha20-Poly1305 AEAD encryption (confidentiality + integrity + authentication)
- HKDF-SHA256 per-device key derivation — each device has a unique encryption key
- Protocol Buffers for efficient data serialization
- Random 96-bit nonce per message — replay-resistant by design
- Keys provisioned via
deploy.py, never stored in firmware flash as plaintext
Low Power Operation¶
- Deep sleep support for battery conservation
- Runtime: 5-14 hours on Li-Po battery (depending on activity)
- Power management via IP5306 IC
Use Cases¶
Authorized Use Only
Espilon is designed for authorized security testing, research, and educational purposes only. Always obtain proper authorization before deployment.
Penetration Testing¶
- WiFi network assessments
- IoT device security audits
- Physical security testing
- Red team operations
Research & Education¶
- Network protocol analysis
- Embedded systems security
- Wireless communication research
- Cybersecurity training labs
IoT Development¶
- Remote sensor networks
- Environmental monitoring
- Asset tracking
- Proof-of-concept prototypes
Architecture Overview¶
graph TB
subgraph ESP32Agent[ESP32 Agent]
FW[Firmware]
MOD[Modules]
NET[Network Stack]
CRYPTO[Encryption]
end
subgraph Network[Network]
WIFI[WiFi AP]
CELL[Cellular Tower]
end
subgraph C2Server[C2 Server — C3PO]
C2[C3PO Server]
TUI[TUI / Web Dashboard]
DB[Device Registry]
end
FW --> MOD
MOD --> CRYPTO
CRYPTO --> NET
NET --> WIFI
NET --> CELL
WIFI --> C2
CELL --> C2
C2 --> TUI
C2 --> DB
System Requirements¶
For Firmware Development¶
- ESP-IDF v5.3.2
- Python 3.11+
- USB-to-UART drivers
- 2GB free disk space
For C2 Server (C3PO)¶
- Python 3.11+
- Linux/macOS (Windows via WSL2)
- Network access to agents
Hardware¶
- ESP32 development board (any variant)
- LilyGO T-Call for GPRS mode
- USB-C cable
- Optional: Li-Po battery, external antenna
Quick Comparison¶
| Feature | WiFi Mode | GPRS Mode |
|---|---|---|
| Range | 50-100m | Nationwide |
| Speed | Up to 150 Mbps | ~50 Kbps |
| Latency | Low (~10ms) | Medium (~500ms) |
| Cost | Free (existing WiFi) | SIM card + data plan |
| Setup | Simple | Requires SIM, APN config |
| Best For | Labs, buildings | Remote, mobile |
Project Status¶
Espilon is actively maintained and used for:
- Educational security labs
- IoT penetration testing
- Security research projects
- Cybersecurity competitions (CTF)
Getting Started¶
Ready to build your first Espilon agent?
- Quick Start Guide - Get up and running in 15 minutes
- Installation - Detailed setup instructions
- Hardware Guide - Choose your ESP32 board
Community & Support¶
- GitHub: Espilon-Net — Firmware · C3PO
- Documentation: This MkDocs site
- License: MIT (see License)
Next: Quick Start | Installation Guide