简介
help官方评分为4.2, 第一步常规思路扫目录发现helpdeskz, 查找CVE后通过文件上传漏洞+文件名爆破获取webshell获取user.txt, 但是获取root.txt时遇到了问题, suid发现了几个从未遇到的程序, 暂时未利用成功; 文件、配置、服务暂未发现问题.
文章目录
- helpdeskz
- Kernel
端口扫描之后发现开放22、80、3000三个端口, 80和3000分别是apache和nodejs, 均有利用价值.
helpdeskz
访问80端口发现是一个helpdeskz
的开源程序, 查exploit-db后发现在2016和2017年分别发现任意文件上传、sql注入和文件下载漏洞, 根据任意文件上传poc中的提示上传文件后提示文件不被允许. 此时已经想放弃了, 然后在官网论坛中得到一个提示: 不要用exploit-db中公开的poc脚本, 仔细阅读源码。 于是下载对应版本的helpdeskz程序, 开始查看提交tickets处的代码, 发现虽然提示文件不被允许但是文件已经被上传到服务器中, 可通过exploit-db中提供的poc脚本爆破文件名. 然后得到webshell
然后获得user.txt
, 拿到用户flag.
提权
这个靶机中上传的webshell会被定期清理掉, 因此很难维持访问.
提权思路:
- 文件(硬编码、suid)
- 计划任务
- 配置(sudoers)
- 服务(mysql、redis等)
- 进程
提权的时候可以说是绞尽脑汁, 获取webshell后先查suid文件, 发现几个可疑的suid文件
然后线索断掉了, 始终未找到提权的方法.
Kernel
仔细看一下上面的提权步骤就可以发现, 本渣忘记做内核提权的检查了.
方法 进入靶机, 通过uname -a
查看内核信息, 然后把这对信息丢到google上搜索, 直接看到CVE-2017-16995
, 在靶机上编译exp即可实现提权.
tips exp原意是产生一个root shell的, 但是运行之后发现并没有shell产生, 于是修改exp将运行bash的命令改为读取root.txt的命令, 成功拿到flag