Vulnhub打靶-DC:1
基本信息
靶机下载:https://download.vulnhub.com/dc/DC-1.zip
攻击机器:192.168.20.128(Windows操作系统)& 192.168.20.138(kali)
靶机:192.168.20.0/24
目标:获取5个flag+root权限
具体流程
信息收集
老样子首先使用arp-scan -l
对主机进行探活,发现主机IP为192.168.20.152
之后对开放的端口进行扫描,执行nmap -O -sV -p- -A 192.168.20.152
,结果如下所示
我们发现开放了22
、80
、111
、42289
端口,我们暂时先去看看80
端口给我们提供了什么有效的信息
我们发现其存在robots.txt
,我们访问robots.txt
,看看有没有什么关键信息,探寻了一圈后并没有发现什么有价值的信息,虽然那些文件都可以被访问到,但是并没有什么鸟用,然后我去网上搜了一下Drupal框架的历史漏洞,有一个CVE-2018-7600
远程代码执行漏洞和CVE-2019-6340
远程代码执行漏洞,但是网上的POC都没有什么用,如下所示
这个时候我们尝试使用msf上自带的漏洞攻击模块进行攻击,看看有没有能成功拿权限的漏洞
MSF上线
首先我们使用whatweb
查看一下版本号,这是kali自带的工具
我们可以知道这是Drupal 7 版本的,我们首先使用search Drupal 7
查找和这个cms系统相关的漏洞,如下所示
这里我们选择payload 1,我们输入use 1
即可
set rhosts 192.168.20.152 |
之后我们直接拿shell权限即可,我们输入shell,为了获得交互式控制,我们输入如下语句
python -c 'import pty;pty.spawn("/bin/bash")' |
实现交互shell,如下所示
这里我们找到第一个flag,flag1.txt
,我们直接读取即可
Every good CMS needs a config file - and so do you. |
权限提升
我们这里执行find / -perm -u=s -type f 2>/dev/null
看是否存在suid提权
这里面很显然是使用find进行suid提权,我们首先在当前目录下创建一个.sh
文件
touch ssh.sh |
执行后我们就可以发现成功提权
我们成功拿到最后的flag
Well done!!!! |
当时我们还有flag2
和flag3
以及flag4
没找到,我们在home目录下发现一个flag4用户,下面有一个flag4.txt
,我们尝试读取
Can you use this same method to find or access the flag in root? |
我们试着使用find命令查找剩余的两个flag
find / -name "*flag*" |
并没有发现其他两个flag的信息,我们看看flag1的提示吧,这几个flag应该是有递进关系的,第一个flag提示我们去config文件中看看,我们去找这个cms的配置文件即可
我们在网上可以查询到dural的配置文件位置,/sites/default/settings.php
,我们直接访问这个文件,发现里面确实存在flag2
Brute force and dictionary attacks aren't the |
同时获得了数据库的账户密码,我们直接连接数据库
mysql -h localhost -u dbuser -pR0ck3t |
我们在数据库中确实找到了管理员的登录账号密码,但是被加密了
通过flag2我们知道不能爆破密码,那我们就只剩下修改密码了,因为我们有数据库权限,我们可以直接讲修改的密码更新到数据库中,我们先尝试注册一个密码为123456的用户,然后直接在数据库里更新admin的密码,但是我们根本注册不了新用户,因为注册用户需要邮箱接收验证码,但是我们的邮箱并不能接收到验证码,所以我们只能尝试去找一找是怎么加密的了
我们直接运行相关命令,如下所示
php scripts/password-hash.sh 123456 |
加密出来$S$DBdjFBevhOwTeP.UcmRJMfef2lfNMPYS3ykCOaG2UKTkE2gCEAiL
,我们直接在数据库中执行
update drupaldb.users set pass="$S$DBdjFBevhOwTeP.UcmRJMfef2lfNMPYS3ykCOaG2UKTkE2gCEAiL" 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. |
至此所有flag都被成功找到
总结
- 框架漏洞的发现和利用
- 利用cms的特性进行管理员密码的更改