总结和反思:
1. win中执行powershell的远程代码下载执行注意双引号转义
2. 对powershell代码先转为windows上默认的Unicode编码方式(UTF-16LE)再转为
base64执行,防止代码内容被破坏
3. 学会查CVE漏洞
4. 通过命令行把终端内容保存到剪切板中
5. 运维人员密码修改的规律,仅仅修改了密码中的年份,这是设置新密码常用的思路
Kali地址:10.10.15.242
先用nmap对Netmon进行信息收集
root@kali:~/HTB/Netmon# nmap -A -sC -sV -oA nmap/Netmon 10.10.10.152
Starting Nmap 7.70 ( https://nmap.org ) at 2019-07-10 16:04 CST
Nmap scan report for 10.10.10.152
Host is up (0.35s latency).
Not shown: 995 closed ports
PORT STATE SERVICE VERSION
21/tcp open ftp Microsoft ftpd
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
| 02-03-19 12:18AM 1024 .rnd
| 02-25-19 10:15PM inetpub
| 07-16-16 09:18AM PerfLogs
| 02-25-19 10:56PM Program Files
| 02-03-19 12:28AM Program Files (x86)
| 02-03-19 08:08AM Users
|_02-25-19 11:49PM Windows
| ftp-syst:
|_ SYST: Windows_NT
80/tcp open http Indy httpd 18.1.37.13946 (Paessler PRTG bandwidth monitor)
|_http-server-header: PRTG/18.1.37.13946
| http-title: Welcome | PRTG Network Monitor (NETMON)
|_Requested resource was /index.htm
|_http-trane-info: Problem with XML parsing of /evox/about
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
Aggressive OS guesses: Microsoft Windows Server 2016 build 10586 - 14393 (96%), Microsoft Windows Server 2016 (95%), Microsoft Windows 10 (93%), Microsoft Windows 10 1507 (93%), Microsoft Windows 10 1507 - 1607 (93%), Microsoft Windows Server 2012 (93%), Microsoft Windows Server 2012 R2 (93%), Microsoft Windows Server 2012 R2 Update 1 (93%), Microsoft Windows 7, Windows Server 2012, or Windows 8.1 Update 1 (93%), Microsoft Windows Vista SP1 - SP2, Windows Server 2008 SP2, or Windows 7 (93%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 2 hops
Service Info: OSs: Windows, Windows Server 2008 R2 - 2012; CPE: cpe:/o:microsoft:windows
Host script results:
|_clock-skew: mean: 1s, deviation: 0s, median: 0s
| smb-security-mode:
| account_used: guest
| authentication_level: user
| challenge_response: supported
|_ message_signing: disabled (dangerous, but default)
| smb2-security-mode:
| 2.02:
|_ Message signing enabled but not required
| smb2-time:
| date: 2019-07-10 16:05:27
|_ start_date: 2019-07-10 12:07:46
TRACEROUTE (using port 995/tcp)
HOP RTT ADDRESS
1 363.67 ms 10.10.12.1
2 363.82 ms 10.10.10.152
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 70.30 seconds
发现FTP存在匿名登录,直接匿名登录FTP
然后通过get命令下载user.txt,得到user flag
再去看下80端口
google下这个应用的默认账号密码
发现不是默认的账号密码
我们google下的 netmon default configuration file
找到prtg的配置文件位置,尝试用FTP读取他的配置文件信息
https://kb.paessler.com/en/topic/463-how-and-where-does-prtg-store-its-data
根据网页的提示进入相应的目录
这里需要注意的时,因为文件名之间包含空格,cd的时候需要用双引号包括住文件夹的名称
把配置文件都进行下载
PRTG Configuration.dat PRTG Configuration.old PRTG Configuration.old.bak
通过MD5计算发现 PRTG Configuration.dat 和 PRTG Configuration.old内容是一样的
我们只需要对PRTG Configuration.dat和PRTG Configuration.0ld.bak进行内容查找即可
在PRTG Configuration.old.bak中找账号和密码
我们根据得到的用户名和密码进行登录发现也是错误的
但是根据之前文件的创建年份,以及密码中带有2018。可以进行猜测认为管理员更改了密码,新密码只是把2018改为2019
我们继续尝试登录
prtgadmin PrTg@dmin2019
登录成功
我们查找下PRTG的漏洞
https://www.cvedetails.com
网上上说可以通过web控制面板的传感器通知进行恶意的参数注入达到命令执行的效果
然后我们用tcpdump侦听 HTB的网络接口 并捕获ICMP数据包
然后去页面上点击发现信息查看代码注入效果
然后Kali上就能看到ICMP数据包
那么接下来就用Nishang反弹shell
然后编辑下
然后用python 的SimpleHTTPServer模块开启HTTP功能,并用nc监听4444端口
然后靶机远程下载代码执行
刚开始我构造的语句是这也的,但是python那边一直没有下载的提示
把双引号进行转义即可,成功
虽然代码被下载了了,但是没有执行成功,可能也是因为脚本代码内容没有被转义导致无法正常执行
我们把代码进行转义
cat reverse.ps1 | iconv -t UTF-16LE | base64 -w0 | xclip -selection c
代码解释:
iconv -t UTF-16LE :把内容转为UTF-16LE的类型
base64 -w0:转为base64格式 -w0 表示不换行
xclip -selection c :终端输出保存到剪切板中
然后我们把转码后的代码进行粘贴执行
就能得到反弹的shell
后记:
1.可以使用CVE-2018-9276漏洞创建后门账号,然后用psexec.py连接得到shell