[{"content":"Depuis quelques annees, l ESP32 s est impose comme la carte de reference pour les projets IoT. Pas cher, Wi-Fi + Bluetooth integre, FreeRTOS natif. Mais d un point de vue securite offensive, le tooling reste quasi inexistant : pas de framework stable, pas de C2 dedie, pas de modules plug-and-play pour la recherche en pentest IoT.\nC est le probleme qu on a voulu resoudre avec Espilon Source.\nC est quoi Espilon Source ? Espilon Source est un framework open-source pour deployer des agents embarques sur ESP32, pilotes depuis un serveur C2 centralise. L objectif : avoir une base propre et reproductible pour experimenter la securite IoT sur le terrain - que ce soit pour du pentest autorise, de la recherche ou de la formation.\nLe repo est disponible ici : git.espilon.net/Eun0us/espilon-source\nLa doc complete est sur docs.espilon.net.\nArchitecture Le projet se divise en deux parties distinctes :\nespilon-source/ +-- espilon_bot/ # Firmware ESP32 (ESP-IDF / FreeRTOS) | +-- components/ | | +-- core/ # Agent principal, communication C2, crypto | | +-- mod_system/ # Commandes systeme (toujours actif) | | +-- mod_network/ # Operations reseau | | +-- mod_fakeAP/ # Point d acces Wi-Fi factice | | +-- mod_recon/ # Reconnaissance passive/active | | +-- mod_redteam/ # Capacites offensives Wi-Fi | | +-- mod_honeypot/ # Honeypot embarque | | +-- mod_canbus/ # CAN bus via MCP2515 | | +-- mod_ota/ # Mise a jour firmware OTA | +-- main/ # Point d entree, init modules +-- tools/ +-- C3PO/ # Serveur C2 Python +-- deploy.py # Outil de flash et provisioning Firmware (espilon_bot) Le firmware tourne sous ESP-IDF v5.3.2 avec FreeRTOS. Chaque module est un composant independant : on active uniquement ce dont on a besoin via menuconfig, ce qui permet de garder un binaire compact selon le scenario.\nLa communication avec le C2 passe par TCP. Les messages sont serialises en Protobuf et chiffres avec ChaCha20-Poly1305 AEAD + derivation de cle HKDF. Pas de TLS classique - on voulait quelque chose de plus leger et maitrise sur un micro de 520KB de RAM.\nL agent supporte deux modes de connectivite :\nWi-Fi - mode standard, rapide a deployer GPRS - via LilyGO T-Call (SIM800), pour des scenarios ou le Wi-Fi est absent ou surveille Le layout OTA est dual-partition : on peut mettre a jour le firmware a distance sans risque de bricker la carte si la connexion coupe en plein transfert.\nModules disponibles Module Role mod_system Infos systeme, reboot, shell - toujours actif mod_network Scan, ping, sockets raw mod_fakeAP Creation d AP factice pour capturer du trafic mod_recon Scan Wi-Fi passif, probes, RSSI mod_redteam Capacites offensives Wi-Fi (deauth, injection) mod_honeypot Services factices pour attraper des sondes mod_canbus Communication CAN via MCP2515 (vehicules, OT) mod_ota Mise a jour firmware OTA depuis le C2 Le serveur C2 : C3PO C3PO est le cerveau du framework. C est un serveur Python qui gere les connexions des agents, dispatche les commandes et centralise les resultats.\nIl expose trois interfaces :\nCLI interactive - pour piloter un agent directement depuis le terminal :\n1 2 3 4 5 6 7 8 [C3PO] \u0026gt; list ID Name IP Status 0 esp-01 192.168.1.42 CONNECTED 1 esp-02 10.0.0.17 CONNECTED [C3PO] \u0026gt; use 0 [esp-01] \u0026gt; mod_recon.scan [esp-01] \u0026gt; mod_fakeAP.start ssid=FreeWifi TUI multi-agents - une interface Textual qui affiche plusieurs agents en meme temps, utile quand on pilote une flotte sur le terrain.\nDashboard web - interface Flask avec trois sections :\nVue d ensemble des agents connectes Flux cameras (module UDP) Page MLAT : positionnement par triangulation RSSI MLAT - Multilateration RSSI Un des trucs les plus interessants du projet : le module MLAT. Plusieurs agents ESP32 remontent leurs mesures RSSI d une cible Wi-Fi ou BLE. C3PO fait la triangulation et estime la position de la cible sur une carte. Utile pour localiser un device dans un batiment ou sur un site industriel.\nQuick start (sans ESP32) On peut tester le framework sans materiel grace au mode simule :\n1 2 3 4 5 6 7 8 9 10 11 12 # 1. Cloner le repo git clone https://git.espilon.net/Eun0us/espilon-source.git cd espilon-source # 2. Lancer C3PO cd tools/C3PO python3 -m venv .venv \u0026amp;\u0026amp; source .venv/bin/activate pip install -r requirements.txt python3 c3po.py # 3. Lancer un agent simule (dans un autre terminal) python3 tools/sim_agent.py En 5 minutes on a un C2 fonctionnel avec un agent simule qui repond aux commandes. La doc complete du quick start est sur docs.espilon.net.\nCas d usage Le framework a ete concu pour trois scenarios principaux :\nPentest IoT/OT autorise - deployer un agent sur un reseau cible, faire de la reconnaissance passive, capturer du trafic, tester des protocoles industriels (CAN, Modbus via adaptateur).\nRecherche et formation - base modulaire pour experimenter sans partir de zero. Les challenges du CTF Espilon sont directement inspires du framework.\nRed team embarque - plusieurs agents coordonnes, pilotage centralise, triangulation RSSI. Le mode GPRS permet des deployements dans des zones sans infrastructure Wi-Fi.\nCe qui vient (v0.4) La branche en cours de dev ajoute deux nouveaux modules :\nmod_ble - scan BLE, flood, tracking AirTag, spoofing d adresse MAC mod_mitm - interception active entre deux noeuds reseau Un post dedie a ces deux modules suivra une fois la v0.4 stabilisee.\nEn resume Espilon Source n est pas un outil cle en main pour faire des choses illicites. C est une base de travail pour comprendre comment un ESP32 peut etre transforme en agent embarque, comment on structure un protocole C2 leger sur du materiel contraint, et comment on attaque ou defend ce type d infrastructure.\nTout est open-source, la doc est la, le code est lisible.\nRepo : git.espilon.net/Eun0us/espilon-source Docs : docs.espilon.net\n","permalink":"https://blog.espilon.net/posts/espilon-source/","summary":"\u003cp\u003eDepuis quelques annees, l ESP32 s est impose comme la carte de reference pour les projets IoT.\nPas cher, Wi-Fi + Bluetooth integre, FreeRTOS natif. Mais d un point de vue securite offensive,\nle tooling reste quasi inexistant : pas de framework stable, pas de C2 dedie, pas de modules\nplug-and-play pour la recherche en pentest IoT.\u003c/p\u003e\n\u003cp\u003eC est le probleme qu on a voulu resoudre avec \u003cstrong\u003eEspilon Source\u003c/strong\u003e.\u003c/p\u003e\n\u003chr\u003e\n\u003ch2 id=\"c-est-quoi-espilon-source-\"\u003eC est quoi Espilon Source ?\u003c/h2\u003e\n\u003cp\u003eEspilon Source est un framework open-source pour deployer des agents embarques sur ESP32,\npilotes depuis un serveur C2 centralise. L objectif : avoir une base propre et reproductible\npour experimenter la securite IoT sur le terrain - que ce soit pour du pentest autorise,\nde la recherche ou de la formation.\u003c/p\u003e","title":"Espilon Source : un framework d agent ESP32 pour la recherche en securite IoT"},{"content":"Je suis eun0us, chercheur en securite embarquee et IoT/OT.\nMon travail tourne autour de l ESP32, des protocoles hardware, et de la securite des systemes industriels. J ai cree Espilon - un framework d agents embarques open-source pour la recherche en securite IoT, presente au Hack 2025.\nCe blog, c est eunous.sec : des notes de recherche, des write-ups CTF et des articles techniques sur ce que je creuse au quotidien.\nCe que je fais Recherche en securite IoT / OT / hardware Developpement embarque sur ESP32 (ESP-IDF, FreeRTOS) Reverse engineering firmware et protocoles Creation de challenges CTF orientes hardware Projets Espilon Source - Framework ESP32 pour la securite Espilon CTF - CTF oriente hardware, IoT et OT Documentation - Guides et reference API Contact GitHub : github.com/eun0us Mail : eun0us@proton.me Discord : Espilon ","permalink":"https://blog.espilon.net/about/","summary":"\u003cp\u003eJe suis \u003cstrong\u003eeun0us\u003c/strong\u003e, chercheur en securite embarquee et IoT/OT.\u003c/p\u003e\n\u003cp\u003eMon travail tourne autour de l ESP32, des protocoles hardware, et de la securite des systemes industriels. J ai cree \u003cstrong\u003eEspilon\u003c/strong\u003e - un framework d agents embarques open-source pour la recherche en securite IoT, presente au Hack 2025.\u003c/p\u003e\n\u003cp\u003eCe blog, c est \u003cstrong\u003eeunous.sec\u003c/strong\u003e : des notes de recherche, des write-ups CTF et des articles techniques sur ce que je creuse au quotidien.\u003c/p\u003e","title":"About"}]