FreeFloat FTP Server 1.0中CVE-2025-5548漏洞的分析与利用实验室
漏洞分析与利用实验 · 漏洞开发 · Windows x86
该仓库完整记录了针对 CVE-2025-5548 漏洞的分析与利用过程,该漏洞是 FreeFloat FTP Server 1.0 for Windows 中的一个 基于栈的缓冲区溢出。
目标不仅仅是利用漏洞,而是解释 如何从零搭建分析实验室:需要哪些工具、为何需要它们、以及在整个利用过程中如何使用每个工具。整个环境通过 手动和逐步方式 搭建,无需自动化脚本,以便深入理解每个阶段的过程。
CVE-2025-5548 是 FreeFloat FTP Server 中的一个缓冲区溢出漏洞。
| 字段 | 详情 |
|---|---|
| CVE | CVE-2025-5548 |
| 发布日期 | 2025年6月3日 |
| 严重性 | 严重 |
| 类型 | 基于栈的缓冲区溢出 |
| 受影响组件 | NOOP 命令处理程序 |
| 受影响软件 | FreeFloat FTP Server 1.0 |
| 平台 | Windows x86 |
| 攻击向量 | 网络(远程访问) |
| 至 EIP 的偏移 | 246 字节 |
| 坏字符 | \x00 \x0a \x0d |
| JMP ESP 地址 | 0x7C86467B (kernel32.dll) |
该漏洞发生在 FTP 服务器通过 NOOP 命令接收特制输入时。由于未验证接收到的缓冲区大小,可以溢出栈,覆盖 EIP 寄存器,并将执行流程重定向到攻击者控制的任意代码。
CVE-2025-5548-FreeFloat-FTP-Buffer-Overflow/
│
├── docs/
│ ├── 01_environment_setup.md ← 第1部分:环境准备
│ └── 02_exploitation.md ← 第2部分:漏洞利用
│
├── exploits/
│ ├── exploit01.py ← 连接验证
│ ├── exploit02.py ← NOOP 命令模糊测试
│ ├── exploit03.py ← 发送循环模式
│ ├── exploit04.py ← EIP 控制验证
│ ├── exploit05.py ← 坏字符识别
│ └── exploit06.py ← 最终利用(JMP ESP)
│
└── images/
└── *.png ← 文档中使用的截图
手动安装和配置实验所需的所有工具,包含截图并解释为何需要每种工具。
| 类别 | 工具 |
|---|---|
| 编程语言 | Python, Java (JDK) |
| IDE 和编辑器 | Visual Studio Code, Notepad++, PyCharm |
| 分析与调试 | IDA Free, Immunity Debugger, Ghidra |
| 漏洞利用 | Mona(Immunity Debugger 插件) |
| 易受攻击的应用 | VulnServer, FreeFloat FTP Server |
| 网络与工具 | Nmap / Ncat, Git |
完整的漏洞利用过程,从首次崩溃到完全控制执行流程,分阶段记录。
| 阶段 | 描述 |
|---|---|
| 1 | 准备利用环境 |
| 2 | 使用 IDA 进行二进制静态分析 |
| 3 | NOOP 命令模糊测试 |
| 4 | 使用 Mona 计算偏移(246 字节) |
| 5 | 识别坏字符(\x00、\x0a、\x0d) |
| 6 | 通过 JMP ESP 重定向执行流程 |
graph LR
A["Entrada controlada: NOP + buffer"] --> B["Buffer Overflow"]
B --> C["Sobrescritura de EIP"]
C --> D["EIP → dirección JMP ESP"]
D --> E["JMP ESP"]
E --> F["ESP → buffer controlado"]
F --> G["NOP sled"]
G --> H["Shellcode"]Entrada controlada (NOOP + buffer)
↓
Buffer Overflow
↓
Sobrescritura de EIP
↓
EIP → dirección de JMP ESP
↓
JMP ESP
↓
ESP → buffer controlado
↓
NOP sled
↓
Shellcode
本实验室不仅注重执行漏洞利用, 更注重理解漏洞分析与利用的完整过程。
该仓库 仅用于教育目的。所有分析和利用均在受控和隔离环境中对易受攻击的软件进行。请勿在未经明确授权的情况下,将此类技术用于任何系统。