Communitygithub.com

SamuelChien/mega-skills-collection

使用 dd 和 dcfldd 建立符合鑑識標準的逐位元磁碟映像,並透過雜湊驗證確保證據完整性。

mega-skills-collection 是什麼?

此技能提供一套完整的數位鑑識工作流程,用於在 Linux 環境中執行逐位元磁碟映像擷取,並確實保存證據完整性。它支援標準的 `dd` 工具以及增強版 `dcfldd`,後者具備內建雜湊與分割輸出的功能,尤其適合鑑識用途。技能涵蓋工作流程的每個步驟,包括:使用 `lsblk` 與 `fdisk` 進行裝置識別、利用軟體寫入封鎖(如 `blockdev --setro`)防止資料變更、對來源裝置進行預先雜湊驗證,以及將映像檔輸出至結構化的案件資料夾。進階功能包括:透過 `conv=noerror,sync` 處理讀取錯誤、使用 `gzip` 壓縮節省儲存空間、以 `dcfldd` 進行自動雜湊記錄與分割成較小區塊,以及最終的映像完整性比對。此流程適用於執法機關、事件應變或任何需要無懈可擊數位證據鏈的場合。技能也提供網路擷取(透過 SSH 管線傳送 dd)和處理故障磁碟(搭配 `ddrescue`)等常見情境的解決方案。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/SamuelChien/mega-skills-collection/tree/HEAD/acquiring-disk-image-with-dd-and-dcfldd

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

使用 dd 和 dcfldd 擷取磁碟映像

使用時機

  • 需要為調查建立嫌疑磁碟的鑑識副本時
  • 在事件應變過程中,保護易失性磁碟證據以便後續分析時
  • 當執法機關或法律程序要求可驗證的逐位元副本時
  • 在對儲存裝置執行任何破壞性分析之前
  • 從實體硬碟、USB 裝置或記憶卡擷取映像時

先決條件

  • 以 Linux 為基礎的鑑識工作站(SIFT、Kali 或任何 Linux 發行版)
  • dd(所有 Linux 系統皆已預裝)或 dcfldd(增強的鑑識版本)
  • 已設定硬體或軟體寫入封鎖器
  • 具有足夠儲存空間(大於來源)的目的地磁碟
  • 鑑識工作站上的 root / sudo 權限
  • SHA-256 或 MD5 雜湊工具(sha256sum、md5sum)

工作流程

步驟 1:識別目標裝置並啟用寫入保護

# 列出所有連接的區塊裝置以識別目標
lsblk -o NAME,SIZE,TYPE,MOUNTPOINT,MODEL

# 驗證裝置詳細資訊
fdisk -l /dev/sdb

# 啟用軟體寫入封鎖(如果沒有硬體封鎖器)
blockdev --setro /dev/sdb

# 驗證唯讀狀態
blockdev --getro /dev/sdb
# 輸出:1(表示已啟用唯讀)

# 或者,使用 udev 規則進行持續性寫入封鎖
echo 'SUBSYSTEM=="block", ATTRS{serial}=="WD-WCAV5H861234", ATTR{ro}="1"' > /etc/udev/rules.d/99-writeblock.rules
udevadm control --reload-rules

步驟 2:準備目的地並記錄來源

# 建立案件目錄結構
mkdir -p /cases/case-2024-001/{images,hashes,logs,notes}

# 記錄來源磁碟資訊
hdparm -I /dev/sdb > /cases/case-2024-001/notes/source_drive_info.txt

# 記錄序號與型號
smartctl -i /dev/sdb >> /cases/case-2024-001/notes/source_drive_info.txt

# 預先雜湊來源裝置
sha256sum /dev/sdb | tee /cases/case-2024-001/hashes/source_hash_before.txt

步驟 3:使用 dd 擷取映像

# 基本 dd 擷取,含進度顯示與錯誤處理
dd if=/dev/sdb of=/cases/case-2024-001/images/evidence.dd \
   bs=4096 \
   conv=noerror,sync \
   status=progress 2>&1 | tee /cases/case-2024-001/logs/dd_acquisition.log

# 若需節省空間,可使用壓縮映像
dd if=/dev/sdb bs=4096 conv=noerror,sync status=progress | \
   gzip -c > /cases/case-2024-001/images/evidence.dd.gz

# 使用指定計數進行部分擷取
dd if=/dev/sdb of=/cases/case-2024-001/images/first_1gb.dd \
   bs=1M count=1024 status=progress

步驟 4:使用 dcfldd 擷取(較佳的鑑識方法)

# 若未安裝 dcfldd,請先安裝
apt-get install dcfldd

# 擷取映像並啟用內建雜湊與分割輸出
dcfldd if=/dev/sdb \
   of=/cases/case-2024-001/images/evidence.dd \
   hash=sha256,md5 \
   hashwindow=1G \
   hashlog=/cases/case-2024-001/hashes/acquisition_hashes.txt \
   bs=4096 \
   conv=noerror,sync \
   errlog=/cases/case-2024-001/logs/dcfldd_errors.log

