Hackthebox - Ransom

Ransom

10.10.11.153

5dab4cbf2e3005264b7c6c0ee7e37cf5.png

nmap

587d4c76fd7cae44d861ed34043b10f4.png

登录逻辑绕过

这里我感觉有点 crazy。

一开始尝试了 sqlmap,但是这个 api/login 是有 ratelimit 的,而且手动尝试没有结果。
没有思路就去看了 ippsec。首先这里需要改变请求内容的 content-type 为 json,然后这里存在 php 的若类型比较逻辑漏洞。
这种我如果没看到代码是不敢去尝试的,过于 crazy 了。
将密码的部分改为 json 中的 true,传过去后应该是写死的字符串比较逻辑,用的还是 == 的弱类型比较。
众所周知,当 php 中的 boolean 和 string 进行 == 比较时,可以根据官网的比较逻辑矩阵找到相应的转换结果。
但这种我还是记住了,只要字符串不为空的,那么 ((true == “abcd”) && (“abcd” == true)) === true。
主要还是想不到这个点,想不到登录这里会有弱比较的逻辑错误。

2ec82ccfa38cfeaf58dec4376792848d.png

这样改一下就可以绕过登录了,说实话之前在 ctfshow 是遇到过这种弱比较绕过登录的,不过真遇到应用程序还是想不起来利用,
因为总是觉得不会有人用弱比较去写这部分的逻辑。

下载到的 home 压缩包

登录后的可下载文件中,除去 user.txt 文件,还有一个加密的 home 文件夹。
看其中的文件结构,应该是某个用户的 home 文件夹,但是这个压缩文件是加密的。
或许在某个地方可以找到密码,或者考虑爆破密码?

fa34244b56a08906c2e74f9b5a657f65.png

没思路了,看 ippsec。
学到了之前一知半解的已知明文破解压缩包的原理。
首先,可以通过 7z 命令查看文件是否对已知明文攻击(PLAIN TEXT ATTACK) vuln。

eb07c95e45ca729b97da9536e8b6adef.png

7z l -slt traget.zip
-slt: show list tech info
l: list files

8df669343c39d58d594cd516864d163d.png

就可以看到文件使用了 ZipCrypto 加密方式,可以查到这种加密方式仍是许多压缩软件默认的加密方式,
并且这种方式是对 PLAIN TEXT ATTACK vuln 的。

9de40f62b5aef815c5e2ed7b6fb4ce61.png

视频中 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 吧。

11f65373e17592dd1a3cf81b912eb1ee.png

确保了 CRC 是一致的,那么这个明文部分就算找对了。接下来带入 bkcrack 进行破解。

b798f1755eed235ad4e9800e284a3a35.png

这个大小写的参数设计非常的容易理解。

b5dc1239857f2d48500a3644d8c31f28.png

破解完成,接下来通过 bkcrack 修改压缩文件的密码。

89009841544a674f59bc0e127e0779d2.png

aed7bcf925798f3ad218982736ca72db.png

然后解压文件,用我们设置的密码。

d5d609a3bd668055346201ec00e08426.png

拿到私钥

1ed215befb4b28c064b951db759cbd94.png

可以在公钥中看到用户名,使用该用户名登录 ssh

432161d1e7b67bdda3261341a4b8b503.png

d9ca3ebd81d11baa7435783ab2b7b96e.png

成功登录

不想用的 CVE

e8734957449f902602ead2e863c0b43d.png

跳过,可能有用但不想用。

站点位置

de81325e999e9b269aa9504a418d6fb7.png

或许可以在里面看看登录逻辑,找找通用密码。

linpeas.sh 运行结果

文件位置

/srv/prod

AuthController

a78ab4787c95b61dd10e460c8b60c201.png

global pw,通用密码?
UHC-March-Global-PW!

路由

5986b650c58ee75086257c17c22e9833.png

看看 AuthController

laravel 框架

一些密码

来自 laravel 的 AuthController 的通用密码
UHC-March-Global-PW!

2c5c1383926d79fb37c2b89ff49479ea.png

通用密码,却只能是 root 的密码,不能是 htb 用户的密码,有点奇葩。
那么这台机器到这里就结束了。

一些感受

就一开始的弱比较绕过来说,可以说是没想到,也可以说是不够敏感,没能想到这方面的东西,做的机器还是太少了。
其次,就压缩包密码破解这一块来说,以前做的时候还是不够深入了解这方面的内容,只是暴力尝试这个那个软件,
然后带入到学长给的软件里面点点点,了解的不够深入。做完这台机器之后,这个 PLAIN TEXT ATTACK,什么条件下能用,
具体几步怎么用,就掌握的相对来说更全面了。
最后就是了解到了可以通过看公钥来知晓用户名去进行登录,也是一个信息收集的路子。