Security Fest #CTF – Zion write up
Para este reto nos daban un archivo comprimido zion.tar.gz, procedemos a descomprimirlo y obtenemos otro archivo llamado YouKnow.
El archivo no tiene extension pero utilizamos el comando file para ver que tipo de archivo es.
Parece un archivo de Microsoft Word Office y sabemos que los archivos docx en realidad son archivos en formato zip.
Procedemos a descomprimir YouKnow
Obtenemos varios archivos y carpetas, comenzamos a analizarlos de uno por uno, sin embargo no encontramos nada que haga referencia a la bandera del reto. (analice la imagen del conejo con un par de herramientas de esteganografía pero no había nada)
Damos un paso atrás y abrimos el archivo YouKnow en un editor hexadecimal de su elección, you utilice Sublime
Observamos la cabecera estándar PK del formato ZIP
Al ir analizando el archivo, hacia el final, algo salta inmediatamente a la vista.
Parece que hay otro archivo Zip concatenado al primero pero los bytes están en orden inverso (observen como el archivo termina en KP, y vemos algunos strings como lmx que seria xml).
Podemos utilizar python para invertir los bytes del archivo fácilmente.
open('YouKnow_reversed','wb').write(open('YouKnow','rb').read()[::-1])
Obtenemos el archivo con los bytes invertidos y procedemos a descomprimirlo.
Obtenemos nuevamente varios archivos y carpetas.
Y en donde estaba la imagen anterior del conejo rojo ahora encontramos otra imagen, esta vez de un conejo azul que nos muestra la bandera del reto 🙂
La bandera del reto es sctf{m41nfr4m3_4cc3ss_c0d3_1337_4lw4s}
Bonus
Programe una pequeña herramienta en python llamada reverse bytes para invertir los bytes de un archivo utilizando una cli mas amigable.
usage: rbytes.py \[-h\] \[-o OUTFILE\] infile
A simple python script for reverse the bytes of a file.
Author: Lenin Alevski Huerta Arias
Year: 2018
positional arguments:
infile Input file
optional arguments:
-h, –help show this help message and exit
-o OUTFILE, –outfile OUTFILE
Output file
Happy hacking 🙂