# 將大型映像分割成可管理的區段
dcfldd if=/dev/sdb \
   of=/cases/case-2024-001/images/evidence.dd \
   hash=sha256 \
   hashlog=/cases/case-2024-001/hashes/split_hashes.txt \
   bs=4096 \
   split=2G \
   splitformat=aa

# 執行具驗證通次的擷取
dcfldd if=/dev/sdb \
   of=/cases/case-2024-001/images/evidence.dd \
   hash=sha256 \
   hashlog=/cases/case-2024-001/hashes/verification.txt \
   vf=/cases/case-2024-001/images/evidence.dd \
   verifylog=/cases/case-2024-001/logs/verify.log

步驟 5:驗證映像完整性

# 計算已擷取映像的雜湊值
sha256sum /cases/case-2024-001/images/evidence.dd | \
   tee /cases/case-2024-001/hashes/image_hash.txt

# 比較來源與映像的雜湊值
diff <(sha256sum /dev/sdb | awk '{print $1}') \
     <(sha256sum /cases/case-2024-001/images/evidence.dd | awk '{print $1}')

# 若使用分割映像,請驗證每個區段
sha256sum /cases/case-2024-001/images/evidence.dd.* | \
   tee /cases/case-2024-001/hashes/split_image_hashes.txt

# 重新計算來源雜湊以確認沒有發生任何變更
sha256sum /dev/sdb | tee /cases/case-2024-001/hashes/source_hash_after.txt
diff /cases/case-2024-001/hashes/source_hash_before.txt \
     /cases/case-2024-001/hashes/source_hash_after.txt

步驟 6:記錄擷取過程

# 產生擷取報告
cat << 'EOF' > /cases/case-2024-001/notes/acquisition_report.txt
磁碟映像擷取報告
==============================
案件編號:2024-001
日期/時間:$(date -u +"%Y-%m-%d %H:%M:%S UTC")
鑑識人員:[姓名]

來源裝置:/dev/sdb
型號:[從 hdparm 輸出]
序號:[從 hdparm 輸出]
容量:[從 fdisk 輸出]

擷取工具:dcfldd v1.9.1
區塊大小:4096
寫入封鎖器:[硬體/軟體型號]

映像檔:evidence.dd
映像雜湊(SHA-256):[來自雜湊檔]
來源雜湊(SHA-256):[來自雜湊檔]
雜湊比對:是/否

擷取期間錯誤:[來自錯誤日誌]
EOF

# 壓縮日誌以利歸檔
tar -czf /cases/case-2024-001/acquisition_package.tar.gz \
   /cases/case-2024-001/hashes/ \
   /cases/case-2024-001/logs/ \
   /cases/case-2024-001/notes/

關鍵概念

概念說明
逐位元複製來源的完全複本,包含未配置空間與 Slack 空間
寫入封鎖器防止寫入證據媒體的硬體或軟體機制
雜湊驗證比較來源與映像的加密雜湊,以證明完整性
區塊大小(bs)影響速度的傳輸區塊大小;鑑識上典型值為 4096 或 64K
conv=noerror,sync遇到讀取錯誤時繼續處理,並以零填充以維持偏移對齊
證據鏈證明證據未遭竄改的書面記錄
分割映像將大型映像分割成較小檔案,方便儲存與傳輸
Raw/dd 格式不含中繼資料容器負擔的逐位元映像格式

工具與系統

工具用途
dd標準 Unix 磁碟複製工具,用於原始映像處理
dcfldd美國國防部電腦鑑識實驗室強化版 dd,具備雜湊功能
dc3dd來自美國國防部網路犯罪中心的另一款鑑識用 dd 變體
sha256sum用於完整性驗證的 SHA-256 雜湊計算工具
blockdev設定區塊裝置唯讀模式的 Linux 指令
hdparm磁碟識別與參數回報工具
smartctl用於磁碟健康狀況與識別的 S.M.A.R.T. 資料擷取工具
lsblk區塊裝置列舉與識別工具

常見情境

情境 1:擷取嫌疑筆記型電腦硬碟 透過 Tableau T35u 硬體寫入封鎖器連接磁碟,識別為 /dev/sdb,使用 dcfldd 搭配 SHA-256 雜湊,分割成 4GB 區段以便燒錄至 DVD,驗證雜湊相符,並在案件筆記中記錄。

情境 2:從受入侵工作站擷取 USB 隨身碟映像 使用 blockdev --setro 進行軟體寫入封鎖,以 dcfldd 搭配 MD5 與 SHA-256 雙重雜湊擷取,映像檔夠小可存為單一檔案,驗證後儲存在加密的案件磁碟中。

情境 3:透過網路遠端擷取 使用 dd 透過 netcat 或 SSH 進行遠端擷取:ssh root@remote "dd if=/dev/sda bs=4096" | dd of=remote_image.dd bs=4096,在兩端各自計算雜湊以驗證傳輸完整性。

