
emp3r0r v4.15.0
Maillage de type gossip C2 auto‑réparant avec découverte assistée de pairs, exécution BOF multiplateforme et agents scriptables.
emp3r0r
Un C2 auto-réparateur, uniquement en mémoire, pour Linux et Windows — des agents qui survivent aux liens rompus, ne touchent jamais le disque et se frayent un chemin dans l'API Win32 par script.
Qu'est-ce qu'emp3r0r ?
emp3r0r est un framework de post-exploitation et un C2 conçu pour les environnements Linux et Windows où la furtivité et la résilience ne sont pas optionnelles. Au lieu de supposer une connexion fiable vers un seul serveur, les agents forment un maillage auto-réparateur qui continue de fonctionner lorsque les liens se rompent. Au lieu de demander Python ou PowerShell à la cible, ils exécutent tout en mémoire. Et au lieu de vous limiter aux astuces d'une seule plateforme, emp3r0r exécute des BOF Windows, des objets Linux et des scripts Starlark — le tout sans fichier, le tout en processus.
Points clés et fonctionnalités uniques
🐍 Agents scriptables (moteur Starlark embarqué et proxy d'API Win32)
Chaque agent embarque son propre moteur de script, ce qui vous permet d'ajouter de nouvelles logiques de post-exploitation sans compiler ni déployer de binaires.
- Les scripts s'exécutent entièrement en mémoire — aucun Python, Bash ou PowerShell requis sur la cible, et aucun interpréteur de commandes lancé.
- Un ensemble complet d'API intégrées couvre les E/S de fichiers, HTTP, l'exécution de commandes, et plus encore, directement depuis le code du script.
- Sous Windows, les scripts peuvent appeler directement des fonctions Win32 natives — l'agent fait office de proxy vers les DLL système.
- Les modules sont de simples fichiers Starlark accompagnés d'un petit manifeste JSON, ce qui rend l'ajout des vôtres facile et sans fichier.
Pourquoi c'est important : écrire et étendre les fonctionnalités de l'agent devient aussi simple que de modifier un script, sans la moindre empreinte liée au dépôt d'un interpréteur ou d'un nouveau binaire sur la cible.
🔐 Épinglage d'identité cryptographique TOFU
Les agents lient leur identité à une clé cryptographique la première fois qu'ils communiquent avec vous — et ce lien ne change jamais.
- Un ré-enrôlement avec des identifiants différents est traité comme un imposteur et rejeté.
- La suppression d'un agent est une décision explicite de l'opérateur, et non quelque chose qu'une clé volée peut faire discrètement.
Pourquoi c'est important : le détournement de session et le clonage d'agent ne se produisent tout simplement pas ; chaque agent avec lequel vous communiquez est celui que vous avez enrôlé.
🔒 Confidentialité persistante (PFS)
Chaque lien C2 et pair utilise des clés ECDH éphémères avec des clés de chiffrement dérivées de la session.
Pourquoi c'est important : même si une clé à long terme est compromise plus tard, elle ne peut pas être utilisée pour déchiffrer le trafic déjà passé.
🕸️ Réseau maillé P2P gossip autonome
Les agents se découvrent mutuellement et relaient le trafic via un maillage gossip, de sorte que l'opération ne s'effondre pas lorsqu'un lien ou un serveur disparaît.
- Les pairs se connectent via mTLS 1.3 de camouflage ou UDP fiable (KCP), avec chaque saut chiffré.
- Le trafic contourne automatiquement les relais morts — aucune chirurgie manuelle de proxy en pleine opération.
- Les segments sans accès C2 direct restent joignables via leurs voisins.
Pourquoi c'est important : le réseau fait le pivotement pour vous. Coupez un lien, perdez une machine ou bloquez le C2 — les agents se reroutent d'eux-mêmes.
📂 Système de fichiers P2P
Les fichiers circulent directement entre agents, pas seulement via le C2.
- Les transferts empruntent des tunnels pair-à-pair chiffrés, de sorte que les réseaux internes ne saturent pas votre serveur.
- Les fichiers sont mis en cache dans la mémoire de l'agent sous forme de blobs chiffrés et servis aux pairs à la demande.
- Si aucun pair ne possède un fichier, l'agent le récupère automatiquement depuis le C2.
Pourquoi c'est important : la livraison est rapide et largement invisible pour le canal C2 — idéal pour les environnements à sortie restreinte.
📡 Écouteurs multi-protocoles et stagers enfichables
Faire entrer un agent est traité aussi sérieusement que le maintenir en vie.
- Écouteurs HTTP, TCP et UDP avec cadrage fiable et profils HTTP personnalisables.
- Un stager d'environ 2 Ko construit sur des appels système Linux directs — pas de libc, pas de chaîne d'outils sur la cible.
- Des transports de stager enfichables et des packers auto-décompressants vous permettent de fondre l'accès initial dans le canal que votre cible autorise, et de déjouer au passage la correspondance de signatures statiques.
- Le code du stager et de l'agent respecte la discipline lecture/écriture/exécution — jamais RWX.
Pourquoi c'est important : un accès initial petit, adaptable et hygiénique en mémoire signifie que vous pouvez atterrir sur des hôtes autrement hors de portée.
🧩 Prise en charge native multiplateforme des BOF et PICO (COFF, ELF et PICO)
Exécutez des modules C compilés en processus sur l'une ou l'autre plateforme :
- Binaires Windows COFF/BOF avec empaquetage d'arguments typés.
- Objets relogeables ELF Linux chargés directement dans la mémoire de l'agent.
- Modules PICO Crystal-Kit avec usurpation de pile d'appels SilentMoonwalk.
- Kerbeus-BOF, Remote-OPs et une suite de conscience situationnelle sont livrés prêts à l'emploi.
Pourquoi c'est important : les BOF ne valent que par leur loader — emp3r0r les exécute en processus, sans nouveau processus et sans laisser de trace, sous Linux comme sous Windows.
🧬 Chargeur de bibliothèques en mémoire (memmod)
Les bibliothèques natives sont mappées dans l'espace d'adressage de l'agent lui-même et appelées à cet endroit — pas de LoadLibrary, pas de dlopen, aucun fichier ne touche jamais le disque.
memmodcharge les DLL PE sous Windows et les.soELF sous Linux, en gérant les relocations, les imports et les appels d'export en processus.- Il s'appuie sur des travaux amont éprouvés : le chargeur PE
memmodde WireGuard et le chargeur ELF et la machinerie d'appel de Sliver C2 / sliverarmory/reflektor. memdepsse situe au-dessus : une dépendance déclarée est résolue depuis le memfs chiffré/C2, mappée uniquement pour l'opération qui en a besoin, puis démappée au retour.
Pourquoi c'est important : étendre l'agent avec du code natif ne nécessite ni nouveau binaire, ni service de chargement, ni fichier sur le disque.