windows defender免杀十种方法4:脱胎换骨
2023-5-18 08:6:29 Author: 奶牛安全(查看原文) 阅读量:23 收藏

环境

  • 带有 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 嵌入到另一个可执行文件中,该可执行文件包含解压缩原始内容并执行它所需的信息。也许最著名的加壳器(甚至不是出于恶意目的)是 GolangUPX 包。

此外,PE Crypter 通过加密可执行文件的内容并生成将在运行时解密原始 PE 的可执行文件来工作。这对 AV 非常有用,因为它们中的大多数依赖于静态分析而不是运行时行为(如 EDR)。因此,在运行时之前完全隐藏可执行文件的内容可能非常有效,除非 AV 已生成针对加密/解密方法的签名,这就是尝试使用nimpcrypt的情况。

最后,还可以选择将原生 PE 转换回 shellcode。例如,这可以通过hasherezadepe_to_shellcode 工具来完成。

现在已经解释了从可执行文件开始规避 AV 的所有可能方法,提一下将所有步骤合并到一个工具中的框架:KlezVirusinceptor。该工具可能会变得非常复杂,简单的Defender 规避不需要大多数步骤,但下图可能会更好地解释它:

与以前的工具相比,Inceptor 允许开发人员创建自定义模板,这些模板将在工作流程的每个步骤修改二进制文件,这样,即使为公共模板生成了签名,也可以拥有自己的私有模板来绕过 EDR 挂钩、修补 AMSI/ETW、使用硬件断点、使用直接系统调用而不是内存中的 DLL 等。


文章来源: http://mp.weixin.qq.com/s?__biz=MzU4NjY0NTExNA==&mid=2247489461&idx=1&sn=08e7540c855aa5d5b65543cf0724bf47&chksm=fdf97ca0ca8ef5b621aab4c968499ab4d77c3ddb23d65464fa1563a527da533b9e9386bd4ba8#rd
如有侵权请联系:admin#unsafe.sh