856 字
4 分钟
vulnhub靶机-Momentum:1(CryptoJS的AES解密+Redis信息泄露提权)
vulnhub靶机-Momentum:1(CryptoJS的AES解密+Redis信息泄露提权)
声明
- 本文为个人跟随b站up主红队笔记学习vulnhub的Momentum:1靶机的复现通关记录,旨在分享靶机和记录学习心得体会,讲解若有谬误之处欢迎指正。
- 该靶机下载地址为’https://www.vulnhub.com/entry/momentum-1,685/‘
渗透流程
- 在vmware部署靶机并开机后,打开kali对靶机进行信息收集,找到22,80端口开放,详细扫描观察下apache,系统版本等。

- 观察网页,有几个图片下载下来看看有没有隐写,通过binwalk,strings,exiftools等检查没有发现隐写。

- 尝试深度爆破,指定多参数,—db是工具对备份文件的自动查找参数。

- 在js文件中发现一个注释的代码,捕捉关键信息发现是一个cryptojs组件的AES加解密功能,以及提供的一个值,可能是使用的key,以及上面的一个路径
opus-details.php?id=。
- 直接拼接路径,没有显示出有效内容,但在主页源代码中探索考虑到图片存在值可能可以作为id传入,果然可以,不过并没有展示出什么信息。

- 如果注意到访问此处的网络请求,会发现存在cookie的,看着有点像base64,解密发现开头有个salted,说明这不是纯文本,而是一个经过加密的二进制数据,并且使用了OpenSSL兼容的加密格式,这是OpenSSL等工具在使用对称加密时添加的特征头部。

- 于是去搜索一下,根据之前从main.js中获得的信息,找到有cryptojs的aes解密工具网站,其给出解密结果auxerre-alienum##,再或者下面本地手动解密也可以。

- 使用工具cewl(一个自定义词表生成器)对服务器进行爬取,自主筛查去掉一些类似
js、css这些应该不会作为用户名和密码的词,加上前面破解出的字符串及变体,网页中图片的词等等。
- 使用hydra进行爆破,用生成的字典尝试连接,等待一阵破解后获得了正确的用户名与连接密码。

- ssh连接,获得初步立足点。

提权过程
- 简单收集环境,包括sudo权限,是否组内,计划任务,可写、可执行文件等,最后在查看网络状态发现了6379端口开放但是没有扫描到,这是Redis数据库的默认通信端口,用于客户端与Redis服务器之间进行数据交互,使用redis-cli进行交互,并通过指令查看到了一个凭据,通过su和密码成功切换到root且拿到flag。

其它补充与收获总结
- Redis(Remote Dictionary Server)是一个开源的内存数据库,遵守BSD协议,它提供了一个高性能的键值(key-value)存储系统,常用于缓存、消息队列、会话存储等应用场景。以上介绍参考’https://blog.csdn.net/2402_87298751/article/details/146474921’,以及redis-cli常用指令可参考’https://juejin.cn/post/7405260565680144393’,这里不一一列举命令。
- CryptoJS是一个Javascript加密库,常用于在前后端之间进行加密解密操作,如用户登录时,对密码进行加密后传输,因此推测该靶机由于泄露了加密的key,因此可对cookie进行解密获得用户凭证。
vulnhub靶机-Momentum:1(CryptoJS的AES解密+Redis信息泄露提权)
https://www.dxowo8.top/posts/post-30/30/ 部分信息可能已经过时







