TryHackMe-Ignite

靶机下载链接:可能需要翻墙

在线靶机链接:Ignite

难度:简单

信息收集

常规思路,上来先扫一波,结果发现目标只开放了80端口。

nmap

访问之后,可以发现目标是使用fuel-cms内容管理系统搭建的网站,版本是1.41

这里有后台的默认登录密码。。虽然好像在里面找不到上传点。。。一开始我甚至都不知道这密码,,
admin

gobuster扫一波

dir-enum

访问robots.txt可以知道反爬的目录名为fuel
这里我差不多试了一个个页面去访问,找到了登录页面,但是不知道密码,也没有尝试弱口令,最后找不到思路。(这里我不知道前台页面有登录密码

漏洞利用

所以只好改变思路,只好去google找找fuel-cmsexploit

结果,还真有一个。

exploid

看这cve描述这是一个远程代码执行的漏洞。

让我们去下载这个exploit。将源码的url修改为我们的攻击目标,将proxy那行注释掉。
pypy

修改好后就可以使用python2 执行,执行后会有cmd提示输入指令。在cmd字符串后输入whoami,成功执行。不过下面有php的错误提示。
47138-remote

在这里我尝试cd到其他的目录,可是不行。查看/etc/passwd后可以发现除了root用户就没有其他普通用户了.
etc,passwd

因为在这个exploit里执行命令的输出有点繁琐,而且无法切换到其他目录。。所以我试着用wget 下载自己的web-shell。

wget

看到我网站有请求我就知道成功了。不过不清楚为什么会一次下载十个,而且会自动改变后缀。我暂且蒙在古里。

将其他一个改为正常的php后缀后,开启监听使用并网页访问执行。

user-flag

成功,并且拿到第一个flag。拿了第一个flag后,我脑子发热用python生成了一个新的交互shell
python -c 'import pty; pty.spawn("/bin/sh")'
span

事实证明我这一步操作是对的,即使我这里不操作,我在后面su root也是需要生成这样一个交互性的shell的。
wrong

提权

接下来就要考虑提权了。

通过查找suid位文件,和crontab里没有定时执行任务,以及/etc/shadow无法查看,我猜测这里需要去找文件。

找什么文件呢?要找网站的服务配置文件,或者找一些日志文件,看能不能发现什么。

这里就是大海捞针了,因为这里是有mysql服务的,所以我就打算先去网站根目录下找找数据库的配置文件

搜索一番后发现配置文件在/var/www/html/fuel/application/config

查看网站配置文件,发现root密码,尝试切换到root,成功!

get-shell

总结

这个靶机总的来说难度不难。主要还是要善于使用exploitdb这些大佬们的智慧结晶。

还有阅读代码很重要。。。
不要拿到exploit不会用。。
shale