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, 主机隔离网络, 云资产清单, 动态恶意软件分析, 句柄查看, 威胁分析, 安全测试, 恶意行为监控, 恶意软件分析实验, 攻击性安全, 流量捕获, 网络拓扑, 网络隔离, 自动化侦查工具, 虚拟机分析, 逆向工程