Como comentamos en la primera parte de estos tres artículos dedicados a los ADS (Alternate Data Streams) en Windows Vista, fácilmente se llega a la conclusión de que Vista sigue soportando de forma nativa los forks o ADS en su sistema de ficheros.
La primera prueba que haremos para verificar si Vista sigue soportando los ADS es sencilla, y no es más que intentar crear un ADS de la misma forma en que la hemos estado creando estos últimos años con XP/2K3.
Imagen 1.- Creación de ADS en Windows Vista
En la imagen anterior se pueden apreciar varias cosas:
- El ADS se puede crear perfectamente y se puede visualizar de forma correcta con el comando MORE
- Tal y como se puede leer en el artículo Q101353 de Spectra, los dos puntos que hacen referencia a un ADS, pueden variar en un futuro. En Windows Vista esta convención sigue vigente, tal y como se muestra en la imagen anterior.
En ese mismo artículo se cita algo muy importante. Y es que algunos comandos soportan múltiples ADS y otros no.
En Windows XP, el comando START soporta de forma nativa este tipo de flujos de datos, pudiendo acceder de forma correcta a ellos. La sintaxis que se seguía y se sigue usando es la siguiente:
start RUTA_FICHERO:ADS
Si el intérprete de comandos se encuentra en la misma ruta en donde se encuentra el fichero a iniciar, se puede ejecutar el comando START de la siguiente manera:
start .\Fichero:ADS
Imagen 2.- Error de ejecución en comando START bajo Windows Vista
En la imagen anterior nos encontramos con algo muy interesante, y es que el comando START, ejecutado en Windows Vista, manda ejecutar el ADS, pero el explorador de Windows no encuentra una aplicación adecuada para poder abrir el fichero. Si realizamos la misma operación, pero analizando las llamadas que se realizan al sistema operativo, nos encontramos con que el comando es válido y que accede al ADS correctamente. El explorador de Windows es el que no puede encontrar una aplicación adecuada para abrir este tipo de fichero (En este caso el notepad). El resultado que obtiene el explorador de Windows para este evento es NAME INVALID.
Imagen 3.- Evento NAME INVALID Process Monitor
Imagen 4.- Evento Process Monitor
En este caso, y para que Windows Vista ejecute la aplicación asociada a a este fichero, tendremos que invocar directamente a la aplicación que deseemos utilizar para visualizar este ADS. En nuestro caso utilizaremos el Notepad.
Imagen 5.- Ejecución ADS en Windows Vista
Como se puede comprobar, la aplicación notepad sigue teniendo soporte para los forks en el sistema de ficheros. Se puede repetir este mismo proceso, pero con otro archivo, como una imagen por ejemplo. Así se puede comprobar qué aplicación soporta ADS y qué aplicación no.
Imagen 6.- Ejecución ADS en Windows Vista
Tal y como comenté en otro artículo dedicado a los ADS, muchos de los creadores de Malware utilizan este tipo de técnicas para dar “jugo” a sus creaciones. Entre todas ellas, los ADS se pueden utilizar para:
- Ocultación de datos
- BBDD
- Ejecutar ficheros binarios (EXE, MSI, BAT, COM, VBS)
Con respecto a Windows XP/2K3, Windows Vista ha cambiado su modelo de ejecutar archivos ejecutables dentro de un ADS.
Si introducimos un archivo ejecutable dentro de un ADS tal que así:
type p0C.exe > fichero.txt:malware.exe
start .\fichero.txt:malware.exe
Obtendremos un bonito error igual que el visto en la imagen número II. Si monitorizamos las llamadas al sistema, vemos que el sistema operativo es capaz de abrir el fichero, pero se encuentra con un error al tipear el comando START. Un resultado llamado FAST IO DISALLOWED.
Bajo mi punto de vista, y según lo que he podido averiguar, este error (FAST IO DISALLOWED) de acceso es causado por un filtro que maneja las operaciones de entrada y salida del sistema de ficheros. Aunque el fichero se puede abrir sin ningún problema, el filtro rechaza la operación, se genera la advertencia de nombre inválido (NAME INVALID) y posteriormente genera el error por pantalla.
Esta duda la dejo abierta, por si nos lee algún otro Forensic-Boy y nos quiere arrojar más luz sobre el asunto.
En una primera instancia, los resultados obtenidos nos dicen algo bueno para la seguridad del equipo. Y es que en Windows Vista no se pueden invocar archivos ejecutables a través de ADS. En la tercera y última parte, seguiremos con las pruebas (Esta vez con archivos ejecutables) y repasaremos las posibles vías de infección con malware ejecutable que se pueden presentar en Windows Vista y NTFS, utilizando forks.
Saludos a tod@s!
Referencias
Disallowing a Fast I/O Operation in a Preoperation Callback Routine






