Communitygithub.com

Colección de Habilidades Esenciales de SamuelChien

Crea imágenes de disco bit abit forensemente sólidas usando dd y dcfldd, preservando la integridad de la evidencia mediante verificación de hash.

¿Qué es Colección de Habilidades Esenciales de SamuelChien?

Esta habilidad está diseñada para que los agentes de IA (como Claude Code, Cursor, Codex) realicen adquisiciones forenses de discos de manera forensemente sólida. Permite crear imágenes bit a bit de dispositivos de almacenamiento utilizando las herramientas dd y dcfldd, garantizando la integridad de la evidencia mediante la verificación de hash (SHA-256, MD5). Es útil en escenarios de respuesta a incidentes, investigaciones legales y análisis forense, donde se requiere una copia verificable y sin alteraciones del dispositivo original. La habilidad incluye pasos detallados para identificación del dispositivo, protección contra escritura, adquisición con hash integrado, verificación de integridad y generación de informes de cadena de custodia. Funciona en sistemas Linux (SIFT, Kali) y requiere privilegios de root. Soporta tanto adquisición local como remota (a través de SSH) y manejo de errores en discos defectuosos.

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

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Adquisición de Imagen de Disco con dd y dcfldd

Cuándo Usarlo

  • Cuando necesites crear una copia forense de un disco sospechoso para investigación
  • Durante la respuesta a incidentes, antes de analizar evidencia volátil en disco
  • Cuando procedimientos legales o de aplicación de la ley requieran una copia bit a bit verificada
  • Antes de realizar cualquier análisis destructivo en un dispositivo de almacenamiento
  • Al adquirir imágenes de discos físicos, dispositivos USB o tarjetas de memoria

Prerrequisitos

  • Estación de trabajo forense Linux (SIFT, Kali, o cualquier distribución Linux)
  • dd (preinstalado en todos los sistemas Linux) o dcfldd (versión forense mejorada)
  • Bloqueador de escritura por hardware o configuración de bloqueo por software
  • Disco de destino con suficiente almacenamiento (mayor que el origen)
  • Privilegios root/sudo en la estación de trabajo forense
  • Utilidades de hash SHA-256 o MD5 (sha256sum, md5sum)

Flujo de Trabajo

Paso 1: Identificar el Dispositivo de Destino y Activar Protección contra Escritura

# Listar todos los dispositivos de bloque conectados para identificar el destino
lsblk -o NAME,SIZE,TYPE,MOUNTPOINT,MODEL

# Verificar los detalles del dispositivo
fdisk -l /dev/sdb

# Activar bloqueo de escritura por software (si no hay bloqueador por hardware)
blockdev --setro /dev/sdb

# Verificar estado de solo lectura
blockdev --getro /dev/sdb
# Salida: 1 (significa que solo lectura está activado)

# Alternativamente, usar reglas udev para bloqueo persistente
echo 'SUBSYSTEM=="block", ATTRS{serial}=="WD-WCAV5H861234", ATTR{ro}="1"' > /etc/udev/rules.d/99-writeblock.rules
udevadm control --reload-rules

Paso 2: Preparar el Destino y Documentar el Origen

# Crear estructura de directorios del caso
mkdir -p /cases/case-2024-001/{images,hashes,logs,notes}

# Documentar información del disco origen
hdparm -I /dev/sdb > /cases/case-2024-001/notes/source_drive_info.txt

# Registrar número de serie y modelo
smartctl -i /dev/sdb >> /cases/case-2024-001/notes/source_drive_info.txt

# Hash previo del dispositivo origen
sha256sum /dev/sdb | tee /cases/case-2024-001/hashes/source_hash_before.txt

Paso 3: Adquirir la Imagen Usando dd

# Adquisición básica con dd, progreso y manejo de errores
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

# Para imágenes comprimidas y ahorrar espacio
dd if=/dev/sdb bs=4096 conv=noerror,sync status=progress | \
   gzip -c > /cases/case-2024-001/images/evidence.dd.gz

# Usando dd con un conteo específico para adquisición parcial
dd if=/dev/sdb of=/cases/case-2024-001/images/first_1gb.dd \
   bs=1M count=1024 status=progress

Paso 4: Adquirir Usando dcfldd (Método Forense Preferido)

# Instalar dcfldd si no está presente
echo "Instalando dcfldd..."
# apt-get install dcfldd  # Comando para distribuciones Debian/Ubuntu

# Adquirir imagen con hash integrado y salida dividida
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

# Dividir imágenes grandes en segmentos manejables
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

# Adquirir con pasada de verificación
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

Paso 5: Verificar Integridad de la Imagen

# Hash de la imagen adquirida
sha256sum /cases/case-2024-001/images/evidence.dd | \
   tee /cases/case-2024-001/hashes/image_hash.txt

