Sexy Steganography-Ofuscacion y Distraccion

El 02/02/2011, en Curiosidades, Metodo EoF, Retos, por hecky 2.096 veces visto

Hola en esta entrada quiero compartir con ustedes tecnicas usadas en esteganografia para hacer mas difil detectar o extraer archivos ocultos. En esta entrada intentare usar imagenes muy agradables a la vista :)

¿Ofuscación?

No literalmente, por que la ofuscación busca hacer algo mas dificil de entender sin alterar el contenido. Y aqui si se altera. En mi precario vocabulario no recorde ninguna palabra descriptiva a esto (si alguien la tiene favor de hacermelo saber)

Bueno de que va la cosa?

Fácil, en algunos casos como ya mencione anteriormente nos podemos enfrentar a ciertos obstaculos extras que los creadores del reto pueden poner. Ejemplo claro es que algunos hacen uso de tecnicas de programacion para hacer “dificil” la extraccion. Ayer mientras divagaba mi mente por “equis persona y una HORROROSA razon” me puse a navegar tridimensionalmente por mis archivos, llegando a una vieja carpeta con retos que cree hace mucho y con los que practicaba mi penosa programacion en php. Dentro de ellos encontre archivos “desechos” o mal formados, y me puse a la tarea de analizarlos y ver que “ocultaban”.

Asi que veamos.

Ejemplo 1

El primer archivo es enrevesado.hex el cual como vemos en la siguiente imagen parece decir algo como el clasico “àÿøÿFIFJ” ¿Les suena? A mi me se me parece a la cabecera de un JPG, aunque algo enredado no?

Lo mejor sera analizarlo hexadecimalmente.

Yo rápidamente encontre un patron, cada 6 bytes lo pusieron al reves.

Dificil? Para nada, ya que identificamos como esta hay que reacomodar las cosas. Para ello hago uso del siguiente script en python

1
2
3
4
5
6
7
8
9
10
#!/usr/bin/env python
file = open("enrevesado.hex","rb").read() #Leo el archivo binario
final = open("taylor.jpg","wb") #Creo un archivo llamado taylor.jpg en modo escritura
ordenar = ""
for i in range(0,len(file),6): #Recorro cada 6 bytes
#Ordeno los bytes, por posicion los acomodo asi (6,5,4,3,2 y 1 byte)
    ordenar += file[i+5:i+6]+file[i+4:i+5]+file[i+3:i+4]+file[i+2:i+3]+file[i+1:i+2]+file[i:i+1]
#Los escribo en taylor.jpg
final.write(ordenar)
final.close()

Lo guardo como ordenar.py y lo ejecuto y me generar el archivo reconstruido con el nombre taylor.jpg

Y nos genera esta linda imagen de taylor.jpg :P

Ejemplo 2:

Nuestro siguiente ejemplo es apartir del archivo quesera.hex pareciera ser otro archivo sin sentido, sin embargo como en el ejemplo anterior se logra visualizar algo empero es algo raro.

Al abrirlo hexadecimalmente y analizarlo por algunos segundos, caeremos en cuenta de que se trata. Vemos algo como “PPNNGG” mas adelante “IIHHDDRR” lo cual me suena a “PNG” y el chunk “IHDR” cabecera del PNG. Empero la cuestion aqui es por que lo vemos repetido?

  • Una teoria es que hay dos PNG.
  • La segunda teoria es que es uno solo y repitieron cada byte delante de el mismo.

Sin embargo si seguimos analizando y llegamos al pie de formato, vemos que ya no se cumplo la teoria 2, puesto que vemos ahora adelante de cada byte, bytes nulos y no el repetido como suponiamos. Por lo que nos queda la teoria uno “Son dos imagenes PNG” y podemos complementar la teoria con que “Una imagen es mas chica que la otra y se relleno con byte nulos”.

Bueno aun todo sigue siendo una teoria, lo que haremos ahora ya que sabemos que sucede es recolecar cada dos bytes, empezando desde la posición 0(0,2,4,6,8…) y después la posición 1(1,3,5,7,9…)

Para ello haremos tambien un pequeño script, esta vez en PHP para demostrar la variedad.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
#Abro el archivo a analizar
$file=file_get_contents('quesera.hex');

