
Come suggerisce il nome, è veleno. Cyanide è essenzialmente un tracker per correlare varie tecniche di poisoning (attualmente viene usato solo Responder) insieme al relay degli hash catturati tramite ntlmrelayx.py di Impacket. All'avvio avvierà Responder senza server SMB, HTTP o DNS e Ntlmrelayx con server SMB e HTTP per impostazione predefinita. L'output ti informerà di:
Un file obbligatorio per i target di ntlmrelayx è required. Se vuoi solo catturare hash, inserisci semplicemente smb://127.0.0.1, altrimenti fornisci un elenco di target come faresti normalmente (es. smb://10.0.0.8\n mssql://10.0.0.9)
Può essere usato in un paio di modi.
Il metodo raccomandato. Questo metodo utilizzerà gli hash catturati tramite SMB/HTTP e li inoltrerà (relay) ai target specificati nel file dei target. Dopo un relay riuscito, verrà eseguito un secretsdump e la SAM verrà (si spera) dumpata.
Per un login riuscito, l'endpoint di destinazione dovrà avere la firma SMB disabilitata.
Questo metodo continuerà ad avvelenare (poisoning) gli host tramite Responder, ma non farà relay. Per continuare a catturare SMB/HTTP, dovrai specificare un host smb://127.0.0.1 nel file dei target di ntlmrelayx richiesto.
python3 -m venv venv
. venv/bin/activate
git clone https://github.com/horizon3ai/cyanide.git
cd cyanide
pip install -r requirements.txt
sudo -i (must be ran under root account)
python cyanide.py -iface <eth0> --watch --stdout-only --responder -ntf ntlmrelayx_targets.txt
NOTA: --watch/-w ti permetterà di modificare il file dei target mentre il programma è in esecuzione e aggiungere/eliminare target. Impacket rileverà automaticamente le modifiche e si aggiornerà.
python cyanide.py -iface <eth0> --stdout-only --responder -ntf ntlmrelayx_targets.txt --no-relay
Cyanide utilizza database sqlite per memorizzare le informazioni sugli host che vengono avvelenati (poisoner_cache.db), i relay che avvengono (poisoner_relay.db) e (se non specifichi --stdout-only) i messaggi finali contenenti la sorgente del poisoner, gli eventi di relay e i dati di secretsdump verranno inseriti nel database di produzione (poisoner_prod.db). Il database poisoner_prod.db verrà scaricato (dump) in un file di output specificato ogni 30 secondi. NOTA: Questo significa che i risultati verranno sovrascritti ogni 30 secondi.
python cyanide.py -iface <eth0> --watch --responder -ntf ntlmrelayx_targets.txt
python cyanide.py -iface <eth0> --responder -ntf ntlmrelayx_targets.txt --no-relay
Tutto il codice, eccetto eventuali file in horizon3_impacket, mantiene una licenza GPLv3. Tutto il codice in horizon3_impacket mantiene la licenza originale Apache di Impacket. Per maggiori informazioni, consulta la directory delle licenze.