环境
-
带有 Ubuntu Linux AMI 的 AWS EC2 作为攻击者 C2 服务器。 -
带有 Windows Server 2019 AMI 的 AWS EC2 作为受害者机器。 -
安装 Visual Studio 2022 社区的本地 Windows 10 计算机用于恶意软件开发和编译 -
本地 Kali Linux 攻击机。
过程、
一旦已经生成了二进制文件,选项主要有以下几种:
-
混淆二进制文件的汇编指令。 -
打包二进制文件。 -
加密二进制文件的内容以在运行时对其进行解密。 -
或者,将其转换为 shellcode 以供以后操作和注入。
从第一个开始,有几个可用的开源选项,例如:
-
Alcatraz -
Metame -
ropfuscator(遗憾的是目前仅适用于 Linux)
在高层次上,Alcatraz
通过以多种方式修改二进制程序集来工作,例如混淆控制流、添加垃圾指令、取消优化指令以及在运行前隐藏真正的入口点。
另一方面,Metame
的工作原理是使用随机性在每次运行生成不同的机器码(尽管行为始终相同)。这被称为多态代码,通常被真正的恶意软件使用。
最后,顾名思义,ROPfuscator
的工作原理是利用面向返回的编程从原始代码构建 ROP
片段和链,从而将原始代码流隐藏在静态分析中,甚至可能是动态的,因为启发式方法更难分析连续的恶意调用. 下图更好地描述了整个过程。
继续二进制打包,打包器的基本架构可以用下图描述。
在此过程中,给定的打包工具将二进制编译的 PE
嵌入到另一个可执行文件中,该可执行文件包含解压缩原始内容并执行它所需的信息。也许最著名的加壳器(甚至不是出于恶意目的)是 Golang
的 UPX
包。
此外,PE Crypter
通过加密可执行文件的内容并生成将在运行时解密原始 PE
的可执行文件来工作。这对 AV
非常有用,因为它们中的大多数依赖于静态分析而不是运行时行为(如 EDR
)。因此,在运行时之前完全隐藏可执行文件的内容可能非常有效,除非 AV
已生成针对加密/解密方法的签名,这就是尝试使用nimpcrypt
的情况。
最后,还可以选择将原生 PE
转换回 shellcode
。例如,这可以通过hasherezade
的 pe_to_shellcode
工具来完成。
现在已经解释了从可执行文件开始规避 AV
的所有可能方法,提一下将所有步骤合并到一个工具中的框架:KlezVirus
的 inceptor
。该工具可能会变得非常复杂,简单的Defender
规避不需要大多数步骤,但下图可能会更好地解释它:
与以前的工具相比,Inceptor 允许开发人员创建自定义模板,这些模板将在工作流程的每个步骤修改二进制文件,这样,即使为公共模板生成了签名,也可以拥有自己的私有模板来绕过 EDR
挂钩、修补 AMSI/ETW
、使用硬件断点、使用直接系统调用而不是内存中的 DLL
等。
请点一下右下角的“在看”,谢谢!!
请帮忙点赞, 谢谢!!
请帮忙转发,谢谢!!
暗号: 905549
原文始发于微信公众号(奶牛安全):windows defender免杀十种方法4:脱胎换骨
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论