首页
社区
课程
招聘
[翻译]你忠诚的反病毒驱动:武器化杀毒驱动
发表于: 2022-4-26 15:21 7153

[翻译]你忠诚的反病毒驱动:武器化杀毒驱动

2022-4-26 15:21
7153

时间进入 2022年,勒索软件团体继续使用有趣的新技术来绕过杀毒软件 (AV) 和端点检测和响应 (EDR) 解决方案,并确保成功执行其勒索软件的payloads,从而困扰我们的当下的数字生态。
2021 年 12 月,Stroz Friedberg 的事件响应服务团队对古巴勒索软件事件进行了数字取证和事件响应 (DFIR) 调查和全面环境恢复。我们利用一种有趣的技术发现了新的
失陷检测情报 (IOC)。在这里,作为 古巴攻击工具集的一部分,攻击者组织执行了一个脚本,该脚本滥用 Avast® Anti Rootkit (爱维士)内核驱动程序中的一个函数来终止当前主流的杀毒软件和 EDR 进程。

虽然在加密之前使用内核驱动程序来锁定和杀死 AV 和 EDR 解决方案(1) 已经为人所知并讨论了一段时间,但滥用来自反病毒软件供应商的签名和有效的驱动程序 (2) 却令人惊讶于其的效且性和其中的讽刺意味。
在写这篇文章的时候,有三种不同的攻击方式,他们根据依赖的复杂性排序如下
• 一个独立的 PowerShell 脚本,与 Avast 驱动程序一起放置,用于安装和加载驱动程序并执行少量函数来控制驱动程序。
• 一个可执行文件,它在内存中解压缩并加载一个小的可执行文件来控制驱动程序。在本博客中,我们将此可执行文件称为控制器。其他工具被用于在受感染的系统中安装和加载 Avast 驱动程序。
• 一个批处理脚本,它安装一个服务来加载 Avast 内核驱动程序,然后启动一个 PowerShell 脚本来解码、加载和执行内存中的控制器。
本文深入研究了攻击的第三个变体的实现,其中攻击者使用上面第三点中描述的批处理脚本。

暂存 - 批处理脚本
劫持的第一阶段从攻击者在目标系统的“C:\Windows”和“C:\Windows\Temp”目录中 释放三个文件开始,一个批处理脚本、一个 PowerShell 脚本和一个 Avast 驱动程序。

攻击者执行批处理脚本来创建和启动一个新服务,该服务利用名为 aswArPot.sys 的合法 Avast Anti Rootkit 内核驱动程序。在执行用于解压和执行控制器的 PowerShell 脚本之前,存在一个短暂的超时以确保服务完全启动。

混淆 – PowerShell 加载程序脚本
PowerShell 脚本包含多层混淆,执行时会解码其内容并重建控制器。一旦 PowerShell 脚本完成控制器的重建,它就会利用 Windows 应用程序编程接口 (API) 在内存中加载和执行控制器。

控制器 – 恶意可移植可执行文件 (PE)
事实证明,加载小型(约 5KB)PE 到内存中很简单,但很有效。该可执行文件旨在整理活跃的运行进程的列表,然后将它们与 AV 和 EDR 进程名称的 CRC64 校验和混淆后的硬编码列表进行比较。如果任何进程名称与硬编码列表中的条目直接相关,则会将 I/O 控制 (IOCTL) 代码发送到 Avast 驱动程序,从而导致进程终止。

在 Ghidra 上拆解样本可以深入了解控制器的散列和比较功能:

1.初始化函数通过 CreateFileW API 创建一个句柄来引用最近安装的 Avast 驱动程序。如果驱动程序句柄返回是有效的,则可执行文件调用一个函数来查找和终止进程。
图片描述

2.一旦进入这个函数,就会对正在运行的进程拍摄一个快照。然后,该函数遍历小写 Unicode 表示的进程名称,并使用 CRC64_ECMA_182 算法计算每个进程名称的 CRC64 校验和。
图片描述

3.然后可执行文件循环遍历硬编码的 CRC64 校验和值列表 (QWORD_009c2030),每个值都代表已知 AV 或 EDR 进程的名称。在本文讨论的示例中,硬编码列表包含 119 (0x77) 个 CRC64 校验和值。
图片描述

