Olivaire/sleep-duck-eye-Detect-SleepMask

GitHub: Olivaire/sleep-duck-eye-Detect-SleepMask

通过验证调用栈完整性和返回地址链真实性来检测 SleepMask、栈欺骗、ROP 等高级规避技术的安全工具。

Stars: 1 | Forks: 0

# 🧩 调用栈完整性校验 ### 通用调用栈完整性检测方案(SleepMask / ROP / VEH / Stack Spoofing 检测) 本项目旨在提供一种**通用调用栈完整性验证方法**,用于检测各种高级规避技术,包括 SleepMask、调用栈欺骗、ROP 链构造和加密栈。 与传统的特征扫描不同,该方法基于**调用栈的真实性验证**,天生具有通用性并对变种具有鲁棒性。它能有效对抗诸如混淆栈等高级规避技术。 ## 📌 背景 自 **DuckMemoryScan / BeaconEye** 等通过遍历栈来定位 Beacon 的工具出现以来,攻击者越来越多地采用各种栈混淆技术,例如: ALL İMG 1 6 7 8 ![9](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/4790938f63131241.jpg) 2 3 4 5 - SleepMask(休眠时调用栈伪造) - ROP 构造虚假调用链 - 基于 VEH 的栈欺骗 - 随机化 / 加密栈 - 影子堆栈绕过 典型表现包括: 🔹 正常运行期间的栈(实际调用链) ``` Actual call stack -> Valid return address chain ``` 🔹 Sleep + Mask:栈中的伪造返回地址链 ``` faked call stack -> ROP frames -> junk frames ``` 大多数基于栈的扫描检测工具在面对伪造栈时会完全失效。伪造的栈返回地址链。 ## 🧭 现有检测方法的问题 ✔ VirtualProtect 监控(infinityHook / VTI) - **优点**:快速、准确 - **缺点**:资源消耗高,需要记录所有内存权限更改 ✔ 特征扫描 - 例如扫描 `unbacked stack → Sleep` 或 SleepMask 特征 - **优点**:在特定场景下准确率高 - **缺点**:容易被修改后的代码绕过 ✔ CET(控制流执行技术) - **优点**:硬件级、准确、快速 - **缺点**:无硬件支持时不可用 🛠 通用方法:栈完整性校验 核心概念基于一个基本事实: 通过验证该链是否自然、连续且符合逻辑,可以判断栈是否已被伪造。 ## 🔬 工作流程(核心逻辑) ### 1. 遍历栈 使用 `StackWalk64` 获取 64 位调用栈。 ### 2. 异常栈的模式匹配 - SleepMask 通常会加密/混淆栈 - 通过读取栈内的代码来判断其是否为有效的指令区域 检查方法: - 提取每个栈地址附近的 8 条指令 - 判断它们是否构成有效、连续的机器码 - 如果无效,则栈可能是伪造的 代码检查该区域是否包含有效指令。 3. 匹配 Call 指令并验证返回地址 匹配以下指令类型: - `call imm` - `call reg` - `call mem` 然后验证: ``` call_next == return_address ? ``` 如果不成立,则表明调用链完整性被破坏 → 极度可疑。 # 📈 检测效果 针对常见栈欺骗框架的测试: | 技术 | 检测结果 | |------|----------| | 栈加密 / 垃圾栈帧 | ✔ | | Ekko stack spoofer | ✔ | | SlientMoonWalker | ✔ | | Cronos | ✔ | | 各种 SleepMask 变种 | ✔ | 理论上,所有基于栈操作的机制都可以被检测到。 🚀 未来扩展潜力 栈 + 指令匹配可进一步应用于: - 未知 Shellcode 检测 - Shellcode 自动标记 - ROP 链识别 - 动态恶意行为检测 - 隐藏执行流预测 未来可能会披露更多细节。 # 📄 技术关键词 - 栈完整性验证 - SleepMask 检测 - ROP 调用链验证 - StackWalk64 - 调用模式匹配 - 反规避 - Windows 内部机制
标签:BeaconHunter, BOF, CobaltStrike检测, Conpot, DNS 反向解析, EDR, ROP检测, SleepMask检测, UML, Windows安全, 内存扫描, 反射式注入, 堆栈混淆, 安全攻防, 安全测试自动化, 应用层安全测试, 异常处理向量VEH, 文件系统模拟, 栈欺骗检测, 欺骗防御, 端点可见性, 脆弱性评估, 调用堆栈完整性