Write up realizado por Javi Tallón (jtsec.es). Enlace del reto
Descripción del reto: El equipo reverser PKTeam del país Fwhibbit ha podido obtener un binario del país enemigo Vulpensa. Según la información obtenida el binario oculta la flag con una pequeña ofuscación provocando que nadie obtenga acceso sin autorización a los códigos de lanzamientos de misiles del ejercito de Vulpensa. Ayuda al equipo reverser a poder dar con la flag que será vital para la vida del los fwhibbitenses y evitar un conflicto!
Cuando Naivenom prometió a través del grupo de Telegram de la Comunidad Fwhibbit una camiseta de los Conejos al primero que resolviera este reto no dudé ni un momento, solté en lo que estaba trabajando y me puse manos a la obra: ¡necesitaba esa camiseta!
Llevando ya más de una década trabajando en ciberseguridad, es una verdadera alegría descubrir como este grupo de gente se esfuerza por hacer más accesible a todo el mundo un conocimiento que antaño era tratado bajo un halo de secretismo y mística, como si fuesen artes oscuras y gracias a iniciativas como este blog el nivel de los profesionales en ciberseguridad en España no deja de subir. ¡Al final ganamos todos!
¡Pero basta de palabrería y pongámonos manos a la obra! El reto consistía en un reversing de un binario en ARMv7, el procesador de la Raspberry Pi 2. Yo tengo un par de ellas en casa, haciendo funciones de Media Center con Kodi, y la verdad me daba bastante pereza desarmar el tinglado para ponerme a hacer el reto.
Afortunadamente ya había emulado con anterioridad binarios de ARM en mi máquina y era bastante sencillo montar un entorno con qemu.
Examinando el fichero con file era posible ver que efectivamente se trataba de un binario compilado para ARM, que poseía símbolos y que lamentablemente estaba compilado dinámicamente, así que es posible que nos diera algún problemilla con las librerías:
Así que, sin más dilación, instalamos qemu con soporte para ARM:
Así como el paquete qemu-user que nos proporciona emulación de manera transparente, permitiendo la ejecución de binarios no nativos como el que tenemos que analizar.