
Automatisiertes NTLM-Relay-Angriffstool, das Responder-Poisoning mit Impacket-Relay und secretsdump für die Erfassung von Anmeldedaten, Hash-Relaying und laterale Bewegung kombiniert.
Wie der Name schon vermuten lässt, ist es Gift. Cyanide ist im Wesentlichen ein Tracker zur Korrelation verschiedener Poisoning-Techniken (derzeit wird nur Responder verwendet) in Verbindung mit dem Relayen der erbeuteten Hashes über Impackets ntlmrelayx.py. Beim Start wird Responder ohne SMB-, HTTP- oder DNS-Server und Ntlmrelayx standardmäßig mit SMB- und HTTP-Servern gestartet. Die Ausgabe informiert Sie über:
Eine obligatorische Datei für ntlmrelayx-Ziele ist erforderlich. Wenn Sie nur Hashes erfassen möchten, geben Sie einfach smb://127.0.0.1 an. Andernfalls geben Sie eine Liste von Zielen wie gewohnt an (z. B. smb://10.0.0.8\n mssql://10.0.0.9)
Es gibt ein paar Möglichkeiten, wie es verwendet werden kann.
Die empfohlene Methode. Diese Methode nutzt über SMB/HTTP erbeutete Hashes und relayt sie an die in der Zieldatei angegebenen Ziele. Nach erfolgreichem Relay wird ein secretsdump ausgeführt und SAM wird (hoffentlich) gedumpt.
Für eine erfolgreiche Anmeldung muss am Ziel-Endpunkt die SMB-Signierung deaktiviert sein.
Diese Methode vergiftet weiterhin Hosts über Responder, relayt aber nicht. Um weiterhin SMB/HTTP erfassen zu können, müssen Sie in der erforderlichen ntlmrelayx-Zieldatei einen Host von smb://127.0.0.1 angeben.
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
HINWEIS: Mit --watch/-w können Sie die Zieldatei bearbeiten, während das Programm läuft, und Ziele hinzufügen/löschen. Impacket erkennt Änderungen automatisch und aktualisiert.
python cyanide.py -iface <eth0> --stdout-only --responder -ntf ntlmrelayx_targets.txt --no-relay
Cyanide verwendet sqlite-Datenbanken, um Informationen über vergiftete Hosts (poisoner_cache.db), stattgefundene Relays (poisoner_relay.db) und (wenn Sie nicht --stdout-only angeben) Abschlussmeldungen mit Poisoner-Quelle, Relay-Ereignissen und secretsdump-Daten in der Produktionsdatenbank (poisoner_prod.db) zu speichern. Die poisoner_prod.db wird alle 30 Sekunden in eine angegebene Ausgabedatei exportiert. HINWEIS: Das bedeutet, dass die Ergebnisse alle 30 Sekunden überschrieben werden.
python cyanide.py -iface <eth0> --watch --responder -ntf ntlmrelayx_targets.txt
python cyanide.py -iface <eth0> --responder -ntf ntlmrelayx_targets.txt --no-relay
Der gesamte Code, mit Ausnahme aller Dateien unter horizon3_impacket, unterliegt der GPLv3-Lizenz. Der gesamte Code unter horizon3_impacket unterliegt der ursprünglichen Apache-Lizenz von Impacket. Weitere Informationen finden Sie im Verzeichnis licenses.