4.如果样本找到匹配项,则调用 Avast 进程终止函数,传递 Avast 驱动程序的句柄和匹配的进程 ID。
图片描述

5.DeviceIoControl API被调用,它将 0x9988c094 IOCTL 码连同进程 ID 一起发送到 Avast 驱动程序。这会导致 Avast 驱动程序在内核级别终止进程,绕过大多数 AV 和 EDR 产品中实施的篡改保护。

图片描述

进程的终止 – Avast IOCTL 控制码
Avast 驱动程序aswArPot.sys将 0x9988c094 IOCTL 控制码解释为终止给定进程的信号。下面是为了研究目的而反汇编和反编译的 Avast 驱动程序,它们显示了使用 KeAttachProcess 和 ZwTerminateProcess 函数从内核模式终止进程的方法:

图片描述
图 1. Avast 驱动程序代码中的 IOCTL 代码比较,调用其进程终止函数

图片描述

图 2. Avast 驱动的进程终止函数

此 IOCTL 代码和功能可以在多个版本的 Avast 驱动程序aswArPot.sys中找到,包括截至 2021 年 12 月在 Avast 产品上分发的版本。但是,通过行为分析确认,Avast 驱动程序的最新分发版本不容易受到这种滥用。在联系 Avast Bug Bounty 团队后,我们已收到确认该问题已知且已由 Avast 在 2021 年 2 月的驱动程序更新中解决。此外,我们已收到确认 Avast 已与 Microsoft 联系,要求他们使旧版本驱动程序的签名无效。微软已通知 Avast,2022 年 3 月的安全更新将包含签名更新。

在此实例中,攻击者使用的特定 驱动程序aswArPot.sys(SHA256:4b5229b3250c8c08b98cb710d6c056144271de099a57ae09f5d2097fc41bd4f1)具有以下文件版本信息:
版权所有:版权所有 (c) 2021 AVAST Software
产品:Avast Antivirus
描述:Avast Anti Rootkit
原始名称:aswArPot.sys
内部名称:aswArPot
文件版本:21.1.187.0
签名日期:2021-02-01 14:09:00

目标

在 VirusTotal 或 参与 中发现滥用该驱动程序的不同的实现中包含不同的目标进程列表。

• 最小的 PowerShell 脚本实现仅针对一个特定进程。

• 在 VirusTotal 上发现的三个“早期”版本的 PE 包含目标进程的明文字符串,以及透明命名的 PDB符号 路径“F:\Source\WorkNew19\KillAV\Release\KillAV.pdb”。这些版本分别包含 53、72 和 88 个目标进程,PE 编译时间戳分别为 2021 年 10 月 28 日、11 月 2 日和 11 月 3 日。
• 在古巴勒索软件事件期间发现的所有目标列表中最长的PE CRC64 校验和值 包含 110 个独一无二的目标进程(删除重复项后)。它还包含最新的 PE 编译时间戳。

利用 OpenAnalysis3 的 HashDB API 服务,我们能够恢复与上述后一个示例中的硬编码 CRC64 校验和相对应的明文字符串。该列表包含来自知名 AV 和 EDR 供应商的进程名称,其中包括来自 SentinelOne®、Cylance®、Avast®、Carbon Black®、Sophos®、McAfee® 和 Malwarebytes® 的进程名称。
以下是最新 PE 中发现的 110 个目标进程的列表:
图片描述

未来的功能?

在古巴勒索软件事件中发现的 PE 还包含第二小块 CRC64 校验和,对应于古巴勒索软件使用的三个特定勒索软件可执行文件的名称:“a.exe”、“anet.exe”和“aus.exe” 。这些校验和位于未使用的字符串“/c del”、“>> NUL”和“\system32\cmd.exe”旁边。这些字符串永远不会被引用。随着最近对该 PE 的观察版本的迭代和增强,这些字符串表明该可执行文件的潜在未来版本可能包含一个自动从磁盘删除勒索软件可执行文件的功能。

结束语
通过利用在系统中以最高权限运行、已签名且广泛分布的反病毒软件的功能所带来的能力,展示了该技术的强大。勒索软件组织将复杂性和资源用于绕过安全控制的新创新方法的程度不断增加。

