某攻防钓鱼样本分析教学文档
1. 样本基础静态分析
基础静态分析是样本分析的第一步,其目的在于在不运行样本的情况下,通过多种工具获取样本的初步信息,以评估其潜在风险并指导后续分析。
1.1 微步沙箱检测
将样本提交至在线威胁分析平台(如微步云沙箱)进行自动化检测,是快速获取威胁情报的有效方法。分析报告通常包含以下关键信息:
- 威胁判定:平台会给出样本是否为恶意软件及其所属家族(如后门、下载器、窃密木马等)的初步判断。
- 行为摘要:展示样本运行过程中尝试执行的关键操作,例如文件创建、进程启动、网络连接、注册表修改等。
- 网络行为:记录样本尝试连接的域名、IP地址及端口,用于关联C2(命令与控制)服务器。
- 文件行为:列出样本释放、创建或修改的文件路径。
- 安全评分:平台根据行为综合给出的风险评分,可作参考。
1.2 DIE (Detect It Easy) 分析
DIE是一款功能强大的查壳工具,用于识别样本是否经过加壳、混淆或加密处理,并确定其编译器和文件结构。
- 文件类型:确认样本是PE(Portable Executable, Windows可执行文件)、ELF(Linux可执行文件)还是其他格式。
- 加壳/混淆信息:检测样本是否使用了UPX、ASPack、VMProtect等加壳工具,或是否经过混淆处理。若已加壳,则需先进行脱壳才能进行有效的静态反编译分析。
- 编译器信息:识别生成此可执行文件的编译器,如Microsoft Visual C++、MinGW、Delphi等,这有助于后续的逆向工程分析。
- 入口点:显示程序的原始入口点(OEP)地址,对于加壳程序,此处显示的是壳的入口。
1.3 PEStudio 分析
PEStudio是一款专注于恶意软件初始评估的PE文件分析工具,它能快速揭示样本的潜在可疑指标。
- 哈希值:提供MD5、SHA1、SHA256等多种哈希值,用于在威胁情报平台(如VirusTotal)进行搜索,查看全球检测结果。
- 字符串分析:提取文件中所有可读的字符串(包括ASCII和Unicode),这是静态分析中极其重要的一步。分析师需从中寻找可疑内容,如:
- URL、域名、IP地址。
- 可疑的API函数名(如
CreateRemoteThread,WriteProcessMemory,URLDownloadToFile)。 - 路径信息、可能的互斥体名称、注册表键。
- 错误信息、对话框文本。
- 导入表分析:列出样本从系统DLL中导入的函数。重点关注网络操作(
Ws2_32.dll中的socket,connect)、进程操作(Kernel32.dll中的CreateProcess,VirtualAllocEx)、文件操作、注册表操作、服务操作相关的API。 - 节区信息:查看各个节区(如
.text,.data,.rdata)的名称、大小、虚拟地址和熵值。高熵值节区可能意味着加密或压缩的数据。 - 资源:检查样本内嵌的资源,如图标、图片、配置文件或其他二进制数据,这些资源中可能包含加密的payload或C2配置。
1.4 静态分析简要总结
在完成上述工具分析后,应形成一份简要总结,内容包括:
- 样本基本属性:文件名、哈希值、文件大小、是否加壳。
- 主要可疑指标:从字符串和导入表中发现的关键线索。
- 初步行为假设:基于现有信息,推测样本可能的功能(例如:下载者、远程控制后门、信息窃取等)。
- 后续分析方向:明确下一步是进行动态行为分析还是直接进入逆向工程。
2. 样本基础行为分析
基础行为分析在受控的隔离环境(如虚拟机)中运行样本,观察其对系统产生的实际影响。常用工具有Process Monitor、Process Explorer、Wireshark、API Monitor等。
- 文件系统操作:监控样本创建、修改、删除的文件。重点关注系统目录、临时目录、用户目录下的可疑文件,特别是DLL、EXE、配置文件等。
- 注册表操作:监控对注册表的读写,特别是用于持久化(自启动)的键值,如:
HKCU\Software\Microsoft\Windows\CurrentVersion\RunHKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunRunOnce,Policies\Explorer\Run等。
- 进程操作:监控样本创建的子进程、进程注入行为或对系统进程的篡改。
- 网络活动:捕获样本发起的网络连接,记录目标IP/域名、端口、通信协议和传输内容。这是定位C2服务器的关键。
- 系统服务/计划任务:监控样本是否创建了新的服务或计划任务以实现持久化。
基础行为分析简要总结:总结样本在运行期间表现出的核心恶意行为序列,例如:样本A运行后,在%Temp%目录释放文件B,创建进程C,并尝试连接域名D的443端口。
3. 样本详细分析
此阶段结合动态调试与静态逆向,深入剖析样本的执行逻辑。
3.1 第一次用户执行样本
分析样本在受害者首次双击运行时的行为链:
- 入口点与初始化:从OEP开始,分析初始化例程,可能包括解码字符串、加载关键库、检查反调试、检测虚拟机环境等。
- 核心逻辑展开:
- 持久化机制:分析样本如何将自己写入注册表启动项、系统服务、计划任务或启动文件夹。
- 释放与加载:分析样本如何解密或释放额外的恶意模块(DLL、EXE)、配置文件或勒索信到磁盘,并可能通过
LoadLibrary、CreateProcess或进程镂空(Process Hollowing)等技术加载执行。 - C2通信:分析网络通信模块,包括如何解析C2地址(可能硬编码、从资源节解密、或通过DGA算法生成)、通信协议(HTTP/HTTPS/DNS)、数据加密方式以及接收指令的格式。
- 信息收集:分析样本具备的窃密功能,如键盘记录、屏幕截图、收集浏览器密码、文件遍历、系统信息收集等。
3.2 第二次样本自执行
分析样本在实现持久化后,系统重启或满足特定条件时,如何被再次激活并执行其恶意载荷。重点分析其持久化后的加载器(DLL、服务、计划任务)如何解密、加载和执行核心的恶意代码,其流程可能与首次执行不同(例如,首次执行负责安装,后续执行负责常驻驻留和连接C2)。
3.3 总结分析
在完成详细分析后,形成对样本的完整画像:
- 攻击链还原:清晰地描述从执行到驻留、再到建立通信和执行恶意功能的完整流程。
- 技术点归纳:总结样本使用的关键技术,如反分析技巧(反调试、反沙箱)、注入技术、加密算法、通信隐蔽技术等。
- IoC提取:整理出可用于威胁狩猎的指标,包括文件哈希、C2域名/IP、互斥体名称、注册表键、特定字符串等。
4. 动态样本分析
此部分通常指在沙箱环境中进行更深入的行为监控和内存分析,或利用调试器进行单步跟踪,以验证和补充静态分析的结果。关注点包括:
- 内存行为:监控样本在运行期间对内存的申请、修改(特别是代码注入)。
- API调用序列:详细记录关键的API调用及其参数,深入理解其行为意图。
- 规避技术:观察并分析样本使用的沙箱检测、调试器检测技术及其绕过逻辑。
5. 关联分析与威胁情报
5.1 ICO(图标)分析
样本的图标有时会伪装成常见软件(如PDF、Word文档、安装程序)的图标以诱骗用户。可以提取图标哈希,在威胁情报库中搜索,有时可关联到同源的攻击活动。
5.2 云沙箱信息关联
将样本的哈希、C2等信息输入多个威胁情报平台(如VirusTotal, AlienVault OTX, ThreatMiner),查看是否有其他安全厂商的分析报告,获取更丰富的上下文信息,如归属的APT组织、攻击活动名称(Campaign)等。
6. 防护与检测建议
基于以上分析,提出针对性的安全防护措施:
- 终端防护:配置HIPS/EDR规则,检测和阻止样本的持久化、进程注入、敏感目录文件创建等行为。
- 网络防护:在防火墙或IDS/IPS上封禁已识别的恶意IP/域名,检测异常的出站连接(尤其是到非常用端口)。
- 用户意识:警惕来历不明的邮件附件和链接,谨慎下载和运行文件。
- IoC应用:将提取的IoC输入安全设备,进行内部网络的历史日志回溯和未来威胁狩猎。