
emp3r0r v4.15.0
Autoriparante Maglia Gossip C2 con Scoperta Assistita dei Peer, Esecuzione BOF Multipiattaforma e Agenti Scriptabili.
emp3r0r
Un C2 self-healing, solo in memoria per Linux e Windows — agenti che sopravvivono a link interrotti, non toccano mai il disco e si fanno strada tramite script attraverso l'API Win32.
Cos'è emp3r0r?
emp3r0r è un framework di post-exploitation e C2 progettato per ambienti Linux e Windows dove stealth e resilienza non sono opzionali. Invece di assumere una connessione affidabile verso un singolo server, gli agenti formano una mesh auto-riparante che continua a funzionare quando i link si interrompono. Invece di chiedere al target Python o PowerShell, eseguono tutto in memoria. E invece di limitarti ai trucchi di una sola piattaforma, emp3r0r esegue BOF Windows, oggetti Linux e script Starlark — tutto fileless, tutto in-process.
Punti Chiave e Caratteristiche Uniche
🐍 Agenti Scriptabili (Motore Starlark Integrato e Proxy API Win32)
Ogni agente porta con sé il proprio motore di scripting, così puoi inserire nuova logica di post-exploitation senza compilare o distribuire binari.
- Gli script vengono eseguiti interamente in memoria — nessun Python, Bash o PowerShell richiesto sul target, e nessun interprete di comandi avviato.
- Un set completo di API integrate copre I/O su file, HTTP, esecuzione di comandi e altro, direttamente dal codice dello script.
- Su Windows, gli script possono chiamare direttamente funzioni Win32 native — l'agente fa da proxy direttamente nelle DLL di sistema.
- I moduli sono semplici file Starlark con un piccolo manifest JSON, quindi aggiungere i tuoi è facile e fileless.
Perché è importante: scrivere ed estendere le funzionalità dell'agente diventa semplice come modificare uno script, senza l'impronta di rilasciare un interprete o un nuovo binario sul target.
🔐 Pinning dell'Identità Crittografica TOFU
Gli agenti legano la loro identità a una chiave crittografica la prima volta che comunicano con te — e quel legame non cambia mai.
- La ri-registrazione con credenziali diverse viene trattata come un impostore e rifiutata.
- Rimuovere un agente è una decisione esplicita dell'operatore, non qualcosa che una chiave rubata può fare silenziosamente.
Perché è importante: il session hijacking e il cloning degli agenti semplicemente non accadono; ogni agente con cui parli è quello che hai registrato.
🔒 Perfect Forward Secrecy (PFS)
Ogni link C2 e peer usa chiavi ECDH effimere con chiavi di cifratura derivate dalla sessione.
Perché è importante: anche se una chiave a lungo termine viene compromessa in seguito, non può essere usata per decifrare il traffico già passato.
🕸️ Rete Mesh P2P Gossip Autonoma
Gli agenti si scoprono a vicenda e inoltrano il traffico attraverso una mesh gossip, così l'operazione non collassa quando un link o un server scompare.
- I peer si connettono tramite mTLS 1.3 camuffato o UDP affidabile (KCP), con ogni hop cifrato.
- Il traffico aggira automaticamente i relay morti — nessun intervento manuale sui proxy a metà operazione.
- I segmenti senza accesso diretto al C2 restano comunque raggiungibili attraverso i loro vicini.
Perché è importante: la rete fa il pivoting per te. Taglia un link, perdi una macchina o blocca il C2 — gli agenti si riorganizzano da soli.
📂 Filesystem P2P
I file si spostano direttamente tra gli agenti, non solo attraverso il C2.
- I trasferimenti viaggiano su tunnel peer-to-peer cifrati, così le reti interne non diventano un collo di bottiglia sul tuo server.
- I file vengono memorizzati nella memoria dell'agente come blob cifrati e serviti ai peer su richiesta.
- Se nessun peer ha un file, l'agente lo recupera automaticamente dal C2.
Perché è importante: la consegna è veloce e per lo più invisibile al canale C2 — ideale per ambienti con restrizioni di egress.
📡 Listener Multi-Protocollo e Stager Pluggabili
Ottenere un agente è trattato con la stessa serietà di mantenerlo vivo.
- Listener HTTP, TCP e UDP con framing affidabile e profili HTTP personalizzabili.
- Uno stager di circa 2KB basato su syscall Linux dirette — niente libc, niente toolchain sul target.
- Trasporti stager pluggabili e packer auto-estraenti ti permettono di mimetizzare l'accesso iniziale in qualunque canale il tuo target consenta, e di sconfiggere il matching di firme statiche lungo il percorso.
- Il codice dello stage e dell'agente rispetta la disciplina read/write/execute — mai RWX.
Perché è importante: un accesso iniziale piccolo, adattabile e memory-hygienic significa che puoi atterrare su host che altrimenti sarebbero fuori portata.
🧩 Supporto BOF e PICO Cross-Platform Nativo (COFF, ELF e PICO)
Esegui moduli C compilati in-process su entrambe le piattaforme:
- Binari Windows COFF/BOF con packing di argomenti tipizzato.
- Oggetti rilocabili ELF Linux caricati direttamente nella memoria dell'agente.
- Moduli Crystal-Kit PICO con callstack spoofing SilentMoonwalk.
- Kerbeus-BOF, Remote-OPs e una suite di Situational Awareness pronti all'uso.
Perché è importante: i BOF valgono quanto il loro loader — emp3r0r li esegue in-process senza nuovi processi e senza lasciare tracce, sia su Linux che su Windows.
🧬 Loader di Librerie in Memoria (memmod)
Le librerie native vengono mappate nello spazio di indirizzamento dell'agente stesso e chiamate lì — niente LoadLibrary, niente dlopen, nessun file che tocca mai il disco.
memmodcarica DLL PE su Windows e.soELF su Linux, gestendo rilocazioni, import e chiamate di export in-process.- Si basa su lavoro upstream collaudato: il loader PE
memmoddi WireGuard e il loader ELF e la macchina di chiamata di Sliver C2 / sliverarmory/reflektor. memdepssi colloca sopra: una dipendenza dichiarata viene risolta da memfs/C2 cifrato, mappata solo per l'operazione che ne ha bisogno e smappata al ritorno.
Perché è importante: estendere l'agente con codice nativo non richiede un nuovo binario, un servizio loader o un file su disco.
🐧 Moduli Linux ed eBPF
I moduli Linux sono script Starlark che possono arrivare fino al kernel. L'agente mappa libbpf su richiesta ed espone la sua API agli script come builtin supportati da Go, così un modulo può enumerare, agganciare e smontare oggetti eBPF senza compilatore e senza processi figli.