IOCs(威胁情报)
以下是公开发现的样本列表:
图片描述

ATT&CK® Mapping
Execution
T1059.001 – Command and Scripting Interpreter – PowerShell
T1106 – Native API
T1569.002 – System Services – Service Execution
T1204.002 – User Execution – Malicious File
Defense Evasion
T1458.002 – Abuse Elevation Control Mechanism – Bypass User Access Control
T1140 – Deobfuscate/Decode Files or Information
T1211 – Exploitation for Defense Evasion
T1574.010 – Hijack Execution Flow – Service File Permissions Weakness
T1562.001 – Impair Defense – Disable or Modify Tools
T1036.005 – Masquerading – Match Legitimate Name or Location
T1027.001 – Obfuscated Files or Information – Binary Padding
T1027.002 – Software Packing
T1055.002 – Process Injection – Portable Execution Injection
T1218 – Signed Binary Proxy Execution
Discovery
T1057 – Process Discovery

致谢:特别感谢 Aon’s Cyber Solutions team成员 Nhan Huynh 在修改内容和确保准确性方面提供的帮助。

Authors: Eduardo Mattos and Rob Homewood
February 26, 2022
©Aon plc 2022

本材料仅供参考,不得用于任何其他目的。在实施任何建议或遵循此处提供的指导之前,您应该咨询您自己的专业顾问或 IT 专家。此外,所提供的信息和表达的陈述并非旨在解决任何特定个人或实体的情况。尽管我们努力提供准确及时的信息并使用我们认为可靠的来源,但不能保证此类信息在收到之日是准确的,或者将来会继续准确。

1 How DoppelPaymer Hunts and Kills Windows Processes, https://www.crowdstrike.com/blog/how-doppelpaymer-hunts-and-kills-windows-processes

2 Signed Binary Proxy Execution – T1218, https://attack.mitre.org/techniques/T1218/

3 https://hashdb.openanalysis.net/

原文链接:Yours Truly, Signed AV Driver: Weaponizing An Antivirus Driver

 
 
 
@ echo off
sc.exe create aswSP_ArPot2 binPath= C:\windows\temp\aswArPot.sys type= kernel
sc.exe start aswSP_ArPot2
Timeout /t 3
C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe -windowstyle hidden -executionpolicy bypass -file c:\windows\temp\SAMPLE.ps1
@ echo off
sc.exe create aswSP_ArPot2 binPath= C:\windows\temp\aswArPot.sys type= kernel
sc.exe start aswSP_ArPot2
Timeout /t 3
C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe -windowstyle hidden -executionpolicy bypass -file c:\windows\temp\SAMPLE.ps1
Add-Type -TypeDefinition @'
    using System;
    using System.Diagnostics;
    using System.Runtime.InteropServices;
    public static class RANDOMSTRING1 {
        [DllImport("kernel32.dll")]
        public static extern IntPtr VirtualAlloc(IntPtr RANDOMSTRING2, uint RANDOMSTRING3, uint RANDOMSTRING4, uint RANDOMSTRING5);
 
        [DllImport("PowrProf.dll")]
        public static extern IntPtr EnumPwrSchemes(IntPtr RANDOMSTRING6, IntPtr RANDOMSTRING7);
    }
'@
 
 Function ouBmwjaLNIuXYiiWYYxZt() {
return (([regex]::Matches('[Redacted_Base64_String…]
Add-Type -TypeDefinition @'

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 5
支持
分享
最新回复 (3)
雪    币: 1556
活跃值: (2312)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
https://bbs.kafan.cn/thread-2231201-1-1.html
2022-4-26 18:30
0
雪    币: 672
活跃值: (1295)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
killleer https://bbs.kafan.cn/thread-2231201-1-1.html
这个是什么?我没有注册这个论坛的账号,是内容撞车了吗
2022-4-26 22:12
0
雪    币: 2296
活跃值: (12844)
能力值: ( LV12,RANK:312 )
在线值:
发帖
回帖
粉丝
4
驱动滥用是比较难防御一种
2022-4-27 08:47
0
游客
登录 | 注册 方可回帖
返回
//