DouaaDardour/dynamic-malware-analysis-guide-
GitHub: DouaaDardour/dynamic-malware-analysis-guide-
一份面向实战的动态恶意软件分析实验指南,解决在隔离环境中复现与观测恶意行为的问题。
Stars: 0 | Forks: 0
# 分析使用 REMnux + Windows 10 🔬
🏗️ 环境架构
┌─────────────────────┐ 隔离网络 ┌─────────────────────┐
│ Windows 10 VM │ ◄──────────────────► │ REMnux VM │
│ (执行恶意软件) │ │ (监控流量) │
│ 192.168.56.101 │ │ 192.168.56.102 │
└─────────────────────┘ └─────────────────────┘
两台虚拟机必须位于相同的 host-only 网络(例如 VirtualBox Host-Only Network)
⚙️ 步骤 0 — 初始配置
在 REMnux 上 — 配置网络服务
bash# 查看 REMnux 的 IP
ip a
# 启动 INetSim(模拟 DNS、HTTP、SMTP 等)
sudo inetsim
# 或启动 FakeNet-NG
sudo fakenet
在 Windows 10 上 — 将 DNS 指向 REMnux
控制面板 → 网络 → IPv4 → 手动 DNS:
首选 DNS : 192.168.56.102 (REMnux 的 IP)
默认网关 : 192.168.56.102
✅ 在开始之前对两台虚拟机创建快照!
📁 步骤 1 — 准备 Windows 10
禁用 Windows Defender
powershell# PowerShell (管理员)
Set-MpPreference -DisableRealtimeMonitoring $true
Set-MpPreference -DisableIOAVProtection $true
# 通过组策略禁用
gpedit.msc → 计算机配置 → 管理模板 →
Windows Defender → 关闭 Windows Defender → 启用
在 Windows 10 上安装的工具有
✔ Process Monitor (ProcMon) - Sysinternals
✔ Process Explorer - Sysinternals
✔ Autoruns - Sysinternals
✔ Regshot - SourceForge
✔ Wireshark - wireshark.org
✔ x64dbg - x64dbg.com
✔ API Monitor - apimonitor.com
📸 步骤 2 — Regshot 快照(执行前)
1. 打开 Regshot
2. 点击 "1st shot" → "Shot and Save"
3. 选择输出文件夹(例如 C:\Analysis\)
4. 等待扫描完成
🔍 步骤 3 — 启动 Process Monitor
1. 以管理员身份打开 Procmon.exe
2. 配置筛选器:
筛选器 → 添加:
├── "进程名称" → "malware.exe" → 包含
├── "操作" → "RegSetValue" → 包含
└── "操作" → "WriteFile" → 包含
3. 清空日志:Ctrl+X
4. 后台保持运行
🌐 步骤 4 — 网络捕获
在 REMnux 上 — 使用 Wireshark 或 tcpdump
bash# 在网络接口上捕获所有流量
sudo tcpdump -i eth0 -w /home/remnux/capture.pcap
# 或启动 Wireshark GUI
wireshark &
# 实时查看 HTTP/HTTPS/DNS 连接
sudo tcpdump -i eth0 -n port 80 or port 443 or port 53
在 REMnux 上 — INetSim(模拟服务)
bash# 启动 INetSim
sudo inetsim --log-dir /var/log/inetsim/
# 实时查看日志
tail -f /var/log/inetsim/service.log
# 查看被拦截的 DNS 请求
tail -f /var/log/inetsim/dns.log
▶️ 步骤 5 — 执行恶意软件
powershell# 在 Windows 10 上 — PowerShell(管理员)
# 导航到样本目录
cd C:\Samples\
# 执行前检查哈希值
Get-FileHash malware.exe -Algorithm SHA256
Get-FileHash malware.exe -Algorithm MD5
# 执行恶意软件
.\malware.exe
⏱️ 保持运行 3 到 5 分钟以观察完整行为
🔎 步骤 6 — 观察进程
在 Windows 10 上 — 使用 Process Explorer
1. 以管理员身份打开 Process Explorer
2. 定位 malware.exe 进程
3. 双击 → "TCP/IP" 选项卡 → 网络连接
4. "DLL" 选项卡 → 加载的可疑 DLL
5. 检查:是否创建了子进程?
粉红色 = 打包/可疑
紫色 = DLL 注入
命令行
powershell# 列出所有活跃进程
tasklist /v
# 查看活跃的网络连接
netstat -anob
# 查看带有 PID 的连接
netstat -ano | findstr "ESTABLISHED"
# 通过 PID 识别进程
tasklist | findstr "1234"
📋 步骤 7 — 在 REMnux 上分析网络
bash# 分析捕获的 pcap 文件
tcpdump -r /home/remnux/capture.pcap
# 过滤 DNS 请求
tcpdump -r capture.pcap port 53
# 过滤 HTTP 流量
tcpdump -r capture.pcap port 80 -A
# 使用 NetworkMiner 分析 pcap
networkminer capture.pcap
# 从 pcap 提取 HTTP URL
strings capture.pcap | grep -i "http"
strings capture.pcap | grep -i "GET\|POST\|Host:"
🧬 步骤 8 — 在 REMnux 上进行行为分析
bash# 使用 REMnux 工具扫描样本
# 提取字符串
strings malware.exe | less
strings -el malware.exe # Unicode 字符串
# 使用 YARA 扫描
yara -r /usr/share/yara-rules/ malware.exe
# 使用 pescanner 分析
pescanner malware.exe
# 检查 PE 文件的导入/导出
pedump malware.exe
# 检测加壳器
peframe malware.exe
🐛 步骤 9 — 使用 x64dbg(Windows 10)进行调试
1. 以管理员身份打开 x64dbg
2. 文件 → 打开 → malware.exe
设置以下断点(F2):
├── CreateFile → 文件创建/修改
├── RegSetValueEx → 注册表修改(持久化)
├── VirtualAllocEx → 内存注入
├── WriteProcessMemory → 注入到其他进程
├── CreateRemoteThread → 远程线程创建
├── InternetOpen → 网络连接(WinINet)
├── connect / send → 网络套接字通信
└── CryptEncrypt → 加密(勒索软件)
x64dbg 快捷键:
F7 → 步入
F8 → 步过
F9 → 运行
F2 → 在当前行设置断点
bp CreateFileA → 在 API 上设置断点
📸 步骤 10 — Regshot 快照(执行后)
1. 返回 Regshot
2. 点击 "2nd shot" → "Shot and Save"
3. 点击 "Compare" → "HTML Report"
4. 报告将显示:
├── 新增的注册表键(持久化!)
├── 修改的键
├── 创建/修改的文件
└── Run/RunOnce 值(自启动)
📊 步骤 11 — 在 REMnux 上收集 IOCs
bash# 查看所有 INetSim 日志
cat /var/log/inetsim/service.log
# 从 pcap 提取 IP 和域名
tshark -r capture.pcap -T fields -e ip.dst | sort -u
tshark -r capture.pcap -T fields -e dns.qry.name | sort -u
# 在恶意软件字符串中搜索 IP
strings malware.exe | grep -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'
# 搜索 URL
strings malware.exe | grep -iE 'http|ftp|smtp'
📝 最终报告 — IOC 检查清单
□ 样本的 SHA256 哈希值
□ 创建/修改的文件(ProcMon)
□ 注册表键(Regshot)
□的进程 / 注入(ProcExp)
□ 网络连接(IP、域名、端口)
□ DNS 请求(INetSim 日志)
□ 使用的 HTTP User-Agent
□ 识别的持久化机制
□ 创建的互斥体
□ 整体行为(勒索软件 / RAT / 键盘记录器等)
💡 总结工作流:
INetSim 开启(REMnux)→ Regshot 第一轮 → ProcMon 开启 → Wireshark 开启 → 执行恶意软件 → 观察 5 分钟 → Regshot 第二轮 → 在 REMnux 上分析 pcap
标签:API Monitor, Autoruns, DNS重定向, FakeNet-NG, INetSim, IP 地址批量处理, Process Explorer, Process Monitor, Regshot, REMnux, T1055, T1057, T1071, Windows 10, Wireshark, 主机隔离网络, 云资产清单, 动态恶意软件分析, 句柄查看, 威胁分析, 安全测试, 恶意行为监控, 恶意软件分析实验, 攻击性安全, 流量捕获, 网络拓扑, 网络隔离, 自动化侦查工具, 虚拟机分析, 逆向工程