靶机说明
Breach1.0是一个难度为初级到中级的BooT2Root/CTF挑战。
VM虚机配置有静态IP地址(192.168.110.140),需要将虚拟机网卡设置为host-only方式组网,并且配置网段。非常感谢Knightmare和rastamouse进行测试和提供反馈。作者期待大家写出文章,特别是通过非预期的方式获取root权限。
目标
Boot to root:获得root权限,查看flag。
运行环境
- 靶机:网络连接方式设置为主机模式(host-only),静态IP是192.168.110.140。
- 攻击机:同网段下有kali攻击机(物理机),IP地址:192.168.110.128,安装有Nmap、Burpsuit、Wireshark、Sqlmap、nc、Python2.7、JDK、DirBuster、AWVS、Nessus等渗透工具,也可以使用windows攻击机。
信息收集
- 端口服务识别
启动Breach1.0虚拟机,由于IP已知,使用nmap扫描端口,并做服务识别和深度扫描(加-A参数),扫描结果保存到txt文件,命令:
nmap -v -A -p 1-65535 192.168.110.140
发现端口几乎全开放了,显然是有问题,虚拟机对端口扫描做了一些防护措施,直接访问80端口,进入web首页:
漏洞挖掘
- 0x01:查看首页源码,解码得到密码
(1) 查看首页源代码,发现提示:
Y0dkcFltSnZibk02WkdGdGJtbDBabVZsYkNSbmIyOWtkRzlpWldGbllXNW5KSFJo 这是一串base64编码
(2) 将其复制到Burpsuit Decoder进行base64解码,解密后发现还是base64编码,继续base64解码,得到
pgibbons:damnitfeel$goodtobeagang$ta
这看起来像是用户名和密码
- 0x02:登录cms,查看邮件,下载包含SSL证书的密钥库keystore文件
(1) 点击首页的图片,进入 initech.html 页面
(2)点击initech.html左边的 Cake 和 Stapler 发现只是简简单单的两张图片,
(3) 点击initech.html左边的 Employee portal 进入到 http://192.168.110.140/impresscms/user.php 这是一个impresscms登录页
使用之前两次base64解码得到的密码登录impresscms:
用户名:pgibbons
密码:damnitfeel$goodtobeagang$ta
(3) exploit-db.com查找impress cms漏洞:发现ImpressCMS 1.3.9 SQL注入漏洞 : https://www.exploit-db.com/exploits/39737/%E5%8F%AF%E6%B3%A8%E5%85%A5%E9%A1%B5%E9%9D%A2%E4%B8%BA/modules/profile/admin/field.php,但是该页面目前没有权限访问,无法进行注入。
(4) 注意到左边的收件箱Inbox显示有3封邮件
我们依次打开查看:
第一封邮件:
主要内容:让你的团队只能向管理门户发布任何敏感的内容。我的密码非常安全,发自ImpressCMS Admin Bill
第二封邮件:
主要内容:Michael采购了IDS/IPS。
第三封邮件:
主要内容:有一个peter的SSL证书被保存在192.168.110.140/.keystore
关键恐怕就是这个第三封邮件
(5) 访问 http://192.168.110.140/.keystore 下载包含SSL证书的密钥库keystore文件,keystore是存储公私密钥的一种文件格式。