Sysinternals

SDelete – SysInternals

Categoría: Utilidades de Discos y Archivos
Versión: v2.04
Última actualización: 25/11/2020
Resumen: SDelete 
OS:
Cliente: Windows Vista y Superior
Servidor: Windows Server 2008 y Superior
Nano Server: 2016 y Superior

Introducción

Una característica de la compatibilidad con C2 de Windows NT/2000 (Win2K) es que implementa la protección contra la reutilización de objetos. Esto significa que cuando una aplicación asigna espacio de archivo o memoria virtual, no puede ver los datos que se almacenaron previamente en los recursos que Windows NT/2K le asigna. Windows NT pone a cero la memoria y pone a cero los sectores del disco donde se coloca un archivo antes de que presente cualquier tipo de recurso a una aplicación. Sin embargo, la reutilización de objetos no dicta que el espacio que ocupa un archivo antes de que se elimine se ponga a cero. Esto se debe a que Windows NT/2K está diseñado asumiendo que el sistema operativo controla el acceso a los recursos del sistema. Sin embargo, cuando el sistema operativo no está activo, es posible usar editores de disco sin formato y herramientas de recuperación para ver y recuperar datos que el sistema operativo ha desasignado. Incluso cuando cifra archivos con el Sistema de cifrado de archivos (EFS) de Win2K, los datos originales sin cifrar de un archivo se dejan en el disco después de que se crea una nueva versión cifrada del archivo.

La única forma de asegurarse de que los archivos eliminados, así como los archivos que encripta con EFS, estén a salvo de la recuperación es usar una aplicación de eliminación segura. Las aplicaciones de eliminación segura sobrescriben los datos en el disco de un archivo eliminado utilizando técnicas que se ha demostrado que hacen que los datos del disco sean irrecuperables, incluso utilizando tecnología de recuperación que puede leer patrones en medios magnéticos que revelan archivos eliminados débilmente. SDelete (Secure Delete) es una aplicación de este tipo. Puede usar SDelete para eliminar de forma segura los archivos existentes, así como para borrar de forma segura cualquier dato de archivo que exista en las partes no asignadas de un disco (incluidos los archivos que ya ha eliminado o cifrado). SDelete implementa el estándar DOD 5220.22-M de limpieza y desinfección del Departamento de Defensa, para darle la confianza de que, una vez eliminados con SDelete, los datos de sus archivos desaparecerán para siempre. Tenga en cuenta que SDelete elimina de forma segura los datos de los archivos, pero no los nombres de los archivos que se encuentran en el espacio libre del disco.

Uso de SDelete

SDelete es una utilidad de línea de comandos que admite una serie de opciones. En cualquier uso dado, te permite eliminar uno o más archivos y/o directorios, o limpiar el espacio libre en un disco lógico. SDelete acepta caracteres comodín como parte del especificador de directorio o archivo.

sdelete [-p passes] [-r] [-s] [-q] <file or directory> [...]
sdelete [-p passes] [-z|-c [percent free]] <drive letter [...]>sdelete [-p passes] [-z|-c] &ltphysical disk number>
ParámetroDescripción
-cLimpiar espacio libre. Especifique una opción de cantidad de espacio para dejar libre para que lo use un sistema en ejecución.
-pEspecifica el número de pasadas de sobrescritura (el valor predeterminado es 1).
-rEliminar atributo de solo lectura.
-sSubdirectorios recursivos.
-zEspacio libre cero (bueno para la optimización del disco virtual).
-nobannerNo muestra el banner de inicio ni el mensaje de derechos de autor.

Como trabaja SDelete

La eliminación segura de un archivo que no tiene atributos especiales es relativamente sencilla: el programa de eliminación segura simplemente sobrescribe el archivo con el patrón de eliminación segura. Lo que es más complicado es eliminar de forma segura archivos comprimidos, cifrados y dispersos de Windows NT/2K, y limpiar de forma segura los espacios libres del disco.

Comprimido, cifrado y disperso son administrados por NTFS en bloques de 16 clústeres. Si un programa escribe en una parte existente de un archivo de este tipo, NTFS asigna nuevo espacio en el disco para almacenar los nuevos datos y, una vez que se han escrito los nuevos datos, desasigna los clústeres ocupados previamente por el archivo. NTFS adopta este enfoque conservador por razones relacionadas con la integridad de los datos y, en el caso de archivos comprimidos y dispersos, en caso de que una nueva asignación sea más grande que la existente (los nuevos datos comprimidos son más grandes que los datos comprimidos antiguos). Por lo tanto, sobrescribir dicho archivo no logrará eliminar el contenido del archivo del disco.

Para manejar este tipo de archivos, SDelete se basa en la API de desfragmentación. Con la API de desfragmentación, SDelete puede determinar con precisión qué grupos de un disco están ocupados por datos pertenecientes a archivos comprimidos, dispersos y cifrados. Una vez que SDelete sabe qué grupos contienen los datos del archivo, puede abrir el disco para acceder sin procesar y sobrescribir esos grupos.

