FCSC 2020 - Intro - Petite Frappe
Lors de l’investigation d’un poste GNU/Linux, vous analysez un fichier qui semble être généré par un programme d’enregistrement de frappes de clavier (enregistrement de l’activité de chaque touche utilisée).
Retrouvez ce qui a bien pu être écrit par l’utilisateur de ce poste à l’aide de ce fichier !
Format du flag : Pour valider ce challenge, vous devez insérer le contenu de ce qui a été écrit sur le clavier de ce poste dans la balise suivante FCSC{xxxxxx}
puis soumettre votre réponse.
SHA256(petite_frappe_1.txt
) = caa50cd45696ad89d210665f922c7d44e2feffbec4576164e896f8224205f67b
Résolution
Ce fichier correspond à une capture de frappes de clavier par un logiciel keylogger. Le format des lignes du fichier est le suivant :
Event: time 1584656706.404214, type 1 (EV_KEY), code 22 (KEY_U), value 1
^ ^ ^ ^
Timestamp ----| | | |
Type d'évènment -------------------------| | |
Code caractère -------------------------------------| |
Value (Press : 1, Released : 0) ---------------------------------------|
Nous pouvons donc écrire un petit script bash pour extraire la lettre présente dans le code caratère (Exemple KEY_U
=> U
) :
#!/usr/bin/env bash
FLAG=$(
cat petite_frappe_1.txt \
| grep "KEY_" | grep "value 1"\
| awk '{split($0,a,"KEY_"); split(a[2],b,"), "); print b[1]}' \
| tr -d "\n"
)
echo "FCSC{${FLAG}}"
Le même principe en python3 :
print('[+] Reading file ../petite_frappe_1.txt')
f = open('./petite_frappe_1.txt','r')
lines = f.readlines()
f.close()
print('[+] Done.')
print('[+] Extracting keys ...')
extracted_keys = ""
for line in lines :
if 'KEY_' in line and 'value 1' in line :
print(line.replace("\n",''))
extracted_keys += line.split('KEY_')[1].split('),')[0]
print('[+] Done.')
print('[+] Flag : FCSC{%s}' % extracted_keys)