vulnhub-Momentum靶场

文章详细描述了在Momentum靶场进行的一次渗透测试过程,包括主机发现、端口扫描、利用JavaScript代码分析、XSS漏洞测试、AES加密解密以及通过Redis非授权漏洞进行权限提升的步骤。通过解密获得的密码成功登陆SSH,并最终利用Redis服务提升至root权限。
摘要由CSDN通过智能技术生成

0x00部署

Momentum靶机:下载地址
宿主机:kali2022
目标:获取root拿到flag文件

0x01信息收集

1.主机发现

$ sudo arp-scan -l
//因为靶机与宿主机在同一网段,所以用二级扫描来发现靶机ip

2.端口扫描

//使用namp命令,-p-指定ip,查看哪些端口开放
$ sudo nmap -p- 靶机ip 
$ sudo nmap -sC -sV -O -p22,80 靶机ip
//-sC常见漏洞脚本扫描
//-sV开放端口服务/版本号
//-O操作系统探测

比较好想到的是,这里只有两个开放端口进行利用,所以流程就是在80端口找一些隐藏路径得到能登录ssh的信息进行提权。

在这里插入图片描述

3.信息收集(漏洞扫描)

$sudo nmap --script=vuln -p21,80 靶机ip

4.路径爬取

对80端口进行一下路径爬取,寻找隐藏信息

$ dirsearch -u http://ip  //没什么特别的结果,继续
$ dirsearch -u http://ip -f -e php,txt,html   //指定扩展名
$ dirsearch -u http://ip -w /usr/share/seclists/Discovery/Web-Content/common.txt
//指定字典进行爆破
$ gobuster dir -r -u http://192.168.56.107/site/ -x txt,html,php -w /usr/share/seclists/Discovery/Web-Content/common.txt

使用dirsearch爬取的路径结果:
在这里插入图片描述
使用gobuster的路径结果:
在这里插入图片描述

5.JS脚本分析

访问js页面,发现有一个main.js:
在这里插入图片描述
在这里插入图片描述
在js页面中获得一个js的代码:

function viewDetails(str) {
//这里提供了一个href的地址,这个地址包含一个id参数
  window.location.href = "opus-details.php?id="+str;
}
/*
//搜索一下crypto-js,javascript进行加解密的库,查阅一下AES加解密的方法的使用
var CryptoJS = require("crypto-js");
//进行AES解密(密文,密钥)
var decrypted = CryptoJS.AES.decrypt(encrypted, "SecretPassphraseMomentum");
console.log(decrypted.toString(CryptoJS.enc.Utf8));
*/

6.XSS漏洞

根据这段代码window.location.href = "opus-details.php?id="+str;,试一下url,尝试一些注入,发现id的内容会显示在页面上,可以推测这里存在反射型xss:
在这里插入图片描述
获取一下页面cookie,返回值很像base64编码
在这里插入图片描述
根据返回信息猜测是一段base64编码,解密一下试试
U2FsdGVkX193yTOKOucUbHeDp1Wxd5r7YkoM8daRtj0rjABqGuQ6Mx28N1VbBSZt在这里插入图片描述
得到一串加盐的加密字符,依照上边的js代码中的密文–》破解

7.AES解密

这里使用一个工具在线解密:CryptoJSExample
在这里插入图片描述
在这里插入图片描述
解密之后得到字符:auxerre-alienum##

当前没有什么可利用的地方,得到一串字符串,可以联想到ssh连接的账号密码

进行ssh连接,这里多次尝试才发现auxerre是用户名,整个字符串是密码:
在这里插入图片描述
得到了第一个flag
在这里插入图片描述
没有什么可利用的查看一下靶机的用户权限,发现这里有redis服务。
在这里插入图片描述

8.Redis认证漏洞(非授权漏洞)

  • Redis是一种基于内存的非关系型数据库,默认无身份认证的配置,使其成为了近年来众多安全事件的罪魁祸首。利用该漏洞不但可以读写文件,更有可能直接执行操作系统命令,或严重的信息泄漏,并最终导致权限提升。

  • 基于内存的非关系型数据库,和传统关系型数据库(以表的形式存放数据)不一样,以键值对的方式存放数据:键的名称及赋值

  • 非授权漏洞:默认启动服务会侦听6379端口

$ 0.0.0.0 6379 AUTH
$ ss -pantu //查看开放端口服务,默认开启在127.0.0.1导致通过外网是不能连接的,需要登录当前靶机账号本地连接
$ ps -aux |grep redis //查看进程启动账号--》root加载库的方式实现操作系统命令的执行--》拿到root权限
//redis账号就没有shell的权限
$ redis-cli //连接redis数据库客户端程序
> info //查看信息(数据库、),若能启用说明没有身份认证
//# keyspace中存放的键的信息
> KEYS * //查看键的名称-->rootpass
>GET rootpass //查看键的内容--》类似之前找到的账户名
>exit
$su //切换root用户

在这里插入图片描述
在这里插入图片描述
发现是redis用户启动的服务
在这里插入图片描述

0x02权限提升

存在一个存储的键
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
得到与之前相似的账号字符串,退出redis再su试一下。
在这里插入图片描述

利用redis可以读取关键文件/写webshell/调用第三方的程序,加载模块

0x03总结

学习如何使用redis的未授权漏洞进行权限的提升,以及在线破解工具对于AES加密的破解方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值