HackIt 2017 – Forensic 200 – Angry printer

Esta fue la última prueba de forense que se nos propuso durante el Hackit y que resolví junto a mi compañero de equipo @angu, las screenshoots finales son cortesía suya 🙂

Este era el enunciado:

Angry printer
foren200

Description: Our printer has just stopped working. Maybe there are some driver issues or so. Could you help us to fix them?

Attachment: (none)

Webpage: https://mega.nz/#!VUJBAKzI!ljRk-LOHM7W1JDPBlghOuKvAsCabgqeIJ0WMRaZaGLo

Hint: One of the drivers was replaced with a strange module, is it a keylogger? Hide

Nos descargamos el archivo initrd.img-4.9.1.0-1-amd64  y vemos que es un archivo comprimido, al descomprimir nos encontramos con un backup de un initrd, creamos una carpeta donde montarlo, entramos en ella y lo montamos con el siguiente comando:

cpio -id < ../initrd.img-4.9_1.0-1-amd64

Esto nos montara el filesystem en la carpeta en la que nos encontramos, como hay bastante archivos decidí probar suerte con un grep y buscar por hackit a ver si había suerte y efectivamente:

Solamente hay un resultado en uno de los módulos del kernel, la pista no hace sino darle más peso a este hallazgo. Como en esos momentos no tenía manera de hacerle el reversing al módulo se lo pase a mi compañero @angu y este lo cargo en IDA, luego de buscar encontró lo siguiente:

Esta función parece realizar un XOR sobre la variable PATTERN utilizando como key 0x41, este es el contenido de la variable PATTERN:

Con este sencillo script de python, también cortesía de @angu, hacemos el XOR (ya que XOR de un XOR con la misma clave nos devuelve la cadena original) a la vez que convertimos los valores hexadecimales:

import binascii
pattern = binascii.unhexlify("2975222A70353A281E202C1E2E2F1E272833243C")
print ''.join(chr(ord(i)^0x41) for i in pattern)

Lo ejecutamos y obtenemos la flag: h4ck1t{i_am_on_fire}

Espero os haya gustado, como siempre, un saludo y gracias por vuestra visita!

Esta entrada fue publicada en ctf, forense, hackit, writeups. Guarda el enlace permanente.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.