Path masquerading Hide in plain sight
I. 简介
作为一个普通用户,在低权限的情况下,你将如何躲避 Endpoint Detection and Response (EDR) 的监控?
EDR 规避技术通常需要用户拥有高权限(管理员、系统等)。因此,在使用普通用户账户时,绕过 EDR 的重点主要是以最不引人注意的方式执行操作。
在本文中,我将使用标准用户账户,实施路径伪装攻击技术,将 payload 的路径伪装成与 Antimalware Service Executable 文件的路径极其相似。
II. 核心内容
1. 进程创建事件
对于 Security information and event management (SIEM) 来说,进程创建事件是监控和评估活动是否恶意的最重要信息之一。它提供了有关新创建进程的扩展信息。完整的命令行为进程执行提供了上下文。
以下是由 Sysmon 监控的进程创建事件示例。
一些始终被监控的重要数据包括:Image、CommandLine、CurrentDirectory、ParentProcessID 等。
如果是你,在收到两个进程创建事件,其镜像分别为"C:Program FilesWindows DefenderMsMpEng.exe"和"%TEMP%SuperJuicy.exe"时,你会对哪种情况更加怀疑?
作为一个经验丰富的分析师,你会知道防病毒和 EDR 解决方案的操作目录始终受到内核级别的保护。除非攻击者能够将权限提升到内核(通过 BYOVD 或内核漏洞),否则他们将无法将 payload 放入这些文件夹中执行。
因此,回到上面的两个镜像,我会首先关注"SuperJuicy.exe"。不是因为它的名字,而是因为我知道"MsMpEng.exe"位于 Windows Defender 的受保护文件夹中。当然,在彻底调查的情况下,两种情况都会被仔细分析。
2. 在钓鱼中使用的文件伪装攻击
文件伪装攻击是一种特定类型的网络攻击,攻击者将恶意文件伪装成无害的文件,诱使用户打开它。这通常通过操作文件扩展名或名称来实现,使其看起来值得信任。
-
双重文件扩展名:例如,将文件命名为"document.pdf.exe",以欺骗用户认为它是 PDF -
伪装文件类型:更改文件的元数据以错误识别其类型 -
从右到左覆盖:使用特殊字符反转文件名的顺序,例如,"txt.exe"变成"exe.txt" -
匹配合法名称或位置:将恶意文件重命名为匹配受信任应用程序的名称,如"svchost.exe",或将它们放在受信任的目录中,如"C:WindowsSystem32" -
无效代码签名:复制有效的代码签名和元数据以规避基于签名的防御
我将利用匹配合法名称或位置的技术,并将其应用于镜像文件的路径。目标是伪装镜像以在 SIEM 日志数据中保持低调。
3. 路径伪装:这不是你要找的"Program Files"
与钓鱼中使用的伪装攻击不同,我的目标是使用伪装来保持低调并避免 SIEM 的注意,而不是创建诱人的文件供用户点击。
接下来,我将使用路径伪装技术将我的 payload 伪装成"C:Program FilesWindows DefenderMsMpEng.exe"。我的目标是使我的进程在从 SysMon 日志或从进程监控工具(如 Process Monitor、Process Explorer 等)查看时看起来与反恶意软件服务可执行文件完全相同。
这种技术依赖于使用在 ASCII 中类似于"空格"字符的 Unicode 字符。
类似空格的 Unicode 字符包括:
U+2000: En Quad
U+2001: Em Quad U+2002: En Space … U+200A: Hair Space
首先,在低权限的情况下,我们需要在路径"C:Program FilesWindows DefenderMsMpEng.exe"中找到一个可以创建文件夹或写入文件的位置。
如果你同意我的观点,那么在上述路径中,"C:"位置是最可行的。在"C:"处,标准用户很可能有权限在这里创建新文件夹。我在 Windows 11 上进行实验,可以创建文件夹。这取决于不同网络中的组织策略。
接下来,我将在"C:"创建一个名为"Program Files 00"的文件夹。成功创建后,我将拥有路径"C:Program Files 00",当前用户在该路径下拥有完全的读/写/执行权限。
创建"Program Files 00"后,我将继续将其重命名为"Program[U+2000: En Quad]Files"。你可以从一开始就直接创建这样的名称,但我想澄清文件夹创建权限的问题,这就是为什么我将其分为两个步骤。
重命名后,使用上图所示的"dir"命令,你能区分哪个"Program Files"是软件通常安装的位置,哪个是新创建的文件夹吗?
下一步,我将把整个文件夹"C:Program FilesWindows Defender"复制到位置"C:Program[U+2000: En Quad]FilesWindows Defender",并将"SuperJuicy.exe"放入这个新位置。
为了提高伪装级别,在成功伪装 Windows Defender 路径后,你可以进一步在这个新文件夹中使用 Windows Defender 的可执行文件实施 DLL Hijacking 或 DLL Side-Loading 技术。
回到上面的 POC,我将执行"TheJuicyOne.exe"并使用 Sysmon 检查进程创建事件。
|
|
|
|
通过上面的两个 SysMon 记录日志,你能识别这两个事件之间的差异吗?基于从进程创建事件收集的信息,我会知道路径"C:Program FilesWindows Defender"中的文件已被执行。如果我只看日志,我将无法区分"TheJuicyOne.exe"实际上位于与"MpCmdRun.exe"完全不同的路径中。
伪装 Windows Defender 或其他防病毒/EDR 解决方案的路径可能产生几个效果:
-
它可以混淆日志分析师,减慢追踪过程。 -
它可以误导调查方向。例如,在上述情况下,管理员可能会认为 Windows Defender 已被入侵,并可能从这个角度进行分析。 -
当然,这里的主要目标是使 payload 看起来非常合法和适当。
4. 防御路径伪装技术
管理员可以实施几种方法来对抗路径伪装,例如:
-
创建额外的规则来监控包含表示空格的 Unicode 字符的路径。 -
修改日志查看器以显示空格字符。例如,不是显示"Program Files",而是改为显示"Program[En Quad]Files"。 -
限制在位置"C:"的文件夹创建权限。
III. 总结
攻击者总是寻求规避 EDR 的方法,以保持低调并尽可能长时间地维持他们在目标系统上的存在。
当缺乏足够的权限来执行高级 EDR 规避技术(如使 EDR 失明、篡改日志收集代理或阻碍 EDR 的内核和用户模式之间的交互)时,攻击者的目标是尽可能伪装成良性的样子。
通过路径伪装技术,攻击者可以将他们的 payload 伪装成在 EDR 收集的日志数据中与防病毒/EDR 程序极其相似的样子。这将造成混淆并使机器上活动的追踪和分析变得复杂。更糟糕的是,它可能误导分析师,导致忽视系统上的活动威胁。
原文始发于微信公众号(securitainment):低权限绕过 EDR 监控!Windows 路径伪装实战技巧
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论