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安全, 云连接阻断, 内核驱动开发, 客户端加密, 数据擦除, 私有化部署, 端点可见性, 网络安全, 网络阻断, 蓝队对抗, 进程枚举, 防御规避, 防火墙规则, 隐私保护, 高交互蜜罐