SUCTF2025-misc-SU_AD
字数 2153 2025-08-29 08:30:30
SUCTF2025-misc-SU_AD 域渗透分析教学文档
1. 流量分析与NTLM协议解密
1.1 初始流量观察
- 流量包中存在SMB2协议流量
- 需要解密NTLM协议部分以获取更多信息
1.2 提取NTLM认证信息
使用tshark命令提取关键字段:
# 过滤NTLM认证信息
tshark -r capture.pcap -Y "ntlmssp.auth.domain" -T fields -e ntlmssp.auth.domain -e ntlmssp.auth.username
分析结果:
- Domain name: sk.com
- User name: sk
1.3 提取NTLMv2哈希组件
需要收集以下三个关键组件:
- NTproofstring
- ModifiedNTLMv2Response
- ServerChallenge
提取命令:
# 提取ServerChallenge
tshark -r capture.pcap -Y "ntlmssp.ntlmserverchallenge" -T fields -e ntlmssp.ntlmserverchallenge
1.4 构建NTLMv2哈希格式
将提取的信息拼接成hashcat可识别的格式:
username::domain:server_challenge:NTproofstring:modifiedntlmv2response
注意:modifiedntlmv2response前面部分就是NTproofstring,需要手动删除重复部分
1.5 使用hashcat爆破密码
将拼接好的哈希存入2.txt,使用hashcat爆破:
hashcat -m 5600 2.txt /path/to/wordlist
爆破结果:密码为Eminem01
2. 解密GSS-API流量
2.1 使用获得的密码解密
- 将
Eminem01作为NTLMSSP的Password解密流量 - 解密后可以观察到修改Administrator密码的操作
2.2 解析密码修改操作
参考Microsoft文档[MS-ADTS]:unicodePwd编码规则,提取出新密码:
1202)78M5CcE=+!2
2.3 DACL滥用分析
这是一个强制改密操作,参考ForceChangePassword技术实现
3. Kerberos流量解密
3.1 流量特征分析
- 后续流量主要是Kerberos认证
- 通过psexec脚本产生的SMB流量
- 使用Administrator用户进行认证
3.2 制作Keytab文件
使用Create-KeyTab PowerShell脚本制作Administrator用户的keytab文件:
# 示例命令
Create-KeyTab -User Administrator -Domain sk.com -Password "1202)78M5CcE=+!2"
注意:用户名大小写敏感
3.3 导入Wireshark解密
将生成的keytab文件导入Wireshark解密DCERPC流量
4. VBScript分析与提取
4.1 过滤DCERPC流量
tshark -r capture.pcap -Y "dcerpc"
4.2 提取VBScript文件
- 从流量中提取出混淆的VBScript
- 进行反混淆处理
4.3 获取flag.zip密码
解混淆后得到base64编码的command,解码后获得flag.zip密码:
oOCDLbkZ9Mtu67Alyh8uAaFHy6KDsCbG
5. SMB2流量解密
5.1 Kerberos认证下的SMB2解密
由于Wireshark不支持自动解密Kerberos认证的SMB2流量,需要手动处理:
- 从TGS-REP中获取sessionKey
- 手动添加解密密钥
5.2 Session Key与Session ID对应关系
建立Session ID与sessionKey的映射表:
| Session Id | sessionKey |
|---|---|
| 0500001000140000 | c475652caee0502bbf57d0583c8d02f7 |
| 2100001000140000 | 057ca236576c77a46c3974840f1a407f |
| 0d00001000140000 | 400ececb0dfa0b9e69debe0cd859b7b4 |
| 0900001000140000 | 2251c04efe1ea59d1d1871ef65ae1ce5 |
| 0100001000140000 | 9ea564454a9c0b1f68d152cb72e49baa |
5.3 解密SMB2流量
- 在Wireshark中为每个Session ID添加对应的sessionKey
- 过滤smb2流量确认解密成功
- 导出SMB对象中的文件
6. 获取Flag
- 从解密的SMB流量中导出flag.zip
- 使用之前获取的密码
oOCDLbkZ9Mtu67Alyh8uAaFHy6KDsCbG解压 - 获得flag:
flag{Sk_l!kEs_aD_BuT_Ad_i5_7Oo_Hard_T_T}
7. 关键工具与参考
-
工具列表:
- tshark (Wireshark命令行工具)
- hashcat (密码爆破工具)
- Create-KeyTab (Keytab生成脚本)
- John the Ripper (密码破解工具)
-
参考文档:
- [MS-ADTS]:unicodePwd | Microsoft Learn
- ForceChangePassword | The Hacker Recipes
- Kerberos认证过程详细分析(一) | MYZXCG
- SMB解密技术文档 - TryHackMe
-
关键点总结:
- NTLMv2哈希的正确拼接格式
- Kerberos Keytab的制作与使用
- SMB2流量的手动解密方法
- Session ID与sessionKey的对应关系