Este fin de semana ha sido el CTF organizado por la gente de HackIt Ucrania y os traigo unos pocos writeups de algunas pruebas que conseguí resolver. No empiezo por orden ya que esta prueba me la ha pedido bastante gente así que vamos allá, nos dan el siguiente enunciado:
Cypherpunk’s nightmare
foren150
Description: Our officers just have made cold boot attack on the suspect’s computer. Your role is to recover the content of this encrypted hard drive.
Attachment: (none)
Webpage: https://mega.nz/#!VdRAkaKT!xP7s74jwnlGmR2spg9RNaKFf5GmCGAv-pxW8aPZNkOw
Hint: (none)
Nos descargamos el archivo nightmare.zip de mega y al descomprimir nos encontramos con dos archivos:
El enunciado ya nos los decía así que no es ninguna sorpresa, tenemos una imagen de un disco cifrada en luks y un dump de la memoria del equipo del cual podremos extraer las claves de luks. Para ello vamos a probar la herramienta aeskeyfind (la web original no funciona el link así que toca utilizar un poco de google hasta conseguir los sources y compilarlo.
Le pasamos nuestro memdump y esperamos a ver que nos dice:
Como veis nos ha sacado dos posibles claves, espera … ¿dos? Aquí vino el mayor quebradero de cabeza ya que al intentar montar la imagen nos daba el siguiente error:
Y es que si os fijáis las claves que nos ha extraído aeskeyfind solamente tienen una longitud de 16, vamos a echarle un vistazo al dump con un lector hexadecimal y busquemos la primera key, al principio no vemos nada raro pero al llegar al último vemos lo siguiente:
Vemos que justo antes de la key que estábamos buscando aparece la segunda (la que he marcado en claro) y que el total de bytes esta delimitado de bytes a 0, y que el total suman 32 bytes que era lo que buscábamos, ¿será está la key real? La metemos en un archivo con el siguiente comando:
echo "68 3C 5A 4B F8 F1 CE DF 5B 64 9C 48 2E 48 E6 39 9E 90 12 6C 33 C8 5D 9A 69 13 E6 49 30 1B 5D CF" | tr -d " " | xxd -r -p > Safe.key
Y ahora montamos utilizando el nuevo archivo de key:
sudo cryptsetup luksOpen --master-key-file Safe.key encrypted.dd safe-home
Ya sin errores, montamos la partición luks en una carpeta y vemos que hay dentro:
Y ahí tenemos nuestro archivo con la flag, lo abrimos y obtenemos la flag:
h4ck1t{Not_paranoid_enough}
En los próximos días según vaya teniendo tiempo os subiré le resto de writeups de las pruebas que conseguí.
Espero os haya gustado, saludos!