记录黑客技术中优秀的内容,传播黑客文化,分享黑客技术精华

绕过EDR实时注入检测逻辑

2021-05-09 01:39

介绍

今天,我想分享绕过任何基于内存分配的逻辑有多么容易。到今天,我们还将绕过线程初始化警报,这组合在一起为我们提供了MDATP和许多其他EDR无法检测到的技术。

暴露这样的检测差距非常重要,这不仅是为了迫使安全供应商改善防御,而且主要是要围绕这些解决方案的固有局限性以及内部安全研发计划的需要,或者至少使用精心设计的方法来建立意识。托管的检测服务可提供更完整的覆盖范围。

查阅我以前的有关使用内核ETW检测进程注入的文章

T1055对比EDR

首先,让我们看一下独立评估可以告诉我们有关流程注入的信息,以及是否还有任何要绕过的内容。

知道您使用的产品不能标记migrateGitHub上5年以上的Carbanak恶意软件中的Meterpreter的命令和处理挖空过程绝对是一件好事,即使事先知道要测试什么,也要半年必要时做准备。

除了在注射方面的最后一次评估的价值非常有限之外,我们还没有全面了解每个供应商现在和将来在研究相关TTP方面投入了多少资金,或者检测能力和数据的稳健性如何消息来源确实是。

尽管某些EDR无法标记基本技术,但许多检测功能已得到改善,以至于今天,红色团队将过程注入视为OPSEC昂贵的情况并不少见。经验丰富的操作员倾向于按解决方案定制检测旁路,在某些环境中,他们选择完全避免注入,因为Windows为内存和线程管理公开的非常有限的API集受到密切监视。

我们今天将要谈论绕过成熟的解决方案-对于那些T1055未命中的解决方案,只需使用APC注射,您可能会没事的。

让我们首先讨论异常远程线程创建的所有检测机会。

CRT异常

最受关注的API必须是,但我们实际上是在谈论,还是通过内核回调拦截的内核模式目标。kernel32!CreateRemoteThreadntdll!NtCreateThreadEx

https://github.com/elastic/detection-rules

在这里,我们对特定的Windows进程进行了基本检测-在远程进程中创建新线程。即使潜在真实阳性的危险性非常高,在测试规则作者后,它仍然决定仅适用于低严重性(可能是由于FP率所致),这可能会使规则在大多数环境中退化为IR标签/富集。msbuild.exe

这种简单的检测规则不太可能成为成熟的EDR解决方案的一部分,在该解决方案中,客户希望收到严重程度很高的此类活动的警报,同时降低噪音,以使其分析人员可以对重要内容进行审查和分类。

https://github.com/FalconForceTeam/FalconFriday

基于新的扩展功能的更通用的自定义MDATP线程创建规则-检测在远程进程中创建线程的极少数文件。在内部实施非常有用,但仍不太可能以这种简单的形式在EDR中发现,因为在某些环境中会引起大量误报,并且可能难以维护。FileProfile()

举例来说,Defender将大多数远程线程创建记录为带标签的事件,但是文件普及率低不足以触发警报的指标,而且还有更高级的逻辑在起作用-对于大多数体面的EDR都是如此。

Defender记录的CRT事件

了解相关性

通过“检测”和“警报”,我不仅指可以在平台某处找到的标记活动,还包括独立的逻辑部分,它们能够以足够高的保真度来发出威胁信号,以生成面向用户的安全事件,而无需标记其他活动。在端点上。

(我还假设该平台没有令人难以置信的噪音,直到无法使用为止)

记住这一点很重要,因为EDR使用各种相关性将其他未被检测到的活动与由高保真警报引发的现有事件相关,或者基于某些通常被亲切地称为“ AI”的风险评分分析来生成它们,从而使得很难判断是否有某些特定可以单独检测到TTP。某些类型的关联可能非常复杂,很难让对手猜到,但是由于与保留活动上下文并在检测中使用它相关的高昂成本,基于时间的关联在大多数情况下都发挥了作用。

由于反向工程问题或架构困难,通常不会实施或限制代理上的检测,活动和软件清单。

稍后在构建shellcode注入器时,我们将通过引入执行延迟作为避免检测的一种方法来利用这一事实。该概念并不是新概念,通常用于IDS解决方案倾向于根据阈值进行检测的网络攻击中。

出于同样的原因,基于Mitre评估和覆盖率之类的数字结果选择EDR供应商也不是一个好主意。除其他问题外,对于整个攻击终止链,测试回合都是在大约30分钟的不切实际的短时间窗口中执行的,这意味着从主机到单个警报的标记事件的时间相关性足够好,可以覆盖100%的覆盖率。

高保真警报

因此,我们知道,即使要监视的功能数量有限,合法事件的数量也对高保真度检测构成了重大挑战,并且迫使防御者缩小“可疑”的构成范围,从而导致对许多收集到的事件进行大量过滤记录和忽略

