jueves, 2 de agosto de 2007

Alternate Data Streams [Position] 0100

Ocultación de Archivos en Windows con ADS
Escrito por RadiX

Dentro de todas las funciones misteriosas y malévolas que aporta el código cerrado de Windows no es de sorprenderse que algunas violen nuestra privacidad o realicen acciones sin nuestro consentimiento. El día de hoy voy hablarles un poco acerca de ADS (Alternate Data Streams).

De cualquier modo todos los que estamos un poco familiarizados con Windows sabrán que existen archivos y carpetas ocultas, perfectamente configurables desde el menú Herramientas>Opciones de Carpeta...>Ver. Ese es un modo muy tradicional y anticuado de esconder nuestros mas íntimos secretos pues cualquiera puede ir y activar la opción de: "Mostrar todos los archivos y carpetas ocultos". Acá vamos hacer algo más avanzado pero básicamente con el mismo fin.

ADS es una función que está ligada a la forma en que Windows estructura el sistema de archivos, el modo de empleo permite ligar (to link) un archivo con otro ocultándolo totalmente a la vista de cualquier usuario novel, el modo de funcionamiento es muy fácil de entender.

NTFS (New Technology File System) es el sistema de archivos que Windows emplea por defecto desde sus versiones NT, su diseño está basado en streams (que pueden verse como bloques de un archivo), cuando nosotros modificamos los permisos de un archivo por ejemplo, podemos configurarlo para que sea de solo lectura u oculto, cuando hacemos esto lo que realmente provocamos es modificar un stream (bloque) que almacenará esa información para así tener un control sobre todos los archivos de manera individual. Otro bloque se encarga de almacenar nuestro archivo tal como lo vemos bit x bit y otro que informa la medida que este tiene. Pero existe otro bloque que no es modificable mediante la GUI (Graphical User Interface) es decir mediante ventanas, este bloque o ADS (documentado por Windows) puede ser utilizado para enlazar otro archivo desde el mismo, esto no es considerado un hack pues Windows lo ha mostrado como funcionalidad desde un principio para fines de compatibilidad aun cuando este resulta muy peligroso!, esta técnica también es conocida como fork.

Por ejemplo digamos que queremos ocultar un archivo, para esto necesitamos un archivo cualquiera, es decir un archivo que este a la vista de todos, por medio de ese archivo y aplicando el ADS tendremos como resultado un archivo que estará oculto bajo una técnica muy respetable y segura.

Antes de comenzar no está de más aclarar que este método de ocultación por ADS solo funciona en Sistemas Operativos basados en NT o mejor dicho aquellos que corren bajo particiones NTFS, por lo que si aun tiene Windows ME por favor hágale un favor al mundo y considere Linux como opción para migrar a un verdadero S.O...

Bien, comencemos por poner en práctica el ADS de una manera muy básica, lo que haremos a continuación será ocultar un archivo de texto con otro (verdadero camuflaje):

1. Abrimos la consola de Windows ("cmd.exe" desde Ejecutar o Win+R).

2. Vamos a raiz: "cd \"

3. Creamos un archivo de texto simple: "notepad visible.txt", nos preguntara si queremos crear un archivo nuevo porque no existe visible.txt contestamos con un SI.

4. Escribimos cualquier cosa o dejamos el archivo en blanco.


5. Guardamos y regresamos a la consola.

6. Tecleamos el comando "dir *.txt" y vemos que efectivamente ahí esta nuestro archivo que acabamos de crear, ahora, este archivo podría ser cualquiera, un txt, doc, jpg, gif.... esto es válido tanto para el archivo que ocultaremos como para el archivo original (notemos que mi archivo mide 73 Bytes para este ejemplo utilizando el texto "Este es un ejemplo de ADS, cualquier persona puede ver y abrir este texto" = 1Byte x Caracter ).

7. Ahora teclearemos el comando para realizar el ADS: "notepad visible.txt:invisible", todo lo que escribas en este archivo estará oculto, así que puedes escribir cualquier información confidencial.




8. Una vez guardado el archivo podremos verificar que el tamaño del archivo no se modifico "visible.txt" sigue midiendo 73Bytes ante la vista de cualquier administrador, ahora supongamos que quiero modificar el contenido de invisible, para eso solo tenemos que ejecutar el comando del paso 7 cuantas veces sea necesario, guardar y voila el archivo siempre estará oculto.




Ahora, intentémoslo con un archivo ya creado y cambiemos el tipo de archivos, como por ejemplo esconder un exe en un archivo de imagen GIF.

1. Ejecute los pasos 1 y 2 del ejemplo anterior.

2. Copiamos el archivo de ejemplo (y que podría ser cualquier otro) regedit.exe ubicado en la carpeta Windows.





3. Listamos el directorio para mostrar archivos con extensión GIF y EXE, ahí están nuestros dos archivos (imagen.gif puede ser cualquier imagen o archivo) pongamos atención a la medida de imagen.gif .

4. Ejecutamos el comando "type regedit.exe>imagen.gif:OCULTO.exe", el comando Type muestra el contenido de un archivo binario o de texto en consola (similar a la función CAT de Linux).

5. Ahora si damos un vistazo el archivo imagen.GIF sigue midiendo 2.818KB (en mi caso), ahora, para iniciarlo lo único que tenemos que hacer es invocar el comando "start C:\imagen.gif:OCULTO.exe", veremos que el regedit iniciara sin problemas

Mira el administrador de procesos como muestra la tarea en ejecución:



Para detectar que archivos están utilizando ADS puedes recurrir a la herramienta de SysInternals (ahora propiedad de Microsoft) llamada streams.
Bájalo desde aquí:
http://download.sysinternals.com/Files/Streams.zip

O bien modificar el registro siguiendo las instrucciones de esta pagina:
http://www.cyberarmy.net/library/article/110

Si experimentas un poco mas podrás observar ciertas limitantes en el modo de operar que tiene ADS pues si mueves el archivo a otra PC, solo se copiara el stream principal y no los asociados, hay una solución a esto y puedes encontrarla acá:
http://msmvps.com/blogs/quilez/archive/2005/03/10/38139.aspx

Después de esto las posibilidades de aplicar esta técnica son tantas como tu imaginación: scripts, archivos por lotes (BAT), virus y otras cosas....

Fuentes:
http://en.wikipedia.org/wiki/Fork_(filesystem)
http://www.securityfocus.com/infocus/1822
http://www.windowsecurity.com/articles/Alternate_Data_Streams.html
http://support.microsoft.com/kb/105763
http://www.auditmypc.com/freescan/readingroom/ntfsstreams.asp
http://www.heysoft.de/nt/ntfs-ads.htm


RadiX.life

Nuevo Look... [Position] 0011

Hoy he despertado con un poco de inspiración y el resultado esta en el nuevo banner de la pagina, no es mucho pero al menos se diferenciara de los otros blogs con plantillas genericas. Realmente no nací para el diseño gráfico! aun asi espero que sea del agrado para sus pupilas.

Todo el diseño esta en photoshop, la calidad se ve afectada por el preprocesamiento de las imagenes que hace blogger asi que pronto estare buscando algun otro lugar para poner mi preciado banner... espero ser mas regular en mis post's, tengo algunos "articulos" que me gustaria realizar y como como dice en alguna posicion del banner no se si en realidad sea "al bienestar por la tecnología", ultimamente esta frase no ha funcionado para otras instituciones como la UNLA, asi que quitare en signo de interrogación cuando asi sea....

Geeks nacimos y siendo geeks moriremos....

Radix.life