DC-7是一个易受攻击的实验环境,最终目的是让攻击者获得root权限,并读取flag。
本篇文档中用到了exim4漏洞提权和shell二次反弹。
1 环境搭建
下载靶场文件,使用Vbox或者VM打开即可;攻击机使用kali-2020。
2 主机发现
使用Kali中的arp-scan工具扫描结果如下:
172.16.12.149为DC-7靶机的IP地址。
3 端口探测
探测使用nmap工具
端口扫描结果如下:
由扫描结果知开放端口有两个:22(SSH服务默认端口)和80(http默认端口)。
4 访问web
访问web界面如下:
从web首页的这段话来看渗透的路子在左边的那个搜索框上,随便输点什么查询下,都没有找到什么有用的信息,下面是这段话的翻译
DC-7引入了一些“新”概念,但我将让您弄清楚它们是什么。:-)
虽然这个挑战并不完全是技术性的,但如果你需要使用暴力破解或字典攻击,你可能不会成功。(说明暴力破解登录用户或字典检索网站目录还是有可能操作的)
你要做的,就是跳出框框去思考。
在盒子外面。:-)
5 对网站信息收集
打开插件Wappalyzer进行网站指纹识别如下:
从指纹识别信息中提取出的信息有:
1 CMS(内容管理系统):Drupal
2 编程语言:PHP
3 Web服务器:Apache 2.4.25
4 操作系统:Debian
6 用户密码破解
玩这个网站最开始我想到的是
1 网站首页的搜索框,尝试直接查询passwd等文件或直接输入linux命令查看,都以失败收尾;
2 尝试扫描网站目录,没发现什么有价值的目录,倒是发现了robotx.txt文件,这个文件作为常见的可以让爬虫程序扫描的文件之一,控制是否想让爬虫去爬取本站信息;
3 对于robots.txt文件,对里面的目录或者文件都进行了访问查看,未发现有用的信息
在这里折腾了一段时间,作用不大
4 尝试通过用户名密码爆破登录,可惜没有爆破出来,这里也想到过dc7用户,但并没有爆破出来;
5 有时候,渗透测试的过程中我们不能太过循导守旧,需要放空大脑,想尽一切可能去,所有所渗透测试来说是需要经验积累的。
后经查询了解到网站左下角为@DC7USER为推特的联系方式,通过查询DC7USER查询到DC7-User用户,从而查询到如下信息,明显与DC-7相关:
上github网站看下
点击浏览代码
在其中的config.php代码中找到了用户名密码
看样子是网站mysql数据库连接的用户名、密码,所有这里就不登录网站了,直接登录后台。dc7user/MdR3xOgB7#dW
登录成功
查看dc7user家目录下有backup文件夹
Gpg后缀文件为加密后的文件,需要有秘钥和密码才能解密。
查看另一个文件mbox是邮件信息如下
其中的主要信息有:
Shell脚本文件 /opt/scripts/backups.sh
数据库文件:/home/dc7user/backups/website.sql
网站数据: /home/dc7user/backups/website.tar.gz
从目前情况来看,website.sql和website.tar.gz文件现在都是加密过的,现在只能把目光放在另一个文件backups.sh上
查看文件如下
顺利找到了加密的秘钥,只是解密需要root权限才可以
接下来看看能找到提权的有关提示不,find查找如下(熟悉的exim映入眼帘)
7 exim提权
查看exim版本
Kali上查找方法
找到46996.sh文件传输到DC-7上
传输完成
修改文件替换结束符
执行此提权脚本,并没有提权成功
使用gpg秘钥解密PickYourOwnPassword(backup.sh中找到)
查看解密后的文件
文件夹html为website.tar.gz后解压后的文件
在文件夹中/sites/default目录下找到setting.php文件并没找到有用的信息。
只能将目光重新放到website.sql文件中,dc7user这个用户不能登录mysql数据库,所有把website.sql文件导出来后再导入自己的虚拟机中,在数据库中使用source /路径/website.sql如下
打开的文件有以下表
发现users表,查看users表并没发现user相关用户信息
到这一步把我整蒙了,难道不是考察gpg加解密和数据库文件还原吗,只能把目光重新放回backups.sh文件,这时才发现文件的所属用户为root,所属组为www-data。
查询drush是drupal shell专门管理drupal站点的shell,使用drush扫描得知drupal用户为admin,cms的管理用户
尝试重置admin用户密码,说明admin用户存在
若用户不存在则是下面这种情况
重置admin密码为admin,必须在/var/www/html目录下执行
登录网站
到后台后想上传一句话木马进行连接,发现没有php模块,这样就没办法解析php,在extra中点击添加php模块
安装成功
返回页面选择php添加
写入反弹shell
Contexn创建成功
在kali上监听已拿到反弹shell
Python –c “import pty;pty.spawn(‘/bin/bash’);”打开shell交互
8 拿root
拿到root的反弹shell
查看theflag文件