
Ferramenta automatizada de ataque de relay NTLM que combina o envenenamento do Responder com o relay do Impacket e o secretsdump para captura de credenciais, relay de hashes e movimento lateral.
Como o nome sugere, é veneno. O Cyanide é essencialmente um rastreador para correlacionar várias técnicas de envenenamento (atualmente apenas o Responder é usado) em conjunto com o relay dos hashes capturados via ntlmrelayx.py do Impacket. Na inicialização, ele iniciará o Responder sem os servidores SMB, HTTP ou DNS e o Ntlmrelayx com os servidores SMB e HTTP por padrão. A saída informará:
Um arquivo obrigatório para os alvos do ntlmrelayx é obrigatório. Se você quiser apenas capturar hashes, basta colocar smb://127.0.0.1; caso contrário, forneça uma lista de alvos como faria normalmente (ex.: smb://10.0.0.8\n mssql://10.0.0.9)
Há algumas maneiras de usá-lo.
O método recomendado. Este método utilizará os hashes capturados via SMB/HTTP e fará relay deles para os alvos especificados no arquivo de alvos. Após um relay bem-sucedido, um secretsdump será executado e o SAM será (esperançosamente) extraído.
Para um login bem-sucedido, o endpoint de destino precisará ter a assinatura SMB desabilitada.
Este método continuará a envenenar hosts via Responder, mas não fará relay. Para continuar capturando SMB/HTTP, você precisará especificar um host de smb://127.0.0.1 no arquivo de alvos obrigatório do 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 permitirá que você edite o arquivo de alvos enquanto o programa está em execução e adicione/exclua alvos. O Impacket detectará automaticamente as alterações e atualizará.
python cyanide.py -iface <eth0> --stdout-only --responder -ntf ntlmrelayx_targets.txt --no-relay
O Cyanide utiliza bancos de dados sqlite para armazenar informações dos hosts que são envenenados (poisoner_cache.db), relays que ocorrem (poisoner_relay.db) e (se você não especificar --stdout-only) mensagens finais contendo a origem do envenenamento, eventos de relay e dados do secretsdump serão colocadas no banco de dados de produção (poisoner_prod.db). O poisoner_prod.db será despejado em um arquivo de saída especificado a cada 30 segundos. NOTA: Isso significa que os resultados serão sobrescritos a 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 o código, exceto quaisquer arquivos sob horizon3_impacket, mantém uma licença GPLv3. Todo o código sob horizon3_impacket mantém a licença original Apache do Impacket. Para mais informações, consulte o diretório licenses.