恶意软件逆向工程:Ghidra入门-第三部分-分析WannaCry勒索软件

科技一颗大心心 2024-04-20 06:12:36

逆向工程是最受欢迎和最有价值的网络安全/信息安全技能之一。但很少有人能将自己的技能水平发展到精通这一备受追捧的技能。Ghidra 是美国间谍机构 NSA 提供的一种相对较新且免费的逆向工程工具。

在本教程中,我们将研究历史上最臭名昭著的一个恶意勒索病毒:WannaCry。它感染了全球30多万台电脑,如果不是马库斯-赫钦斯(Marcus Hutchens,又名MalwareTech)的工作和技能,可能会造成巨大的破坏。Marcus Hutchens 获得了该恶意软件的样本,并立即开始检查其代码。在其中,他发现了通常被称为killswitch的东西。实际上,他发现的是将用于该勒索软件的命令和控制(C&C)的URL。当他意识到这个URL还没有被注册时,他就注册了。通过这样做,他拒绝了勒索软件作者对其恶意软件的控制权,从而拯救了互联网。

在这里,我们将查看恶意软件寻找URL的初始感染载体,并试图了解它如何启动其恶意活动。

#1、准备好你的环境并安装Ghidra

对于本教程,我建议你使用Kali或其他操作系统的虚拟机。这是为了确保你不会意外地将WannaCcy释放到你的其他系统或网络中(这通常是处理恶意软件时的良好做法)。接下来,下载WannaCry。你可以从许多地方获得它,如VirusTotal。

然后启动Ghidra

然后导入样本文件。

然后开始分析:

接下来,会有详细介绍分析的选项。保留所有的默认值,并添加(Decompiler Parameter ID)反编译器参数ID(这将为一个函数创建参数和局部变量。对于大文件来说,这可能会增加大量的分析时间,但对于WannaCry来说,这应该不会有什么问题)。

在 Ghidra 分析 WannaCry 时,可能会收到以下错误消息。不用管它,只需单击"OK"。

分析完成后如下所示:

#2、查找Main()函数

下一步是寻找启动 WannaCry 这个恶意软件的函数。正如我们在将恶意软件加载到 Ghidra 时所指出的,WannaCry 是一个便携式可执行文件 (PE)。每个 Windows 程序都有一个入口点,通常命名为 WinMain 或 wWinMain。请参阅下面的 Microsoft 文档。

当我们转到符号树并展开函数文件夹时,没有找到 WinMain 或 wWinMain 函数,但我们看到了entry函数。这可能与 WinMain() 具有相同的目的。让我们检查一下。

双击它,它将出现在列表窗口和反编译窗口。

#3、查找"killswitch"

通过扫描反编译窗口的代码,我们可以看到这个函数调用了另一个函数 FUN_00408140()。双击它来分析它。

然后你会在列表窗口和反编译窗口中看到一个URL。

它似乎将 URL 放入名为 puVar3 的变量中。

继续往下,我们可以看到对InternetOpenUrlA函数的引用。

我们可以通过 Microsoft Technet 搜索,看到 InternetOpenUrlA 函数正如你所预想的那样,它调用并打开指定的 URL。

在 InternetOpenUrlA 下方,我们看到几行使用 InternetCloseHandle。这些指定如果 iVar2 为 0 ,则关闭句柄并运行 FUN_00408090(),否则关闭句柄并终止程序。

这是 Marcus Hutchins 在第一次检查和分析 WannaCry 时注意到的。这是命令和控制 (C&C) 的 URL。如果程序尝试访问 URL 并返回 0,则程序自动终止。如果它没有终止,则执行 FUN_00408140()。让我们关注 FUN_00408140()。

#4、程序流程

在下一步中,让我们按照 FUN_00408140() 的流程进行操作。找到 Ghidra 顶部的 Window 选项卡,然后单击 Function Call Graph。

Ghidra 为我们生成了一个易于阅读的来自该函数的调用流程图,包括上游和下游。可以看到entry函数是FUN 00408140的上游,下游是InternetOpenA、InternetOpenUrlA、InternetCloseHandle和FUN_00408090

回到反编译窗口,让我们双击 FUN_00408090() 进入来分析它。

请注意,反编译器显示恶意软件会尝试调用 OpenServiceA函数。这包括打开 mssecv2.0_004312fc 的参数。这似乎打开了 Microsoft 安全服务。这很有趣...

当我们搜索微软的 Technet 时,我们发现没有这样的服务存在。该恶意软件正在启动一项伪装成合法的 Microsoft 安全服务的新服务,以掩盖其真实性质。

#本节概括

Wannacry 勒索软件有可能在 2017 年对互联网造成毁灭性打击。它利用当时最新发布的 EternalBlue 漏洞进入计算机系统,然后加密所有数据,直到他们支付赎金。Wannacry由朝鲜APT开发,他们未能掩盖或混淆恶意软件,最重要的是,没有注册C&C域。感谢 Marcus Hutchins,他检测到killswitch并解除了这个勒索软件继续感染,从而减轻了它的影响。

#说明

本文由合天网安实验室编译,如需转载,请注明来源 原文地址:Reverse Engineering Malware, Ghidra Part 3: Analyzing the WannaCry Ransomware (hackers-arise.com)

关于合天网安实验室

合天网安实验室(www.hetianlab.com)-国内领先的实操型网络安全在线教育平台

真实环境,在线实操学网络安全 ; 实验内容涵盖:系统安全,软件安全,网络安全,Web安全,移动安全,CTF,取证分析,渗透测试,网安意识教育等。

0 阅读:0

科技一颗大心心

简介:感谢大家的关注