📚 网络安全 Kali 学习系列
模块 0 基础阶段 ✅ 已完成
01-18 Linux → 网络 → 密码学 → 编程 → Docker
模块 1 信息收集 ✅ 已完成 | 模块 2 Web渗透 ✅ 已完成
19-31 扫描 → 漏洞 → sqlmap → XSS → WAF绕过
模块 3 代码审计 ✅ 已完成
32-37 审计入门 → Node.js → PHP → Java → Python → CVE复现
模块 4 漏洞利用与后渗透 ✅ 已完成
38-43 Metasploit → Payload → 提权 → 维持 → 免杀
模块 4-3 恶意软件分析(进行中)
44-46 逆向工程基础 ✓ | 47 静态分析 ✓
48 恶意软件动态分析(当前篇)
49 Windows 权限体系与域环境
恶意软件动态分析
网络安全 Kali 学习系列 · 第 48 篇 · 模块 4-3 恶意软件分析

读完本篇你将能:搭建安全的动态分析沙箱环境,使用 Process Monitor 监控进程行为,用 Wireshark 抓包分析恶意软件网络通信,用 Regshot 对比注册表变化,掌握 INetSim 和 FakeNet 模拟网络环境,理解 C2 信标通信模式,并能完成一份完整的恶意软件动态分析报告。

静态分析是"看代码猜行为",动态分析则是"真运行看行为"。恶意软件为了对抗静态分析,会使用加壳、混淆、字符串加密等手段,但只要程序运行起来,它的真实行为就无处遁形——创建了什么文件、修改了哪些注册表、连接了哪个 IP、发送了什么数据,全部可以被监控工具捕获。动态分析的关键是在安全的隔离环境中进行。

目录

第一章 动态分析环境搭建
第二章 进程监控:Process Monitor
第三章 文件与注册表变化对比
第四章 网络流量分析
第五章 网络模拟:INetSim 与 FakeNet
第六章 行为分析与 C2 识别
第七章 分级练习

第一章 动态分析环境搭建

动态分析的第一原则是隔离——绝不能让恶意软件接触到真实网络或主机文件。一个标准的动态分析环境需要:隔离的虚拟机、虚拟网络、流量捕获工具、行为监控工具、快照回滚能力。

1.1 沙箱架构

组件 作用 推荐工具
分析机(Kali) 运行分析工具、抓包、INetSim Kali Linux + Wireshark
靶机(Windows) 运行恶意样本、安装监控工具 Win10/Win7 + ProcMon
虚拟网络 隔离的内部网络,仅分析机可访问 VMware 仅主机模式
快照管理 分析后快速回滚到干净状态 VMware 快照
⚠️ 安全检查清单
运行样本前必须确认:
1. 靶机网络设为"仅主机模式"(NAT 和桥接都不安全)
2. 靶机已做干净快照,分析完可一键回滚
3. 分析机上的 INetSim 已启动(模拟 DNS/HTTP)
4. Wireshark 已开始抓包
5. 所有监控工具(ProcMon、Regshot)已准备就绪
6. 样本文件通过密码压缩包传入靶机

1.2 必备监控工具

Shell · Kali 侧工具安装 kali_tools.sh
1
2
3
4
5
6
7
8
9
# 网络模拟服务
sudo apt install -y inetsim fakenet-ng
 
# 流量分析
sudo apt install -y wireshark tshark tcpdump
 
# 其他分析工具
sudo apt install -y volatility3 # 内存取证
sudo apt install -y yara # 规则匹配

第二章 进程监控:Process Monitor

Process Monitor(ProcMon)是 Windows 平台最强大的进程行为监控工具,可以实时捕获进程的文件系统操作、注册表操作、网络操作、进程/线程创建等所有系统调用。恶意软件运行时做的每一件事,ProcMon 都能记录下来。

2.1 ProcMon 使用流程

ProcMon · 使用步骤 procmon_steps.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 分析前准备
1. 启动 ProcMon,默认会捕获所有事件
2. 先清空已有事件(Ctrl+X)
3. 设置过滤器(Filter → Filter)
- Process Name is malware.exe → Include
- Operation is RegSetValue → Include
 
// 运行样本
4. 点击 Capture 图标开始/暂停捕获
5. 双击运行恶意样本
6. 观察 1-2 分钟,等样本完成初始化
7. 暂停捕获(Ctrl+E)
 
// 保存日志(File → Save)
8. 保存为 CSV 格式,方便后续分析

2.2 重点关注的事件类型

事件类别 关注的操作 分析意义
文件系统 CreateFile、WriteFile、DeleteFile 释放 payload、创建副本、删除自身
注册表 RegSetValue、RegCreateKey 持久化(Run 键)、配置存储
网络 TCP Connect、Send、Receive C2 通信、数据外泄
进程 Process Create、Thread Create 进程注入、启动子进程

