DC1 WalkThrough

DC1-WalkThrough


免责声明

本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关.


靶机地址

  • https://www.vulnhub.com/entry/dc-1,292/

Description

DC-1 is a purposely built vulnerable lab for the purpose of gaining experience in the world of penetration testing.

It was designed to be a challenge for beginners, but just how easy it is will depend on your skills and knowledge, and your ability to learn.

To successfully complete this challenge, you will require Linux skills, familiarity with the Linux command line and experience with basic penetration testing tools, such as the tools that can be found on Kali Linux, or Parrot Security OS.

There are multiple ways of gaining root, however, I have included some flags which contain clues for beginners.

There are five flags in total, but the ultimate goal is to find and read the flag in root's home directory. You don't even need to be root to do this, however, you will require root privileges.

Depending on your skill level, you may be able to skip finding most of these flags and go straight for root.

Beginners may encounter challenges that they have never come across previously, but a Google search should be all that is required to obtain the information required to complete this challenge.

知识点

  • drupal 漏洞利用 (flag1)

  • Linux 提权 (flag5)

  • hashcat 跑密码 (flag3)

  • drush 使用 (补充)

实验环境

环境仅供参考

  • VMware® Workstation 15 Pro - 15.0.0 build-10134415

  • kali : NAT 模式,192.168.141.134

  • 靶机 : NAT 模式


前期-信息收集

老规矩,先进行 IP 探测,我在部署的时候使用的是 NAT 模式,这里 kali 使用 nmap 探活,当然 kali 下还有一个工具 netdiscover 点名批评一下,一点都不好用,大家不要用这个

语法 nmap -sP <网段>/24

可见有5个结果,去除网关和 kali 和 VM 主机以外 192.168.141.135 就是目标了

下面扫描开放端口,还是使用 nmap

扫描结果如下

可见开放了 22、80、111 3个端口,且 80 端口运行着 Drupal 这个 CMS

那么,下面就是对目前已经收集到了信息进行进一步利用


中期-漏洞利用

从之前的 nmap 结果得知,目标 80 端口运行着 Drupal 7 版本的 CMS,那么其实有很多公开的 CVE EXP 可供使用

  • CVE-2014-3704

  • CVE-2018-7600

  • CVE-2018-7602

  • CVE-2019-6339

  • CVE-2019-6341

漏洞信息和 POC 见 BS-Exploits

CVE-2018-7602、CVE-2019-6339、CVE-2019-6341 需要认证,这里就懒得测了,以 CVE-2014-3704 和 CVE-2018-7600 为例,Metasploit 自带这2个漏洞的 EXP

可以看到成功弹回一个会话,这里使用 exploit/unix/webapp/drupal_drupalgeddon2 这个模块也可以成功

获取 meterpreter 会话后,先整一个 cmd shell

整个正常交互式的 shell

ok,现在有了一个 www-data 用户的权限,下面开始按照描述中的找那5个 flag 文件


flag1

先 find 试试

当前目录下就有1个

cms 的配置文件有什么东西


flag2

drupal 7 的配置文件是 /sites/all/modules/domain/settings.inc

没有找到这个文件,甚至连 domain 目录都没有,那么这个配置文件会不会指的是 CMS 的其他配置文件,比如数据库连接的配置文件 /sites/default/settings.php

可以看到 flag2 的内容和 mysql 数据库的账号密码


flag3

配置文件都写了是 mysql,那就本地直接连接

看看数据库看看表

查询用户名密码

得到了密码的 hash 就得跑明文了,下面使用 hashcat 爆破

当然不能直接跑,得知道 Hash id , hashcat --help 查看 hash 对照表

这里把 hash 先写到源文件里,等下直接引用

然后找个密码表,推荐一下我自己的字典项目 https://github.com/ffffffff0x/AboutSecurity/tree/master/Dic/Auth/password

一切准备就绪,run

只跑出一个 MyPassword

后面 google 到了 admin 的密码 53cr3t

好,admin 的账号密码都有了,那么直接登录,可以看到 dashboard 里就有 flag3


flag4

发现一个 flag4 用户,直接看家目录文件


flag5

这里使用 LinEnum 进行提权

kali 下载

下完了使用 HTTP 服务传过去

注: 如果 git速度太慢,可以给 git 或终端走代理

从 kali 上下好后直接运行

可以通过 find 进行提权

提权成功,感谢靶机作者 @DCUA7,查看最终 flag


补充

在 flag3 跑 hashcat 时,如果跑不出密码,除了 google 以外还有2种方式登录 admin 账号

  • 直接数据库修改 Drupal users 表

  • 通过 drush 修改 admin 用户的密码

直接数据库修改 Drupal users 表

我都爆出了 Fred 的明文 MyPassword 了,那我直接把 admin 的改成和 Fred 的一样不就行了

ok 登上去了

通过 drush 修改 admin 用户的密码

Drush是一个 shell 接口,用于从云服务器命令行管理 Drupal。

现在服务器上找找 drush,没有的话还得给他传一个

然后直接修改 admin 密码

测试一下,ok 登上去了