pe-sieve 识别并保存潜在的恶意植入shellcode

pe-sieve 识别并保存潜在的恶意植入shellcode

pe-sieve简介

PE-sieve是一种工具,可帮助检测系统上运行的恶意软件,并收集潜在的恶意材料以进行进一步分析。识别并转储扫描进程中的各种植入:替换/注入的 PE、shellcode、挂钩和其他内存中补丁。
检测内联钩子、Process Hollowing、Process Doppelgänging、Reflective DLL Injection 等。

PE-sieve 是一个轻量级引擎,专门用于扫描当时的单个进程。它可以构建为 EXE 或 DLL。DLL 版本公开了一个简单的 API,可以轻松地与其他应用程序集成。

📦 使用库:libPEConv

适用范围

PE-sieve适用于Windows,支持的最低版本是XP。

这个工具是专门为谁设计的?

该工具旨在帮助恶意软件分析师、恶意软件猎人和事件响应人员进行日常工作。

有了要分析的新样品,我们可以非常快速地用 PE 筛将其拆包,提取有效负载,然后可以轻松识别并用于进一步分析。

当我们想要从客户端受感染的系统收集材料时,HollowsHunter(基于扩展 PE-sieve 的扫描仪)可以扫描整个系统,从每个可访问的进程中转储注入的代码。

当受感染的客户端不知道启动感染的样本是什么时,它也可以提供帮助。PE-sieve/HollowsHunter将在运行的进程中搜索注入的材料,然后转储恶意PE。


PE-sieve 是反恶意软件解决方案吗?

并不完全是。PE-sieve 会提示可疑指标,但它不会给出该过程是否确实是恶意的最终判断。例如,它检测挂钩 – 但它无法判断挂钩是出于恶意还是出于合法目的。因此,它的作用是提供用于进一步处理/分析的原材料,并提示您应该仔细检查哪些过程。


PE 筛给我带来了很多误报!为什么?

我需要再次强调的是:PE-sieve是一个检测代码植入的工具,而不是对它们做出判断。它将检测进程中的各种挂钩、热补丁和修改。安装此类修改的原因有多种,而且它们不一定是恶意的。

您可以在 .NET 应用程序中期待 JIT(即时编译代码)。它将导致检测 shellcode 和一些修补模块(即clr.dll)。

您可以在某些浏览器(例如 Firefox)中看到挂钩模块。为了区分哪个钩子是无害的,看看它通向哪里。无害挂钩示例(导致 mozglue.dll,这是合法目标):

17be0;BaseThreadInitThunk->5a622e30[5a620000+2e30:mozglue.dll:0];5

PE-sieve 在存在某些防病毒软件的情况下可能会特别吵闹 – 只是因为它们确实通过挂钩来监视应用程序。许多反病毒产品实际上使用与恶意软件类似的技术。检测合法软件所做的修改不是错误,而是预期的功能,有助于收集有关安装在哪些位置的挂钩的详细信息。PE-sieve 还检测垫片和其他内存中的补丁,这些补丁在某些情况下可能是恶意的,但也可用于在应用程序中应用修复。

一旦确保特定模块中的补丁是合法的,您可以使用/mignore选项从扫描中排除这些模块。

将来我计划实现白名单,以便用户能够调节他们想要看到的细节级别,并减少误报。

pe-sieve下载地址

GitHub:

使用方法

为了执行基本扫描,您只需提供目标进程的 PID:

pe-sieve.exe /pid <target_pid>

例如,如果我怀疑该进程svchost.exe被感染,并且我想扫描它:

pe-sieve 识别并保存潜在的恶意植入shellcode

如果该进程确实被感染,则恶意软件已将其植入物注入其中。PE-sieve 将检测它们并转储到专用文件夹中,以及描述检测到材料的详细信息的 JSON 报告。植入的 PE 文件将自动取消映射、重建,并准备好由其他工具进行分析。如果进程中的任何模块被挂接或修补,PE-sieve 将生成一个 TAG 文件,有助于调查更改

PE-sieve 带有一个简单的命令行界面。这些参数允许将功能扩展到默认扫描之外。要查看命令的完整列表,您可以在不带任何参数的情况下部署它。

pe-sieve 识别并保存潜在的恶意植入shellcode

PE-sieve 工具系列

PE-sieve 是一个专门用于扫描单个进程的轻量级引擎。它可以构建为 EXE 或 DLL。DLL 版本公开了一个简单的 API,可以轻松地与其他应用程序集成。

很少有其他工具使用 PE-sieve 作为引擎,但专注于一些特定的用例。它们在底座顶部提供附加功能和过滤器。

  • HollowsHunter – 允许扫描多个进程,可以通过各种标准选择目标
  • MalUnpack – 提供对所提供的恶意软件样本的快速解包

PE-sieve 和HollowsHunter – 有什么区别?

如果您不想扫描特定进程,而是想扫描多个进程,甚至使用 PE-sieve 扫描整个系统,则可以使用HollowsHunter

Hollows Hunter 是一个命令行应用程序,其界面类似于 PE-sieve。虽然在 PE-sieve的情况下,您只能通过其 PID 选择过程,但 Hollows Hunter 允许通过各种标准来选择它们,例如:

  • PID 列表
  • 名单
  • 创建时间(相对于 Hollows Hunter 的运行时间)

如果未选择特定目标,它将继续扫描所有可用进程。

额外的区别是,虽然 PE-sieve 默认情况下扫描钩子和补丁,但在 HollowsHunter 中需要使用选项启用它/hooks

pe-sieve 识别并保存潜在的恶意植入shellcode

PE-sieve 和 MalUnpack – 有什么区别?

PE-sieve 的用例之一是恶意软件解包。尽管可以通过主应用程序完成此操作,但MalUnpack已针对此特定任务中的最佳性能进行了优化。

虽然 PE-sieve 允许您扫描已在运行的进程(由其 PID 选择),但 MalUnpack 将我们感兴趣的可执行文件的路径作为输入。它会部署它,并反复扫描它,观察有效负载在内存中解压的那一刻,然后转储可疑材料。如果创建了任何子进程,MalUnpack 会跟随它们进行扫描。解包完成后,主进程和所有子进程都会自动终止。

它是一个命令行应用程序,其界面类似于 PE-sieve,公开了主引擎的大部分选项,以及一些新选项。此外,PE-sieve 和 MalUnpack 默认启用的功能可能有所不同(您可以通过运行mal_unpack选项来检查详细信息/help)。

pe-sieve 识别并保存潜在的恶意植入shellcode

使用说明书

github.com/hasherezade/pe-sieve/wiki/

项目地址

GitHub:
https://github.com/hasherezade/pe-sieve

转载请注明出处及链接

Leave a Reply

您的电子邮箱地址不会被公开。 必填项已用 * 标注