Torna agli aggiornamenti
New releaseJul 22, 2026

emp3r0r v4.6.1

Autoriparante Maglia Gossip C2 con Scoperta Assistita dei Peer, Esecuzione BOF Multipiattaforma e Agenti Scriptabili.

Condividi
emp3r0r

emp3r0r

C2 a maglia gossip auto-riparante con discovery dei peer assistita, esecuzione BOF multipiattaforma e agenti scriptabili.


Discord GitHub Sponsors

GitHub go.mod Go version Tests GitHub License GitHub release


emp3r0r

Che cos'è emp3r0r?

emp3r0r è un framework avanzato di post-exploitation e un sistema di comando e controllo (C2) progettato per ambienti target Linux e Windows, basato sul modello zero-trust. Costruito da zero per operare in ambienti ad alta sicurezza, emp3r0r combina rete mesh gossip autonoma, esecuzione fileless solo in memoria, caricamento BOF multipiattaforma, trasferimento file tra agenti e agenti scriptabili in memoria per offrire furtività superiore, controllo operativo e sicurezza operativa (OPSEC).


Punti Salienti e Caratteristiche Uniche

🐍 Agenti Scriptabili (Motore Starlark Incorporato e Proxy API Win32)

Gli agenti emp3r0r includono un motore di scripting Starlark incorporato (un dialetto di Python implementato puramente in Go). Gli script vengono eseguiti fileless in memoria senza richiedere Python, Bash o PowerShell installati sul target.

  • Zero Dipendenze sull'Host: Esegue script standalone senza avviare interpreti di comando (/bin/sh, powershell.exe) o fare affidamento su runtime installati.
  • API Go Incorporate dell'Agente: Funzioni esposte per operazioni sul filesystem (read_file, write_file, list_dir, mkdir, remove, exists), networking HTTP (http_get, http_post), esecuzione di comandi (exec_cmd) e hashing (crypto_hash).
  • Proxy API Win32 Dinamico: Sui target Windows, gli script Starlark possono caricare dinamicamente le DLL di sistema ed eseguire API Win32 native (win_call, win_alloc, win_free, win_read_mem) direttamente dal codice dello script, senza compilare codice C nativo.
  • Integrazione Modulare: Gli script Starlark sono definiti tramite manifest JSON (config.json) per un'analisi e una distribuzione seamless dei parametri CLI.

Perché è importante: I moduli script dei C2 tradizionali richiedono interpreti sull'host o l'avvio di processi, lasciando tracce pesanti su disco o nell'esecuzione da riga di comando. Gli agenti scriptabili di emp3r0r eseguono logica complessa interamente in memoria con interazione nativa con il sistema.


🔐 Ancoraggio dell'Identità Crittografica TOFU

emp3r0r impone Trust-On-First-Use (TOFU) con un rigoroso ancoraggio di UUID e chiave pubblica all'arruolamento dell'agente.

  • Associazione Immutabile: Una volta arruolato, l'UUID di un agente è ancorato alla sua chiave pubblica crittografica. Un nuovo arruolamento con credenziali alterate viene rifiutato come tentativo di impersonificazione.
  • Reset Controllato: La de-registrazione richiede un'autorizzazione esplicita dell'operatore tramite forget_agent.

Perché è importante: Previene il dirottamento di sessione, la clonazione di agenti e la deriva silenziosa dell'identità tra ambienti operativi.


🔒 Segretezza Persistente Perfetta (PFS)

Tutte le comunicazioni C2 e tra peer impongono lo scambio di chiavi ECDH con chiavi di sessione derivate da HKDF.

  • Chiavi Effimere: Ogni sessione genera chiavi di cifratura uniche.
  • Sicurezza Disaccoppiata: Il compromesso delle chiavi a lungo termine o di un singolo agente non può compromettere comunicazioni passate o parallele.

Perché è importante: Previene la decifrazione retrospettiva di intercettazioni di rete.


🕸️ Rete Mesh Gossip P2P Autonoma

Gli agenti in segmenti di rete con restrizioni in uscita o isolati scoprono autonomamente i peer e instradano il traffico tramite una rete mesh gossip (basata su Memberlist).

  • Transport Peer Pluggabili: Supporto per mTLS 1.3 mimetico (con certificati effimeri) e KCP (UDP affidabile).
  • Cifratura End-to-End: Tutti i salti mesh tra agenti sono avvolti in cifratura AES-GCM.
  • Impronta di Rete Ridotta: Il relay diretto agente-agente elimina rumore broadcast non necessario e colli di bottiglia centralizzati di connessione al C2.

Perché è importante: Il pivoting tra reti segmentate avviene autonomamente, senza richiedere intervento costante dell'operatore o configurazioni proxy statiche.


📂 Filesystem P2P

Condivisione di file diretta agente-agente tramite transport relay P2P (mTLS/KCP) per accelerare la consegna dei file attraverso reti interne.

  • Tunnel P2P Cifrati: Instrada i trasferimenti tra peer usando mTLS/KCP per bypassare le restrizioni in uscita e ridurre i colli di bottiglia di banda del C2 centrale.
  • Smart Caching dei File in Memoria: I file vengono memorizzati nella cache della memoria dell'agente come blob cifrati; possono essere serviti senza soluzione di continuità ad altri agenti per il download on demand. Quando richiede un file, un agente guarda prima la propria memfs locale, poi gli altri peer e infine il C2.
  • Fallback Automatico sul Relay C2: Se un peer di destinazione non ha il file richiesto, lo recupera dinamicamente e lo streamma dal server C2 on demand.

Perché è importante: La condivisione diretta agente-agente massimizza la velocità di trasferimento, bypassa i colli di bottiglia di rete e riduce la visibilità del traffico C2 diretto.


