TryHackMe-Ignite
靶机下载链接:可能需要翻墙
在线靶机链接:Ignite
难度:简单
信息收集
常规思路,上来先扫一波,结果发现目标只开放了80端口。
访问之后,可以发现目标是使用fuel-cms内容管理系统搭建的网站,版本是1.41
这里有后台的默认登录密码。。虽然好像在里面找不到上传点。。。一开始我甚至都不知道这密码,,
用gobuster
扫一波
访问robots.txt
可以知道反爬的目录名为fuel
这里我差不多试了一个个页面去访问,找到了登录页面,但是不知道密码,也没有尝试弱口令,最后找不到思路。(这里我不知道前台页面有登录密码
漏洞利用
所以只好改变思路,只好去google找找fuel-cms
的exploit
结果,还真有一个。
看这cve描述这是一个远程代码执行的漏洞。
让我们去下载这个exploit。将源码的url修改为我们的攻击目标,将proxy
那行注释掉。
修改好后就可以使用python2 执行,执行后会有cmd提示输入指令。在cmd字符串后输入whoami,成功执行。不过下面有php的错误提示。
在这里我尝试cd到其他的目录,可是不行。查看/etc/passwd
后可以发现除了root
用户就没有其他普通用户了.
因为在这个exploit
里执行命令的输出有点繁琐,而且无法切换到其他目录。。所以我试着用wget
下载自己的web-shell。
看到我网站有请求我就知道成功了。不过不清楚为什么会一次下载十个,而且会自动改变后缀。我暂且蒙在古里。
将其他一个改为正常的php后缀后,开启监听使用并网页访问执行。
成功,并且拿到第一个flag。拿了第一个flag后,我脑子发热用python生成了一个新的交互shellpython -c 'import pty; pty.spawn("/bin/sh")'
事实证明我这一步操作是对的,即使我这里不操作,我在后面
su root
也是需要生成这样一个交互性的shell的。
提权
接下来就要考虑提权了。
通过查找suid
位文件,和crontab
里没有定时执行任务,以及/etc/shadow
无法查看,我猜测这里需要去找文件。
找什么文件呢?要找网站的服务配置文件,或者找一些日志文件,看能不能发现什么。
这里就是大海捞针了,因为这里是有mysql服务的,所以我就打算先去网站根目录下找找数据库的配置文件
搜索一番后发现配置文件在/var/www/html/fuel/application/config
下
查看网站配置文件,发现root密码,尝试切换到root,成功!
总结
这个靶机总的来说难度不难。主要还是要善于使用exploitdb
这些大佬们的智慧结晶。
还有阅读代码很重要。。。
不要拿到exploit不会用。。