Limpiar el espacio libre presenta otro desafío. Dado que FAT y NTFS no proporcionan medios para que una aplicación aborde directamente el espacio libre, SDelete tiene una de dos opciones. La primera es que puede, como lo hace con los archivos comprimidos, dispersos y cifrados, abrir el disco para acceso sin formato y sobrescribir el espacio libre. Este enfoque adolece de un gran problema: incluso si SDelete estuviera codificado para ser completamente capaz de calcular las porciones de espacio libre de las unidades NTFS y FAT (algo que no es trivial), correría el riesgo de colisionar con las operaciones de archivos activos que tienen lugar en el sistema. Por ejemplo, supongamos que SDelete determina que un clúster está libre y, justo en ese momento, el controlador del sistema de archivos (FAT, NTFS) decide asignar el clúster a un archivo que está modificando otra aplicación. El controlador del sistema de archivos escribe los nuevos datos en el clúster, y luego aparece SDelete y sobrescribe los datos recién escritos: los nuevos datos del archivo desaparecen. El problema es aún peor si el clúster se asigna para metadatos del sistema de archivos, ya que SDelete corromperá las estructuras en disco del sistema de archivos.

El segundo enfoque, y el que adopta SDelete, es sobrescribir indirectamente el espacio libre. Primero, SDelete asigna el archivo más grande que puede. SDelete hace esto utilizando E/S de archivos no almacenados en caché para que el contenido de la memoria caché del sistema de archivos NT no se elimine y se reemplace con datos inútiles asociados con el archivo que acapara espacio de SDelete. Debido a que la E/S de archivos no almacenados en caché debe estar alineada con sectores (512 bytes), es posible que quede algo de espacio que no esté asignado para el archivo SDelete, incluso cuando SDelete no pueda hacer crecer más el archivo. Para tomar cualquier espacio restante, SDelete luego asigna el archivo en caché más grande que puede. Para ambos archivos, SDelete realiza una sobrescritura segura, lo que garantiza que todo el espacio en disco que antes estaba libre se limpie de forma segura.

En las unidades NTFS, el trabajo de SDelete no termina necesariamente después de que asigna y sobrescribe los dos archivos. SDelete también debe llenar las porciones libres existentes de la MFT (tabla maestra de archivos) de NTFS con archivos que se ajusten a un registro de MFT. Un registro MFT suele tener un tamaño de 1 KB y cada archivo o directorio en un disco requiere al menos un registro MFT. Los archivos pequeños se almacenan completamente dentro de su registro MFT, mientras que los archivos que no caben dentro de un registro se asignan a grupos fuera de la MFT. Todo lo que tiene que hacer SDelete para ocuparse del espacio MFT libre es asignar el archivo más grande que pueda: cuando el archivo ocupa todo el espacio disponible en un MFT Record NTFS evitará que el archivo crezca, ya que no quedan clústeres libres en el disco (están retenidos por los dos archivos SDelete previamente asignados). SDelete luego repite el proceso. Cuando SDelete ya no puede ni siquiera crear un nuevo archivo, sabe que todos los registros previamente libres en la MFT se han llenado por completo con archivos sobrescritos de forma segura.

Para sobrescribir los nombres de archivo de un archivo que elimine, SDelete cambia el nombre del archivo 26 veces, reemplazando cada vez cada carácter del nombre del archivo con un carácter alfabético sucesivo. Por ejemplo, el primer cambio de nombre de “foo.txt” sería “AAA.AAA”.

La razón por la que SDelete no elimina de forma segura los nombres de los archivos al limpiar el espacio libre del disco es que eliminarlos requeriría una manipulación directa de las estructuras de directorios. Las estructuras de directorio pueden tener espacio libre que contenga nombres de archivos eliminados, pero el espacio de directorio libre no está disponible para asignarlo a otros archivos. Por lo tanto, SDelete no tiene forma de asignar este espacio libre para que pueda sobrescribirlo de forma segura.

Informar de errores

Si encuentras algún error o aporte a la información proporcionada por favor dirígela a soporte@ehack.mx

Obtener el programa

Referencias


Fuente Imágenes

SDelete: Imágenes cortesía by Nala Systems

SDelete by Roberto C. González traducido y ampliado para Ethical Hack algunas partes se adaptan directamente del sitio SysInternals de Microsoft
©2022, Ethical Hack, Todos los derechos reservados sobre la traducción.
©2022, Ethical Hack, Todos los derechos reservados sobre el contenido propio.

Powered by – Ethical Hack

eHack Blog

Entradas recientes

dnsenum

El comando dnsenum es una herramienta de línea de comandos para realizar enumeración de DNS…

11 meses hace

Las 24 listas negras de IPv4 más comunes.

En esta entrada te presento 24 de las listas negras más comunes que los servidores…

2 años hace

ZoomIt – SysInternals

ZoomIt es una herramienta de anotación y zoom de pantalla para presentaciones técnicas que incluyen…

2 años hace

WinObj – SysInternals

WinObj es el visor de espacios de nombres de Object Manager definitivo. Es la primera…

2 años hace

WhoIs – SysInternals

Whois realiza el registro de registro para el nombre de dominio o la dirección IP…

2 años hace

VolumeID – SysInternals

VolumeID – Esta utilidad, le permite cambiar los identificadores de los discos FAT y NTFS…

2 años hace