首页
社区
课程
招聘
[原创]什么是隐藏 WFP?
发表于: 1天前 558

[原创]什么是隐藏 WFP?

1天前
558

本文介绍了对EDR/XDR代理与安全中心服务器的网络交互的可能有针对性攻击的向量,该向量允许在使用签名驱动程序成功攻击后通过已准备好的专有未签名的WFP驱动程序(具有干净的签名)加载到系统中,为驱动程序签名实施(DSE)补丁windows内核(我之前进行的一项研究)带来自己的易受攻击的驱动程序(BYOVD)连结 ,有可能通过WFP驱动程序和建立在其基础上的"透明"代理来收集开放流量, 它允许绕过存储"敏感"用户浏览器配置文件数据或一次性会话的保护机制。


问题介绍


除了通过高级恶意软件技术直接打击EDR之外,还有其他解决方法,例如使用不正确的EDR设置或漏洞,删除EDR代理,或使用易受攻击的驱动程序(BYOVD)"杀死"EDR代 在这些间接规避方法中,基于网络连接的方法尤其令人感兴趣。


EDR代理通过发送遥测数据定期与中央或云服务器交互,其中包括主机信息、诊断警报、检测到的威胁和其他数据。 在更复杂的HPE的情况下,EDR代理可能不会立即完成他们的工作。 相反,代理监控恶意软件的行为并在云中使用机器学习。 一旦收集到足够的数据,恶意软件的执行就会停止。 这表明EDR严重依赖于云。 当然,代理仍然可以检测经典的HPE和常规Mimikatz等方法。 但是,如果没有互联网连接,EDR就失去了大部分有效性,DFIR团队无法通过EDR控制面板跟踪机器。


PowerShell命令禁用从Mde(Microsoft Defender For Endpoint)代理到云服务的出站443

New-NetFirewallRule -DisplayName "Block 443 MsMpEng" -Name "Block 443 MsMpEng" -Direction Outbound -Service WinDefend -Enabled True -RemotePort 443 -Protocol TCP -Action Block

New-NetFirewallRule -DisplayName "Block 443 SenseCncProxy" -Name "Block 443 SenseCncProxy" -Direction Outbound -Program "%ProgramFiles%\Windows Defender Advanced Threat Protection\SenseCncProxy.exe" -RemotePort 443 -Protocol TCP -Action Block

New-NetFirewallRule -DisplayName "Block 443 MsSense" -Name "Block 443 MsSense" -Direction Outbound -Program "%ProgramFiles%\Windows Defender Advanced Threat Protection\MsSense.exe" -RemotePort 443 -Protocol TCP -Action Block

设置规则以防止EDR进程将数据发送到云似乎是一项简单的任务。 但是,除了需要具有管理员权限之外,还有其他缺点和消除它们的方法。 最重要的防范手段是启用MDE篡改保护。


防止未经授权的访问可防止在端点具有提升的访问权限的用户更改MDE客户端的配置。 防止未经授权的访问包括防止本地防火墙规则对MDE进程的影响。 如果运行上述命令,MDE将发出警告并阻止更改。


尽管篡改保护是专门为保护MDE进程而设计的,但其他EDR供应商可能会使用类似的保护机制。 禁用本地规则合并防火墙是另一个有效的反击措施。 特别是,在使用Active Directory的组织中,组策略(GPO)可以复盖本地防火墙设置。


Windows Defender防火墙支持基于远程地址和端口的规则。 不幸的是,一些EDR产品与数百甚至数千个联系人服务器进行交互,从而难以打开每个联系人服务器。


为什么WFP 更好?


由于Windows Defender防火墙的更改很容易被发现,因此较低级别的黑客攻击可能更有效。 这提请注意Windows过滤平台(WFP)。