#Creo dos archivos de salida
$salida1= fopen("SalidaSexy1.png","w");
$salida2= fopen("SalidaSexy2.png","w");

#Variables temporales
$tmp1="";
$tmp2="";

#Recorro de principio a fin quesera.hex cada 2 bytes
for ($i=0;$i<=strlen($file);$i+=2)
{
#Guardo en la variable tmp1 cada segundo byte
$tmp2.=$file[$i];
#Guardo en la variable tmp2 cada primer byte [($i-1)==(2-1)==1]
$tmp1.=$file[$i-1];
}
#Guardo el resultado en sus respectivos archivos
fputs($salida1,$tmp1);
fclose($salida1);
fputs($salida2,$tmp2);
fclose($salida2);
?>

Ejecutamos nuestro script y nos creara las imagenes PNG de salida. Veamos:

Imagen SalidaSexy1.png una imagen de gOOgle

Imagen SalidaSexy2.png una imagen de una “Love Fan de linux/ubuntu” :P

LISTO :)

Ahora a practicar un rato. A continuación les dejo 2 ejercicios para practicar ;)

Reto1:

¿Hermosa silueta?

Reto2:

¿Una ducha?

  • A cada imagen cuando encuentren lo que deben, deje un tipico “Pass:” para que sepan cuando termina el reto
  • Cada imagen tiene una imagen mayor o igual de agradable a la vista :P
  • El reto 1 (Silueta), es fácil, solo un poco de análisis y una trampa que puse por ahí
  • El reto 2 (Shower/Baño), es un poco mas complejo, pero si lo resuelven vale la pena :) (tambien el reto 1 vale mucho la pena)

Habiendo ya demostrado algunos casos, quiero decir una cosa mas. Las imagenes usadas aqui, a mas de uno les es agradable visualmente, y aunque ustedes no lo crean, son BUENISIMAS imagenes para ocultar algo ¿Por que?

  • Por el contexto de la imagen sirven principalmente como DISTRACCION
  • Lo que alguien menos va a hacer es ponerse a analizar si tiene algo :P

Asi que este tipo de imagenes sirve por si solas para ocultar, sin necesidad de hacer mucho.

P.D. Estas imagenes son tipicas de “Razones para usar linux” ¿Buenas razones no? yo uso linux :P

P.D.2. Ya habiendo aprendido esto, recomiendo darse una vuelta por EL RETO 7 de NUESTRA PRIMER SERIE DE RETOS y veran lo facil que es ;)

Sin mas, aparte de lo que pueda parecer este post, espero les sirva y se queden con la parte academica, y no solo con los wallpapers jeje.

Atte. hecky

hecky@neobits.org

Sigueme en twitter: http://twitter.com/hecky

Sigue el Canal de Videos de Neobits.org en Youtube: http://youtube.com/NeobitsOrg

 

Buscador Inverso de Imagenes-Tineye

El 14/01/2011, en Recursos, por hecky 1.487 veces visto

Hoy les quiero presentar tineye, para aquellos que no lo conocen. Tineye es un “Buscador Inverso de Imagenes” ¿Que quiero decir?

Primero recordemos como se hace una busqueda simple en Google de imagenes…Busquemos a una chica geek “girl geek”

Y como vemos, nuestro motor de busqueda nos devuelve imagenes que tiene asociado la cadena “geek girl”. Esto es una busqueda de imagene normal.

Pero que pasa si tengo yo una imagen que me encontre navegando? Ej:

Este pequeño “mono” (que los verdaderos conocedores de Mac OS X sabran quien es) y yo quiero saber de que paginas proviene, como se llama, donde aparece…

En este caso hago uso de:

Con esta gran utilidad. Puedo obtener eso…simplemente Ingresando a Tineye.com

Puedo subir un archivo o agregar una imagen desde una URL y….

Obtener los resultados de:

  • Imágenes parecidas
  • Nombre de la imagen
  • Coincidencias por tamaños
  • Formatos

¿Por que es útil esto en la esteganografia?

