Hack.lu 2010 CTF – Chip forensic 200 writeup

Ce dixième challenge intitulé “Chip forensic” à pour objectif la récupération de données suite à un dump effectué depuis une puce mémoire. Il s’agira donc dans un premier temps d’identifier l’origine de la puce afin de déterminer quelles données elle peut bien contenir. La suite consistera en la reconstruction de ces dernières.

D’après le texte introductif de l’épreuve, nous savons que l’objet dont est tiré la puce est un “périphérique USB suspicieux” dont la photo est fournie. Assez rapidement, et étant donné le design de l’appareil, on détermine qu’il s’agit d’un keylogger hardware. D’ailleurs une recherche rapide sur Google image avec les mots clé “keylogger hardware” confirme nos soupçons.

Ce type d’objet disposant d’un faible niveau d’interaction avec l’OS, il parait évident qu’il ne pourra pas stocker directement les caractères intercepté sous leur forme interprété. On oublie donc les codes ASCII et autres keymap pour se concentrer sur la forme bas niveau des frappes clavier: les scans codes. Ce sont ces derniers qui sont envoyés par le clavier lors d’un frappe. Consécutivement, il transitent par le câble et peuvent être intercepté par le keylogger hardware.

Il ne reste donc plus qu’à les interpréter pour retrouvé le message de départ. Pour cela, il suffit de trouver une table de correspondance comme celle-ci. Bien entendue, la colonne à considérer est celle concernant l’USB.

Voila les données brute ainsi que leur version claire:

 
*-----------------------------------------------------------------------------------------------*
| Données brutes | 0B | 12 | 0F | 0F | 1C |  4A   |  4C   | 0D |  4D   | 15 | 12 | 0A | 08 | 15 |
*-----------------------------------------------------------------------------------------------*
| Version claire | h  | o  | l  | l  | y  | HomCP | DelCP |  j | EndCP | r  | o  | g  | e  |  r |
*-----------------------------------------------------------------------------------------------*

Il ne reste alors plus qu’à interpréter correctement la suite HomCP DelCP j EndCP afin de retrouver un texte lisible.
Cette suite consiste en fait en un retour en début de ligne suivit d’un suppression de caractère, de l’insertion du caractère j puis à un retour en fin de ligne.

Le message final, correspondant au flag, est donc: jollyroger.

Et voilà 200 golds facilement gagnés!

Ce writeup, et bien d’autres, est aussi disponible sur le site http://hacklu.fluxfingers.net section challenges.

Tags: ctf, hack.lu

One Comment

Leave a Reply

XHTML: You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">