当前位置:   article > 正文

小程序逃避检测_红蓝对抗秘籍:如何使用Shellcode逃避检测并隐藏在终端上

小程序加速防检测

b5c742412db5dd3e60d4a0e2daad1541.gif

d775ee3c07f2e35d8181cb7ea1860122.png概述

在红蓝对抗中,作为红队,除了需要发起攻击之外,还需要关注的就是如何能避免被发现。一个经验丰富的红队,其攻击行为往往不会被任何蓝队成员或系统运维人员发现。随着近年来终端检测与响应(EDR)产品的不断发展,可疑攻击行为被发现的概率也随之增加,因此对于红队来说,也必须不断发展他们的技术。本文主要是FireEye Mandiant Red Team的经验分享,探讨了我们如何制作Payload以绕过当今的EDR产品,以及如何在目标系统上获得完整命令与控制(C2)。

对于我们来说,Shellcode注入和Shellcode执行是在目标系统上运行C2 Payload的最理想方法。那么,什么是Shellcode呢?Michael Sikorski将Shellcode定义为“通常用于描述任何独立的可执行代码的专有名词”。大多数商业渗透测试框架(例如:Empire、Cobalt Strike或Metasploit)都在其工具中内置了Shellcode生成器。Shellcode生成器通常采用二进制格式或十六进制格式,具体取决于我们是希望生成原始输出,还是将其作为应用程序源。

为什么我们所有的Payload都希望使用Shellcode?

在红队进行攻击的过程中,如果使用Shellcode,就能在Payload类型选择上具有很高的灵活性。Shellcode运行程序可以使用多种编程语言编写,这些语言可以合并到多种类型的Payload中。这样的灵活性可以让我们自定义Payload,以满足客户的特定需求,或符合红队在安全评估期间可能出现的任何特定情况。由于Shellcode可以从Payload内部启动,也可以注入到已经运行的进程中,因此我们可以使用多种技术来提高Payload逃避EDR产品检测的能力,具体要取决于目标环境中使用的场景和技术。目前,有几种技术可以用来混淆Shellcode,例如加密、自定义编码等,这使EDR产品很难直接检测到商业C2工具中的Shellcode。总而言之,Shellcode具有的灵活性和逃避检测的特性,是我们在红队评估过程中高度依赖基于Shellcode的Payload的主要原因。

d775ee3c07f2e35d8181cb7ea1860122.pngShellcode注入与执行

红蓝对抗中最关键的一项工作就是开发Payload,这一Payload需要成功、可靠且隐蔽地运行在目标系统上。Payload可以从其自身的进程中执行Shellcode,也可以将Shellcode注入到另一个最终执行Shellcode的进程的地址空间。就本文而言,我们讨论的Shellcode注入是指“在远程进程中执行的Shellcode”,我们讨论的Shellcode执行是指“在Payload进程中执行的Shellcode”。

Shellcode注入是红队和恶意攻击者用于逃避EDR产品和网络防御设备检测的一种技术。有许多EDR产品都基于Windows进程的预期行为进行检测。例如,EDR产品认为进程通常不应该访问lsass.exe,因此从任意进程(例如:DefinitelyNotEvil.exe)的上下文中执行Mimikatz的攻

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/778729
推荐阅读
相关标签
  

闽ICP备14008679号