萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux 病毒樣本手動靜態分析實戰:MD5 對比、Registry 異動、檔案系統快照取證

無沙箱環境下,利用 Live CD 與核心工具進行惡意軟體行為重建

當專業沙箱(Cuckoo、FireEye、Hybrid Analysis)不可用時,系統管理員可利用 Linux Live 環境、核心工具鏈對受感染 Windows 系統進行離線取證分析。本文實戰演示基於檔案系統快照與登錄檔對比的靜態分析流程。

一、分析環境準備

  • 分析平台:Ubuntu Live CD/USB(或 SystemRescueCD、Kali Linux)
  • 受測系統:Windows XP/7/10(NTFS 分區)
  • 儲存媒體:外接硬碟/大容量 USB(儲存快照、工具、證據)
  • 核心工具:md5sum/sha256sum、mount (NTFS-3g)、reglookup/hivex (Registry 解析)、diff、find、strings、file、yara

二、取證流程:雙快照對比法

階段 1:乾淨系統基線建立

  1. 全新安裝 Windows,安裝必要驅動、補丁、基線軟體
  2. 導出完整登錄檔:regedit /e C:\baseline.reg
  3. 啟動 Linux Live,掛載 Windows 系統盤:
mkdir /mnt/win
mount -t ntfs-3g -o ro /dev/sda2 /mnt/win  # 唯讀掛載保護證據
  1. 計算全盤檔案雜湊值(排除 pagefile.sys、hiberfil.sys):
find /mnt/win -type f -not -name "pagefile.sys" -not -name "hiberfil.sys" \
  -exec sha256sum {} + > /evidence/baseline.sha256
  1. 備份登錄檔:
cp /mnt/win/Windows/System32/config/SYSTEM /evidence/
cp /mnt/win/Windows/System32/config/SOFTWARE /evidence/
cp /mnt/win/Windows/System32/config/SAM /evidence/
cp /mnt/win/Windows/System32/config/SECURITY /evidence/
cp /mnt/win/Windows/System32/config/DEFAULT /evidence/
cp /mnt/win/Users/*/NTUSER.DAT /evidence/  # 用戶登錄檔

階段 2:病毒觸發與感染

  1. 重啟進入 Windows,拔除網線、拔除 USB(防止橫向移動、數據外洩)
  2. 執行病毒樣本,觀察行為(程序產生、網路連線、檔案寫入、註冊表修改)
  3. 感染穩定後,關機

階段 3:感染後快照採集

  1. 重啟 Linux Live,同樣唯讀掛載系統盤
  2. 導出感染後登錄檔:regedit /e C:\infected.reg(或直接複製 Registry Hive 檔案)
  3. 計算感染後全盤雜湊:
find /mnt/win -type f -not -name "pagefile.sys" -not -name "hiberfil.sys" \
  -exec sha256sum {} + > /evidence/infected.sha256

三、差異分析核心步驟

1. 檔案系統層面對比

# 新增檔案(僅在 infected 出現)
comm -13 <(sort /evidence/baseline.sha256) <(sort /evidence/infected.sha256) | \
  awk '{print $2}' > /evidence/new_files.txt

# 修改檔案(雜湊值不同)
join -j 2 <(sort -k2 /evidence/baseline.sha256) <(sort -k2 /evidence/infected.sha256) | \
  awk '$1 != $3 {print $2}' > /evidence/modified_files.txt

# 刪除檔案(僅在 baseline 出現)
comm -23 <(sort /evidence/baseline.sha256) <(sort /evidence/infected.sha256) | \
  awk '{print $2}' > /evidence/deleted_files.txt

2. 登錄檔對比

# 使用 hivexsh 解析並對比
hivexsh /evidence/SYSTEM.baseline -c 'cd ControlSet001\Services; ls' > /evidence/svc_baseline.txt
hivexsh /evidence/SYSTEM.infected -c 'cd ControlSet001\Services; ls' > /evidence/svc_infected.txt
diff -u /evidence/svc_baseline.txt /evidence/svc_infected.txt

# 關鍵啟動項位置
# HKLM\Software\Microsoft\Windows\CurrentVersion\Run
# HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce
# HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
# HKCU\Software\Microsoft\Windows\CurrentVersion\Run
# Services: HKLM\System\CurrentControlSet\Services\
# Scheduled Tasks: HKLM\Software\Microsoft\Windows\CurrentVersion\TaskScheduler

3. 關鍵指標篩選

  • 新增可執行檔:.exe、.dll、.scr、.bat、.cmd、.ps1、.vbs、.js、.jar
  • 啟動項異動:Run/RunOnce/服務/計劃任務/啟動資料夾/Winlogon/Userinit/Shell
  • 系統檔案替換:sfc 保護檔案被修改
  • 網路指標:防火牆規則新增、Proxy 設定、Hosts 檔案修改、Winsock LSP 注入
  • 權限提升痕跡:Token 操作、計劃任務 SYSTEM 權限、UAC 繞過

四、深度分析技術

1. 字串提取與 IOC 搜尋

# 提取可疑檔案字串
strings suspicious.exe | grep -iE "http|ftp|ip|dns|cmd|powershell|registry|service|driver|inject|hook|rootkit|keylog|steal|encrypt|ransom|bitcoin|wallet|tor|onion|c2|beacon"

# YARA 規則掃描
yara -r malware_rules.yar /mnt/win

2. PE 結構分析

# 檢查 PE 標頭、區段、導入表、資源
peframe suspicious.exe
# 或
objdump -x suspicious.exe
readelf -h suspicious.exe  # 若為 ELF

3. 記憶體取證(若有記憶體映像)

# Volatility 3
python3 vol.py -f mem.dmp windows.pslist
python3 vol.py -f mem.dmp windows.netscan
python3 vol.py -f mem.dmp windows.registry.hivelist
python3 vol.py -f mem.dmp windows.filescan

五、證據保全與報告

  1. 所有證據檔案計算 SHA256,記錄在證據清單中
  2. 建立分析時間線:log2timeline.py (Plaso) 產生超級時間線
  3. 撰寫分析報告:IOC 清單(IP、域名、檔案雜湊、登錄檔鍵值、互斥體、命名管道)、攻擊鏈重建 (MITRE ATT&CK 映射)、修復建議
  4. 提交威脅情報平台:VirusTotal、AlienVault OTX、MISP

六、自動化腳本框架

#!/bin/bash
# forensics_diff.sh  
MOUNT=$1
EVD=$2

find "$MOUNT" -type f -exec sha256sum {} + > "$EVD/current.sha256"
# 對比邏輯...
# 生成報告...

⚠️ 法律與道德邊界

  • 僅分析授權範圍內的系統
  • 嚴格遵循證據保全鏈
  • 不主動傳播惡意代碼、不攻擊第三方
  • 發現嚴重犯罪(兒童剝削、國家安全)應立即報警
copyright © 萬盛學電腦網 all rights reserved