第三章 文件与注册表变化对比

除了实时监控,另一种方法是"前后对比"——运行样本前拍一张系统快照,运行后再拍一张,对比差异就能知道恶意软件做了什么修改。Regshot 是最经典的工具,专门用来对比注册表和文件系统的变化。

3.1 Regshot 使用方法

Regshot · 操作流程 regshot.txt
1
2
3
4
5
6
7
8
9
10
11
12
// 第一步:运行前快照
1. 启动 Regshot
2. 勾选 "Scan dir1"(可选:扫描指定目录)
3. 点击 "1st shot" → Shot
4. 等待扫描完成(几分钟)
 
// 第二步:运行恶意样本
5. 运行样本,等待 2-3 分钟
 
// 第三步:运行后快照 + 对比
6. 回到 Regshot,点击 "2nd shot" → Shot
7. 点击 "Compare" 生成差异报告

3.2 差异报告解读

Regshot 的报告分为几个部分:新增的键/值、删除的键/值、修改的键/值、新增文件、删除文件。不是所有变化都是恶意的——Windows 系统本身运行也会产生大量注册表变化。需要关注的是样本路径相关和经典持久化位置的变化。

💡 重点关注位置
注册表持久化位置:
- HKLM\Software\Microsoft\Windows\CurrentVersion\Run
- HKCU\Software\Microsoft\Windows\CurrentVersion\Run
- HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce
- HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows\Load

文件持久化位置:
- C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\
- C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\
- C:\Windows\System32\ (新增可疑 DLL/EXE)

第四章 网络流量分析

网络通信是恶意软件最重要的行为特征之一——几乎所有恶意软件都需要和 C2(命令与控制)服务器通信。通过抓包分析可以获取 C2 地址、通信协议、加密方式、信标频率等关键情报。

4.1 Wireshark 抓包分析

Wireshark · 分析流程 wireshark_analysis.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 1. 开始抓包
# 选择连接靶机的网卡,点击开始
wireshark -i eth0 -k -w capture.pcap &
 
# 2. 常用过滤表达式
http # HTTP 流量
dns # DNS 查询
ip.addr == 192.168.56.100 # 指定 IP 的流量
tcp.port == 4444 # 指定端口
tls # TLS/SSL 加密流量
 
# 3. 分析步骤
# 先看 DNS 查询 → 找域名
# 再看 HTTP 请求 → 找 URI 和 User-Agent
# 最后看 TCP 流 → 找通信模式和频率

4.2 常见 C2 通信特征

C2 类型 特征 常见家族
HTTP/HTTPS 信标 定时 GET/POST 请求、固定间隔、独特 UA Cobalt Strike、Emotet
DNS 隧道 大量 DNS 查询、子域名为编码数据 DNSCat、Cobalt Strike DNS
Raw TCP 非标准端口、固定大小数据包、心跳包 Metasploit、Gh0st RAT
域名生成算法(DGA) 大量 NXDOMAIN、随机字符串域名 Conficker、CryptoLocker

第五章 网络模拟:INetSim 与 FakeNet

动态分析有个矛盾:恶意软件需要联网才能展现完整行为,但我们又不能让它真的连到真实 C2(可能会下载更多 payload、发起攻击)。解决方案是网络模拟——在分析机上运行模拟服务,让恶意软件以为连到了真实网络,同时捕获所有通信内容。

5.1 INetSim 配置

INetSim 是 Kali 自带的网络模拟工具,可以模拟 DNS、HTTP、HTTPS、FTP、SMTP 等多种服务。它会响应所有 DNS 查询(返回自己的 IP),并提供假的 HTTP/FTP 服务,让恶意软件"以为"自己连到了真实服务器。

Shell · INetSim 配置与启动 inetsim_setup.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 编辑配置文件
sudo vim /etc/inetsim/inetsim.conf
 
# 关键配置项:
start_service dns # 启用 DNS 服务
start_service http # 启用 HTTP 服务
dns_default_ip 192.168.56.1 # 所有域名解析到分析机 IP
bind_address 192.168.56.1 # 监听地址
 
# 启动 INetSim
sudo inetsim
 
# 靶机 DNS 设为分析机 IP
# 这样所有 DNS 查询都会被 INetSim 拦截
💡 分析技巧
有些恶意软件会验证 C2 服务器的指纹(如特定 HTTP 响应头、特定内容),如果 INetSim 返回的假响应不符合预期,样本会直接退出。遇到这种情况,需要用静态分析先搞清楚 C2 的通信协议,然后修改 INetSim 的响应内容(或用 Python 写一个自定义假服务器)来欺骗恶意软件,让它继续执行后续行为。