对于线程创建,最常见的约束是线程≠ -因此,监视远程线程创建,通常也仅限于具有以下条件的线程:starting processhosting process

  • 图像“ unbacked”类型段中的线程开始MEM_COMMIT
  • 段的大小大于 X

并且从规模上讲,这仍然会产生非常多的误报,可能会导致进一步过滤,例如:

  • 线程位置()仅在Windows内置可执行文件中target
    • 这些只是其中的一个子集
  • 仅在有风险的可执行文件中使用线程启动器()source
    • 未知的哈希
    • 文件普及率低
    • 有风险的路径(,等)%userprofile%%temp%
    • 在网络/主机上看不到
  • 内存页包含可疑内容

经常使用机器学习模型来尝试解决此问题,依此类推-这些假设对于供应商而言将有所不同,但其主意是控制线程的创建。实际上,较不成熟的解决方案通常依赖于线程创建挂钩/回调作为注入检测的唯一数据源。

虽然对于大多数注入技术而言,确实会在某个时刻在目标进程中创建一个新线程,但创建线程的方式通常是出乎意料的,并且使监视变得不可行,因此,如今仅依赖于挂钩/线程创建回调是一种容易利用的设计缺陷。ntdll!NtCreateThread(Ex)

SetThreadContext 如果发生进程空心化或线程劫持,我们的目标线程已经由或目标应用程序在本地合法创建,因此没有任何可检测的内容。这是CobaltStrike的原因之一使用,而不是CRT注射在牺牲过程。Windows Loaderexecute-assemblySetThreadContext

一旦进行了遥测,就可以比CRT注入更容易地大规模检测某些异常,并且如今,在许多环境中,它会生成高严重性警报,SetThreadContext从而使fork&run在隐身的进攻行动中毫无用处

QueueUserAPC 提供了另一种避免线程创建的途径。可以将APC排队等待现有线程,并在进入警报状态后执行该APC。Asynchronous Procedure Calls

近年来,逃避用户国的行为得到了广泛的报道,而“早起的鸟儿”注入已为此目的普及了APC的使用。这个想法是在功能有机会运行之前,将APC在新产生的暂停过程中排队。这样,在将挂钩DLL加载到目标进程之前,将执行我们的计划例程。ntdll!LdrpInitializeProcess

再一次,当我们不再完全依赖钩子时,此技术变得易于检测。

滴灌机

DripLoader是一个规避性的shellcode加载器(注入器),用于绕过基于事件的注入检测,而不必抑制事件收集。

该项目旨在突显事件驱动的注入识别的局限性,并表明在EDR中需要更高级的内存扫描和更智能的本地代理库存。

DripLoader通过以下方式规避了EDR:

  • 使用可能风险最高的API,例如和NtAllocateVirtualMemoryNtCreateThreadEx
  • 与调用参数混合以创建事件,由于数量大,供应商被迫放弃或登录并忽略它们
  • 通过引入延迟来避免多事件相关

分配内存

要绕过任何基于内存分配的逻辑,我们将仅提交页面粒度或大小页面,在具有现代处理器的Windows 10上,它是:PageSize4kB

  • 结构中发现的此常数告诉我们VM分配的最小尺寸SYSTEM_INFO
  • 由于大多数合法的远程VM操作只能在一个字节或几个字节上运行,因此是目前最普遍的分配大小(> 95%),这使得检测基于Windows的远程虚拟机非常困难。4kB

为此,我们需要解决一些不便之处

  • 我们需要将内存中的shellcode作为一个连续的字节序列,这意味着我们不能选择base,因为它可能会在其他分配无法容纳的地址处保留内存kernel32!VirtualAllocEx
  • 在Windows中,任何新的VM分配与制作和类似被四舍五入到这是另一个恒定发现,通常是kernel32!VirtualAllocExAllocationGranularitySYSTEM_INFO64kB
    • 举例来说,如果我们分配的,在内存,整个区域将成为新的分配不可用4kBMEM_COMMIT | MEM_RESERVE0x400000000x40010000 (64kB)

知识来源: https://www.nuanyue.com/archives/anquan/%e7%bb%95%e8%bf%87edr%e5%ae%9e%e6%97%b6%e6%b3%a8%e5%85%a5%e6%a3%80%e6%b5%8b%e9%80%bb%e8%be%91/

阅读:142840 | 评论:0 | 标签:安全 安全技术 注入

想收藏或者和大家分享这篇好文章→复制链接地址

“绕过EDR实时注入检测逻辑”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

黑帝公告 📢

永久免费持续更新精选优质黑客技术文章Hackdig,帮你成为掌握黑客技术的英雄

↓赞助商 🙇🧎

标签云 ☁

本页关键词 💎