2022-08-17如何在被黑机器上检测 shellcode

在上一篇文章中,我们谈到了 shellcode 是什么以及黑客如何使用它。在今天的文章中,您将学习如何在受感染的机器上检测 shellcode。

重视自由和声誉的黑客使用隐藏攻击的技术编写 shellcode。例如,典型的入侵检测系统 (IDS) 通常会扫描所有传入的网络流量以查找特定于 shellcode 的结构。

如果 IDS 找到这样的结构,则包含此签名的数据包在到达目的地之前就被销毁。但是,IDS 在这种情况下的弱点是,如果流量被加密,那么将无法识别它。现在你明白为什么加密如此有价值了吗?

如何检测shellcode

为了分析样本,我们需要一些工具:

  • IDA Pro(带插件)
  • 奥利德
  • PEiD(带有加密分析器)

好吧,让我们开始吧!首先,打开 PEiD 并在那里加载我们的样本。一切如预期,没有惊喜。但是,我们记得我们正在处理恶意软件代码中的密码学,所以让我们尝试运行 Krypto ANALyzer 插件(必须在 PEiD 中预加载)。这就是我们所看到的:找到了签名。

检测shellcode
PEiD 程序中的文件分析结果

继续前行。我们打开 IDA Pro 并在那里加载示例,绕过很多窗口和无信息信息,注意资源表......是的,这里也没有什么引人注目的。

检测shellcode
在 IDA Pro 中显示字符串窗口

也许我们应该在搜索网络活动时碰碰运气?嗯...我们启动进程资源管理器,然后选择我们的恶意软件启动的进程,转到“属性”,单击字符串选项卡并并行启动 Wireshark 网络鲨鱼,在数据包分析窗口中,您可以找到一个 GET 请求http://www.practicalmalwareanalysis 网络资源 .com。Process Explorer 实用程序的字符串选项卡上的数据与从 Wireshark 包中提取的数据相匹配。

检测shellcode
在 Process Explorer 和 Wireshark 中比较字符串数据

让我们回到 IDA Pro 反汇编程序。在图表中,我们注意到奇怪的线条:@0x00401300 子例程以二进制形式加载某个资源并对某个值“;”应用 XOR 运算。在下一个屏幕截图中,这一点非常清晰可见。

检测shellcode
来自 IDA Pro 的数据

下面是 IDA Pro 窗口的屏幕截图,其中使用 XOR 操作的加密指令以黄色突出显示。

检测shellcode
带有使用 XOR 运算的加密指令的代码文本

我们有一个合乎逻辑的问题:什么密钥(密码)用于编码,它究竟编码了什么?记住我们之前发现的内容,我们可以得出结论,关键是';' 旨在解码包含 URL