~/docs /Borrar rastro

Borrar rastro

Borrar rastro

Imported from Notion: Borrar rastro

updated:: 2026.07.10

[!NOTE] ⚠️ El contenido original incluye instrucciones para dañar un disco y borrar datos de forma destructiva. Esta técnica es ideal para entornos donde se requiere degradación rápida del almacenamiento (SSD/NVMe) o eliminación masiva en tiempo real, simulando un escenario post-pentest con huella mínima.

🎯 Objetivo Técnico

Eliminación de trazas mediante sobrescritura aleatoria y descarte de bloques (TRIM/DISCARD), dejando el disco en un estado inestable para escrituras futuras o con capacidad reducida. Optimizado para Kali Linux y dispositivos NVMe/SSD, pero compatible con HDD bajo controladores que soporten BLKDISCARD.

🛠️ Comando Principal: Descarte y Sobrescritura en Bucle

while true; do
  sudo blkdiscard /dev/nvmeXn1 || true
  sudo dd if=/dev/urandom of=/dev/nvmeXn1 bs=1M status=progress
done

🔍 Desglose Técnico de cada Paso

  • while true; do ... done: Bucle infinito que se ejecuta hasta interrupción (Ctrl+C) o fallo del dispositivo. Ideal para scripts automatizados en background (nohup o systemd).

  • sudo blkdiscard /dev/nvmeXn1 || true:

    • Envía el comando TRIM (o DISCARD) al controlador del disco, marcando los bloques lógicos como no usados. En NVMe, esto activa la Garbage Collection y libera las páginas de flash reservadas en el FTL (Flash Translation Layer).

    • || true asegura que si el dispositivo se desconecta, cambia de estado o devuelve un error transitorio, el bucle continúa sin romper la ejecución (set -e).

  • sudo dd if=/dev/urandom of=/dev/nvmeXn1 bs=1M status=progress:

    • if=/dev/urandom: origen de datos aleatorios criptográficamente seguros (más rápido que /dev/random y sin cuellos de botella por entropía).

    • bs=1M: bloque de 1 MiB. Equilibrio óptimo entre velocidad de E/S y uso de memoria RAM. No usar bs=512 o valores pequeños para evitar overhead del kernel y fragmentación del disco.

    • status=progress: muestra bytes transferidos en tiempo real (GNU coreutils ≥ 8.30). Oculta la salida estándar (stdout) que saturaría el terminal.

⚡ Variantes Avanzadas

🔹 Descarte parcial + sobrescritura rápida (Modo Agresivo)

sudo dd if=/dev/zero of=/dev/nvmeXn1 bs=1M status=progress && \
sudo blkdiscard /dev/nvmeXn1
  • /dev/zero es más rápido que urandom. Útil si solo se busca “ensuciar” el disco para operaciones futuras sin generar alta entropía.

🔹 Verificación post-ejecución

sudo dd if=/dev/nvmeXn1 bs=1M | md5sum
lsblk -f /dev/nvmeXn1
smartctl -a /dev/nvmeXn1
  • smartctl muestra el estado del disco, bloques reservados y ciclos de reasignación.

  • md5sum verifica la entropía tras el descarte (debería ser alta y consistente).

📊 Comparativa: NVMe vs HDD en este contexto

Tipo de DiscoComportamiento con blkdiscard + ddRecomendación
NVMe SSDLa sobrescritura ocurre sobre páginas físicas. blkdiscard activa el garbage collection, reduciendo la latencia en escrituras futuras y liberando bloques huérfanos.Ideal para entornos de prueba / pentesting rápido
SSD SATASimilar a NVMe, pero con controlador más limitado. Considera ejecutar fstrim antes del bucle si el disco está montado.Usar conv=notrunc en dd para mayor precisión
HDD (Plato)blkdiscard actúa como seek aleatorio. dd sobrescribe físicamente. El rendimiento depende del C1/C2 head parking y la velocidad de rotación.Añadir if=/dev/urandom conv=notrunc para mayor precisión

🛡️ Notas de OPSEC & Seguridad

  • Cifrado en reposo: Si el disco usa LUKS, blkdiscard no elimina las claves, solo los datos. Tras el bucle, la próxima escritura reutilizará bloques libres, dejando “huellas” del primer sector. Considera dm-crypt wipe si se requiere borrado criptográfico.

  • Modo persistente (si se desea): Cambia while true por un temporizador o condición de interfaz: while [ $(cat /proc/uptime) -lt 30 ]; do ... done para limitar a 30 segundos.

  • Unmount garantizado: Antes de ejecutar, verifica que el disco no esté montado: umount /dev/nvmeXn1p2 && echo "Listo". Si está en uso, añade sudo umount -l /dev/nvmeXn1 (lazy unmount).

[!TOGGLE] Detalle técnico: ¿Por qué /dev/urandom vs /dev/random?

/dev/random espera entropía del kernel y puede bloquearse si no hay suficiente interrupción. /dev/urandom usa el CSPRNG del kernel y es continuo, ideal para sobrescribir grandes volúmenes sin cuellos de botella. En Kali Linux, el estado inicial se genera con systemd y haveged.


[!NOTE] ✅ Si el objetivo es “dejar inservible” el disco para un cliente o cliente de pentesting, combina este script con fstrim -v /dev/nvmeXn1 y guarda los logs: dmesg | grep nvme. El efecto destructivo será visible inmediatamente en la tabla de particiones.

- EOF -