Otra sobre NTFS, los Alternate Data Stream (ADS)

Como ya sabemos el sistema de archivos NTFS fue diseñado específicamente para Windows NT (incluyendo las versiones Windows 2000, Windows 2003, Windows XP y Windows Vista), y aunque las versiones anteriores (las versiones MS-DOS, Windows 95, Windows 98 y Windows ME) no pueden leer este sistema de archivos, existen utilidades para poder salvar esta carencia.

Pero vamos a lo nuestro, una caracteristica ‘casi’ desconocida de este sistema de ficheros, son los “Alternate Data Streams” (ADS) los cuales existen por compatibilidad con el sistema de archivos “Macintosh Hierarchical File System” (HFS) y se usan para mantener información asociada con un fichero: iconos por ejemplo.

Lo primero que debemos saber es si nuestro sistema operativo esta montado en una partición NTFS, para eso debemos abrir una consola de DOS, en Inicio –> Ejecutar –> escribes ‘cmd.exe’ y le das enter, o tamibien presiona la tecla de windows + R (las dos a la vez) y escribes ‘cmd.exe’ y le das enter. Una vez hecho eso en la pantalla de DOS que nos aparece (pantalla negre) escribes ‘chkdsk’, luego de ejecutar el comando, nos mostrara por cada partición, el sistema de archivos y de pasadita nos chequeara nuestro disco duro en busca de errores🙂

Estando en la misma pantalla de DOS, anotamos ‘cd\’ y estaremos en la raiz de nuestra partición C:, una vez ahi escribimos lo siguiente :

md ads (y pulsamos enter)
cd ads (y pulsamos enter)

Con esto creamos una nueva carpeta ‘ads’ y nos ponemos dentro de esta, si te fijas el prompt deberia decir algo asi como esto C:\ads> (todos los ejemplos hazlos dentro de esta carpeta), ahora escribimos :

echo este es un fichero visible > ficheroReal.txt

Ahora si vas a la carpeta desde el explorador o escribes un ‘dir’ (y apretas enter) te fijaras que el fichero ‘ficheroReal.txt’ fue creado correctamente y que pesa aprox. 29 bytes (lo puedes abrir con el block de notas y leer la frase), ahora si escribes esto :

echo este fichero esta oculto > ficheroOculto.txt:oculto

Al hacer otra vez un ‘dir’ te fijaras que el ‘ficheroOculto.txt’ existe y pesa 0 bytes, si lo abres con el block de notas, no te aparecera la frase “este fichero esta oculto”, pues bien si escribes :

more < ficheroOculto.txt:oculto

Aparecera debajo la siguiente linea

este fichero esta oculto

Creo que ya te has dado cuenta de la magnitud de los ADS, a simple vista, el fichero no decia nada pero usando un comando del windows no encontramos que realmente contenia información.

Veamos otro ejemplo, escribamos lo siguiente desde el DOS

echo este es otro texto de prueba > texto.txt
type texto.txt >ficheroOculto.txt:oculto2

Si te diste cuenta, y haces un ‘dir’ te aparecen los siguientes archivos hasta el momento :
ficheroOculto.txt (de 0 bytes)
ficheroReal.txt (de 29 bytes)
texto.txt (de 31 bytes)

Ahora veamos que paso con el ‘ficheroOculto.txt:oculto2’, escribamos :

more < ficheroOculto.txt:oculto2

Apareceria la linea “este es otro texto de prueba”, y si anotamos :

more < ficheroOculto.txt:oculto

Con lo que apareceria la linea “este fichero esta oculto”, con lo que hemos comprobado que realmente existe la información que hemos guardado anteriormente y de forma oculta en ‘ficheroOculto.txt’, si gustas puedes borrar el archivo ‘texto.txt’ (escribes ‘del texto.txt’, claro sin las comillas) y volver a usar los comando anteriores y veras que nada a cambiado, solo que al hacer un ‘dir’ el archivo borrado no aparecera.

Exactamente igual, podremos crear ADS’s, que en vez de contener texto, contengan código ejecutable:

type c:\windows\notepad.exe > ficheroOculto.txt:np.exe

type c:\windows\system32\calc.exe > ficheroOculto.txt:calc2.exe

De la misma forma, ficheros de imágenes, de audio o cualquier otro flujo de datos pueden ocultarse en ADS’s. Solo podemos ver un archivo llamado “ficheroOculto.txt” con tamaño cero… Pero realmente tenemos dos archivos de texto y dos con código ejecutable), hemos visto el comando “more” para los de texto. Para los otros dos, podemos ejecutarlos tecleando:

start .\ficheroOculto.txt:np.exe (evidentemente ejecuta un Notepad)
start .\ficheroOculto.txt:calc2.exe (nos ejecutará la Calculadora)

Debemos fijarnos que ambos ficheros, aunque no los veamos, son reales. No son un “enlace” a los originales, sino que contienen el código real del Notepad y de la Calculadora.
Si somos un poco osados, podemos guardar el código de un virus en uno de estos archivos, y si ejecutamos un antivirus, veremos que sorprendentemente NO lo localiza.
Aunque parezca que es dificil la ejecución de un ADS, es sencillísimo el comprobar que no es así. En particular las rutinas en un script de VB se ejecutan perfectamente. Por ejemplo podemos crear:

echo MsgBox “Prueba de mensaje en VB” > ficheroOculto.txt:codigo.vbs

Y ejecutar:

start .\ficheroOculto.txt:codigo.vbs

 

¿CÓMO PODEMOS VER LOS ADS’S?

Existen varias herramientas para poderlo verificar. En particular el clásico streams.exe de Wininternals. Pero es una herramienta engorrosa de manejar. La herramienta más sencilla es debida a Frank Keyne y es el programa LADS.EXE
Tal y como hemos visto, los ADS’s son una característica de los archivos NTFS para compatibilizar con HFS. Sin embargo, la pérdida de “visibilidad” que esta característica posee tiene un riesgo potencial bastante elevado para los Administradores del sistema.
Debemos tener presente que no todas las herramientas, ni tan siquiera de Windows, son capaces de tratar correctamente los ADS’s. Por ejemplo, los defragmentadores, no defragmentarán dichos archivos. Los antivirus, la mayoría de ellos, no diagnostican virus en los ACL’s, y los que son capaces de diagnosticarlos no tienen capacidad para eliminarlos. Los fabricantes de antivirus empiezan a ser conscientes de esta problemática y en breve serán capaces de tratarlos.

En un proximo articulo me referire a como ver y tratar estos ADS desde el mismo Windows y el fichero que nos interesará es la librería compilada StrmExt.dll.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: