SpookyPass

Archivo Analizado:

  • Nombre: ./pass

  • Comportamiento: Solicita una contraseña.

Herramientas Utilizadas:

  • ltrace

  • strings

  • radare2

Análisis con Radare2

Cargar el binario en radare2:

r2 ./pass

Ejecutar Análisis Automático:

[0x00001090]> aaaa

Salida relevante:

  • Análisis de importaciones (af@@@i)

  • Identificación del entrypoint (af@ entry0)

  • Recuperación de variables locales (afva@@@F)

  • Escaneo de strings en código (/azs)

Funciones Identificadas:

[0x00001090]> afl

Funciones principales:

  • main @ 0x00001189

  • strcmp @ 0x00001080

  • fgets @ 0x00001070

  • printf @ 0x00001060

  • puts @ 0x00001030

Análisis del main

[0x00001090]> pdf @main

Secciones relevantes:

  1. Mensaje de bienvenida

    • Se imprime "Welcome to the SPOOKIEST party of the year."

    • Luego solicita una contraseña.

  2. Entrada de Usuario

    • Se almacena en una variable (s1) usando fgets().

    • Se remueve el newline con strchr().

  3. Comparación con la Contraseña Correcta

    • Se compara con strcmp() contra s3cr3t_p455_f0r_gh05t5_4nd_gh0ul5.

    • Si es correcta, se imprime "Welcome inside!"

    • Si es incorrecta, se imprime "You're not a real ghost; clear off!"

  4. Extracción de un Flag

    • Se observa el uso de obj.parts @ 0x4060 que contiene HTB{un0bfu5c4t3d_5tr1ng5}.

    • Un loop reconstruye el flag byte a byte.

Conclusión

  • La contraseña esperada es: s3cr3t_p455_f0r_gh05t5_4nd_gh0ul5.

  • El flag final extraído del binario es: HTB{un0bfu5c4t3d_5tr1ng5}.

Last updated