情境 4:從故障磁碟擷取 先使用 ddrescue 復原可讀取的磁區,再使用 dd 搭配 conv=noerror,sync 以零填充空白區域,並在錯誤日誌中記錄哪些磁區無法讀取。

輸出格式

擷取摘要:
  來源:      /dev/sdb (500GB Western Digital WD5000AAKX)
  目的地:    /cases/case-2024-001/images/evidence.dd
  工具:      dcfldd 1.9.1
  區塊大小:  4096 位元組
  持續時間:  2 小時 15 分鐘 32 秒
  複製位元數:500,107,862,016
  錯誤:      0 個損壞磁區
  來源 SHA-256:  a3f2b8c9d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1
  映像 SHA-256:   a3f2b8c9d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1
  驗證結果:    通過 - 雜湊相符

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

SamuelChien/mega-skills-collection

Security audit, hardening, threat modeling (STRIDE/PASTA), Red/Blue Team, OWASP checks, code review, incident response, and infrastructure security for any project.

SamuelChien/mega-skills-collection

Arquitecto de Soluciones Principal y Consultor Tecnológico de Andru.ia. Diagnostica y traza la hoja de ruta óptima para proyectos de IA en español.

SamuelChien/mega-skills-collection

Ingeniero de Sistemas de Andru.ia. Diseña, redacta y despliega nuevas habilidades (skills) dentro del repositorio siguiendo el Estándar de Diamante.

SamuelChien/mega-skills-collection

Estratega de Inteligencia de Dominio de Andru.ia. Analiza el nicho específico de un proyecto para inyectar conocimientos, regulaciones y estándares únicos del sector. Actívalo tras definir el nicho.

SamuelChien/mega-skills-collection

2D game development principles. Sprites, tilemaps, physics, camera.

SamuelChien/mega-skills-collection

3D game development principles. Rendering, shaders, physics, cameras.

SamuelChien/mega-skills-collection

Expert in building 3D experiences for the web - Three.js, React Three Fiber, Spline, WebGL, and interactive 3D scenes. Covers product configurators, 3D portfolios, immersive websites, and bringing depth to web experiences.

SamuelChien/mega-skills-collection

Accessibility audit skill for scanning, fixing, and verifying WCAG 2.2 Level A and AA compliance across React, Next.js, Vue, Angular, Svelte, and plain HTML codebases. Use when auditing accessibility, fixing a11y violations, checking color contrast, generating compliance reports, or integrating accessibility checks into CI/CD pipelines.

SamuelChien/mega-skills-collection

Ab Test Analyzer - Auto-activating skill for Data Analytics. Triggers on: ab test analyzer, ab test analyzer Part of the Data Analytics skill category.

SamuelChien/mega-skills-collection

A B Test Config Creator - Auto-activating skill for ML Deployment. Triggers on: a b test config creator, a b test config creator Part of the ML Deployment skill category.

SamuelChien/mega-skills-collection

When the user wants to plan, design, or implement an A/B test or experiment. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "conversion experiment," "statistical significance," or "test this." For tracking implementation, see analytics-tracking.

SamuelChien/mega-skills-collection

Acceptance Criteria Creator - Auto-activating skill for Enterprise Workflows. Triggers on: acceptance criteria creator, acceptance criteria creator Part of the Enterprise Workflows skill category.

SamuelChien/mega-skills-collection

Use when a coding task should be driven end-to-end from issue intake through implementation, review, deployment, and acceptance verification with minimal human re-intervention.

SamuelChien/mega-skills-collection

Accessibility Audit Runner - Auto-activating skill for Frontend Development. Triggers on: accessibility audit runner, accessibility audit runner Part of the Frontend Development skill category.

SamuelChien/mega-skills-collection

You are an accessibility expert specializing in WCAG compliance, inclusive design, and assistive technology compatibility. Conduct audits, identify barriers, and provide remediation guidance.

SamuelChien/mega-skills-collection

Web accessibility patterns for WCAG 2.2 compliance including ARIA, keyboard navigation, screen readers, and testing

SamuelChien/mega-skills-collection

Manage Discord channel access — approve pairings, edit allowlists, set DM/group policy. Use when the user asks to pair, approve someone, check who's allowed, or change policy for the Discord channel.

SamuelChien/mega-skills-collection

Create unified specification packages across Business, Development, and Design teams. Staged elaboration (L0 Vision → L1 Requirements → L2 Team Detail → L3 Acceptance Criteria) to build shared understanding. Does not write code.

SamuelChien/mega-skills-collection

Research a company or person and get actionable sales intel. Works standalone with web search, supercharged when you connect enrichment tools or your CRM. Trigger with "research [company]", "look up [person]", "intel on [prospect]", "who is [name] at [company]", or "tell me about [company]".

SamuelChien/mega-skills-collection

Validate messaging consistency across website, GitHub repos, and local documentation generating read-only discrepancy reports. Use when checking content alignment or finding mixed messaging. Trigger with phrases like "check consistency", "validate documentation", or "audit messaging".

相關技能