Reflect new module architecture, deploy system, Docker support, honeypot dashboard, and tunnel proxy in documentation. Updated French README.
151 lines
3.5 KiB
Markdown
151 lines
3.5 KiB
Markdown
# Espilon — Quick Start Guide
|
|
|
|
Get a working C2 server in **under 5 minutes**.
|
|
|
|
> For full documentation see [README.md](README.md) and [tools/C3PO/README.md](tools/C3PO/README.md).
|
|
|
|
---
|
|
|
|
## Option A: Without Docker (recommended for development)
|
|
|
|
### 1. Clone and install
|
|
|
|
```bash
|
|
git clone https://github.com/Espilon-Net/epsilon-source.git
|
|
cd epsilon-source/tools/C3PO
|
|
|
|
python3 -m venv .venv
|
|
source .venv/bin/activate
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
### 2. Configure
|
|
|
|
```bash
|
|
cp .env.example .env
|
|
# Edit .env to change default passwords (optional for local testing)
|
|
```
|
|
|
|
### 3. Start the C2 server
|
|
|
|
```bash
|
|
python c3po.py
|
|
```
|
|
|
|
The TUI (terminal interface) starts automatically. You'll see a multi-pane interface with device list and logs.
|
|
|
|
### 4. Deploy to ESP32
|
|
|
|
```bash
|
|
cd tools
|
|
python deploy.py -p /dev/ttyUSB0 -d my-device-01 \
|
|
--wifi "YourSSID" "YourPassword" \
|
|
--srv 192.168.1.100
|
|
```
|
|
|
|
This will:
|
|
- Generate a unique crypto key
|
|
- Build the firmware
|
|
- Flash the ESP32
|
|
- Register the key in C3PO's keystore
|
|
|
|
The device connects automatically and appears in the TUI.
|
|
|
|
### 5. Send commands
|
|
|
|
In the C3PO TUI command bar (bottom), type:
|
|
|
|
```
|
|
send <device_id> system_info
|
|
send <device_id> ping 8.8.8.8
|
|
send <device_id> arp_scan
|
|
send <device_id> system_mem
|
|
```
|
|
|
|
Replace `<device_id>` with the ID shown in the TUI.
|
|
|
|
---
|
|
|
|
## Option B: With Docker
|
|
|
|
### 1. Start C3PO
|
|
|
|
```bash
|
|
cd tools/C3PO
|
|
cp .env.example .env
|
|
docker compose up -d
|
|
```
|
|
|
|
### 2. Open the web dashboard
|
|
|
|
Open http://localhost:8000 in your browser. Login: `admin` / `admin` (change in `.env`).
|
|
|
|
### 3. Deploy to ESP32
|
|
|
|
```bash
|
|
cd tools
|
|
python deploy.py -p /dev/ttyUSB0 -d my-device-01 \
|
|
--wifi "YourSSID" "YourPassword" \
|
|
--srv <your-machine-ip>
|
|
```
|
|
|
|
---
|
|
|
|
## Prerequisites for ESP32 hardware
|
|
|
|
- ESP-IDF v5.3.2 installed ([install guide](https://docs.espressif.com/projects/esp-idf/en/v5.3.2/esp32/get-started/))
|
|
- ESP32 connected via USB
|
|
- Python 3.8+
|
|
|
|
---
|
|
|
|
## Web dashboard
|
|
|
|
Start the web server from the TUI:
|
|
|
|
```
|
|
web start
|
|
```
|
|
|
|
Then open http://localhost:8000. Pages available:
|
|
|
|
| Page | URL | Description |
|
|
|------|-----|-------------|
|
|
| Dashboard | `/dashboard` | Device list and status |
|
|
| Tunnel | `/tunnel` | SOCKS5 tunnel proxy management |
|
|
| Cameras | `/cameras` | Live camera feeds |
|
|
| MLAT | `/mlat` | Multilateration map |
|
|
| OTA | `/ota` | Firmware build & deploy |
|
|
|
|
---
|
|
|
|
## Common commands reference
|
|
|
|
```
|
|
help Show all commands
|
|
list List connected devices
|
|
send <id> system_info Device info (chip, modules, memory)
|
|
send <id> system_mem Memory usage
|
|
send <id> ping <host> ICMP ping
|
|
send <id> arp_scan Scan local network
|
|
send <id> fakeap_start <ssid> Start a fake AP (if module enabled)
|
|
send <id> tun_start <ip> 2627 Start SOCKS5 tunnel proxy to C3PO
|
|
send <id> tun_stop Stop tunnel proxy
|
|
send all system_info Broadcast to all devices
|
|
group add scanners <id1> <id2> Create device group
|
|
send group scanners arp_scan Send to group
|
|
web start Start web dashboard
|
|
camera start Start camera UDP receiver
|
|
```
|
|
|
|
---
|
|
|
|
## Troubleshooting
|
|
|
|
| Problem | Solution |
|
|
|---------|----------|
|
|
| `ModuleNotFoundError: textual` | `pip install -r requirements.txt` |
|
|
| Device connects but commands fail | Check `keys.json` — the device key must match |
|
|
| Web dashboard not loading | Run `web start` in TUI first, then open http://localhost:8000 |
|
|
| `Decrypt/auth failed` | Key mismatch — re-provision the device with `deploy.py` |
|