第六章 行为分析与 C2 识别

收集完所有监控数据后,需要把零散的事件串起来,还原恶意软件的完整行为链。一个完整的分析报告需要回答:它怎么进来的、做了什么持久化、怎么通信、有什么危害、怎么清除。

6.1 行为链分析

阶段 典型行为 检测工具
初始执行 释放自身副本、创建互斥量、反调试检测 ProcMon、Ghidra
持久化 注册表 Run 键、计划任务、服务安装 Regshot、Autoruns
权限提升 令牌模拟、服务漏洞、UAC 绕过 ProcMon、Process Explorer
C2 通信 DNS 查询、HTTP 信标、加密流量 Wireshark、INetSim 日志
横向移动 SMB 连接、WMI 调用、RDP 登录 Wireshark、安全日志
数据窃取 文件读取、键盘记录、截屏、上传 ProcMon、Wireshark

6.2 分析报告结构

报告模板 · 动态分析报告 report_template.md
1
2
3
4
5
6
7
8
9
10
11
12
13
# 恶意软件动态分析报告
## 1. 样本基本信息
- 文件名 / 大小 / 类型
- MD5 / SHA1 / SHA256
## 2. 环境配置
- 操作系统版本 / 工具列表
## 3. 行为分析
- 文件系统操作 / 注册表操作
- 进程行为 / 网络通信
## 4. C2 分析
- C2 IP/域名 / 通信协议 / 信标频率
## 5. IOC(入侵指标)
## 6. 检测与清除建议

第七章 分级练习

🟢 基础验证

任务:搭建动态分析环境。(1) 创建一个 Windows 虚拟机,安装 ProcMon、Regshot、Wireshark;(2) 设置虚拟机网络为"仅主机模式";(3) 在 Kali 上安装并启动 INetSim,配置 DNS 返回 Kali IP;(4) 在 Windows 上设置 DNS 为 Kali IP,测试 ping 任意域名是否都解析到 Kali;(5) 在 Windows 上运行一个普通程序(如记事本),用 ProcMon 捕获其文件和注册表操作,用 Regshot 对比运行前后的系统变化。

🟡 组合应用

任务:找一个简单的木马样本(如 Poison Ivy、DarkComet 的老版本样本),完成完整动态分析:(1) 运行前用 Regshot 拍第一次快照,启动 ProcMon 和 Wireshark 开始捕获;(2) 运行样本,等待 3-5 分钟;(3) 停止捕获,保存数据;(4) 分析 ProcMon 日志:找出样本创建了哪些文件、修改了哪些注册表键(重点看 Run 键);(5) 分析 Wireshark 流量:找出 C2 IP/域名、通信端口、请求间隔;(6) 用 Regshot 对比找出持久化机制;(7) 整理成一份简单的分析报告,包含 IOC 列表。

🔴 开放挑战

任务:选择一个 Cobalt Strike 或 Metasploit 生成的 beacon payload(自己生成更安全),深入分析其 C2 通信机制:(1) 先做静态分析,找出加壳方式并脱壳;(2) 动态运行,用 Wireshark 捕获完整的 C2 通信流量;(3) 分析通信协议:是 HTTP 还是 raw TCP?信标间隔多少?请求的 URI 是什么?User-Agent 是什么?(4) 如果是加密流量,尝试用 ProcMon 配合断点调试找出加密密钥和明文内容;(5) 写一份详细的 C2 协议分析报告,包含可以用来检测的特征(YARA/Snort 规则)。

进阶方向:学习使用 Cuckoo Sandbox 自动化沙箱——它可以自动运行样本并生成图文并茂的分析报告,还能生成 PCAP 抓包文件和行为截图。Cuckoo 是开源的,可以本地搭建,适合批量分析大量样本。

知识回顾

沙箱隔离 Process Monitor Regshot 对比 Wireshark 抓包 INetSim 模拟 FakeNet-NG C2 信标通信 DNS 隧道 DGA 域名生成 持久化检测 行为链分析 IOC 指标 分析报告

下一篇预告

恶意软件分析两篇告一段落。下一篇进入全新的模块——Windows 权限体系与域环境搭建。域(Domain)是企业 Windows 网络的核心管理架构,也是内网渗透的主战场。Active Directory(AD)域环境涉及域控制器、组策略、Kerberos 认证、DNS 集成等大量概念。下一篇将从 Windows 权限体系讲起,然后介绍域环境的搭建方法,为后续的域渗透学习打基础。域渗透是高级渗透测试的必备技能,也是红队操作的核心内容。

关注本公众号,持续获取网络安全 Kali 学习系列更新。如果觉得有帮助,欢迎点赞、在看、分享给同样在学习网络安全的朋友。