主宰域名。传递至王者。

RelayKing 是一款全面的中继检测与枚举工具,旨在识别 Active Directory 环境中的中继攻击机会。提供实用的报告选项、全面的攻击覆盖。发现隐藏的中继向量,并以您喜欢的输出格式报告。将检测到的可中继主机整理为精选目标列表,供 Impacket 的 ntlmrelayx.py 使用。再也不会错过域中关键的可利用 NTLM 中继路径。
请参阅 Depth Security 网站发布的关联博客以获取更多详情:https://www.depthsecurity.com/blog/introducing-relayking-relay-to-royalty/
**RelayKing 在某些模式下并非 OPSEC 友好工具,尤其是在 --audit 模式下。
RelayKing 按“现状”提供,不提供任何保证。详见 readme 底部。
# 使用 venv。省去麻烦。
# 克隆仓库:
git clone https://github.com/depthsecurity/RelayKing-Depth.git
# 进入克隆目录:
cd RelayKing-Depth/
# 配置 Python venv:
virtualenv --python=python3 .
source bin/activate
# 安装依赖:
pip3 install -r requirements.txt
# 验证 RelayKing 安装成功:
python3 relayking.py -h
--remove-mic 进行跨协议中继(SMB 到 LDAP/LDAPS)的 MIC 字段剥离。报告为 HIGH。使用已按主机查询的 UBR,无需额外网络请求。--audit 模式下,查询 Active Directory 中主机名没有 DNS 记录的服务主体名称。攻击者可以注册缺失的 DNS 名称以拦截打算用于该服务主体的 NTLM 认证。发现结果分为 易受攻击(完全没有 DNS 记录)和 可能易受攻击(仅通过通配符 DNS 解析)。报告为 MEDIUM。完整发现结果写入 possible-ghost-spns.txt。使用 --no-ghosts 抑制。--ntlmv1 或 --ntlmv1-all - 仅当确认发现 Net-NTLMv1 使用时才进行跨协议检测)--remove-mic) 的 SMB 到 LDAP 跨协议中继possible-ghost-spns.txt(--audit):通过 LDAP 枚举 AD 中所有计算机。需要低权限 AD 凭证和环境中的功能 DNS。使用 --dc-ip 强制指定或编辑 /etc/resolv.conf。10.0.0.0/24)10.0.0.1-254)python3 relayking.py -u blah -p pass -d domain.local <your_target_ip_or_hostname>)--coerce-all 与 --audit 和低权限凭证结合,强制每个域机器进行大规模计算机账户中继。在启用了 Net-NTLMv1 的环境中非常有用。--ntlmv1 或 --ntlmv1-all 检测域级别的 LanMan GPO。--ntlmv1-all 检查 AD 中所有主机及其注册表值(使用 RemoteRegistry)。(需要本地管理员权限)。--gen-relay-list <file> 生成一个可直接导入用于 ntlmrelayx.py 的 -tf 开关的目标文件。--audit 模式下自动运行。使用 --no-ghosts 抑制。完整发现结果写入 possible-ghost-spns.txt 以及主报告;报告本身显示前 5 个以避免杂乱。-k(以及用于 --dc-ip 的 FQDN)进行 Kerberos 认证应该可以很好地工作。如果环境中的域控制器完全禁用了 NTLM 但在其他地方容忍 NTLM,则可以使用 --krb-dc-only 以免干扰任何检查。此外, 和 可用于通过 SOCKS/其他代理跳板进行的工作。即使在这种场景下,kerb 也能轻松工作。-h 打印命令行参数/用法,正如预期:python3 relayking.py -h
python3 relayking.py -u ‘lowpriv’ -p ‘lowpriv-password’ -d client.domain.local --dc-ip 10.0.0.1 -vv --audit --protocols smb,ldap,ldaps,mssql,http,https --threads 10 -o plaintext,json --output-file relayking-scan --proto-portscan --ntlmv1 --gen-relay-list relaytargets.txt
python3 relayking.py -u ‘lowpriv’ -p ‘lowpriv-password’ -d client.domain.local --dc-ip 10.0.0.1 -vv --audit --protocols smb,ldap,ldaps,mssql -o plaintext,json --output-file relayking-scan --proto-portscan --gen-relay-list relaytargets.txt
python3 relayking.py -u ‘lowpriv’ -p ‘lowpriv-password’ -d client.domain.local -vv --protocols smb,ldap,ldaps,mssql,http,https -o plaintext SERVER1-EXAMPLE.LAB.LOCAL
python3 relayking.py --null-auth -vv --protocols smb,ldap,http -o plaintext 10.0.0.0/24
python3 relayking.py -u ‘lowpriv’ -p ‘lowpriv-password’ -d client.domain.local --dc-ip 10.0.0.1 -vv --audit --protocols smb,ldap,ldaps,mssql,http,https --threads 10 -o plaintext,json --output-file relayking-scan --proto-portscan --ntlmv1-all --gen-relay-list relaytargets.txt
--threads 指定。每个主线程会为某些任务分配工作线程。例如,HTTP 每个主线程使用 20 个线程。这导致大约 200 个 HTTP 线程同时扫描 HTTP NTLM 认证。大多数情况下,这个数量被很好地容忍,但如果导致延迟/网络问题,请减少线程数。无论如何,默认的 10 个线程已经非常快。--proto-portscan。它显著提高了性能,并防止扫描器在不存在的端口上等待超时。如果引起问题,您可以在牺牲扫描性能的情况下移除它(但应该不会!)--max-scangroup、--split-into 和 --skip 可用于控制分组。--max-scangroup 来指定每个组的目标数。例如,--max-scangroup 100 会将 299 个目标分成 3 组。组的目标数分别为 100、100 和 99。--split-into 来指定组数。例如,--split-into 3 会将 299 个目标分成 3 组。组的目标数分别为 100、100 和 99。您不能同时指定 --max-scangroup 和 --split-into。--skip 来跳过组。例如,--max-scangroup 3 --skip 1 会将 299 个目标分成 3 组,分别为 100、100 和 99 个目标,并跳过第一组,然后从第二组开始扫描。这在您想要重新启动此工具时很有帮助。--ntlmv1 或 -ntlmv1-all:添加 --ntlmv1 将仅获取域的每个 LanMan GPO,不执行其他操作。需要低权限 AD 凭证。--ntlmv1-all 需要管理员凭证,并将检查域中每个单独的主机(SMB 打开)的 LMCompatibilityLevel 注册表项。运行至少 --ntlmv1 是显示/检测跨协议 SMB 中继路径所必需的。
--ntlmv1-all 出错。也非常重量级且不符合 OPSEC 安全,但彻底。除非您 YOLO 或绝望,否则可能不推荐。-o json,plaintext)和 --output-file relayking-scan 会产生 relayking-scan.json + relayking-scan.txt,因此无需为多种格式运行两次。可用格式:plaintext, json, xml, csv, grep, markdown(默认:plaintext)--coerce-all 功能将在所有目标主机上使用 PetitPotam、DFSCoerce 和 PrinterBug。它还会在不运行完整协议审计的情况下强制域中的每台机器。同时提供 --audit + --coerce 将执行域审计大规模强制。()--opsec-safe 模式,避免使用 Impacket/其他被指纹识别的 Python 库。实现起来并不简单。--ntlmv1、凭证验证器、幽灵 SPN 模块和目标分析器都各自进行认证。这绝对荒谬,需要合并为使用单一模块进行认证。-vv 或 -vvv 运行工具。每个版本的日志记录都在不断改进。--audit,RelayKing 无法通过 DNS 解析任何主机,因为它们的 DNS 服务器拒绝解析其目标 DNS 区域中的计算机 FQDN。这不是 RelayKing 的问题。按原样提供。肯定存在许多 Bug。见上文。显然,并非设计或意图用于非法/未经授权的活动。
考虑您为客户参与活动在其网络上运行的所有工具的行为和性质。这通过阅读工具源代码并在执行前理解其内部工作原理来实现,而不是盲目执行您在 GitHub 上找到的代码。虽然我可以向您保证 RelayKing 内部没有故意恶意/破坏性代码,但在运行任何新颖/未使用的工具之前进行验证通常是良好实践。信任,但始终验证。
在红队演习中小心使用,尤其是使用认证检查和 --audit。您会被检测到,并且这将是您的责任!如果您正在阅读这句话并且还不知道这一点,那么您应该已经阅读了 README 顶部的警告。
虽然极不可能/不太可能,但万一 RelayKing 破坏了某些东西,您需要自己负责,作者或 Depth Security 对可能因执行 RelayKing 而产生的任何结果/问题/损坏/地磁反转/核爆炸(无论多么不可能)都不承担任何责任。您的结果可能会有所不同。再次重申,RelayKing 不提供任何特定结果、功能、实用性或行为的保证或担保 - 无论是在此明确提及的(和/或未提及的)还是其他隐含的。
作者 (logansdiomedi) 唯一的合法 GitHub 仓库位于 https://github.com/depthsecurity/RelayKing-Depth - 所有其他仓库均为分支/副本/其他任何内容,作者可能尚未阅读、验证、测试、分析或检查其功能/行为/合法性。请用您的头脑判断。
MIT 许可证 - 详情见 LICENSE 文件
--dns-tcp-ns--audit 模式):主机扫描完成后,RelayKing 查询 AD 中主机名没有 DNS 记录的 SPN。这些是 DNS 注册攻击的可疑目标,用于拦截 NTLM 认证。为了避免输出混乱,报告最多包含 5 个发现;完整列表始终写入工作目录中的 possible-ghost-spns.txt。传递 --no-ghosts 可完全跳过此检查。--remove-mic 标志进行跨协议中继的可疑目标。