Bueno en este pequeño tutorial, les mostrare como normalmente analiso un reto para poder
resolverlo. Aqui hace un dia resolvi un reto de
You are not allowed to view links.
Register or
Login y decidi que explicaria como lo
hice. El reto en cuestión es el reto 8. Y nos proveen con esta imagen:

.-Lo primero que hago es descargarla a mi computadora.
.-Ahora lo siguiente que hago es ver su extension; BMP....FUCK!!! una de las extensiones que
menos me gusta, por que la estructura de este formato no la conozco bien y por que en caso
de que se necesite programar algo para LSB o algo, yo no se manejar ficheros BMP con PHP con
ayuda de la liberia GD. Asi que empezamos mal :(
.-Sea como sea, no me sirve de nada ver una extensión, debo comprobar que si sea el tipo de
fichero que dice la extensión. Para eso abrire la imagen con mi editor hexadecimal.
.-Con el editor hexadecimal, hare principalmente dos cosas importantes
1) Ver la cabecera del archivo para saber de que tipo de fichero se trata.
2) Ver si hay algo oculto por EoF y con suerte, asi resolver facilmente el reto.
.-Al abrirlo veo la cabecera y los primeros dos bytes son:
"424D" (BM)
, bien vamos bien, si se trata de un BMP(por desgracia :P )
Siguiendo analizandolo, vemos que
despues de 53 bytes que definen la
estructura basica de un BMP, nos encontramos con muchos bytes (FF), en ciertos lados
hay bytes (00), que
por lo que me sospecho, esto nos dice que la imagen
esta constituida por una imagen con un color predominante, con algunos pixeles distintos
(muy pocos). Si seguimos viendo la estructura, encontraremos que una parte del
fichero, hay mas bytes (00) y algunos (C7, 7C, D9, 8C, BD, E9, F0, 9A, A7 y D0)
como sea son muy pocos y nada relevante.

Llegamos al final del fichero y no encontramos ningun otro fichero oculto. Tampoco es muy
grande el fichero.
.-Bueno ahora si, descartamos esteganografia por EoF..-Asi que tendremos que pensar en ir por otro lado. Me digo a mi mismo: "Mi mismo ¿Recuerdas
Todos esos bytes parecidos en el BMP y que algunos pocos eran diferentes, NO SE TE HACE UN
POCO RARO??? SI....Para mi que la mejor alternativa es ver por los
COLORES. Seguro hay algo ahi.
.-Entonces abro la imagen con mi visor "INFRAVIEW" que si hay algo en los colores me sera de
utilidad.

.-Al abrirla veo un texto que dice "HELLO" y veo una linea debajo.
¿Que hace
esa linea ahi, tan solita??? Bueno sigamos.
.-Con el infraview, me pongo encima de el color blanco y doy click, y miro en la parte de
arriba, para que me de el color RGB, me da (255,255,255) osea un BLANCO PURO, hago lo mismo
en diferentes lados y es el mismo resultado.

Ok, todo bien, pero ahora hagamos un ZOOM y veamos esas letras.
.-Al ver las letras con el zoom, claramente se ve la consistencia del color negro (0,0,0),
SIN EMBARGO hay algunos pixeles en la "E","L","L" y "O"...puede ser que ahi este la clave...
:D para descartar que ahí este la clave se me ocurre algo. Veo que las "eles" (LL) son
iguales y tiene los mismos pixeles de diferente color. Lo que hago es ver los valores RGB de
los pixeles que no son negros (0,0,0) de una "L" y despues los comparo con los de la otra
"L". Veo que
SON EXACTAMENTE LOS MISMOS, asi que los dejo en
paz, ya que con eso vi, que no son hechos aproposito, si no que con el programa de diseño
que usaron para crear la imagen, puso esos pixeles.

Puedo hacer otras dos pruebas que confirman esto; 1)con la "O" si la parto verticalmente a
la mitad, de tal modo que quede simetrica, veo que los valores RGB de la derecha, se
REPITEN EXACTAMENTE IGUAL en la izquierda.

2) Algunos de esos pixeles que no son "negros puros" en las letras, tienen de valor RGB
"240" "124" o "199" y eso si lo interpretamos en ASCII (- | Ã)
no nos dice nada coherente. Por lo que DESCARTAMOS que en esos pixeles haya algo
escondido.

