总结和反思: 1. win中执行powershell的远程代码下载执行注意双引号转义 2. 对powershell代码先转为windows上默认的Unicode编码方式(UTF-16LE)再转为base64执行,防止代码内容被破坏 3. 学会查CVE漏洞 4. 通过命令行把终端内容保存到剪切板中 5. 运维人员密码修改的规律,仅仅修改了密码中的年份,这是设置新密码常用的思路
Kali地址:10.10.15.242 先用nmap对Netmon进行信息收集
发现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的时候需要用双引号包括住文件夹的名称 把配置文件都进行下载
通过MD5计算发现 PRTG Configuration.dat 和 PRTG Configuration.old内容是一样的
我们只需要对PRTG Configuration.dat和PRTG Configuration.0ld.bak进行内容查找即可在PRTG Configuration.old.bak中找账号和密码
我们根据得到的用户名和密码进行登录发现也是错误的
但是根据之前文件的创建年份,以及密码中带有2018。可以进行猜测认为管理员更改了密码,新密码只是把2018改为2019 我们继续尝试登录
登录成功
我们查找下PRTG的漏洞 https://www.cvedetails.com
网上上说可以通过web控制面板的传感器通知进行恶意的参数注入达到命令执行的效果
然后我们用tcpdump侦听 HTB的网络接口 并捕获ICMP数据包
然后去页面上点击发现信息查看代码注入效果
然后Kali上就能看到ICMP数据包
那么接下来就用Nishang反弹shell
然后编辑下
然后用python 的SimpleHTTPServer模块开启HTTP功能,并用nc监听4444端口
然后靶机远程下载代码执行
刚开始我构造的语句是这也的,但是python那边一直没有下载的提示
把双引号进行转义即可,成功
虽然代码被下载了了,但是没有执行成功,可能也是因为脚本代码内容没有被转义导致无法正常执行
我们把代码进行转义
代码解释: iconv -t UTF-16LE :把内容转为UTF-16LE的类型 base64 -w0:转为base64格式 -w0 表示不换行 xclip -selection c :终端输出保存到剪切板中
然后我们把转码后的代码进行粘贴执行
就能得到反弹的shell
后记: 1.可以使用CVE-2018-9276漏洞创建后门账号,然后用psexec.py连接得到shell