NTFS Data Stream

Iniciado por MagoAstral, Agosto 24, 2015, 11:00:44 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Agosto 24, 2015, 11:00:44 AM Ultima modificación: Agosto 24, 2015, 07:44:28 PM por EPSILON
NTFS Data Stream


Estimado lector le doy la bienvenida a este nuevo aporte donde se hablará sobre los flujos alternativos de datos (ADS) y se mostrarán algunas pruebas de concepto para que se capte una mínima parte del potencial que tienen. Como siempre yo soy MagoAstral y sin más que añadir vamos a comenzar...
Llegados a este punto el lector seguirá con la inquietud sobre la definición de los flujos alternativos de datos, así que será lo primero en solventar. Básicamente podríamos decir que forman parte del sistema de archivos NTFS y su finalidad es almacenar datos dentro de datos (metadatos), y todo esto en el mismo fichero! ¿Suena interesante verdad?  Aclararé la definición de NTFS por si alguno se ha perdido, simplificando diríamos que es un sistema de archivos inicialmente utilizado en Windows NT y ha pervivido hasta nuestros días.
Para concretar, en 1993, Microsoft sacó a luz dicha versión de Windows (NT), la cual contenía el sistema de archivos NTFS con el soporte de los ADS cuya finalidad era soportar forks nativos de los sistemas Mac, lo que se traduce como ofertar compatibilidad.
Un ejemplo de ADS sería el Zone.Identifier que alberga el identificador de zona de Internet de donde se descargó el fichero, dicha información será analizada por Windows Explorer, y este decidirá si se debe advertir al usuario en el tiempo de ejecución del programa.
Podríamos destacar que en Windows el flujo de datos principal se llama :$DATA
Con esto doy por finalizada la parte teórico-histórica, procedamos pues a un plano más practico sobre el uso que podemos dar a dichos flujos, es muy recomendable que el lector practique y lleve a cabo las pruebas de concepto que se desarrollarán a continuación.
Parte práctica
En la primera prueba de concepto se guardará información dentro de un archivo de texto utilizando el flujo alternativo de datos. Para efectuar dicho proceso se seguirán los siguientes pasos:
Código: dos

echo Texto guardado dentro del flujo alternativo de datos del archivo > texto.txt:flujo.txt

Para leer el contenido:
Código: dos
more < texto.txt:flujo.txt

De esta manera:

En esta segunda prueba de concepto vamos a guardar un ejecutable a modo de malware dentro de un archivo de texto y para llevar a cabo dicho proceso se seguirá la siguiente sintaxis:
Código: dos
type archivo.exe > texto.txt:archivo.exe


A la hora de ejecutarlo es muy importante que pongan toda la ruta ejemplo:
Código: dos
start c:\texto.txt:Troyano.exe

En caso de que quieran extraer el ejecutable sería mediante:
Código: dos
cat c:\texto.txt:Troyano.exe > troyano.exe

La extracción mediante el cat es única para windows 2003!
Quizás tengan problema en sistemas como windows 7 y superiores, así que se recomienda utilizar windows server o windows xp para llevar a cabo las pruebas de concepto.
Con esto daré por concluido el aporte, cualquier duda o aclaración sentiros libres para comentarla.
Un saludo!
Lo que sabemos es una gota de agua; lo que ignoramos es el océano.