逆向工程恶意软件:逆向和反汇编工具

欢迎回来,我有抱负的恶意软件分析师!

原文链接:https://www.hackers-arise.com/post/reverse-engineering-malware-reversing-and-disassembly-tools

在之前的教程中,我已经展示了OllydbgIDAProGhidra等逆向和反汇编工具的强大功能。在本教程中,我想分享和演示一些您肯定希望在恶意软件分析工具箱中拥有的更简单的工具。这些工具中的每一个都执行特定任务,并且可以快速浏览您正在分析的文件。它们的功能包含在 Ghidra 和 IDA Pro 等综合工具中,但它们可用于仔细检查这些更综合工具的工作。

让我们来看看其中一些最有用的工具。

file

在几乎每个 *nix(Linux、Unix、BSD、Solaris 等)操作系统中,都存在文件实用程序。file 命令用于确定文件的类型。它通过检查文件中的特定位置和字段来做到这一点。大多数文件都有其特定文件类型的唯一字段。

此输出可以是人类可读的 (ASCII) 或 MIME。

让我们在多种文件类型上测试这个实用程序。

首先,我有一个名为 yourphone.exe 的 .exe 文件

如您所见,文件实用程序将其识别为适用于 Windows 的 Intel 80386 处理器的 PE32。

现在让我们尝试各种文件类型。

正如您在上面看到的,文件实用程序成功地识别了图形文件、XML 文件、RTF 文件和 Powerpoint 中的所有内容。

需要注意的是,文件实用程序并不总是准确的。再一次,它正在查看指示文件类型的特定字段,并且二进制文件或任何其他包含这些字段的类似数据的文件将被错误识别。这就是为什么使用多种工具并关联它们的结果总是很重要的原因。

PE Tools

PE Tools 是用于在 Windows 上分析二进制文件的工具集合。正如您在下面看到的,PE Tools 分析了我系统上的可执行文件,识别了架构、进程 ID、图像基础和图像大小。在下部窗口中,它提供了每个可执行文件的路径。

PE工具也可以用来;

  • 确定使用的编译器
  • 是否使用了混淆技术
  • 查看可执行文件头

PEID

PEiD 是一个 Windows 程序,用于识别用于构建可执行文件 (Microsoft Visual C++8) 的编译器。

PEiD 具有许多其他功能,其中许多与 PE 工具重叠。

ldd(列出动态依赖项)

ldd 是 *nix 实用程序,用于列出二进制文件使用的动态库。下面我们用ldd列出apache2的动态库

strings

很多时候,嵌入式字符串可以启发恶意软件分析师。有时,开发人员会给自己留下笔记,这些笔记可以揭示恶意软件的功能和意图以及开发人员的母语。

让我们看看这个实用程序的帮助屏幕。

请注意,默认值是识别 4 个字符或更长的字符串。这可以通过在命令后简单地添加–<number>选项来调整。

让我们看看字符串应用于我们的 apache2 二进制文件时的作用。由于我们期望有可观的输出,让我们将输出通过管道传输到更多,并一次查看一页的字符串列表。

kali > strings /usr/sbin/apache2 | more

当向下滚动一点时,我们可以看到一些更有用和更长的字符串,包括对这个二进制文件使用的一些库的引用。

如果我们知道我们在寻找什么,我们也许可以使用 strings 实用程序使用grep过滤器找到非常具体的东西。如果我们在wannacry勒索软件和grep 中搜索“http”,我们可以立即找到命令和控制(C&C)服务器的URL。

ndisasm(全网反汇编程序)

ndisasm是一个 x86 二进制文件反汇编程序。它是 NASM 的一部分,简单地使用 Netwide Assembler 来反汇编二进制源文件。

让我们看看它的帮助文件。

现在,让我们使用 Metasploit 的 msfvenom 生成一些 shellcode,并将其命名为 chess.exe。

kali > msfvenom -p windows/meterpreter/reverse_tcp -f exe > chess.exe

现在,让我们使用 ndisasm 来反汇编 chess.exe。由于这个 shellcode 是 32 位的,我们需要使用 -b 选项,后跟 32,让我们通过管道输出更多。

kali > ndisasm -b 32 chess.exe | more

如上所示,ndism 成功反汇编了我们的 msfvenom 生成的 shellcode。不幸的是,它很难作为标准输出使用,所以让我们将它重定向到一个文件。

kali> ndiasm -b 32 chess.exe > chess_assembly

现在,让我们使用任何文本编辑器(在本例中为鼠标垫)打开它。

kali >鼠标垫/home/kali/chess_assembly

概括

本教程中演示的工具不能替代GhidraIDA Pro,但可用于仔细检查此类工具的结果。此外,作为拆解的新手,这些工具展示了这些更全面的工具的一些能力,进一步加深了我们的理解。

发表评论

您的电子邮箱地址不会被公开。