# Comparar hashes de origen e imagen
diff <(sha256sum /dev/sdb | awk '{print $1}') \
     <(sha256sum /cases/case-2024-001/images/evidence.dd | awk '{print $1}')

# Si se usaron imágenes divididas, verificar cada segmento
sha256sum /cases/case-2024-001/images/evidence.dd.* | \
   tee /cases/case-2024-001/hashes/split_image_hashes.txt

# Re-hash del origen para confirmar que no hubo cambios
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

Paso 6: Documentar el Proceso de Adquisición

# Generar informe de adquisición
cat << 'EOF' > /cases/case-2024-001/notes/acquisition_report.txt
INFORME DE ADQUISICIÓN DE IMAGEN DE DISCO
=========================================
Número de Caso: 2024-001
Fecha/Hora: $(date -u +"%Y-%m-%d %H:%M:%S UTC")
Examinador: [Nombre]

Dispositivo Origen: /dev/sdb
Modelo: [de salida hdparm]
Serie: [de salida hdparm]
Tamaño: [de salida fdisk]

Herramienta de Adquisición: dcfldd v1.9.1
Tamaño de Bloque: 4096
Bloqueador de Escritura: [Modelo Hardware/Software]

Archivo de Imagen: evidence.dd
Hash de Imagen (SHA-256): [del archivo de hash]
Hash de Origen (SHA-256): [del archivo de hash]
Coincidencia de Hash: SÍ/NO

Errores Durante la Adquisición: [del log de errores]
EOF

# Comprimir logs para archivo
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/

Conceptos Clave

ConceptoDescripción
Copia bit a bitRéplica exacta del origen incluyendo espacio no asignado y espacio slack
Bloqueador de escrituraMecanismo de hardware o software que previene escrituras al medio de evidencia
Verificación de hashHash criptográfico que compara origen e imagen para probar integridad
Tamaño de bloque (bs)Tamaño del chunk de transferencia que afecta la velocidad; típicamente 4096 o 64K en forense
conv=noerror,syncContinuar en caso de errores de lectura y rellenar con ceros para mantener alineación de desplazamiento
Cadena de custodiaRegistro documentado que demuestra que la evidencia no ha sido manipulada
Imagen divididaDividir imágenes grandes en archivos más pequeños para almacenamiento y transporte
Formato raw/ddFormato de imagen bit a bit sin sobrecarga de metadatos de contenedor

Herramientas y Sistemas

HerramientaPropósito
ddUtilidad estándar de duplicación de discos Unix para imágenes raw
dcflddVersión mejorada de dd del Laboratorio Forense de Computadoras del DoD con hash integrado
dc3ddOtra variante forense de dd del Centro de Delitos Cibernéticos del DoD
sha256sumCálculo de hash SHA-256 para verificación de integridad
blockdevComando Linux para establecer modo de solo lectura en dispositivos de bloque
hdparmIdentificación de discos y reporte de parámetros
smartctlRecuperación de datos S.M.A.R.T. para salud e identificación del disco
lsblkEnumeración e identificación de dispositivos de bloque

Escenarios Comunes

Escenario 1: Adquirir un Disco Duro de una Laptop Sospechosa Conectar el disco mediante un bloqueador de escritura por hardware Tableau T35u, identificar como /dev/sdb, usar dcfldd con hash SHA-256, dividir en segmentos de 4GB para archivo en DVD, verificar que los hashes coincidan, documentar en notas del caso.

Escenario 2: Imaginar una Unidad Flash USB de una Estación de Trabajo Comprometida Usar bloqueo de escritura por software con blockdev --setro, adquirir con dcfldd incluyendo hash dual MD5 y SHA-256, la imagen es lo suficientemente pequeña para un archivo único, verificar y almacenar en un disco de caso cifrado.

Escenario 3: Adquisición Remota a Través de Red Usar dd canalizado a través de netcat o SSH para adquisición remota: ssh root@remoto "dd if=/dev/sda bs=4096" | dd of=imagen_remota.dd bs=4096, hacer hash en ambos extremos de forma independiente para verificar la integridad de la transferencia.

Escenario 4: Adquirir desde un Disco Defectuoso Usar ddrescue primero para recuperar sectores legibles, luego usar dd con conv=noerror,sync para llenar huecos con ceros, documentar qué sectores fueron ilegibles en el log de errores.

Formato de Salida

Resumen de Adquisición:
  Origen:        /dev/sdb (500GB Western Digital WD5000AAKX)
  Destino:       /cases/case-2024-001/images/evidence.dd
  Herramienta:   dcfldd 1.9.1
  Tamaño de Bloque: 4096 bytes
  Duración:      2h 15m 32s
  Bytes Copiados: 500,107,862,016
  Errores:       0 sectores defectuosos
  SHA-256 Origen:  a3f2b8c9d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1
  SHA-256 Imagen:  a3f2b8c9d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1
  Verificación:    EXITOSA - Los hashes coinciden

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".

Skills relacionados