📡 Listener Multi-Protocollo e Stager

Stager downloader Stage 0 flessibili e listener di protocollo per l'accesso iniziale e la consegna del payload.

  • Listener Multi-Protocollo: Listener HTTP, TCP e UDP incorporati e standalone con framing affidabile di acknowledgment di sequenza e profili HTTP personalizzati.
  • Stager Downloader C Standalone: Costruito con syscall Linux dirette e indipendenti da libc per la compatibilità tra distribuzioni senza errori di simboli.
  • Dimensioni Minime del Payload: Mentre i binari dell'agente emp3r0r sono ~20MB senza compressione, questo stager è sotto 1,5KB; il payload simile a sRDI che recupera dal listener di emp3r0r è ~8MB (compresso dal binario dell'agente in formato oggetto condiviso ELF).
  • Formati Flessibili: Si compila in shellcode grezzo position-independent (.bin), eseguibili ELF standalone o oggetti condivisi (.so).
  • Hardening in Memoria: Alloca la memoria dello stage con permessi di lettura-scrittura, de-offusca i payload e impone lettura-esecuzione prima dell'esecuzione riflessiva dello Stage 1.

🧩 Supporto BOF Multipiattaforma Nativo (COFF & ELF)

Esegue moduli binari in memoria su target Windows e Linux:

  • Caricatori COFF Windows: Esegue binari BOF Windows fileless con impacchettamento tipizzato dei parametri (int, short, cstr, wstr, binary).
  • Caricatori Oggetto ELF Linux: Carica file oggetto rilocabili ELF (.o) direttamente nella memoria dell'agente su Linux.
  • Suite BOF Incluse: Supporto integrato per le raccolte di moduli Kerbeus-BOF, Remote-OPs e Situational Awareness (SA).

Perché è importante: Elimina l'overhead di creazione dei processi e aggira il monitoraggio della riga di comando eseguendo moduli C compilati in-process.


🎭 Transport C2 Pluggabile, Evasione JA3 con uTLS e Protocollo CBOR

  • Modalità C2 Pluggabili: Beaconing flessibile (http_poll) con profili HTTP malleabili e streaming (h2conn) su HTTP/2.
  • Randomizzazione della Firma JA3: Utilizza uTLS per randomizzare le impronte TLS Client Hello, sconfiggendo le firme di rete statiche.
  • Protocollo Wire Binario: Usa CBOR (Concise Binary Object Representation) per tutti i dati di controllo e la serializzazione wire, riducendo le dimensioni dei payload di rete del 30-40% rispetto a JSON.

💾 Storage Cifrato Memory-First

  • Filesystem Virtuale Cifrato in Memoria: Tutte le operazioni sui file dell'agente usano un filesystem virtuale AES-GCM in memoria. I dati di grandi dimensioni vengono automaticamente riversati su storage cifrato su disco senza intestazioni o estensioni identificabili.
  • Smart Caching P2P: Ogni agente abilitato P2P memorizza nella memfs i file recuperati dal C2; poi li rende disponibili ad altri peer, minimizzando l'impronta del traffico C2 e sfruttando le connessioni inter-agente veloci.

Avvio Rapido

1. Installazione del Server C2

La compilazione di emp3r0r richiede Docker o Podman sull'host. Non è necessaria una toolchain Go locale.

# Clone repository
git clone --depth=1 https://github.com/jm33-m0/emp3r0r.git && cd emp3r0r

# Build inside a container and install locally
./install.sh

L'installer compila i binari principali in un container usa-e-getta, genera il emp3r0r-operator-kit.tar.zst precompilato, configura le capability Linux richieste (setcap) e prepara le directory di runtime di sistema.

Opzioni:

./install.sh [--debug] [--disable-garble] [--prefix /usr/local] [--skip-build]

Avvia il server C2:

emp3r0r server --c2-hosts 1.2.3.4 --http-port 12345 --operator-port 13377

Nota: Se installato con l'utente root invece del normale sudo, il tuo utente corrente potrebbe non essere in grado di avviare emp3r0r perché i permessi non possono essere impostati correttamente dall'installer. Lo stesso vale anche per le macchine degli operatori.


2. Configurazione della Macchina Operatore

Trasferisci il emp3r0r-operator-kit.tar.zst generato sulla tua macchina operatore ed esegui l'installer:

tar --zstd -xpf emp3r0r-operator-kit.tar.zst
cd ./emp3r0r-operator-kit && ./install.sh

Collega il client operatore al server C2 usando le credenziali del tunnel WireGuard stampate dal server:

emp3r0r client --c2-port 13377 \
  --server-wg-key '<SERVER_WG_KEY>' \
  --server-wg-ip '<SERVER_WG_IP>' \
  --operator-wg-ip '<OPERATOR_WG_IP>' \
  --operator-wg-key '<OPERATOR_WG_KEY>' \
  --c2-host 1.2.3.4

3. Genera Payload per Agenti

Usa il comando generate nell'interfaccia operatore di emp3r0r per creare payload.

Agente C2 Diretto:

generate --type linux_executable --arch amd64 --cc your.domain.com

Agente Gateway Mesh:

generate --type linux_executable --arch amd64 --cc your.domain.com \
  --p2p --direct-c2 --p2p-transport mtls

Peer Intermedio Mesh:

generate --type linux_executable --arch amd64 --cc your.domain.com \
  --p2p --p2p-transport mtls --peers 1.2.3.4

Documentazione e Risorse


Supporta lo Sviluppo

Se emp3r0r si è rivelato prezioso nella tua ricerca e nei tuoi test di sicurezza, considera di supportare il suo sviluppo continuo tramite GitHub Sponsors.

Categorie