反病毒逃逸技术

信息安全 元数据
2021-08-12 14:29:24

使用 ps_exec 时有哪些好的反病毒规避技巧?作为一名渗透测试人员,我经常遇到一些你不能利用的情况,因为他们在机器上运行防病毒软件时会利用机器。我主要谈论的是在执行之前保存在受害者机器上的二进制文件。

例如,动态生成 Meterpreter 有效负载以便逃避 AV 软件有什么好的技术。

4个回答

有一些策略可以提高躲避目标 AV的机会总体策略是尝试开发一个尽可能独特的后门。从头开始编写自己的后门将是最成功的。

围绕恶意软件的受保护或“加密”信封是一种常见策略。但是,AV 有时会标记信封并假定内容是恶意软件,这有时会发生在UPX 中截至 2015 年,Veil-Evasion已成为我用来逃避签名防病毒软件的首选信封。

为了逃避防病毒解决方案,首先您需要了解防病毒如何标记您的特定后门。反病毒引擎使用的第一种方法是使用大量恶意文件签名来搜索可执行文件中的特定模式和签名。在 Metasploit 的情况下,AV 解决方案具有默认 exe 模板 (data/template/template_x86_windows.exe) 的签名,并且您使用此默认模板生成的任何可执行文件都将被 AV 标记,而不管其中的实际 shellcode。解决这个问题的一个简单方法是单独生成你的 shellcode,然后创建一个自定义 exe 并将 shellcode 嵌入其中。使用 shikata_ga_nai 编码器可以轻松绕过 shellcode,因为它是一个多态编码器,每次生成不同的 shellcode。

反病毒引擎使用的下一个技术是沙箱,您的后门将在其中执行很短的时间,并在运行时分析其行为。它将寻找诸如分配 RWX 内存块或建立反向连接之类的迹象。绕过此问题的一种简单方法是使用虚拟循环或代码块,该循环或代码块一直执行到沙盒计时器到期而不执行任何恶意任务。

最后,现代 AV 引擎具有多个组件,例如用于网络流量、Web、电子邮件等的单独模块。由于 Meterpreter 是一个分阶段的有效负载,其中第一个阶段下载第二阶段的 Meterpreter DLL 文件,如果传输 DLL 的连接不是加密后,无论您是否在第一阶段绕过了 AV,都会检测到第二阶段 DLL。您可以使用反向或绑定 HTTPS Meterpreter 来绕过此限制。

我曾多次使用 Veil,它是绕过 AV 的简单方法。唯一的限制是由于需要嵌入 EXE 的完整 python 解释器而导致大小增加。Veil 也可以使用本机 exe 完成其工作,而无需 python 解释器,但由于加密和解密例程,代码大小仍然增加。如果尺寸不是问题,您可以使用 Veil。但是,在某些环境(例如嵌入式设备或 IDS 文件大小签名)中,大小确实是一个很大的限制,您必须自己从头开始制作自定义后门。

除了使用一个有趣的框架外,我开始喜欢Veil它是一个框架,可帮助生成专门用于规避防病毒软件的有效负载和二进制文件。它在 Kali 存储库中可用。

大多数 AV 似乎检测的是 exe/pe“模板”而不是加密的有效负载。尝试创建自己的基本 c 程序,在某些时候执行 shellcode。您可以围绕实际的有效负载调用编写无用的代码,以每次生成唯一的程序。尝试将几轮 shikata_ga_nai (msfecnode) 与您的自定义 exe 模板结合起来。