Archivo para la Categoria 'Desafío'
Solución del décimo desafío de ESET
Marzo 10, 2010 9:00 pmEn el décimo desafío de ESET se cuenta con dos archivos sin extensión y ante todo se debe determinar de qué tipo son. Para ello basta con abrirlo con cualquier editor de texto y se puede ver que la cabecera es la siguiente: 89 50 4E 47 %PNG
Como es fácil adivinar se trata de archivos de imagen del tipo PNG por lo que se procede a renombrarlos y abrirlos con un visor de imágenes. En ambos casos se verá la imagen del sitio de Elk Cloner (nombre del primer virus). En este punto hay que destacar que “ElkCloner” también tiene 9 caracteres pero simplemente fue colocada para despistar.
Si se compara la imagen mencionada contra los dos archivos descargados se puede apreciar una diferencia de tamaño de 940 bytes: la imagen original tiene 45.894 bytes mientras que “uno” y “dos” tienen 46.834 bytes cada uno.
Teniendo esta pista se puede buscar diferencias entre los 3 archivos y luego de una comparación binaria se puede llegar a establecer las siguiente y pequeñas diferencias entre “uno” y “dos”:
Las diferencias en esos archivos podían dan una pista sobre lo que puede almacenarse en ese lugar.
Si se lee con atención el desafío se puede ver que nuestro cliente decía que la contraseña se ocultaba en algún sitio y esta es la clave para saber que las imágenes y el sonido son utilizadas para ocultar información a través de la técnica conocida como esteganografía. En este caso se utilizó un software muy conocido y antiguo para realizar el camuflaje: Camouflage 1.x (más info).
Si bien no existen demasiadas aplicaciones ni técnicas para detectar este tipo de ocultamiento, StegSecret es una herramienta desarrollada por Alfonso Muñoz y permite saber cómo se realizó el camuflaje. Al utilizar esta aplicación se puede determinar que ambas imágenes ocultan la misma información en su interior, por lo que se debe intentar extraerla.
Para ello se utiliza Camouflage 1.x y se intenta desproteger los archivo (uncomouflage), pero al hacerlo se solicita contraseña. Aquí se puede optar por dos caminos, ya que no está permitido la utilización de fuerza bruta:
- Utilizar una vulnerabilidad encontrada en Camouglage en enero 2007 y que que permite hallar y/o sobrescribir la clave del archivo camuflado.
- Encontrar la clave de cualquiera de los dos archivos con la pequeña utilidad Camouflage Password Finder. En el caso del archivo “uno” la clave es “4ec12c8a4f2942c1043dfbe774b284a4” y en el caso de “dos” es”5ec12c8a4f2942c1043dfbe774b284a5“. Se debe notar la diferencia en el 4 y 5 inicial y final de la cadena que obviamente es la misma diferencia ya observada en binario previamente.
Por supuesto ninguna de las dos cadenas representa la contraseña buscada ya que se aclaraba que la misma tiene 9 caracteres. Luego, abriendo los archivos, en cualquiera de los dos se puede observar lo siguiente:
El archivo elk.txt por su parte contiene el siguiente texto:
MD5: b9c095c5e07361c00c54ddf7a4f062d5
SHA1: e38ad214943daad1d64c102faec29de4afe9da3d
La primera línea corresponde a un hash MD5 del archivo elkcloner.png original sin camuflar. La segunda línea es un SHA1 que se debe determinar a qué corresponde (puede ser a un archivo o a una cadena de caracteres como en este caso).
Si se buscan formas de obtener la cadena original a partir de un hash se puede utilizar por ejemplo esta base de datos en donde a partir del SHA1 se puede obtener la (sencilla) contraseña buscada: “password1″.
El ganador en este caso es Rafael Pablos García quien brindó la respuesta y la justificación. Dentro de poco tiempo estarás recibiendo tu licencia.
¡Esperamos hallan disfrutado del desafío tanto como nosotros haciéndolo!
Cristian Borghello
Director de Educación
Categories: Desafío
No Comments »
Desafío 10 de ESET
Marzo 5, 2010 4:39 pmUn cliente acaba de enviarnos un archivo comprimido con clave y nos dice que las pistas para encontrar dicha contraseña de 9 caracteres se encuentra oculto de alguna forma en este otro par de archivos (MD5: 159aa63c90c0a2692562d3414a39eaca).
Se debe determinar cual es la contraseña buscada sin realizar ataques de fuerza bruta sobre ningún archivo y dejarla en los comentarios de este post. La primera persona en describir la forma de llevar a cabo el proceso para obtener dicha clave, se llevará una Licencia del Antivirus de ESET.
Cristian Borghello
Director de Educación
Categories: Desafío
19 Comments »
Solución al noveno desafío de ESET
Febrero 11, 2010 4:10 pmEl siguiente código fuente del noveno desafío demuestra la condición que se debía saltar para averiguar el valor de la variable tipo integer referenciada como number.
#include “stdio.h”
void main()
{
int number = 0;
printf(“\nPiensa un numero del 1 al 10000: “);
scanf(“%d”,&number);if (number == 1337)
printf(“Ganaste!! Ingresa el código para reclamar tu premio.\n”, number);
}
En la siguiente imagen podemos observar al programa siendo desensamblado (se puede utilizar OllyDbg, IDA Pro, GDB, WinDbg, etc.) y la sección en la que se compara los datos: cmp [ebp+var_4] , 539h
En este caso 539h en hexadecimal corresponde a 1337 en decimal, siendo este el valor buscado. Por lo tanto, el ganador en este caso es Karcrack quien dió la respuesta y la justificación. Dentro de poco tiempo estarás recibiendo tu licencia.
¡Esperamos hallan disfrutado del desafío tanto como nosotros haciéndolo!
Juan Sacco
Analista de Malware
Categories: Desafío
No Comments »
Noveno desafío de ESET
Febrero 9, 2010 10:58 amEn esta edición de los desafíos de ESET tendremos que encontrar la forma de saltar las restricciones impuestas por una condición de tipo statement.
Del mismo modo que en la vida diaria, en un programa es necesario tomar decisiones basadas en ciertas condiciones y actuar en consecuencia. Los lenguajes de programacion tienen una sentencia básica denominada if (si condicional) que realiza una comparación sobre el contenido de una variable y permite decidir de acuerdo a la misma.
Si el resultado de la comparación es verdadero (true) se ejecuta la sentencia que sigue a continuación de if y, en caso contrario, falso (false), se salta dicha sentencia. La sentencia puede consistir a su vez, en un conjunto de instrucciones agrupadas en un bloque.
En el siguiente ejemplo, si el número del boleto que hemos adquirido coincide con el número aparecido en el sorteo, nos informan que hemos obtenido un premio:
if (numeroBoleto==numeroSorteo)
print (“Has ganado”);
Ahora, al ejecutar este programa (MD5: b5c8e8cf83d538af9187e53d4bba3421), debemos “adivinar” el número (constante numérica) que se nos solicita y se debe dejar la respuesta en los comentarios junto a la explicación de la forma en que se obtuvo dicho número. La primera persona en responder correctamente se llevará una Licencia del Antivirus de ESET.
¡Estaremos atentos a sus respuestas!
Juan Sacco
Analista de Malware
Categories: Desafío
19 Comments »
Solución al octavo desafío de ESET
Enero 20, 2010 11:10 amEl objetivo del octavo desafío era aprender a mirar y ver en el código fuente, acción que se debe llevar a cabo con atención cuando se busca sitios web o páginas comprometidas.
La respuesta correcta es “YO GANE” y se encuentra dentro del archivo de texto plano 8723g8738g73.txt codificado en formato HTML y al que había que llegar luego de algunos pasos previos.
Los pasos para encontrar la respuesta son las siguientes:
- Al ver el código fuente del archivo desafio.html se podía encontrar información útil y mucha basura que llevaría a pistas incorrectas.
- En su código también se puede ver un script ofuscado con una función que recibe las variables (p,a,c,k,e,d) como argumento. Este método es comúnmente utilizado por los creadores de malware para ocultar sus scripts. Más allá de ello, en pantalla puede verse una serie de números que comienzan con “61 48 52″ y finalizan con “48 68 30″. Esos son valores hexadecimales que se deben convertir a formato ASCII.
- El valor devuelto está en Base64 y es una cadena que comienza con “aHR0…”. Nuevamente, al decodificar esta cadena a ASCII se obtiene una URL.
- Al seguir el enlace se obtiene el archivo 8723g8738g73.txt mencionado.
- Al decodificar el HTML de ese archivo se llega a la frase “YO GANE”.
La primera persona que ha resuelto el desafío, es Gadix, para quien van nuestras felicitaciones y la Licencia que estará recibiendo en breve.
Pronto habrá mas desafíos y los mismo irán creciendo en complejidad para que todos puedan divertirse.
Juan Sacco
Analista de Malware
Categories: Desafío
No Comments »




