关于我

DC-7渗透笔记

DC-7渗透笔记

靶场作者说明:

image-20240722153524012

信息搜集

IP、端口、目录一条龙:

image-20240722153329484

可知:

  • IP为192.168.111.145
  • 开放22、80端口
  • 目录毛都没扫出

看看web网页:

image-20240722152803919

可知cms是Drupal 8

漏洞利用

敏感信息泄露

在靶场描述里说挑战不完全是技术性的,要跳出框框思考,说明突破口可能不是网站本身,找找看

image-20240722153902459

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

image-20240722153954052

看看他发的代码:

image-20240722154037391

在config.php里面发现了账密,试试登录drupal呢

利用账密连接ssh

image-20240722154219764

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

image-20240722154353498

这就getshell了?

shell下的信息搜集

正常进行信息收集,看看suid、sudo、内核等:

image-20240722154723089

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

image-20240722154945910

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

image-20240722155603261

利用这个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密码: image-20240722160155849

修改后尝试登录admin:

image-20240722160509108

登录成功

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

image-20240722161048298

发现Drupal 8不支持PHP代码,需要将php单独作为一个模块导入,进入Extend => Install new module,输入url:https://ftp.drupal.org/files/projects/php-8.x-1.0.tar.gz

然后install,安装完毕就enable激活,勾选要激活的模块:

image-20240722161323297

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

image-20240722161647761

保存后看看路径:

image-20240722161713495

蚁剑连接:

image-20240722161806748

接下来反弹shell: image-20240722162024246

获取pty: image-20240722162150910

ok正式进入提权阶段

权限提升

修改我们先前发现的定时任务脚本,写入反弹shell代码,开启监听并等待定时任务以root身份执行: image-20240722165141211

成功反弹到root的shell:

image-20240722165232527

然后拿flag:

image-20240722165257709

收工

总结

本次渗透过程的漏洞或利用:

  • github源码泄露ssh账密
  • 邮箱泄露定时任务脚本
  • drush重置drupal的管理员密码
  • 后台支持php模块导致写webshell
  • 定时任务脚本可被www-data篡改
  • 定时任务脚本以root运行实现提权

Created by Yuy0ung. Powered by GitHub Page.