loosehose/SilentButDeadly

GitHub: loosehose/SilentButDeadly

SilentButDeadly 是一款利用 Windows Filtering Platform 阻断 EDR/AV 网络连接,从而使其丧失云端检测与防护能力的工具。

Stars: 448 | Forks: 66

# SilentButDeadly ## 概述 SilentButDeadly 是一个网络通信阻断工具,专门设计用于通过 Windows Filtering Platform (WFP) 阻止 EDR/AV 软件的云端连接,从而使其失效。此版本完全专注于网络隔离,不涉及进程终止。 博客:https://ryan.framinan.net/blog/silentbutdeadly ## 程序流程 ### 1. **初始化阶段** ``` [*] Checking administrative privileges... [+] Running with Administrator privileges [#] Press to begin EDR enumeration... ``` - 使用 `CheckTokenMembership()` 验证管理员权限 - 交互式提示允许控制执行 ### 2. **EDR 发现阶段** ``` [*] Scanning for target security processes... [+] Found SentinelAgent.exe (SentinelOne) - PID: 1234 [+] Found MsMpEng.exe (Windows Defender) - PID: 5678 [*] Total target processes found: 2 [#] Press to block network communications... ``` - 使用 `CreateToolhelp32Snapshot()` 创建进程快照 - 枚举所有正在运行的进程 - 根据预定义的 EDR 目标列表进行匹配 - 使用 `PROCESS_QUERY_INFORMATION` 权限打开进程句柄 ### 3. **WFP 初始化** ``` [*] Initializing Windows Filtering Platform... [>] Initializing COM library [>] Generating WFP provider GUID [>] Opening WFP engine handle [+] Windows Filtering Platform initialized successfully ``` - 初始化 COM 以生成 GUID - 创建动态 WFP 会话(默认非持久) - 建立具有高优先级(0x7FFF)的 provider 和子层 ### 4. **网络过滤器实现** ``` [*] Configuring network filters to block EDR communications... [>] Processing filters for SentinelAgent.exe (PID: 1234) [>] Process path: C:\Program Files\SentinelOne\Sentinel Agent\SentinelAgent.exe [>] Outbound filter added successfully [>] Inbound filter added successfully [+] Network communication blocked for SentinelAgent.exe [+] Communication blocking established for 2 processes ``` 对于每个 EDR 进程: - 使用 `QueryFullProcessImageNameW()` 获取完整进程映像路径 - 使用 `FwpmGetAppIdFromFileName0()` 将路径转换为 WFP AppID blob - 为每个进程创建两个过滤器: - **出站过滤器**:`FWPM_LAYER_ALE_AUTH_CONNECT_V4`(阻止传出连接) - **入站过滤器**:`FWPM_LAYER_ALE_AUTH_RECV_ACCEPT_V4`(阻止传入连接) ### 5. **服务中断阶段** ``` [*] Attempting to disable EDR services... [>] Processing service: SentinelAgent [>] Current service state: Running [>] Attempting to stop service... [+] Stop signal sent to SentinelAgent [+] Service stopped successfully [+] Service SentinelAgent set to disabled [+] Disabled 2 EDR services ``` - 打开服务控制管理器 - 对于每个 EDR 服务: - 尝试优雅地停止服务 - 将启动类型更改为 `SERVICE_DISABLED` - 防止自动重启 ### 6. **摘要显示** ``` ================================================================= OPERATION SUMMARY ================================================================= [SentinelOne] SentinelAgent.exe - PID: 1234 [Windows Defender] MsMpEng.exe - PID: 5678 Total Processes Found: 2 Network Blocks Applied: 2 WFP Status: Active ================================================================= [#] Press to remove filters and exit... ``` ### 7. **清理阶段** ``` [*] Removing network blocking rules... [+] Network blocking rules removed [*] Operation complete ``` - 移除 WFP provider(级联删除所有过滤器) - 关闭 WFP 引擎句柄 - 释放 COM 资源 - 关闭所有进程句柄 ## 关键技术细节 ### WFP 过滤器规范 - **Layer**:Application Layer Enforcement (ALE) - **Weight**:0x7FFF(高优先级) - **Action**:`FWP_ACTION_BLOCK` - **Condition**:`FWPM_CONDITION_ALE_APP_ID`(特定于进程) - **Flags**:`FWPM_FILTER_FLAG_CLEAR_ACTION_RIGHT` ### 支持的 EDR 目标 - SentinelOne(所有组件) - Windows Defender - Windows Defender ATP (MsSense.exe) - 可通过 `g_EDRTargets` 数组轻松扩展 ### 命令行选项 - `-v, --verbose`:启用详细操作日志 - `-p, --persistent`:在程序退出后保持过滤器激活 - `-h, --help`:显示使用信息 ### 错误处理 - 在每个阶段进行全面错误检查 - 部分失败时的优雅回退 - 用于故障排除的详细错误代码 ### 安全注意事项 - 需要管理员权限 - 默认为非持久过滤器(退出时清除) - 不涉及驱动加载或内核操作 - 仅使用合法的 Windows API ## 操作影响 ### 网络隔离影响 1. EDR 无法接收云端更新 2. 遥测上传被阻止 3. 远程管理被禁用 4. 实时威胁情报被切断 ### 服务中断影响 1. 防止自动重启 2. 禁用计划扫描 3. 停止后台监控 4. 中止更新机制 ### 检测向量 - WFP 过滤器创建事件 - 服务停止/禁用事件 - 进程句柄访问模式 - 无持久化痕迹(除非使用了 `-p` 标志) ## 使用场景 1. **行动前测试**:在操作前验证 EDR 绕过 2. **受控环境**:隔离 EDR 以进行恶意软件分析 3. **红队行动**:建立初始据点 4. **安全研究**:EDR 行为分析 ## 局限性 - 仅支持 IPv4(IPv6 需要额外的层) - 需要运行的 EDR 进程(如果已停止则无效) - 某些 EDR 可能具有内核级网络驱动程序 - 必须启用 Windows 防火墙才能使 WFP 正常工作
标签:AV绕过, C++, Conpot, EDR绕过, FastAPI, SilentButDeadly, WFP, Windows Filtering Platform, Windows安全, 云连接阻断, 内核驱动开发, 客户端加密, 数据擦除, 私有化部署, 端点可见性, 网络安全, 网络阻断, 蓝队对抗, 进程枚举, 防御规避, 防火墙规则, 隐私保护, 高交互蜜罐