tag:blogger.com,1999:blog-74908175706521803122024-03-06T03:00:22.062-03:00Security HackSitio personal de Ariel M. Liguori De GottigAriel M. Liguori de Gottighttp://www.blogger.com/profile/02714929794781699420noreply@blogger.comBlogger7125tag:blogger.com,1999:blog-7490817570652180312.post-55776692447571268452009-03-03T14:20:00.002-02:002009-03-03T14:22:12.717-02:00Serie de Artículos sobre Criptografía.-En estos días <a href="http://tuxed.serveblog.net/">TuXed</a> nos esta ofreciendo una <a href="http://tuxed.serveblog.net/crypto-series-planning">serie de artículos de criptografía</a> elaborados por él mismo y que prometen NO defraudarnos.<br /><br />Aprovechenlo!<br /><br />Saludos,Ariel M. Liguori de Gottighttp://www.blogger.com/profile/02714929794781699420noreply@blogger.com0tag:blogger.com,1999:blog-7490817570652180312.post-90717146819588776572009-01-12T15:06:00.003-02:002009-01-12T15:12:31.345-02:00MD5 Collision DemoComparto con ustedes esta nota que leí <a href="http://www.mscs.dal.ca/%7Eselinger/md5collision/">aquí</a>.<br /><br /><span style="font-weight:bold;">Collisions in the MD5 cryptographic hash function</span> <table border="0"><tbody><tr><td width="10"><br /></td><td> It is now well-known that the crytographic hash function MD5 has been broken. In March 2005, Xiaoyun Wang and Hongbo Yu of Shandong University in China published an <a href="http://www.infosec.sdu.edu.cn/paper/md5-attack.pdf">article</a> in which they describe an algorithm that can find two different sequences of 128 bytes with the same MD5 hash. One famous such pair is the following: <pre>d131dd02c5e6eec4693d9a0698aff95c 2fcab5<span style="color:red;">8</span>712467eab4004583eb8fb7f89<br />55ad340609f4b30283e4888325<span style="color:red;">7</span>1415a 085125e8f7cdc99fd91dbd<span style="color:red;">f</span>280373c5b<br />d8823e3156348f5bae6dacd436c919c6 dd53e2<span style="color:red;">b</span>487da03fd02396306d248cda0<br />e99f33420f577ee8ce54b67080<span style="color:red;">a</span>80d1e c69821bcb6a8839396f965<span style="color:red;">2</span>b6ff72a70<br /></pre> and <pre>d131dd02c5e6eec4693d9a0698aff95c 2fcab5<span style="color:red;">0</span>712467eab4004583eb8fb7f89<br />55ad340609f4b30283e4888325<span style="color:red;">f</span>1415a 085125e8f7cdc99fd91dbd<span style="color:red;">7</span>280373c5b<br />d8823e3156348f5bae6dacd436c919c6 dd53e2<span style="color:red;">3</span>487da03fd02396306d248cda0<br />e99f33420f577ee8ce54b67080<span style="color:red;">2</span>80d1e c69821bcb6a8839396f965<span style="color:red;">a</span>b6ff72a70<br /></pre> Each of these blocks has MD5 hash 79054025255fb1a26e4bc422aef54eb4. Ben Laurie has a nice website that <a href="http://www.links.org/?p=6" althref="http://web.archive.org/web/20060210033801/http://www.shmoo.com/md5-collision.html">visualizes this MD5 collision</a>. For a non-technical, though slightly outdated, introduction to hash functions, see Steve Friedle's <a href="http://www.unixwiz.net/techtips/iguide-crypto-hashes.html">Illustrated Guide</a>. </td></tr></tbody></table> <span style="font-weight:bold;">Exploits</span> <table border="0"><tbody><tr><td width="10"><br /></td><td> As we will explain below, the algorithm of Wang and Yu can be used to create files of arbitrary length that have identical MD5 hashes, and that differ only in 128 bytes somewhere in the middle of the file. Several people have used this technique to create pairs of interesting files with identical MD5 hashes: <ul><li>Magnus Daum and Stefan Lucks have created <a href="http://www.cits.rub.de/MD5Collisions/">two PostScript files with identical MD5 hash</a>, of which one is a letter of recommendation, and the other is a security clearance. </li><li>Eduardo Diaz has described a <a href="http://www.codeproject.com/dotnet/HackingMd5.asp">scheme</a> by which two programs could be packed into two archives with identical MD5 hash. A special "extractor" program turn one archive into a "good" program and the other into an "evil" one. </li><li>In 2007, Marc Stevens, Arjen K. Lenstra, and Benne de Weger used an improved version of Wang and Yu's attack known as the <a href="http://www.win.tue.nl/hashclash/SoftIntCodeSign/">chosen prefix collision</a> method to produce two executable files with the same MD5 hash, but different behaviors. Unlike the old method, where the two files could only differ in a few carefully chosen bits, the chosen prefix method allows two completely arbitrary files to have the same MD5 hash, by appending a few thousand bytes at the end of each file. (Added Jul 27, 2008). </li></ul> </td></tr></tbody></table> <span style="font-weight:bold;">An evil pair of executable programs</span> <table border="0"><tbody><tr><td width="10"><br /></td><td> The following is an improvement of Diaz's example, which does not need a special extractor. Here are two pairs of executable programs (one pair runs on Windows, one pair on Linux). <ul><li><b>Windows version:</b> <ul><li><a href="http://www.mscs.dal.ca/%7Eselinger/md5collision/hello.exe">hello.exe</a>. MD5 Sum: cdc47d670159eef60916ca03a9d4a007 </li><li><a href="http://www.mscs.dal.ca/%7Eselinger/md5collision/erase.exe">erase.exe</a>. MD5 Sum: cdc47d670159eef60916ca03a9d4a007 </li></ul> </li><li><b>Linux version (i386):</b> <ul><li><a href="http://www.mscs.dal.ca/%7Eselinger/md5collision/hello">hello</a>. MD5 Sum: da5c61e1edc0f18337e46418e48c1290 </li><li><a href="http://www.mscs.dal.ca/%7Eselinger/md5collision/erase">erase</a>. MD5 Sum: da5c61e1edc0f18337e46418e48c1290 </li></ul> </li></ul> These programs must be run from the console. </td></tr></tbody></table><br /><span style="font-weight:bold;">How it works</span> <table border="0"><tbody><tr><td width="10"><br /></td><td> The above files were generated by exploiting two facts: the block structure of the MD5 function, and the fact that Wang and Yu's technique works for an arbitrary initialization vector. To understand what this means, it is useful to have a general idea of how the MD5 function processes its input. This is done by an iteration method known as the Merkle-Damgard method. A given input file is first padded so that its length will be a multiple of 64 bytes. It is then divided into individual 64-byte blocks <i>M</i><sub>0</sub>, <i>M</i><sub>1</sub>, ..., <i>M</i><sub><i>n</i>-1</sub>. The MD5 hash is computed by computing a sequence of 16-byte <b>states</b> <i>s</i><sub>0</sub>, ..., <i>s</i><sub><i>n</i></sub>, according to the rule: <nobr><i>s</i><sub><i>i</i>+1</sub> = <i>f</i>(<i>s</i><sub><i>i</i></sub>, <i>M<sub>i</sub></i>)</nobr>, where <i>f</i> is a certain fixed (and complicated) function. Here, the initial state <i>s</i><sub>0</sub> is fixed, and is called the <b>initialization vector</b>. The final state <i>s</i><sub><i>n</i></sub> is the computed MD5 hash. <p> The method of Wang and Yu makes it possible, for a given initialization vector <i>s</i>, to find two pairs of blocks <span style="color:red;"><i>M</i>,<i>M</i>'</span> and <span style="color:red;"><i>N</i>,<i>N</i>'</span>, such that <i>f</i>(<i>f</i>(<i>s</i>, <span style="color:red;"><i>M</i></span>), <span style="color:red;"><i>M</i>'</span>) = <i>f</i>(<i>f</i>(<i>s</i>, <span style="color:red;"><i>N</i></span>), <span style="color:red;"><i>N</i>'</span>). It is important that this works for any initialization vector <i>s</i>, and not just for the standard initialization vector <i>s</i><sub>0</sub>. </p><p> Combining these observations, it is possible to find pairs of files of arbitrary length, which are identical except for 128 bytes somewhere in the middle of the file, and which have identical MD5 hash. Indeed, let us write the two files as sequences of 64-byte blocks: </p><p> <nobr> <i>M</i><sub>0</sub>, <i>M</i><sub>1</sub>, ..., <i>M</i><sub><i>i</i>-1</sub>, <span style="color:red;"><i>M</i><sub><i>i</i></sub>, <i>M</i><sub><i>i</i>+1</sub></span>, <i>M</i><sub><i>i</i>+2</sub>, ..., <i>M</i><sub><i>n</i></sub>, </nobr> </p><p> <nobr> <i>M</i><sub>0</sub>, <i>M</i><sub>1</sub>, ..., <i>M</i><sub><i>i</i>-1</sub>, <span style="color:red;"><i>N</i><sub><i>i</i></sub>, <i>N</i><sub><i>i</i>+1</sub></span>, <i>M</i><sub><i>i</i>+2</sub>, ..., <i>M</i><sub><i>n</i></sub>. </nobr> </p><p> The blocks at the beginning of the files, <i>M</i><sub>0</sub>, ..., <i>M</i><sub><i>i</i>-1</sub>, can be chosen arbitrarily. Suppose that the internal state of the MD5 hash function after processing these blocks is <i>s</i><sub><i>i</i></sub>. Now we can apply Wang and Yu's method to the initialization vector <i>s</i><sub><i>i</i></sub>, to find two pairs of blocks <span style="color:red;"><i>M</i><sub><i>i</i></sub>, <i>M</i><sub><i>i</i>+1</sub></span> and <span style="color:red;"><i>N</i><sub><i>i</i></sub>, <i>N</i><sub><i>i</i>+1</sub></span>, such that </p><p> <i>s</i><sub><i>i</i>+2</sub> = <i>f</i>(<i>f</i>(<i>s</i><sub><i>i</i></sub>, <span style="color:red;"><i>M<sub>i</sub></i></span>), <span style="color:red;"><i>M</i><sub><i>i</i>+1</sub></span>) = <i>f</i>(<i>f</i>(<i>s</i><sub><i>i</i></sub>, <span style="color:red;"><i>N<sub>i</sub></i></span>), <span style="color:red;"><i>N</i><sub><i>i</i>+1</sub></span>). </p><p> This guarantees that the internal state <i>s</i><sub><i>i</i>+2</sub> after the <i>i</i>+2st block will be the same for the two files. Finally, the remaining blocks <i>M</i><sub><i>i</i>+2</sub>, ..., <i>M</i><sub><i>n</i></sub> can again be chosen arbitrarily. </p><p> So how can we use this technique to produce a pair of programs (or postscript files) that have identical MD5 hash, yet behave in arbitrary different ways? This is simple. All we have to do is write the two programs like this: </p><p> </p><pre><b>Program 1:</b> if (data1 == data1) then { good_program } else { evil_program }<br /><b>Program 2:</b> if (data2 == data1) then { good_program } else { evil_program }<br /></pre> <p> and arrange things so that "data1" = <span style="color:red;"><i>M</i><sub><i>i</i></sub>, <i>M</i><sub><i>i</i>+1</sub></span> and "data2" = <span style="color:red;"><i>N</i><sub><i>i</i></sub>, <i>N</i><sub><i>i</i>+1</sub></span> in the above scheme. This can even be done in a compiled program, by first compiling it with dummy values for data1 and data2, and later replacing them with the properly computed values. </p></td></tr></tbody></table> <span style="font-weight:bold;">Do it yourself: the "evilize" library</span> <table border="0"><tbody><tr><td width="10"><br /></td><td> Here, you can download the software that I used to create MD5-colliding executable files. <ul><li>Download: <a href="http://www.mscs.dal.ca/%7Eselinger/md5collision/evilize-0.1.tar.gz">evilize-0.1.tar.gz</a>. </li></ul> This software is based on Patrick Stach's implementation of Wang and Yu's algorithm. You can find his original implementation <a href="http://www.stachliu.com/md5coll.c">here</a>. <h4>Quick usage instructions:</h4> <p> Note for Windows users: the below instructions are for Unix/Linux. On Windows, you may have to append ".exe" to the names of executable files. Also, to use "make", you must have the GNU tools installed and working. </p><ol><li>Unpack the archive and build the library and tools: <pre> tar zxf evilize-0.1.tar.gz<br /> cd evilize-0.1<br /> make<br /></pre> This creates the programs "evilize", "md5coll", and the object file "goodevil.o". </li><li> Create a C program with multiple behaviors. Instead of the usual top-level function main(), write two separate top-level functions main_good() and main_evil(). See the file hello-erase.c for a simple example. </li><li> Compile your program and link against goodevil.o. For example: <pre> gcc hello-erase.c goodevil.o -o hello-erase<br /></pre> </li><li> Run the following command to create an initialization vector: <pre> ./evilize hello-erase -i<br /></pre> </li><li> Create an MD5 collision by running the following command (but replace the vector on the command line with the one you found in step 4): <pre> ./md5coll 0x23d3e487 0x3e3ea619 0xc7bdd6fa 0x2d0271e7 > init.txt<br /></pre> Note: this step can take several hours. </li><li> Create a pair of good and evil programs by running: <pre> ./evilize hello-erase -c init.txt -g good -e evil<br /></pre> Here "good" and "evil" are the names of the two programs generated, and "hello-erase" is the name of the program you created in step 3. <p> NOTE: steps 4-6 can also be done in a single step, as follows: </p><pre> ./evilize hello-erase -g good -e evil<br /></pre> However, I prefer to do the steps separately, since step 5 takes so long. </li><li> Check the MD5 checksums of the files "good" and "evil"; they should be the same. </li><li> Run the programs "good" and "evil" - they should exhibit the two different behaviors that you programmed in step 2. </li></ol></td></tr></tbody></table><br /><br />Fuente: <a href="http://www.mathstat.dal.ca/%7Eselinger/">Peter Selinger's WebPage</a>.Ariel M. Liguori de Gottighttp://www.blogger.com/profile/02714929794781699420noreply@blogger.com0tag:blogger.com,1999:blog-7490817570652180312.post-20258255729409395052009-01-11T01:00:00.001-02:002009-01-11T01:00:00.418-02:00Mini-Tutorial de Esteganografía/Estegoanálisis. Técnica Sustitutiva LSB by Alfonso MuñozLes dejo este mini-tutorial que halle en unos de mis blogs predilectos :-), espero que les sirva tanto como a mi.<br /><br /><span style="font-weight:bold;">Fuente: <a href="http://elladodelmal.blogspot.com/2008/01/mini-tutorial-de-esteganografaestegoanl.html">Un informático del lado del mal</a></span><br />FASE 3 - Parte Esteganografía<br /><br />Estimados "malignos", hace aproximadamente un mes. Chema y yo coincidimos en el CIBSI2007, donde presentaba oficialmente (más o menos) mis impresiones sobre mi herramienta estegoanalítica beta StegSecret. Chema me comentó que le resultaría muy interesante publicar algún que otro tutorial sobre esteganografía/estegoanálisis, ya que a "sus chicos..." les gustan las sensaciones nuevas ;)<br /><br />Aprovechando el Reto Hacking V se introdujo una pequeña imagen con información oculta de forma secuencial en los LSB (Least Significant Bit) de cada pixel de la imagen, para probar un poco al personal y como escusa para introducir este mini-tutorial.<br /><br />Empezemos con un mini-tutorial introductorio sobre esteganografía/estegoanálisis y técnicas sustitutivas LSB aplicadas a ficheros BMP, sin base matemática, de momento, en un futuro (maligno mediante) más...<br /><br />El término Esteganografía se define como la ciencia y/o arte de ocultar una información dentro de otra, que haría la función de “tapadera” (estegomedio o cubierta). En la criptografía, en cambio, no se oculta la existencia del mensaje sino que se hace ilegible para quien no esté al tanto de un determinado secreto (la clave). En actualidad, es muy interesante la combinación de ambas.<br /><br />El término Estegoanálisis se define como la ciencia que estudia la detección (ataques pasivos) y/o anulación (ataques activos) de información oculta en distintas tapaderas, así como la posibilidad de localizar la información útil dentro de la misma (existencia y tamaño).<br /><br />Dependiendo del proceso empleado para ocultar la información, su recuperación puede ser inviable, correspondiendo su inversión a la ciencia del criptoanálisis. Piensese, por ejemplo, en el cifrado de una información utilizando un algoritmo criptográfico “seguro” (¿?) y la utilización de un PRNG (Pseudo-Random Number Generator) para seleccionar las posiciones donde se ocultara la información dentro de un estegomedio dado al aplicar una técnica sustitutiva, por ejemplo, LSB.<br /><br />El estegoanálisis en casos muy concretos se convierte en una tarea trivial, pero en general, es un tema complejo y de difícil aplicación, principalmente por el número enorme de medios de información que existen (cantidad) y por la variedad de técnicas esteganográficas en estos medios.<br /><br />En este mini-tutorial introductorio voy a centrar la atención en el estegomedio más utilizado: las imágenes digitales, y especialmente, los ficheros BMP por su sencillez.<br /><br />Una de las técnicas más antiguas y difundidas es la técnica de sustitución LSB (Least Significant Bit). Esta técnica se basa en dos principios simples:<br /><br />a) La modificación de los bits menos significativos de la codificación de los pixeles de una imagen no introduce un "ruido visual", en general, suficiente para levantar sospechas a una persona que vea una imagen que contiene información oculta.<br /><br />b) La información almacenada "naturalmente" en los LSB es aleatoria, con lo que su modificación para introducir información oculta no proporcionaría pistas adicionales a un analista.<br /><br />La primera afirmación a), en general, se cumple, pero la segunda es falsa, más adelante veremos porqué.<br /><br />Existen distintas maneras de aplicar una técnica sustitutiva LSB dependiendo del estegomedio elegido, en un formato BMP, en general, en la codificación de los pixeles de la imagen, en un fichero GIF, por ejemplo, a los indices que apuntan a la paleta de colores, en un formato JPEG a los coeficientes cuantificados DCTs, etc, etc.<br /><br />En el Reto V escogimos el formato BMP (cuando hablo de BMP me refiero aquí al Windows BMP) por ser, en general, un formato sin compresión con lo cual permitiría a cualquiera que intentará detectar la información oculta acceder directamente a la codificación de los pixeles. Además, la información se ocultó en el 1erLSB de cada octeto de la zona de los pixeles, con lo que más fácil imposible....<br /><br />Es posible utilizar cualquier bit de la codificación de un pixel para ocultar una información, pero el ruido introducido, por ejemplo, visual, el bastante notorio para los bits de mayor peso.<span id="fullpost"><br />[Inserción/Extracción de información]<br /><br />La cabecera de los ficheros BMP: Tipo (2 byte) + Tamaño Archivo (4 bytes) + Reservado (4 bytes) + Distancia a los pixeles (4 bytes), incluye información para posicionarnos en la codificación de los pixeles de la imagen. Dependiendo de la resolución de la imagen, los pixeles pueden estar codificados de diferentes formas: 1,4,8,16,24,32 bits/pixel.<br /><br />Por ejemplo, en una resolución típica, de 24 bits/pixel, cada pixel de la imagen se representa con 3 octetos, en este caso uno para el nivel de rojo, otro para el nivel de verde y otro para el nivel de azul, escala RGB.<br /><br />La codificación de los pixeles es importante a la hora de decidir como ocultar un información, porque esto puede ayudar a dificultar la detección a un potencial estegoanalísta. Es más, puede engañar a algoritmos de detección muy precisos.<br /><br />En general, la técnica sustitutiva LSB se puede aplicar a los pixeles de la forma que se desee y en el orden que se quiera.<br /><br />De forma secuencial, pseudoaleatoria, mezcladas, etc. Por ejemplo, en una imagen de 24 bits/pixel (3 octetos), podríamos ocultar en ciertos pixeles sólo información en su octeto de Rojo, en otros en el de azul, etc.<br /><br />[Consideraciones mínimas de seguridad]<br /><br />Hace unos años se demostró que la aplicación de un técnica sustitutiva LSB sobre los pixeles de una imagen, independientemente de como se seleccione los pixeles, deja rastros traceables, mayores cuanto mayor sea el mensaje oculto.<br /><br />A lo largo de la joven historia del estegoanálisis, algunos ataques han mostrado su validez, unos mejores otros peores.<br /><br />Uno muy clásico son los ataques Visuales que mediante filtrados alertan visualmente de la presencia de información oculta, (aunque depende de la imagen) presenta resultados notorios, por ejemplo, cuando una imagen almacena información oculta aplicando LSB de forma secuencial sobre alguna zona de pixeles de la imagen. De hecho, aunque la información almacenada es muy pequeña si haceis un ataque Visual (LSB-0) con StegSecret a la imagen del RetoV, observareis a bajo a la izquierda un "pequeño patrón".<br /><br />Por cierto, os lanzo una pregunta facil-facil, ¿si modificamos los LSB al principio del fichero BMP porqué al hacer el ataque Visual vemos modificaciones en la parte de abajo de la imagen y no en la de arriba como debería ser?<br /><br />Aunque necesitaría un post, por cada uno, para explicarlos medianamente, en general, los algoritmos estegoanalíticos más famosos son los algoritmos estadísticos/estimadores, que se centran en la detección de información oculta con una cierta técnica de ocultación más o menos sofisticada. Existen otros tipos de algoritmos nuevos más prometedores.. pero esto en otra ocasión.<br /><br />Voy a comentar brevemente 2 algortimos estadísticos/estimadores (ver StegSecret).<br /><br /><br />El ataque ChiSquare, se basa en estudiar las frecuencias de una pareja de valores y aplicarles un test estadístico chiSquare.<br /><br />Dado unas condiciones de partida, analizando como se parecen los valores de la pareja se puede estimar la probabilidad de modificación de bits de la imagen, y en consecuencia detectar la presencia de información oculta, y estimar el tamaño de la información enmascarada. Es útil, por ejemplo, para una detección de LSB secuencial o LSB pseudoaleatorio cuando hay más de un 97% de ocupación(aprox) de la cubierta. Dependiendo de como se eliga los valores de la pareja y en que zona de la imagen se aplique el ataque ChiSquare puede tener éxito en su detección o no...<br /><br />El ataque RS (RS viene del nombre de clasificación de grupos de pixels, R=Regular, S=Singular) es un ataque muy preciso para la detección de mensajes ocultados de forma pseudoaleatoria. Precisión, en torno, a modificaciones de 0'003 bits/pixel.<br /><br />Cualquiera de estos ataques se pueden aplicar a distintos formatos gráficos y con diferentes codificaciones. Tipicamente, se puede ver su utilidad en imágenes RGB. En general, yo no recomiendo utilizar imágenes para ocultar información, en un futuro justificaré más porqué...<br /><br />De todas formas, si un usuario lo desea existen unas recomendaciones mínimas de seguridad a cumplir:<br /><br />a) La elección de la cubierta es muy importante, única por cada transmisión. Se recomienda imágenes de alta resolución (imágenes escaneadas o tomadas con cámaras digitales) o imágenes en escala de grises.<br /><br />Por ejemplo, la imágen utilizada para el Reto V es una mala imagen. Al ser un imagen con amplias zonas de colores uniformes la sustitución LSB es apreciable en la imagen original. ¿Os habiais dado cuenta?.<br /><br />b) Si aplicamos una técnica sustitutiva (existen otras, todo a su tiempo) a menor información ocultada menor es la probabilidad que las alteraciones producidas permitan a un analista detectar la presencia de información oculta. Basicamente esto se puede hacer de dos maneras:<br /><br />b1) Ocultando menos información. Esto se puede hacer de multiples formas, y no necesariamente usando compresión. Existen procedimientos muy útiles de matrices de codificación, etc.... (hablaremos en un futuro).<br /><br />b2) Distribuyendo una información en más de una cubierta. Por ejemplo, StegPage.<br /><br />Y hasta aquí este breve tutorial.<br /><br />Me gustaría, aprovechar y comentar unas cuestiones mínimas sobre StegSecret relacionadas con comentarios de gente en Internet que he estado leyendo y, que son erróneas.<br /><br />En primer lugar, StegSecret es una herramienta de detección (estegoanálisis) con lo cual no se tiene que comparar con herramientas de ocultación (esteganografía)... En segundo lugar, StegSecret implementa, en general, dos tipos de procedimientos. Detección de herramientas esteganográficas concretas que dejan rastros traceables, por ejemplo, EOF y LSB. Y por otro lado, algoritmos visuales y estadísticos que se centran en técnicas de ocultación (no en herramientas concretas que la utilizan), por tanto es genérico. Se centran en LSB secuencial y pseudoaleatorio.<br /><br />Leyendo por ahí, veo que la gente no ha comprendido muy bien que es una técnica EOF. Asique lo indico rapidamente. Existen multitud de formatos de ficheros que si añades una información al final del mismo, esto no altera su funcionamiento. Pobrad a añadir información a un: .exe, .doc, .ppt, .wav, .mp3, .jpg, .png, .gif, .bmp, etc, etc.<br /><br />Un técnica muy tontorrona pero que es más o menos difícil de automatizar su detección, en StegSecret, por ejemplo, se analiza la estructura de ciertos formátos gráficos para detectar esta presencia de información, independientemente de la herramienta de ocultación que la haya puesto.<br /><br />Bueno dicho lo dicho, espero que haya sido útil este minitutorial, no muy básico y nos veremos en un futuro.... o no.<br /><br />Alfonso Muñoz<br />http://stegsecret.sourceforge.net/<br /></span>Ariel M. Liguori de Gottighttp://www.blogger.com/profile/02714929794781699420noreply@blogger.com0tag:blogger.com,1999:blog-7490817570652180312.post-33393179145451203942009-01-08T14:57:00.002-02:002009-01-08T14:59:12.192-02:00Taller Forensics I. FATxxBuenas, les dejo a todos el link al tallar de Forensics Nro 1 que ha realizado el gran <span style="font-weight:bold;">Vic Thor</span>, espero que les sirva y les agrade tanto como a mi :).<br /><br /><span style="font-weight:bold;"><a href="http://www.wadalbertia.org/phpBB2/viewtopic.php?t=4630">Taller Forensics I</a><br /></span><br />Saludos,Ariel M. Liguori de Gottighttp://www.blogger.com/profile/02714929794781699420noreply@blogger.com0tag:blogger.com,1999:blog-7490817570652180312.post-15603837587157620172009-01-07T08:31:00.002-02:002009-01-07T08:39:37.406-02:00Cryptographic hash Algorithm CompetitionPor si muchos no lo sabían les cuento que se esta realizando una competencia para determinar el nuevo algoritmo de cifrado, que se llamará SHA-3. En la primer ronda ya quedan 51 de los 64 participantes iniciales y aún se continúa realizando el análisis sobre los algoritmos restantes.<br />En <a href="http://ehash.iaik.tugraz.at/wiki/The_SHA-3_Zoo">ésta página</a> pueden ver cuales de los algoritmos ya han sido quebrados y la técnica que se utilizo para lograrlo (en otro post detallaremos qué significa cada método).<br />Veremos quién resulta victorioso!<br /><br />Más información en:<br /><ul><li><a href="http://en.wikipedia.org/wiki/SHA-3">Wikipedia</a></li><li><a href="http://csrc.nist.gov/groups/ST/hash/sha-3/Round1/index.html">NIST (<span style="font-style: italic;">National Institute of Satndards and Technology</span>)</a></li><li><a href="http://blog.s21sec.com/2009/01/sha-3-y-algunos-conceptos.html">s21sec</a><br /></li></ul>Ariel M. Liguori de Gottighttp://www.blogger.com/profile/02714929794781699420noreply@blogger.com0tag:blogger.com,1999:blog-7490817570652180312.post-67663163503373112092009-01-07T08:26:00.002-02:002009-01-07T08:31:11.655-02:00Obtener pass con hash MD5Seguramente todos han oido hablar del algoritmo de encripcion MD5 ya que su uso es muy extenso cotidianamente. Es por ello que será de interes saber la clave un password cifrado con este algoritmo, es por ello que aquí les recomiendo una página en donde ya estan alojadas muchísimas claves ya calculadas: <a href="http://www.passcracking.com./index.php">PassCracking.ru</a>, espero que les sea de ayuda ;)<br /><br />Saludos,Ariel M. Liguori de Gottighttp://www.blogger.com/profile/02714929794781699420noreply@blogger.com0tag:blogger.com,1999:blog-7490817570652180312.post-60728405602761919742008-11-25T12:22:00.003-02:002008-11-25T12:26:35.824-02:00Solución al CRACKME de Hispasec.-Enhorabuena, ya están los ganadores del "crackme" que propuso hispasec en festejo de su decimo aniversario. La verdad que es un problema muy interesante que les recomiendo a todos que intenten resolver por su cuenta, les dejo el link para que se descarguen el archivo y también otro link para que observen la mágnifica solucion que dejo el Sr. Alejo Murillo (primero intenten ustedes ;) ).<br /><br /><a href="http://www.hispasec.com/uad/crackme.exe">Decargar CRACKME</a><br /><a href="http://www.hispasec.com/uad/SolucionCrackme.pdf">Ver solución</a><br /><br />Saludos y disfruten!Ariel M. Liguori de Gottighttp://www.blogger.com/profile/02714929794781699420noreply@blogger.com0