
Herramienta automatizada de ataque de relay NTLM que combina el envenenamiento de Responder con el relay de Impacket y secretsdump para la captura de credenciales, el relay de hashes y el movimiento lateral.
Como su nombre lo sugiere, es veneno. Cyanide es esencialmente un rastreador para correlacionar diversas técnicas de envenenamiento (actualmente solo se usa Responder) en conjunto con la retransmisión de los hashes capturados mediante ntlmrelayx.py de Impacket. Al iniciar, arrancará Responder sin los servidores SMB, HTTP o DNS, y Ntlmrelayx con los servidores SMB y HTTP por defecto. La salida le informará de:
Un archivo obligatorio para los destinos de ntlmrelayx es requerido. Si solo desea capturar hashes, simplemente ponga smb://127.0.0.1; de lo contrario, proporcione una lista de destinos como lo haría normalmente (p. ej. smb://10.0.0.8\n mssql://10.0.0.9)
Hay un par de formas en que se puede utilizar.
El método recomendado. Este método utilizará los hashes capturados a través de SMB/HTTP y los retransmitirá a los destinos especificados en el archivo de destinos. Tras una retransmisión exitosa, se ejecutará secretsdump y SAM (con suerte) será volcado.
Para un inicio de sesión exitoso, el endpoint de destino deberá tener la firma SMB deshabilitada.
Este método continuará envenenando hosts mediante Responder, pero no retransmitirá. Para continuar capturando SMB/HTTP, necesitará especificar un host de smb://127.0.0.1 en el archivo de destinos requerido de ntlmrelayx.
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 le permitirá editar el archivo de destinos mientras el programa se está ejecutando y añadir/eliminar destinos. Impacket detectará automáticamente los cambios y los actualizará.
python cyanide.py -iface <eth0> --stdout-only --responder -ntf ntlmrelayx_targets.txt --no-relay
Cyanide utiliza bases de datos sqlite para almacenar información de los hosts que son envenenados (poisoner_cache.db), las retransmisiones que ocurren (poisoner_relay.db) y (si no especifica --stdout-only) los mensajes finales que contienen la fuente del envenenador, eventos de retransmisión y datos de secretsdump serán colocados en la base de datos de producción (poisoner_prod.db). El poisoner_prod.db se volcará a un archivo de salida especificado cada 30 segundos. NOTA: Esto significa que los resultados serán sobrescritos cada 30 segundos.
python cyanide.py -iface <eth0> --watch --responder -ntf ntlmrelayx_targets.txt
python cyanide.py -iface <eth0> --responder -ntf ntlmrelayx_targets.txt --no-relay
Todo el código, excepto los archivos bajo horizon3_impacket, mantiene la licencia GPLv3. Todo el código bajo horizon3_impacket mantiene la licencia original de Impacket, Apache. Para más información, consulte el directorio de licencias.