.-Ahora si pasemos a lo unico que nos falta. LA LINEA...Desde el principio sospeche de ella
:D
.-Hare mas zoom en esa linea, y vere que es un tipo de color ROJO, pero no es puro (255,0,0)
ni consistente en toda la linea. Cambia casi en todos los pixeles de la linea.

.-Ahora hare lo mismo, vere los valores RGB de cada pixel, y empiezo:
(112,0,0),(97,0,0),(115,0,0),(115,0,0)...etc...

.-Esperen un minuto!!!! Si sera por aca??? o ¿estoy perdiendo el tiempo?
Si vemos los primero valores RGB, vemos que todos tienen un numero en el "Red",
y en el "Green" y "Blue" tienen ceros "0". Aparte de eso si vemos los valores numericos de
los "Red" estan comprendidos entre los 97 y cientos y tantos...Eso en ASCII tiene mucha
lógica. Yo creo que si es por aca ^^
.-Si traducimos a ASCII los primeros valores que tenemos "112.97.115.115"
nos da: "pass" GENIAL!!!! vamos bien. Sigamos....-Sacamos todos los valores "RED" de los valores "RGB" que son los que nos interesan. y nos
da:
112.97.115.115.119.111.114.100.61.89.114.82.111.116.55.-Despues tenemos varias opciones, buscamos el numero a su equivalencia ASCII en la tabla, o
Vamos apretando ALT+# o la que yo use, fue programar un script en PHP que me retorne el
ASCII de los valores que saque. Mi script es este:
<?php
$num="112.97.115.115.119.111.114.100.61.89.114.82.111.116.55"; //Valores RGB que obtuvimos
$exp=explode(".",$num); //Elimino el punto que puse
for($i=0;$i<count($exp);$i++) //Recorro cada numero decimal
{
$chr=chr($exp[$i]); //Obtengo el ASCII de cada numero
echo $chr; //Imprimo el resultado
}
?> Y me basta con ejecutarlo y Sale:
Como vemos sale: password=****** (CENSURO EL PASS, PARA NO DAR RESPUESTA
AL RETO, y QUE LO HAGAN)LISTO YA LO RESOLVIMOS!!!!
Sin embargo hay una solución mas facil, Si volvemos a revisar CAUTELOSAMENTE el archivo con
nuestro editor hexa. Vemos una parte que dice:
p..a..s..s..w..o..r..d..=..*..*..*..*..*..*..
¿Por qué?
Por que El formato bmp tiene esa característica. Los bytes que vemos, esta intimamente
relacionados, con los PIXELES que tiene la imagen. Asi si vemos en el editor
hexadecimal, donde esta la
"p" tiene un valor de byte de
"70" luego siguen
dos puntos que son "00 y
00" despues esta la
"a" con
otros dos puntos que tiene valores
"61 00 00" Si
esos primeros 6 valores (
70 00 00 61 00 00) los convertimos a
decimal nos da:
(112 0 0 97 0 0) ¿Los
reconoces? Claro!!! Son los valores RGB ^^ Nada mas
que aqui estan en hexadecimal, pero al imprimirlos en ASCII sale la respuesta por eso...


Aqui el autor del reto, no tuvo cuidado de eso. Hubiera sido mejor elegir otro tipo de
formato(como PNG. JPG, o GIF), donde no estaria este BUG.
Bueno eso es todo. Creo que me extendi un poco. jeje Esque aqui explique mucho, pero en si
no hago todo eso parte por parte, sino que ya lo hago automaticamente, por mi experiencia en
esto, de hecho el reto lo resolvi en "5 minutos". De hecho me tarde mas en hacer el script
que en encontrar el metodo esteganografico.
Espero esto masomenos les de una idea de como se resuelve...oh mas bien...como resuelvo YO
(hecky) los retos...
Resumen para buscar en una IMAGEN:
1.Ver formato y cabecera
2.Al ver el formato, enfocarse en las tecnicas mas usuales a ese formato
3.Analisis con editor hexadecimal
4.Ver colores
Espero Y Que con esto LOGRE IMPULSAR que resuelvan RETOS DE ESTEGANOGRAFIA,
en los diferentes WARGAMES que hay o los que publico aqui como vieron no son dificiles. Solo
hay que dedicarnos un poco.Saludos ;)
Att. hecky
You are not allowed to view links.
Register or
Login