Writeup #LeHACK 2023, 48 meters underground
Là, on monte d’un cran, fini la crypto, la stégano ou l’OSINT, c’est de la bricole avec du firmware d’alarme à pression connectée. Et je dois mettre le crédit du résultat à Djerfy pour cette fois.
Voici la description :
Guide the backup team that’s coming up from a tunnel. Get access to one of the pressure sensitive alarm and find a way to get access to disarm all.
Flag is on the format leHACK{password}
Oui, parfois on nous donne le format du flag parce que le contenu n’est pas forcément explicite (comprendre, il n’y a pas de « leHACK »). Cette description s’accompagne donc du fichier firmware.bin, qu’il va falloir travailler. En effet :
file firmware.bin firmware.bin: Linux kernel ARM boot executable zImage (big-endian)
zImage, ça veut dire que c’est compressé. Après une petite recherche Google, on tombe sur ce script fourni par nul autre que le créateur du noyau Linux, Linus Torvalds :
Là, on a plusieurs possibilités. J’ai entendu des voisins monter l’image décompressée et tenter de trouver l’emplacement du mot de passe en question, à partir notamment des dates de modifications de fichiers. Jérémy l’a fait un peu plus brut de décoffrage, en parcourant directement le fichier image avec vim, mix monstrueux entre séquences de fichiers textes et séquences binaires. Et si on était attentif, voilà ce qu’on trouve :
config login option username 'root' option password '$p$root' list read '*' list write '*' w4ll_h1dd3n_p13c3_<-_-> config network option init network list affects dhcp list affects radvd config wireless
C’est basique, mais comme on dit, c’est le résultat qui compte