Windows Vista y Alternate Data Streams parte II de III

Estándar

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.

Foto1

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

Foto2

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.

Foto3

Imagen 3.- Evento NAME INVALID Process Monitor

FOTO4

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.

Foto5

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.

foto6

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

Fast I/O

Managed file system filter model and architecture (Patente) 

Malware y WordPress

Google Hacking Database Offline

Estándar

Hola a tod@s!

A veces nos encontramos con que en una auditoría de seguridad necesitamos realizar búsquedas en Google sobre una determinada Web, o sobre un trabajador de una empresa por ejemplo.

La base de datos de GHDB (Google Hacking Database) de Johnny Long nos puede servir de gran ayuda en esa tarea, y numerosas herramientas utilizan esta base de datos como valor añadido a la aplicación. La herramienta de análisis Acunetix, y herramientas  como Nikto o Wikto en su versión de Windows, utilizan esta base de datos como añadido.

Esta tarde, realizando unas pruebas, me he encontrado con que la Web de Johnny Long está caida, y por consiguiente, la base de datos de GHDB también arroja un bonito error 404.

La falta de esta clase de recursos para nuestras auditorías puede ocasionar que haya pruebas de seguridad que no se realicen o que se realicen de forma incorrecta. Para solucionar este problema (No tengo idea de si estará de nuevo Online en un futuro) hay personas que han realizado una labor de mirroring sobre la base de datos de Johnny Long.

En el caso de la Base de datos de GHDB, el mirror es el siguiente: http://ghdb-mirror.freehostia.com/index.HTM

Si se quiere acceder a todos los Google Dorks, la URL es la siguiente: http://ghdb-mirror.freehostia.com/_0toc.html

Y por último, si se necesita descargar toda la BBDD, la URL es la siguiente: http://ghdb.mirror.googlepages.com/ghdb.jar

Si alguien conoce algún otro mirror o tiene algún enlace más actualizado de los que yo utilizo, que no tarde en ponerlo!

Espero que os sirva de ayuda.

Salu2 a tod@s!

Windows Vista y los Alternate Data Streams I parte

Estándar

Hola a tod@s!

En esta ocasión, y, tras haber leído en estos últimos días nuevos artículos que hablan sobre los flujos de datos en sistemas de archivos NTFS, me he decidido a escribir dos pequeñas entradas en el blog acerca de los flujos de datos en sistemas de archivos NTFS, pero esta vez realizando las pruebas en mi flamante Windows Vista. Los nuevos artículos que he leído no arrojan nada nuevo, realizando las mismas pruebas de hace 7 años,  y, en algunos casos, fomentan la desconfianza general sobre el sistema de archivos NTFS, dando a creer al usuario, en ciertos párrafos, que la mejor alternativa es “volver” a viejos sistemas de ficheros como FAT o FAT32.

Empezamos!

Al soportar Windows Vista casi íntegramente el formato NTFS, es lógico llegar a la conclusión de que Windows Vista soporta de forma nativa los Alternate Data Streams (En adelante ADS). El caso que nos ocupa en estos tres artículos es la forma en la que Windows Vista accede a esta característica.

Al contrario de lo que he leído estas últimas semanas en los artículos que referencian a ADS, sólo muestran inquietud en el formato de archivos NTFS, y, en especial, a pruebas realizadas en Windows 2000 y XP/2K3.

Microsoft adoptó la decisión de soportar este tipo de datos asociados (llamados forks) en el sistema de archivos NTFS, ya que en su día, multitud de sistemas de archivos dotaban de esta característica a sus sistemas de archivos. Hoy día, existen multitud de sistemas de ficheros que soportan de forma nativa esta característica.

Los forks, al igual que los atributos extendidos, se utilizaban antiguamente para mantener información adicional sobre un fichero o directorio, sin cambiar la estructura del mismo, es decir, sin modificar el fichero.

Sistemas de ficheros como HFS (Hierarquical File System), UFS (Unix File System), o UDF (Universal Disk Format) soportan estas características (forks o atributos extendidos).

Volviendo al tema de arquitectura de ficheros NTFS, el stream de datos se identifica a través de los “:” (sin comillas). Según Microsoft, en el sistema operativo, residen comandos que pueden o no soportar estos flujos de datos, y que en cierta manera depende de ellos si le dan soporte o no a ese comando en un futuro. Lo mismo pasaria en el caso contrario, en donde tuviésemos un comando que soporta de forma nativa estos flujos de datos y en un futuro no. Según Microsoft, la identificación de los dos puntos para relacionar el flujo de datos podría cambiar en un futuro.

En posteriores artículos veremos en qué manera ha cambiado Windows Vista en el soporte de ADS.

Referencias

Windows NT Supports Multiple Data Streams Inconsistently

How To Use NTFS Alternate Data Streams

Fork (filesystem)

The Data Fork and the Resource Fork

Universal Disk Format 

Hasta la próxima entrega!