DC-7渗透笔记
DC-7渗透笔记
靶场作者说明:

信息搜集
IP、端口、目录一条龙:

可知:
- IP为192.168.111.145
- 开放22、80端口
- 目录毛都没扫出
看看web网页:

可知cms是Drupal 8
漏洞利用
敏感信息泄露
在靶场描述里说挑战不完全是技术性的,要跳出框框思考,说明突破口可能不是网站本身,找找看

在页脚发现一个叫@DC7USER的用户,搜搜结果发现了该用户的github

看看他发的代码:

在config.php里面发现了账密,试试登录drupal呢
利用账密连接ssh

错了,那还有登陆的地方就是22端口的ssh服务,连接试试:

这就getshell了?
shell下的信息搜集
正常进行信息收集,看看suid、sudo、内核等:

确实没有什么利用点,那可能就是有什么利用文件了,找找看:

当前目录有备份文件夹,但里面是加密的gpg文件,而mbox记录了root的定时任务,路径为/opt/scripts/backups.sh,过去看看:

利用这个root的任务可以提权,但发现脚本只有root和www-data可写,得想办法拿到www-data身份,那就得通过web服务拿shell,那么入手点又要回到后台,先看看脚本
脚本内容:
#!/bin/bash
# 删除 /home/dc7user/backups/ 目录下的所有文件
rm /home/dc7user/backups/*
# 切换目录到 /var/www/html/
cd /var/www/html/
# 使用 Drush 工具导出数据库,并将结果保存为 /home/dc7user/backups/website.sql
drush sql-dump --result-file=/home/dc7user/backups/website.sql
# 返回上级目录
cd ..
# 将 html/ 目录的内容打包成 website.tar.gz 并保存在 /home/dc7user/backups/ 目录下
tar -czf /home/dc7user/backups/website.tar.gz html/
# 使用 GPG 对 /home/dc7user/backups/website.sql 文件进行对称加密,并用指定的密码保护
gpg --pinentry-mode loopback --passphrase PickYourOwnPassword --symmetric /home/dc7user/backups/website.sql
# 使用 GPG 对 /home/dc7user/backups/website.tar.gz 文件进行对称加密,并用指定的密码保护
gpg --pinentry-mode loopback --passphrase PickYourOwnPassword --symmetric /home/dc7user/backups/website.tar.gz
# 将 /home/dc7user/backups/ 目录下所有文件的所有者改为 dc7user
chown dc7user:dc7user /home/dc7user/backups/*
# 删除 /home/dc7user/backups/website.sql 文件
rm /home/dc7user/backups/website.sql
# 删除 /home/dc7user/backups/website.tar.gz 文件
rm /home/dc7user/backups/website.tar.gz
这里重点在于drush,是一个简化了创建和管理Drupal8网站的命令行工具,可以用来修改密码:
drush upwd admin --password="123456"
重置密码进入后台
我们去web目录尝试修改网页的admin密码:

修改后尝试登录admin:

登录成功
到后台的思路基本就是找写webshell的点了,发现在Content => Add content =>Basic page处似乎可以写:

发现Drupal 8不支持PHP代码,需要将php单独作为一个模块导入,进入Extend => Install new module,输入url:https://ftp.drupal.org/files/projects/php-8.x-1.0.tar.gz
然后install,安装完毕就enable激活,勾选要激活的模块:

然后再install即可写php代码了:

保存后看看路径:

蚁剑连接:

接下来反弹shell:

获取pty:

ok正式进入提权阶段
权限提升
修改我们先前发现的定时任务脚本,写入反弹shell代码,开启监听并等待定时任务以root身份执行:

成功反弹到root的shell:

然后拿flag:

收工
总结
本次渗透过程的漏洞或利用:
- github源码泄露ssh账密
- 邮箱泄露定时任务脚本
- drush重置drupal的管理员密码
- 后台支持php模块导致写webshell
- 定时任务脚本可被www-data篡改
- 定时任务脚本以root运行实现提权