domingo, 16 de enero de 2011

Alternate Data Streams



¿Qué son los ADS?

Básicamente son flujos (de bytes) de datos almacenados dentro de un fichero, es decir, ficheros dentro de ficheros y es una carácteristica "especial" que nos otorga el sistema de archivos NTFS de Microsoft.

¿Para que vale esto?

Pues a priori no parece que esto nos pueda servir de mucho, sin embargo, su cara oscura puede que interese ya que se podría:


  • Ocultar ficheros de "cualquier tipo" pasando totalmente desapercibidos por un administrador de sistemas.
  • Oculta carpetas.
  • Ejecutar un fichero oculto (esta es la que más me gusta)...

Pero mejor que explicarlo, veamos algún ejemplo, y para ello se hará desde línea de comandos.

Ocultando un fichero de texto en otro fichero de texto:

Creamos un fichero de texto que se llame cita_Quijote.txt y le añadimos el texto:

En un lugar de la Mancha, de cuyo nombre no quiero acordarme, no ha mucho tiempo que vivía un hidalgo de los de lanza en astillero, adarga antigua, rocín flaco y galgo corredor...

Creamos otro fichero de texto que se llame cita_estega.txt y le añadimos el texto:

Free your body and soul
Unfold your powerful wings
Climb up the highest mountains
Kick your feet up in the air
You may now live forever
Or return to this earth
Unless you feel good where you are!

Mas o menos quedaría esto:




Es interesante prestar atención al tamaño del fichero cita_Quijote.txt.

Creamos un ADS con cita_estega.txt sobre cita_Quijote.txt con el comando:

type cita_estega.txt > cita_Quijote.txt:eternoAprendiz 

A continuación eliminamos el archivo cita_estega.txt

Si observamos de nuevo el tamaño del archivo cita_Quijote.txt, comprobaremos que no ha cambiado en nada su tamaño, sin embargo esto no es así, realmente ahora contiene a cita_estega.txt, aun incluso habiéndolo eliminado. 

Para demostralo escribimos el comando:

more < cita_Quijote.txt:eternoAprendiz

Como ya suponíamos podemos ver el contenido de cita_estega.txt:




En realidad esto es un simple ejemplo, se pueden ocultar carpetas y ficheros de cualquier tipo y tamaño.

Si ademas uno de esos ficheros es un ejecutable (podría ser malware), incluso podríamos ejecutarlo tan solo con utilizar el comando start.

Como se intuye, esto da escalofrios.

Para finalizar, si os quedan ganas de profundizar en esta maravilla que Microsoft nos regala, os recomiendo que leais uno de los tantos y maravillosos artículos que nos proporciona Kriptopolis:

jueves, 6 de enero de 2011

Recuperación del arranque en windows 7

Si alguna vez necesitamos restaurar o recuperar el arranque de Windows 7 por cualquier motivo (virus, gestores de arranque, etc) y las opciones que encontramos por la red no nos ayudan porque obtenemos mensajes del tipo:

No se ha encontrado elemento...


Tal vez si sigues estos pasos podamos solucionar el problema:
  1. Necesitamos arrancar el PC con el disco de Windows 7 o en su defecto creando un disco de recuperación:
    • Panel de control > Sistema y seguridad > Copias de seguridad y restauración.
  2. Seleccionamos la opción de Recuperar el sistema hasta llegar al símbolo del sistema.
  3. Ejecutamos el comando diskpart y seguimos la secuencia:
    • list disk.
    • select disk = 0
    • list partition
    • select partition = 1
    • active
    • exit
  4. Reiniciamos el sistema y volvemos a repetir el paso 2.
  5. Ahora ejecutamos la siguiente secuencia de comandos:
    • bootrec /FixMbr
    • bootrec /FixBoot
    • bootrec /RebuildBcd
  6. Reiniciamos y listo.
Espero que con esto consigas recupera el registro de arranque.