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 登上去了