Hack The Box Curling WriteUp

1.Nmap端口扫描,Curling仅开放80、22端口。

nmap

2.Web服务信息搜集,这是一个由Joomla构建的cms,管理页面在默认的administrator路径下,需要用户名和密码。首先对网站路径进行Fuzz,可以找个一个隐藏的文本文件secret.txt,内容是一个哈希值“Q3VybGluZzIwMTgh”,通过www.cmd5.com可以在线破译明文:Curling2018!,这很可能是Joomla的登录密码。
gobuster -u http://10.10.10.150 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,html,txt,htm
/secret.txt

3.Joomla登录尝试,利用常规的admin等账号登录均失败。返回web页面重新寻找线索,可以发现,一篇日志的署名为floris。利用该账户可以成功登录Joomla后台。
用户名获取

4.Joomla后台上传shell,步骤如下图文分解:
进入Templates页面

点击右上角Options

启用预览功能并允许上传php后缀的图片格式

在Permissions页面赋予全部权限并保存

返回Templates页面,并编译一套模板的文件

编辑index页面,贴入webshell,执行预览就可以获得一个反弹

5.在反弹的shell中可以看到user.txt但权限不够不能cat。要想办法切换到floris账户。在该路径下还存在password_backup文件,将该文件取回。
权限不够

6.根据文件格式看,这是一个十六进制格式的文件输出,可以用xxd -r还原为原始文件,之后是一连串的解压操作,bzip2 到 gunzip 再到 bzip2 最后是 tar,完整解压后能获得password.txt,包含密码:5d
连续解压

7.利用刚获得的密码ssh登录目标,拿下user.txt。随后上传pspy,可以发现一个计划任务每分钟运行一次,利用curl读取/home/floris/admin-area/input中的指令执行,并将结果写入/home/floris/admin-area/report 。
pspy

因此,我们可以利用这个脚本读取root flag。编辑/home/floris/admin-area/input:
echo "file:///root/root.txt" > /home/floris/admin-area/input
大约等待一分钟可以获取flag。
root

你可能感兴趣的:(Hack The Box Curling WriteUp)