MaximeGoune/-Malware-Analysis-Debugging-and-Reverse-Engineering
GitHub: MaximeGoune/-Malware-Analysis-Debugging-and-Reverse-Engineering
MaximeGoune/-Malware-Analysis-Debugging-and-Reverse-Engineering:使用Immunity Debugger进行恶意软件分析和逆向工程。
Stars: 0 | Forks: 0
# -恶意软件分析-调试与逆向工程
恶意软件分析:使用 Immunity Debugger 进行调试和逆向工程
目标 1
设置 Immunity Debugger
作为第一步,您将设置用于恶意软件分析的工具,即 Immunity Debugger。调试器的主要用途是在受控条件下运行目标程序并监控其执行以及其对系统资源的变化。这对于理解恶意软件在执行时的行为非常有帮助。
**python-2.7.1 安装程序,因为这是 Immunity Debugger 的必需依赖项。
**安装 ImmunityDebugger
目标 2 分析二进制文件 开始时,在 Immunity Debugger 中选择左上角的“文件”,然后选择“打开”。 点击“查找”下拉菜单,首先导航到本地磁盘 [C:]。 继续向下钻取,导航到 Program Files (x86) > Internet Explorer。 选择 ieinstal 可执行文件。
1. 汇编窗口(在左上角):本节有四列,显示不同的信息 - 第一列有内存地址。 - 第二列有每条汇编指令的 opcodes。 - 第三列是该行的汇编代码指令。 - 第四列是注释列,其中 Immunity 将给出一个纯文本注释,解释每条汇编代码行正在做什么(这不会出现在所有行上!)! 2. 寄存器窗口:显示程序执行中涉及的所有 CPU 寄存器。 3. 十六进制转储窗口:显示程序的十六进制视图。它包含内存地址、每个内存地址的十六进制值以及该内存地址的 ASCII 表示。 4. 栈窗口(在右下角):显示基于其执行的程序内存栈。 要充分利用调试器的这部分功能,您需要具备强大的汇编代码、计算机寄存器和内存知识。在下一节中,我们将查看一些可以以更易于普通人理解的方式提供信息的特性。 **点击“查看”>“日志”。 注意:这将打开一个窗口,显示与可执行文件使用的 DLL 相关的一些关键信息以及与可执行文件创建的线程相关的进程 ID。当使用监视您系统上进程的工具时,这可能很有用。
转到“查看”>“内存”。 注意:此视图将显示程序使用的所有内存块。它将提供有关其地址、大小、所有者和其访问权限的信息。
***返回到“查看”菜单,并选择“可执行文件模块”。这将提供有关程序使用的所有可执行文件的信息。
分析:动态链接库(DLLs)在 Windows 系统的恶意软件分析中起着重要作用。恶意软件通常会使用 DLLs 在 Windows 系统上执行某些功能,而不是尝试编写自定义函数或代码。这采用了一种称为“利用本地工具”的概念,其中黑客利用本地工具来完成恶意行为。能够获取正在使用的 DLL 列表并理解其功能是调查中的宝贵部分。 目标 3 分析恶意软件文件 您将使用在前一个挑战中学到的所有工具来分析恶意软件文件。Immunity Debugger 的主要优势是通过查看程序使用的指令、进程或可执行文件来识别恶意软件的功能。您的目标是识别恶意软件在系统上的主要功能。
要开始,转到“查看”>“日志”以查看恶意软件可执行文件的日志数据。
*Here you can see a list of the DLLs that it used, the process ID of the main threat, and the path of the malware that you are testing. **点击“查看”>“内存”
分析:这个特定的 DLL 能够记录键盘和鼠标输入。恶意软件运行此 DLL 并具有读写执行权限的事实表明,它具有内置的间谍软件功能。这代表了您对恶意软件功能的第一大线索。 最后,转到“查看”>“可执行文件模块”。
*注意/分析:在本节中,您可以审查正在使用的 DLL,以查看是否有可疑的或可提供有关可执行文件功能的线索。bcrypt.dll 的存在表明可能使用了加密。如果您怀疑它是一个基于监控的恶意软件,如 AcGeneral.dll 的使用所示,那么 bcrypt 可能用于加密正在泄露的数据。此外,win32u.dll 可能值得注意,因为其拼写不常规(win32.dll),这可能表明它是一个假/恶意 DLL。 1. 输入监控 DLLs 像 USER32、MSCTF、IMM32 等模块可以: 捕获按键 监控窗口焦点 拦截鼠标事件 安装全局钩子 2RWX 内存是真正的罪证 RWX(读-写-执行)内存几乎永远不会是合法的。它强烈表明: 未打包的有效负载 Shellcode 键记录器占位符 RAT 功能 进程注入 3-组合才是关键 输入能力 DLLs + RWX 内存 = 高置信度间谍软件指标。 **动态链接库是 Windows 文件(通常以 .dll 结尾),包含代码、函数和资源,程序可以在运行时加载和使用。 DLL 真正的含义(恶意软件分析视角) DLL 是一个共享库,为程序提供函数。与每个程序都包含自己的网络、图形、加密等代码副本不同,Windows 将该代码存储在 DLLs 中。 示例: KERNEL32.dll → 进程、内存、线程 USER32.dll → 键盘、鼠标、窗口 ADVAPI32.dll → 注册表、服务、权限 WININET.dll → HTTP、FTP、C2 流量 CRYPT32.dll → 证书、加密
**安装 ImmunityDebugger
目标 2 分析二进制文件 开始时,在 Immunity Debugger 中选择左上角的“文件”,然后选择“打开”。 点击“查找”下拉菜单,首先导航到本地磁盘 [C:]。 继续向下钻取,导航到 Program Files (x86) > Internet Explorer。 选择 ieinstal 可执行文件。
1. 汇编窗口(在左上角):本节有四列,显示不同的信息 - 第一列有内存地址。 - 第二列有每条汇编指令的 opcodes。 - 第三列是该行的汇编代码指令。 - 第四列是注释列,其中 Immunity 将给出一个纯文本注释,解释每条汇编代码行正在做什么(这不会出现在所有行上!)! 2. 寄存器窗口:显示程序执行中涉及的所有 CPU 寄存器。 3. 十六进制转储窗口:显示程序的十六进制视图。它包含内存地址、每个内存地址的十六进制值以及该内存地址的 ASCII 表示。 4. 栈窗口(在右下角):显示基于其执行的程序内存栈。 要充分利用调试器的这部分功能,您需要具备强大的汇编代码、计算机寄存器和内存知识。在下一节中,我们将查看一些可以以更易于普通人理解的方式提供信息的特性。 **点击“查看”>“日志”。 注意:这将打开一个窗口,显示与可执行文件使用的 DLL 相关的一些关键信息以及与可执行文件创建的线程相关的进程 ID。当使用监视您系统上进程的工具时,这可能很有用。
转到“查看”>“内存”。 注意:此视图将显示程序使用的所有内存块。它将提供有关其地址、大小、所有者和其访问权限的信息。
***返回到“查看”菜单,并选择“可执行文件模块”。这将提供有关程序使用的所有可执行文件的信息。
分析:动态链接库(DLLs)在 Windows 系统的恶意软件分析中起着重要作用。恶意软件通常会使用 DLLs 在 Windows 系统上执行某些功能,而不是尝试编写自定义函数或代码。这采用了一种称为“利用本地工具”的概念,其中黑客利用本地工具来完成恶意行为。能够获取正在使用的 DLL 列表并理解其功能是调查中的宝贵部分。 目标 3 分析恶意软件文件 您将使用在前一个挑战中学到的所有工具来分析恶意软件文件。Immunity Debugger 的主要优势是通过查看程序使用的指令、进程或可执行文件来识别恶意软件的功能。您的目标是识别恶意软件在系统上的主要功能。
要开始,转到“查看”>“日志”以查看恶意软件可执行文件的日志数据。
*Here you can see a list of the DLLs that it used, the process ID of the main threat, and the path of the malware that you are testing. **点击“查看”>“内存”
分析:这个特定的 DLL 能够记录键盘和鼠标输入。恶意软件运行此 DLL 并具有读写执行权限的事实表明,它具有内置的间谍软件功能。这代表了您对恶意软件功能的第一大线索。 最后,转到“查看”>“可执行文件模块”。
*注意/分析:在本节中,您可以审查正在使用的 DLL,以查看是否有可疑的或可提供有关可执行文件功能的线索。bcrypt.dll 的存在表明可能使用了加密。如果您怀疑它是一个基于监控的恶意软件,如 AcGeneral.dll 的使用所示,那么 bcrypt 可能用于加密正在泄露的数据。此外,win32u.dll 可能值得注意,因为其拼写不常规(win32.dll),这可能表明它是一个假/恶意 DLL。 1. 输入监控 DLLs 像 USER32、MSCTF、IMM32 等模块可以: 捕获按键 监控窗口焦点 拦截鼠标事件 安装全局钩子 2RWX 内存是真正的罪证 RWX(读-写-执行)内存几乎永远不会是合法的。它强烈表明: 未打包的有效负载 Shellcode 键记录器占位符 RAT 功能 进程注入 3-组合才是关键 输入能力 DLLs + RWX 内存 = 高置信度间谍软件指标。 **动态链接库是 Windows 文件(通常以 .dll 结尾),包含代码、函数和资源,程序可以在运行时加载和使用。 DLL 真正的含义(恶意软件分析视角) DLL 是一个共享库,为程序提供函数。与每个程序都包含自己的网络、图形、加密等代码副本不同,Windows 将该代码存储在 DLLs 中。 示例: KERNEL32.dll → 进程、内存、线程 USER32.dll → 键盘、鼠标、窗口 ADVAPI32.dll → 注册表、服务、权限 WININET.dll → HTTP、FTP、C2 流量 CRYPT32.dll → 证书、加密
标签:逆向工具