一个非常有创意的 .txt 病毒/木马剖析。它是如何工作的?

信息安全 病毒 木马
2021-09-01 12:55:16

所以我下载了一个受密码保护的PDF。在同一个文件夹中,有以下看似无害的文件:

在此处输入图像描述

如您所见,它们都是 .txt 文件,对吧?相当无害.. 实际上,不是:如果您仔细观察,您会发现 PDF 密码文件实际上是一个快捷方式链接,在其中进行调查,快捷方式中有以下命令:

C:\Windows\System32\cmd.exe cmd /c Credits.txt

行。所以它不是 .txt 文件,它为另一个看似无害的 .txt 文件运行命令。它也恰好不是 .txt 文件,因为它的内容看起来像:

在此处输入图像描述

二进制数据。因此,当您运行它时,会出现一个名为 TaskMgr 的进程,带有一个奇怪的图标。我是一名程序员,我很好奇,这种攻击的解剖结构是什么?像这样使用 CMD 可以运行什么类型的数据?此文件中包含哪种编程语言,我如何反编译它以准确查看它对系统的作用?

我必须承认,这个很聪明。

3个回答

其他答案基本正确,但缺少关键要素:

一个奇怪的遗留行为cmd.exe是,当您将文件作为命令(通过/c参数或仅在交互式 shell 中输入文件名)给它时,它所做的第一件事就是调用CreateProcess该文件。CreateProcess是启动程序的Win32 API,它不关心文件扩展名;它只关心文件是否是可执行代码并具有执行权限(默认情况下,所有 Windows 文件都有)。只有在CreateProcess失败时才会cmd回退到ShellExecute,它会根据文件扩展名和注册的处理程序采取行动。

正如其他答案所指出的,您的“.txt”文件实际上是一个 Windows PE 可执行二进制文件(基本上是一个重命名的“.exe”文件)。如果你在你的机器上运行它,你的系统现在很有可能受到恶意软件的攻击。

可以得到以下推论:

  1. 文件开头MZ意味着这是一个 PE 文件(阅读更多
  2. 有一个字符串This program must be run under Win32
    这是 MS DOS-Header 的一部分。这证实了推论 1。
    这也意味着它是一个32 bit可执行文件 (x86)。
  3. 让我们了解C:\Windows\System32\cmd.exe cmd /c Credits.txt
    • C:\Windows\System32\cmd.exe cmd要求启动 Windows XP 命令解释器的新实例。
    • /c意思是'执行字符串指定的命令,然后终止'
      简而言之,它运行 Credits.txt

要真正了解它到底做了什么,您需要反汇编程序并使用 IDA Pro 等工具查看汇编代码。

从屏幕截图中可以看出,credits.txt 实际上是一个 Windows 二进制文件 ( this program must be run under Win32)

cmd /c运行指定的程序(在您的情况下credits.txt。文件结尾在这种情况下显然不相关。