Hackthebox - Ransom
Ransom
10.10.11.153
nmap
登录逻辑绕过
这里我感觉有点 crazy。
一开始尝试了 sqlmap,但是这个 api/login 是有 ratelimit 的,而且手动尝试没有结果。
没有思路就去看了 ippsec。首先这里需要改变请求内容的 content-type 为 json,然后这里存在 php 的若类型比较逻辑漏洞。
这种我如果没看到代码是不敢去尝试的,过于 crazy 了。
将密码的部分改为 json 中的 true,传过去后应该是写死的字符串比较逻辑,用的还是 == 的弱类型比较。
众所周知,当 php 中的 boolean 和 string 进行 == 比较时,可以根据官网的比较逻辑矩阵找到相应的转换结果。
但这种我还是记住了,只要字符串不为空的,那么 ((true == “abcd”) && (“abcd” == true)) === true。
主要还是想不到这个点,想不到登录这里会有弱比较的逻辑错误。
这样改一下就可以绕过登录了,说实话之前在 ctfshow 是遇到过这种弱比较绕过登录的,不过真遇到应用程序还是想不起来利用,
因为总是觉得不会有人用弱比较去写这部分的逻辑。
下载到的 home 压缩包
登录后的可下载文件中,除去 user.txt 文件,还有一个加密的 home 文件夹。
看其中的文件结构,应该是某个用户的 home 文件夹,但是这个压缩文件是加密的。
或许在某个地方可以找到密码,或者考虑爆破密码?
没思路了,看 ippsec。
学到了之前一知半解的已知明文破解压缩包的原理。
首先,可以通过 7z 命令查看文件是否对已知明文攻击(PLAIN TEXT ATTACK) vuln。
7z l -slt traget.zip
-slt: show list tech info
l: list files
就可以看到文件使用了 ZipCrypto 加密方式,可以查到这种加密方式仍是许多压缩软件默认的加密方式,
并且这种方式是对 PLAIN TEXT ATTACK vuln 的。
视频中 ippsec 提到,这种攻击方式用到的明文文件越大,破解速度就越快。
原本我是想到可以用 user.txt 来破解的,但是他提到的 .bash_logout 的 220 bytes 相比 user.txt 的 32 bytes 大的多。
这里提到的相比我之前用的破解版 windows 压缩包破解软件不同的命令行版本的同样功能且开源的破解工具,bkcrack。
https://github.com/kimci86/bkcrack,工具集工具+1。
接下来我想尝试用 user.txt 破解一下,虽然我这里直接有 220 大小的 .bash_logout (叛逆.jpg)。
然后回头看了一圈,发现我下载的这个压缩包里并没有 user.txt (失望.jpg)。
还是乖乖地去用 .bash_logout 吧。
确保了 CRC 是一致的,那么这个明文部分就算找对了。接下来带入 bkcrack 进行破解。
这个大小写的参数设计非常的容易理解。
破解完成,接下来通过 bkcrack 修改压缩文件的密码。
然后解压文件,用我们设置的密码。
拿到私钥
可以在公钥中看到用户名,使用该用户名登录 ssh
成功登录
不想用的 CVE
跳过,可能有用但不想用。
站点位置
或许可以在里面看看登录逻辑,找找通用密码。
linpeas.sh 运行结果
文件位置
/srv/prod
AuthController
global pw,通用密码?
UHC-March-Global-PW!
路由
看看 AuthController
laravel 框架
一些密码
来自 laravel 的 AuthController 的通用密码
UHC-March-Global-PW!
通用密码,却只能是 root 的密码,不能是 htb 用户的密码,有点奇葩。
那么这台机器到这里就结束了。
一些感受
就一开始的弱比较绕过来说,可以说是没想到,也可以说是不够敏感,没能想到这方面的东西,做的机器还是太少了。
其次,就压缩包密码破解这一块来说,以前做的时候还是不够深入了解这方面的内容,只是暴力尝试这个那个软件,
然后带入到学长给的软件里面点点点,了解的不够深入。做完这台机器之后,这个 PLAIN TEXT ATTACK,什么条件下能用,
具体几步怎么用,就掌握的相对来说更全面了。
最后就是了解到了可以通过看公钥来知晓用户名去进行登录,也是一个信息收集的路子。