Buenas a todos! En la primera entrada Stranger Strings vimos como con el comando strings, pudimos obtener muchas flags de diferentes retos de los CTF’s de años anteriores y de este año.
En esta entrada veremos como usar herramientas y editores hexadecimales, para poder modificar binarios ya sean sus cabeceras, o simplemente identificar las flags. Al igual que nos apoyaremos de otras herramientas.
Dado un directorio, con muchos ficheros y directorios dentro, donde el objetivo sea investigar y encontrar la flag, debemos usar nuestra deducción para poder seguir las “posibles” pistas que nos podamos encontrar. Aquí un ejemplo:
Nos encontramos una cadena de caracteres indicando que no es demasiado fácil…es obvio solo hemos navegado por el conjunto de directorios y ficheros.
Usando xxd vemos el binario en formato hexadecimal y ASCII, donde localizamos la flag. xxd crea un volcado hexadecimal de un archivo dado o entrada estándar.
Usamos la herramienta foremost para extraer la imagen y vemos en formato hexadecimal dicha imagen con xxd. Foremost es un programa forense para recuperar archivos perdidos basados en sus encabezados, pies de página y estructuras de datos. Con el parametro -t indicamos el tipo de fichero.
Podemos usar hexdump como filtro que muestre los archivos especificados, o la entrada estándar, si no se especifican archivos, en un formato especificado por el usuario. En este ejemplo podéis observar como en el fichero Thumbs.db, obtenemos nuestra flag.
En este otro ejemplo usamos de nuevo hexdump. El parametro -C indica «Canonical hex+ASCII display»
Vemos caracteres interesantes como una base de datos SQLite. Sin embargo, la cabecera no corresponde con este formato«SQLite format 3\000» . Lo modificamos con el interprete de Python:
En la Figura 9, vemos que el PNG esta corrupto viendo las especificaciones
Podemos editar el código en hexadecimal de manera online visitando esta página web
Abrimos el PNG, y ya obtendríamos nuestra flag.
En el siguiente ejemplo vamos a ver el tipo de ficheros del que disponemos dentro del directorio.
Extraemos Thumbs.db con 7z.
Abriendo unos de esos ficheros con un editor hexadecimal podemos ver que existen 12 bytes extra de metadatos. Por tanto podemos modificar esos bytes adicionales usando xxd y guardar los ficheros JPG en otro directorio. Una vez obtenido los JPG arreglados, apreciamos la flag.
Hasta aquí la entrada de hoy! En la siguiente entrada continuaremos usando editores hexadecimales, acompañado de otras herramientas.
Un saludo, Naivenom.