anthonydirisio/Malware-Analysis-Lab

GitHub: anthonydirisio/Malware-Analysis-Lab

一个基于FlareVM和REMnux构建的恶意软件分析隔离实验环境,旨在通过静态分析、动态引爆和逆向工程来鉴别和分析恶意样本的内部运作机制。

Stars: 0 | Forks: 0

# 恶意软件分析与鉴别 ## 目标 创建一个隔离的虚拟环境,用于分析和引爆恶意样本。本项目的核心是通过逆向工程各种恶意软件样本进行实践操作,解剖并执行它们以观察其内部运作机制,并分析不同的行为以了解某个样本的具体意图。最终目标是确定样本是否具有恶意,基于已知的恶意二进制文件建立模式识别,并将 IOC 与 OSINT 进行交叉比对,以识别任何已知的恶意行为历史。 *我在学习 TCM 课程“Malware Analysis & Triage”时完成了这个实验环境,并且将继续进行更多的分析,因为这些虚拟机在我的宿主机上是持久运行的! ### 掌握的技能 - 静态恶意软件分析 - 动态恶意软件分析 - 钓鱼文档分析 - 读取和修改汇编语言 - 字符串与脚本去混淆 - YARA 规则编写 - 恶意软件报告与分析 ### 使用的工具 - Oracle VirtualBox - FlareVM - REMnux - 基础分析工具(FLOSS/Strings、Cutter、PEStudio、PEView) - 动态分析工具(Procmon、x32/x64 debuggers、TCPView、Wireshark、INetSim) - VirusTotal - YARA ## 样本分析过程 *对一个二进制文件的静态分析,显示出多个与恶意软件下载第二阶段 payload 一致的 API 调用。分析过程包括字符串提取、通过 PEStudio 提取的 API 导入,以及在 Cutter 中的主要反汇编。 StaticAnalysis *对同一二进制文件的动态分析。在 REMnux 上设置好 INetSim 和 Wireshark,并在 FlareVM 上启动 Procmon 后,我对样本进行了去防和引爆。引爆后,我发现了一个 DNS 请求,随后是到 HTTP 服务器的 TCP 连接,接着是对可疑地址的 GET 请求。结合在 FlareVM 上的这些活动,Procmon 显示了一个文件创建事件,进而导致一个脚本去执行它。脚本运行过程和创建的文件如截图所示。 image *调试允许对二进制文件进行逐步的执行控制。在调试器中,我们看到了与先前分析步骤中相同的 4 个主要 API 调用。InternetOpenW 使用 user agent Mozilla 打开了互联网句柄,然后将 5 个参数传递给 URLDownloadToFileW,以从指定域下载 CR433101.dat.exe 二进制文件。接着经历了几个其他的调用,直到我们将 6 个参数推入 ShellExecuteW API 调用中,随后执行了下载的 payload。 image ## 结论 在静态分析期间,发现的几个字符串与恶意软件的投放与执行特征一致。通过跨多个工具的关联分析,我们还可以看到 API 调用的顺序,与仅查看普通字符串相比,这让我们更容易理解恶意软件的执行流程。此外,在 VirusTotal 中进行文件哈希和域名地址的比对,也返回了其具有恶意意图的历史记录。在引爆该二进制文件后,证据显示了对外部域名的 DNS 请求,接着是下载未知文件的 HTTP 请求,最后是该文件的执行。由于我们处于使用 INetSim 的隔离环境中,因此并没有成功下载并执行其实际预期的第二阶段 payload。通过本次分析,结合 IOC 与 OSINT 的交叉比对、从非特定于用户的异常可写目录进行写入和执行的操作,以及经典的恶意软件投放/执行的 API 调用模式,我们可以稳妥地得出结论:该样本是恶意的!
标签:Ask搜索, DAST, DNS信息、DNS暴力破解, DNS 反向解析, ESC4, FlareVM, IP 地址批量处理, OSINT, PEStudio, REMnux, TCM安全课程, VirusTotal, Wireshark, YARA规则, 二进制分析, 云安全监控, 云安全运维, 云资产清单, 代码去混淆, 句柄查看, 威胁情报, 字符串提取, 安全实验室, 开发者工具, 快速连接, 恶意样本分析, 恶意软件分析, 搜索语句(dork), 样本引爆, 汇编语言, 沙箱, 网络信息收集, 网络安全, 脱壳, 虚拟环境, 逆向工程, 钓鱼文档分析, 防御研判, 隐私保护, 静态分析