根据Microsoft文档,WFP是一组Api和系统服务,为开发人员提供了在不同级别与数据包处理进行交互和管理的灵活性和能力。 WFP允许用户按应用程序,用户,地址,网络接口等过滤连接。 世界粮食计划署的功能用于内容过滤、家长控制、审查规避、深度包检查等。 因此,WFP被广泛应用于IDS/IPS、广告拦截器、防火墙、EDR和Vpn等安全产品中。 Windows Defender防火墙也基于WFP。

过滤机制由用户模式组件、基本过滤机制(BFE)和核心模式组件、通用过滤机制(UFE)组成。 这些组件一起工作以执行分组过滤操作。 内核模式组件在网络和传输层执行过滤。 在对网络流量应用过滤器的过程中,内核模式组件调用其可用的函数。

过滤器是映射到数据包的规则,告诉过滤机制如何处理流量。 例如,规则可以如下:"阻止到TCP端口1337的所有出站数据包"-"阻止到端口1337的所有出站TCP数据包"。 过滤器可以是临时的,也可以是永久性的。 当TCP/IP堆栈驱动程序运行tcpip时,将应用临时筛选器。sys在加载过程中,和永久过滤器更灵活。

为了实现更具体的目标,例如管理和修改网络数据包–深度数据包检查(DPI),需要一个特殊的驱动程序来扩展粮食计划署的能力。


Microsoft提供了WFP驱动程序项目的示例,可以在GitHub上轻松找到 连结,和程序WFPExplorer 连结 查看粮食计划署的对象。 使用WFPExplorer,可以更方便地查看标注、WFP提供程序、图层、筛选器、网络事件等。


WFP 进攻性保安

一些工具使用WFP止EDR代理进程向控制中发送遥测的网络活动。:


FireBlock от MDSec Nighthawk C2

Shutter

EDRSilencer

EDRPrison

EDRPrison项目是对这个问题的最新研究。 在撰写本文时,该项目由作者在不到一年前发布。

EDPrison在引擎盖下使用WindivertDotnet,这是WFP驱动程序的API句柄的c#实现。 WinDivert本身(连结)是一个本机(hello C语言)实用程序,用于捕获和处理用户模式下的网络数据包,为Windows开发。 WinDivert反过来提供了一个强大而灵活的平台,用于在网络堆栈级别拦截,修改,嵌入和删除网络数据包。 它作为一个轻量级的高性能驱动程序,直接与网络堆栈交互,提供详细的实时数据包分析和处理。 EDRPrison的工作原理与EDRSilencer类似,后者会阻止EDR代理与控制中心的连接。 从进攻性安全的角度来看,该项目的缺点包括以下内容:

使用合法(签名)WinDivert。sys可以通过其签名轻松检测或阻止的驱动程序。

WinDivert驱动程序筛选规则可通过WFPExplorer或WinDivertTool轻松检测

没有实现增强包检查和修改(DPI)功能的"透明"代理

可用性WinDivert.dll-与WFP驱动程序WinDivert交互的用户友好的提供程序。sys(磁盘上的文件)

使用WindivertDotnet-managed wrapper over WinDivert(包含具有已准备好的WinDivert的nuget包。dll和WinDivert。sys-应该在磁盘上的文件)

基于缺点,我们可以得出结论,在进攻性安全中使用WinDivert在其合法执行中不是正确的解决方案,因为它有几个明确的标记用于检测。

我还认为缺乏通过"透明"代理的DPI分析被作者低估(而不是由于实现的复杂性),因为它允许您检查EDR代理,浏览器或任何其他Windows应用程序的所有请求/响应,

此外,作者EDRPrison指出:"根据一个问题,一些反作弊系统如果检测到WinDivert已安装,则拒绝运行游戏,"即在合法执行中,WinDivert已被一些反作弊系统阻止,并且可能被现代EDR代理

显示合法WinDivert提供程序(检测)的过滤器的示例。

WinDivertTool程序(检测)的一个例子。

实施潜在攻击的阶段


传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 7
支持
分享
最新回复 (1)
雪    币: 23
活跃值: (377)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
看看
4小时前
0
游客
登录 | 注册 方可回帖
返回