该工具旨在供渗透测试人员快速高效地进行测试。虽然它也可用于更隐蔽的操作(包括以下一些附加功能),但在大规模网络环境中使用时其优势尤为突出。
其核心功能是:您提供一份已获取的凭据列表(或哈希值,它支持哈希传递)以及一份域内系统列表(建议先扫描端口 445,或使用 --scan)。它会告知您这些凭据在域中是否有效,以及您是否拥有对主机的本地管理员访问权限。更多功能(例如用户搜寻和主机详细信息枚举)请参见下文。
该工具设计在 Kali Linux 上运行
.d8888b. 888 888b 888 d8b d8b
d88P Y88b 888 8888b 888 Y8P Y8P
888 888 888 88888b 888
888 888d888 .d88b. .d88888 888Y88b 888 888 88888b. 8888 8888b.
888 888P" d8P Y8b d88" 888 888 Y88b888 888 888 "88b "888 "88b
888 888 888 88888888 888 888 888 Y88888 888 888 888 888 .d888888
Y88b d88P 888 Y8b. Y88b 888 888 Y8888 888 888 888 888 888 888
"Y8888P" 888 "Y8888 "Y88888 888 Y888 888 888 888 888 "Y888888
888
d88P
888P"
v2.3 (构建于 2018/1/26) - Chris King (@raikiasec)
帮助信息:./CredNinja.py -h
用法:CredNinja.py -a accounts_to_test.txt -s systems_to_test.txt [-t THREADS] [--ntlm] [--valid] [--invalid] [-o OUTPUT] [-p PASSDELIMITER] [--delay SECONDS %JITTER] [--timeout TIMEOUT] [--stripe] [--scan] [--scan-timeout SCAN_TIMEOUT] [-h] [--no-color] [--os] [--domain] [--users] [--users-time USERS_TIME]
快速检查多个用户凭据在多个服务器上的有效性,并告知您该用户是否对每个服务器拥有本地管理员权限。
必需参数: -a accounts_to_test.txt, --accounts accounts_to_test.txt 要测试的用户凭据文件或字符串。用户名格式为 "DOMAIN\USERNAME:PASSWORD" -s systems_to_test.txt, --servers systems_to_test.txt 要测试的服务器文件或字符串。可以是单个系统、包含系统列表的文件名、 gnmap 文件或 CIDR 表示法的 IP 地址。 每个凭据将针对每台服务器进行测试,尝试通过 SMB 访问 C$ 共享。
可选参数: -t THREADS, --threads THREADS 使用的线程数。默认为 10。 --ntlm 将密码视为 NTLM 哈希,并尝试进行哈希传递! --valid 仅显示有效/本地管理员凭据 --invalid 仅显示无效凭据 -o OUTPUT, --output OUTPUT 将结果输出到文件 -p PASSDELIMITER, --passdelimiter PASSDELIMITER 更改账号用户名和密码之间的分隔符。默认为 ":" --delay SECONDS %JITTER 每个线程每次请求延迟指定秒数,并加入抖动(例如:--delay 20 10,延迟20秒,抖动10%) --timeout TIMEOUT 等待数据的超时秒数。默认为15秒 --stripe 只在每个主机上测试一个凭据,避免向单个系统发送多次登录尝试(用于检查凭据有效性)。这将从提供的主机文件中随机选择主机。 --scan 在将主机加入处理队列前,快速检查主机端口445是否可用 --scan-timeout SCAN_TIMEOUT 设置由 --scan 参数指定的扫描超时时间。默认为2秒 -h, --help 获取该脚本的使用帮助 --no-color 关闭输出颜色。写入文件的内容始终无颜色
额外信息检索: --os 显示系统的操作系统(如果可用)(不会发送额外的请求) --domain 显示系统所属的主域(如果可用)(不会发送额外的请求) --users 列出最近6个月内登录过系统的用户(需要本地管理员权限)。返回用户名及其主目录最后一次修改以来的天数。每个主机会额外发送一个请求 --users-time USERS_TIME 修改 --users 参数,搜索最近指定天数内登录过的用户(默认100天)
更新日志:
v2.3 - 更新了一些附加功能
* 新增 gnmap 文件解析。提供给 --systems (-s) 参数的文件现在可以是 gnmap 文件(以 .gnmap 结尾)。
* 新增 CIDR 表示法解析。提供给 --systems (-s) 参数的 IP 地址现在可以使用 CIDR 表示法,它将正确扩展范围并测试该 IP 空间内的所有系统(请确保同时使用 --scan 参数预先扫描系统!)
* 使 --scan 支持多线程,运行速度大大加快。
v2.0 - CredNinja 的首个版本,从前身 CredSwissArmy 发展而来:
* 与之前的 CredSwissArmy 具有相同功能(使用凭据和主机列表通过 SMB 在网络中搜索本地管理员访问权限)
* 完全多线程!速度是旧版 CredSwissArmy 的 8 倍!
* 更好地处理错误和复杂密码
* 仍然可以通过 "--ntlm" 选项进行哈希传递
* 保留之前的参数
* 新增 "--timeout",可根据需要加快扫描速度
* 新增 "--scan",对主机进行快速端口 445 扫描,确保在尝试凭据之前能够连接
* 新增 "--stripe",在随机系统上测试每个凭据一次(用于验证凭据,而不会在单一系统的日志中显得可疑)
* 新增 "--delay",允许指定扫描主机之间的延迟以实现更隐蔽的操作。"--delay 10 20" 表示延迟 10 秒,抖动 20%(即 8-10 秒之间)
* 新增彩色输出,成功时更明显!
现在加入酷炫功能
* 新增 "--os",显示每个可指纹识别的系统操作系统(不向目标主机发送额外数据包)
* 新增 "--domain",显示系统所属的主域(不向目标主机发送额外数据包)
* 新增 "--users",显示在 X 天内主目录被修改过的用户列表(X 可通过 "--users-days" 修改,默认 100 天)。本质上是一个 SMB 用户搜寻器,显示用户登录或曾经登录过的主机(每个目标主机额外发送 1 个数据包)
* 即将推出:防病毒检测器,提醒系统上可能存在的防病毒软件