堆栈欺骗和内存扫描绕过

admin 2024年10月31日21:16:12评论23 views字数 1760阅读5分52秒阅读模式

在这之前,我们介绍了如何使用sleepmask轻松绕过yara规则从而绕过卡巴斯基一类的基于传统的内存扫描的AV(反病毒软件),但问题来了,除了这类检测手段之外,还有基于堆栈检测的EDR,特别是最近一两年这种检测技术逐渐形成。本文余老师给大家演示下堆栈欺骗和sleepmask它们的优势和存在的问题,我们将对EDR和AV采取不同的进攻策略。

sleepmask存在的缺陷

我们首先看下绿盟实验室写的一篇文章《从Elastic观察新兴威胁与对抗之调用堆栈检测》,文中提到:

堆栈欺骗和内存扫描绕过

他说的很对,这也是目前检测IOC的两种方法,接下来我们从技术上来演示下:

CFG绕过

一旦启用sleepmask插件,这将覆盖原有sleep机制,yara规则便可绕过(这里不再赘述)。

堆栈欺骗和内存扫描绕过

sleepmask绕过yara规则

但是,在注入进程时,我们发现,注入到edge后致使进程崩溃无法上线(图略),查找大量资料发现是由CFG引起的。

beacon> inject 9620 x64 1

控制流保护 (CFG) 是一种高度优化的平台安全功能,旨在抵御内存损坏漏洞

由于我们的beacon是内存加密的,我们把一个加密的东西注入到其他进程,这会破坏目标内存,从而触发了windows的CFG防护机制,导致目标进程崩溃。

cobalt strike官方自然发现了这一问题,并提前开发了CFG绕过,我们启用CFG_BYPASS,再次注入,发现成功注入到目标进程(如图)。同时也验证了edge也是受CFG保护的进程。

堆栈欺骗和内存扫描绕过

CFG绕过注入目标进程成功

堆栈欺骗

接下来检查beacon堆栈,发现内存地址直接暴露在堆栈中:

堆栈欺骗和内存扫描绕过

sleepmask暴露的内存地址

为了直观展示,我们使用知名堆栈欺骗IOC检测工具Hunt-Sleeping-Beacons扫描一下sleep中的信标

堆栈欺骗和内存扫描绕过

检测到可疑计时器回调和sleepmask

堆栈欺骗和内存扫描绕过

这表明即使绕过内存扫描,我们无法绕过基于堆栈检测机制的EDR

使用堆栈欺骗绕过EDR

启用堆栈欺骗,由于机制问题,堆栈欺骗无法与sleepmask兼容,因此我们单独启用堆栈欺骗,放下sleepmask。

堆栈欺骗和内存扫描绕过

堆栈欺骗技术绕过hunt检测

堆栈欺骗和内存扫描绕过

Microsoft Fiber函数用于实现堆栈欺骗

这表明,启用堆栈欺骗需要我们需要放弃sleepmask,而启用sleppmask则无法使用堆栈欺骗

官方给出在sleepmask中启用堆栈欺骗方式,经过实测,效果未达到预期:

- The artifactkit_stack_spoof setting of true will not work with the evasive_sleep capability.
- The provided spoofed stack in evasive_sleep_stack_spoof.c was determined by values from a specific  
version of Windows 10.
  • • 如果将 artifactkit_stack_spoof 设置为 true,则不适用于 evasive_sleep 功能。

  • • evasive_sleep_stack_spoof.c 中提供的欺骗堆栈由特定版本的 Windows 10 中的值决定。请参阅 Evasive Sleep Stack Spoof 信息部分。

意思就是如果想要同时实现堆栈欺骗和sleepmask这将需要定制,这无疑是相当复杂。同时,这也验证了我们开头的疑问。

以上所有内容,按条件获取:(所有付费过Cobaltstrike4.9.1平台高级匿名技术的朋友)

回复堆栈欺骗,获取artifact kit(堆栈欺骗插件),及更新后的sleepmask插件

推荐阅读

欢迎点赞分享并留言,同时欢迎关注视频号。

堆栈欺骗和内存扫描绕过

原文始发于微信公众号(白帽子安全笔记):堆栈欺骗和内存扫描绕过

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年10月31日21:16:12
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   堆栈欺骗和内存扫描绕过https://cn-sec.com/archives/3339718.html

发表评论

匿名网友 填写信息