Facil, este gran recurso, nos permite buscar la integridad de una imagen. En esteganografia LSB sobretodo tenemos la necesidad para facilitar el trabajo de tener el archivo original para comparar pixeles, pero para esto se necesita la misma imagen de las mismas dimensiones y los mismos pixeles…Entonces con esto podemos facilmente buscar y ver si una imagen fue alterada…

Despues veremos uno que otro tutorial :)

Ahi se los dejo, no es nada nuevo, pero es muy util. TINEYE.COM

Atte. hecky

hecky@neobits.org

Sigueme en twitter: http://twitter.com/hecky

Sigue el Canal de Videos de Neobits.org en Youtube: http://youtube.com/NeobitsOrg

Tagged with:
 

LAGADS.exe – Lista, Extrae y borra ADS

El 29/12/2010, en ADS, Herramientas, Recursos, por hecky 2.116 veces visto

LAGADS.exe <List And Get Alternate Data Streams>

Hoy les vengo a presentar LAGADS.exe una Simple herramienta que programe para poder Listar, Borrar y Extraer Facil y Automaticamente ADS.

¿Por qué de la Herramienta?

Por que Normalmente para ver algo oculto (Conociendo el ADS) hacemos:

1
more <Archivo.extension:ADS

Pero eso solo nos mostrara los Caracteres Imprimibles en la Consola, entonces necesitamos hacer algo para extraerlo. Y hay varias maneras de hacerlo:

  • Darle una salida al comando (Pero los bytes se corrompen)
  • Usar mspaint (En caso de Imagenes)
  • Usar Firefox
  • PROGRAMAR!!!

Y bueno lo que se debe programar realmente es lo mas recomendable y es muy sencillo (Ej en PHP:)

1
2
3
4
<?php
$file=file_get_contents('/ruta/carpeta/archivo.hex:ADS');
echo $file;
?>

Simplemente hay que leer el archivo con el ADS y escribirlo en un nuevo Fichero.

LAGADS.exe nos Facilita esta tarea…Realemente es muy sencillo el funcionamiento.

Tenemos 4 Opciones:

  1. Listar ADS (Lista los ADS usando LADS.exe)
  2. Extraer ADS (Extrae el ADS)
  3. Borrar ADS (Borra un ADS Existente dejando limpio el archivo)
  4. Ayuda (Muestra informacion sobre LAGADS.exe)

La interaccion con el programa es muy Facil e intuitiva, por lo que no necesita mayor Explicacion. Realmente es una herramienta muy sencilla y simple, pero que me tome la molestia de facilitarnos el trabajo a la hora de extraer ADS.

Datos Técnicos:

  • Programado en Python y compilado para creacion del ejecutable con py2exe
  • Peso del Script en python de 124Kb y El ejecutable con todas las Dependencias y librerias 4.85Mb
  • Cada opcion del programa explica su funcionamiento
  • El programa hace uso de LADS.exe de Frank Heyne, LAGADS.exe tiene dentro de si los bytes de LADS.exe, y crea temporalmente LADS.exe cuando se elige listar los ADS, despues de acabar esta operacion LADS.exe se destruye
  • Para la creacion temporal de LADS.exe hago uso de unos scripts propios llamados getbytes.py y addbytes.py. Dos programas que parecerian inutiles para cualquiera, pero que ami me han ayudado bastante para algunas cosas,
  • Por obvias razones solo funciona en particiones NTFS (la tecnica de ADS mas no el programa, el programa sirve donde sea, pero no tiene caso fuera de particiones NTFS por que no se preservara el ADS)

Sin mas LAGADS.exe pretende ser una simple herramienta para facilitarnos la tarea de Listar,EXTRAER y borrar ADS

A continuación dejo un Video con un ejemplo del uso de LAGADS.exe

Bueno sin mas Pueden Descargar LAGADS.exe de aqui

Y claro sus respectivos hash:

1
2
Md5 = 20683539b00fd2b7029b3744504de8dc
sha256sum = 06ed83a1ea3c59ec2fcc645c4e3758ba845c0dc52004de526a684f7f78b4f661

Saludos y Espero comentarios ;)

Atte. hecky

hecky@neobits.org

Sigueme en twitter: http://twitter.com/hecky

Sigue el Canal de Videos de Neobits.org en Youtube: http://youtube.com/NeobitsOrg


Tagged with: