
Outil automatisé d'attaque par relais NTLM combinant l'empoisonnement via Responder avec le relais Impacket et secretsdump pour la capture d'identifiants, le relais de hachages et le déplacement latéral.
Comme son nom l'indique, c'est du poison. Cyanide est essentiellement un tracker permettant de corréler diverses techniques d'empoisonnement (actuellement seul Responder est utilisé) en conjonction avec le relais des hash capturés via Impackets ntlmrelayx.py. Au démarrage, il lancera Responder sans les serveurs SMB, HTTP ou DNS et Ntlmrelayx avec les serveurs SMB et HTTP par défaut. La sortie vous informera de :
Un fichier obligatoire pour les cibles ntlmrelayx est requis. Si vous souhaitez uniquement capturer des hash, mettez simplement smb://127.0.0.1, sinon fournissez une liste de cibles comme vous le feriez normalement (ex. smb://10.0.0.8\n mssql://10.0.0.9)
Il y a plusieurs façons de l'utiliser.
La méthode recommandée. Cette méthode utilisera les hash capturés via SMB/HTTP et les relaiera vers les cibles spécifiées dans le fichier de cibles. En cas de relais réussi, un secretsdump sera exécuté et la SAM sera (avec un peu de chance) récupérée.
Pour une connexion réussie, le point de terminaison cible devra avoir la signature SMB désactivée.
Cette méthode continuera d'empoisonner les hôtes via Responder, mais ne fera pas de relais. Afin de continuer à capturer SMB / HTTP, vous devrez spécifier un hôte smb://127.0.0.1 dans le fichier de cibles ntlmrelayx requis.
python3 -m venv venv
. venv/bin/activate
git clone https://github.com/horizon3ai/cyanide.git
cd cyanide
pip install -r requirements.txt
sudo -i (doit être exécuté sous le compte root)
python cyanide.py -iface <eth0> --watch --stdout-only --responder -ntf ntlmrelayx_targets.txt
NOTE : --watch/-w vous permettra de modifier le fichier de cibles pendant que le programme est en cours d'exécution et d'ajouter/supprimer des cibles. Impacket détectera automatiquement les changements et les mettra à jour.
python cyanide.py -iface <eth0> --stdout-only --responder -ntf ntlmrelayx_targets.txt --no-relay
Cyanide utilise des bases de données sqlite pour stocker les informations sur les hôtes empoisonnés (poisoner_cache.db), les relais effectués (poisoner_relay.db) et (si vous ne spécifiez pas --stdout-only) les messages finaux contenant la source de l'empoisonneur, les événements de relais et les données secretsdump seront placés dans la base de données de production (poisoner_prod.db). La base poisoner_prod.db sera vidée dans un fichier de sortie spécifié toutes les 30 secondes. NOTE : Cela signifie que les résultats seront écrasés toutes les 30 secondes.
python cyanide.py -iface <eth0> --watch --responder -ntf ntlmrelayx_targets.txt
python cyanide.py -iface <eth0> --responder -ntf ntlmrelayx_targets.txt --no-relay
Tout le code, à l'exception des fichiers sous horizon3_impacket, est soumis à la licence GPLv3. Tout le code sous horizon3_impacket conserve la licence originale d'Impacket, à savoir Apache. Pour plus d'informations, veuillez consulter le répertoire des licences.