Write Up – Insomni’hack 2014

Le 20 mars 2014 se tenait l’insomni’hack organisé a Genève par SCRT. Nous terminons à la 12ème place, derrière des équipes 5 étoiles ! Voici le writeup des épreuves que nous avons réussis.

Eboda :

Nous recevons une capture de réseau, le but est d’en sortir quelque chose de compréhensible, a savoir le flag.
Ouvrons donc ce fichier :

On peux remarquer la présence de nombreux paquets RTMP dans cette capture.
Tout s’éclaire alors, il faut extraire le flux vidéo de cette capture.
Après avoir essayé pas mal de tools, et tenté de rejouer cette capture pour l’enregistrer avec rtmp-dump nous voila dans une impasse.
Cette épreuve est une des plus difficile du CTF, cherchons encore.
Au bout d’une heure de recherches nous finissons par trouver un repo github ou se trouve un tools intentessant : rtmp2flv

Avant d’utiliser le tools, il faut convertir le fichier de capture :

tcpflow -T eboda.rtmp -r eboda.pcap

Puis on lance le script.
Et nous voila face à la video !

Et un flag un !

Rabbids Brainfuck.

Dans cette épreuve on nous donne un fichier.txt comprenant un ascii art d’un Lapin Crétin.
Instinctivement, on se dit que l’on fait face à du Brainfuck remanié en version Lapin Crétin.
Et comme par hasard, il existe bien ce langage et un github nous permet de le déchiffrer.

Une épreuve rapide, des points faciles !

Langage Maçonnique

Une petite épreuve de crypto/stégano. Simple encore une fois, une bonne intuition et une belle recherche google nous donne l’alphabet nécessaire à la résolution de ce challenge.

Et par chance une police de caractère existe, il suffit de s’en inspirer pour compléter les chiffres qui manquent dans la plus part des alphabets.

Reverse 1 : Challenge.exe

On nous fournit un .exe, lorsque l’on le lance il nous propose d’essayer quelque chose, en mettant n’importe quoi le programme nous répond faux.
Cependant après une petite investigation on se rend compte que si on lui passe un bon caractère il répond vrai, mais avec un mauvais flag.
Si on lui passe 2 bons caractères il répond encore vrai, mais encore avec un mauvais flag.
Il suffit donc de brute forcer un peu à la manière d’une blind SQL, avec un script python !
import os
import re

resultat=""

def lala(resultat):

 for i in xrange(97,127):
  os.system("echo "+ str(resultat)+str(unichr(i))+"| wine challenge.exe > lala.txt")
  File=open('lala.txt','r')
  contenu = File.readlines()
  if re.search('Result', str(contenu)):
   print str(unichr(i))
   File.close()
   resultat+=str(unichr(i))
   lala(resultat)
  File.close()


lala("")
print resultat

Ce qui n’est certes pas propre, mais on ne connait pas la taille du mot recherché.
Et ce script est fait rapidement, ce qui nous donne une fois de plus, des points rapidement !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *