Les envio una herramienta que empece el domingo pasado, y que recien
pude retomar y terminar hoy. Es para almacenar informacion oculta en
imagenes usando una tecnica esteganografica muy conocida, quiza la mas
conocida, que consiste en modificar los bits menos significativos de
cada componente de color de cada pixel en una imagen. Modificando
estos bits a nuestro antojo es posible almacenar otros archivos como
parte de una imagen portadora. Esta imagen sufre variaciones de color
imperceptibles para los seres humanos, por lo que a menos que uno sepa
que en la imagen hay datos ocultos es sumamente improbable que otro
sea capaz de recuperarlos. La tecnica, combinada con algo de cifrado,
se suele usar para enviar informacion secreta a otras personas. Por
ejemplo, A puede enviar una foto de un gatito a B por un canal
monitoreado por un tercero (ej. el FBI? :P) sin que este se de cuenta
que la verdadera informacion no es la foto del gato sino el archivo
oculto incluido en esa foto. No es un método infalible, aclaro.
Solo hay dos cosas que tienen que tener en cuenta al usar esta herramienta:
1) como imagen portadora (carrier) usen un formato lossless (ej. BMP,
o PNG). No usen formatos lossy como JPG, porque estos al comprimir
modifican los colores de la imagen, destruyendo la informacion
almacenada
2) Cuando la herramienta extrae la carga util de una imagen, esta no
sabe cual era el tamaño original de la misma ya que no hay ningun
marcador, ni dato que indique la longitud correcta. Esto es algo que
tendran que recordar ustedes. De todas maneras, si la carga util
consiste de un archivo con un formato como el JPG, a este no le
importa si luego del final del archivo vienen otros bytes basura.
Cualquier duda pregunten. Tengo pensado agregar otros metodos
esteganograficos al mismo script, mas adelante.
Saludos!
Leandro.-
Destination: Defcon CTF Quals 2011 - Forensics 100 Your tour guides: fLa & p4fg [vImeDhuSocHbarN] Intro ===== Classic image analyze, best way to get started! File ==== File: f100_fb8149b6f6eaef95d38 PNG image, 19025 x 1, 8-bit/color RGBA, non-interlaced Analyze ======= A long row with pixels (including alpha), for sure this is a image puzzle, lets get started. Da pixles need to be rearranged to a block, lets fire up perl with some imagemagick! Da c0de ======= #!/usr/bin/perl my $image = shift; my $lineLength = shift; my $imageSize = `convert $image -verbose /dev/null | awk '{print \$3}'`; my($imageWidth,$imageHeight) = split("x", $imageSize); my $appendFileName = "$image-linebreaked-$lineLength"; my $allSlices = " "; foreach my $chop (0..$imageWidth/$lineLength) { system("convert -crop ".$lineLength."x+".$lineLength*$chop."+0 $image $image-slice-$chop"); $allSlices .= $image."-slice-".$chop." "; } foreach my $chop (0..$imageWidth/$lineLength) { system("convert -append $allSlices $appendFileName"); } system("rm $allSlices"); print("Done!\n"); Solution ======== Aligning up the blue pixels we find the flag f100.pl f100_fb8149b6f6eaef95d38 450 thankYouSirPleasemayIhaveAnother
Dejo el archivo para que revisen y pensar que este año estuvo mas complejas las quals logrando solo 600 puntos.--
Saludos!
Veronica
--
---------------------------------------------------------------
http://keyserver.veridis.com:11371/export?id=5229491868415998346&created=1256222534000
Empecé a programar en Python hace un mes como mucho, por lo que no
tengo mucha experiencia todavia en él y estoy seguro que el código
puede optimizarse, aunque tengo la impresión que este lenguaje no es
tan flexible para trabajar a nivel bit como lo es C.
Saludos!
Leandro.-
2011/6/29 c1b3rh4ck <proye...@gmail.com>: