Suite à mon petit utilitaire Yubikey, j’ai continué à approfondir l’interface proposée par Linux sur les périphériques entrée/sortie.
J’ai donc repris mon code pour capturer les événements d’un périphérique de type clavier. Comme on récupère ceux-ci directement du kernel, toute la phase de traduction côté userland n’est pas faite : les événements font référence à un clavier Américain. Le programme gère le support des touches spéciales ( Control, Alt, Shift, …) pour essayer de savoir si on a fait C ou Ctrl-C. Le code est disponible à l’adresse http://www.murlock.org/code/keylogger-0.1.tar.bz2
Bien sûr, je décline toute responsabilité pour toute utilisation frauduleuse de cet outil.
Pour lancer l’utilitaire (en tant que root), les logs sont disponible dans le fichier trace.log.
# keylogger path_to_dev_entry
Comment détecter l’outil ?
# lsof /dev/input/event1
Output information may be incomplete.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
acpid 1615 root 4r CHR 13,65 0t0 3043 /dev/input/event1
hald-addo 2290 root 4r CHR 13,65 0t0 3043 /dev/input/event1
Xorg 2378 root 28u CHR 13,65 0t0 3043 /dev/input/event1
keylogger 8338 root 3r CHR 13,65 0t0 3043 /dev/input/event1
Exemple: avec changement d’onglet dans un Terminal et exemple de texte capturé
# ./keylogger /dev/input/event1 &
BusType : 17
Vendor : 1
Product : 1
Version : 43841
Name : AT Translated Set 2 keyboard
Physical Location : isa0060/serio0/input0
# tail -f trace.log
Detected default keyboard layout :
XKBLAYOUT="fr"
<RIGHTCTRL=1><PAGEDOWN><RIGHTCTRL=0>ceci est un exe;ple de keylogger
<UP><HOME><DELETE><RIGHTSHIFT=1>c<RIGHTSHIFT=0>
Autre outil disponible : http://code.google.com/p/logkeys/