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

目标:获取2个flag+root权限

具体流程

信息收集

老样子首先使用arp-scan -l对主机进行探活,发现主机IP为192.168.20.152

之后对开放的端口进行扫描,执行nmap -O -sV -p- -A 192.168.20.152,结果如下所示

我们发现开放了228011142289端口,我们暂时先去看看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
run

之后我们直接拿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
find ssh.sh -exec "/bin/sh" \;

执行后我们就可以发现成功提权

我们成功拿到最后的flag

Well done!!!!

Hopefully you've enjoyed this and learned some new skills.

You can let me know what you thought of this little journey
by contacting me via Twitter - @DCAU7

当时我们还有flag2flag3以及flag4没找到,我们在home目录下发现一个flag4用户,下面有一个flag4.txt,我们尝试读取

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命令查找剩余的两个flag

find / -name "*flag*"

并没有发现其他两个flag的信息,我们看看flag1的提示吧,这几个flag应该是有递进关系的,第一个flag提示我们去config文件中看看,我们去找这个cms的配置文件即可

我们在网上可以查询到dural的配置文件位置,/sites/default/settings.php,我们直接访问这个文件,发现里面确实存在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?

同时获得了数据库的账户密码,我们直接连接数据库

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都被成功找到

总结

  1. 框架漏洞的发现和利用
  2. 利用cms的特性进行管理员密码的更改
相关推荐
xzajyjs10 小时前
CodeQL学习笔记(3)-QL语法(模块、变量、表达式、公式和注解)
web安全·渗透测试·漏洞分析·代码审计·codeql
SouthBay4933 天前
【Vulnhub靶场】DC-5
linux·web安全·渗透测试·漏洞·vulnhub靶场
SouthBay4933 天前
【Vulnhub靶场】DC-2
渗透测试·漏洞·1024程序员节·vulnhub靶场
ZapcoMan4 天前
pikachu 基于表单的暴力破解(一)
渗透测试·靶场
SouthBay4935 天前
【Vulhub靶场】 DC-3
web安全·渗透测试·漏洞·vulhub靶场
我只会Traceroute6 天前
MySQL注入load_file常用路径
网络·mysql·网络安全·渗透测试
SouthBay4939 天前
【Vulnhub靶场】Kioptrix Level 3
运维·web安全·渗透测试·漏洞·vulhub靶场
漠北的哈士奇12 天前
渗透测试导论
网络安全·信息安全·渗透测试
江南26015 天前
CISAW安全集成,协助组织构建坚固的信息防护堡垒
安全·渗透测试·风险管理·cisaw·安全运维·应急服务