II Wargame SecurityByDefault («keyconsole»)

En primer lugar gracias a las personas detrás de SbD por organizar este concurso y enhorabuena a los ganadores, esperamos sus write-ups ansiosos.

Este reto consistía en conocer el token al ejecutar el fichero que proporcionaba la prueba ‘keyconsole’. Al ejecutarlo mostraba el siguiente mensaje:

Decido abrir el binario con un editor hexadecimal y veo que antes de ‘Checking if …’ hay un path hacia un fichero que puede ser la resolución de la prueba: /tmp/%i_privatekey_%i con un /dev/random encargado de generar numeros aleatorios. El %i es un entero

De hecho, si ejecutamos strace ./tmp_key podemos ver que intenta abrir un fichero distinto generado con un número aleatorio al principio y al final: /tmp/0_privatekey_2

Lo ejecutamos varias veces para comprobarlo y es así, cada vez pide un fichero con el inicio y final siempre generado ‘aleatoriamente’ %i%i%i%i%i

Para generar tantas combinaciones posibles de ficheros me hago un shell script que genere todos esos ficheros para ver que pasa, el script es muy sencillo, tonto y mejorable:

LIMIT=4 k=0 for ((i=0; i<=LIMIT; i++)); do `touch /tmp/$i'_privatekey_'$i` ; for ((k=0; k<=LIMIT; k++)); do `touch /tmp/$k'_privatekey_'$i` ; done done

Finalmente lo ejecutamos y voilá!

Token: Your*environment_is-fully:compatible_you*can=play.NOW

Intentaré subir más retos en los próximos días, superé sólo ocho más.

Hasta la próxima.!



Comentarios

Aún no hay comentarios. ¿Por qué no comienzas el debate?

Deja una respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.