jeudi 27 octobre 2011

keylogger sous linux

Il faut reconnaître à Linux la puissance de ses lignes de commandes même si parfois cela donne des résultats surprenants voir désagréables ..
En effet une simple ligne de commande peut se transformer en keylogger ...

xinput fait partie de ces commandes rarement utilisées par le commun des mortels mais qui peut se révéler très indiscrète .

La preuve :

1) Dans un terminal , taper : xinput --list

Vous devriez avoir un résultat du genre de celui ci-dessous:

⎡ Virtual core pointer                         id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                  id=4    [slave  pointer  (2)]
⎜   ↳ Microsoft Microsoft® 2.4GHz Transceiver v7.0    id=9    [slave  pointer  (2)]
⎜   ↳ Microsoft Microsoft® 2.4GHz Transceiver v7.0    id=10    [slave  pointer  (2)]
⎣ Virtual core keyboard                       id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard                 id=5    [slave  keyboard (3)]
    ↳ Power Button                                id=6    [slave  keyboard (3)]
    ↳ Power Button                                id=7    [slave  keyboard (3)]
    ↳ Microsoft Microsoft® 2.4GHz Transceiver v7.0    id=8    [slave  keyboard (3)]
    ↳ spca561                                     id=11    [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard                id=12    [slave  keyboard (3)]


2) Puis il faut chercher l'"id" correspondant au clavier avec la commande xinput --test id

Dans l'exemple ci-dessus, xinput --test 4 ne donne pas le résultat attendu , par contre xinput --test 12 donne un résultat correct en testant les touches du clavier :
key release 36
key press   46
lkey release 46
^C

On a trouvé l'id correspondant au clavier.


3) Il suffit d'ouvrir un terminal , de taper la commande xinput --test 12 pour pouvoir enregistrer toutes les frappes du clavier.
Amusez-vous à continuer le test en ouvrant un terminal sous root, et vous verrez que les saisies sous ce terminal seront elles aussi enregistrées .....


Info butinée ICI

6 commentaires:

  1. Ah ouais, quand même !

    Par contre, quand on tente de rediriger la sortie dans un fichier, ça ne fonctionne pas :
    xinput test 12 > /tmp/log

    Par ailleurs, je n'ai pas trouvé le moyen d'obtenir en sortie les lettres plutôt que les codes des touches (c'est pas très dur à faire, mais vu qu'on ne peut pas écrire le résultat dans un fichier, ça complique les choses).

    RépondreSupprimer
  2. @®om
    Jette donc un coup d'oeil sur le lien ci-dessous, cela te donnera peut-être une solution , =;)
    http://sh.kirsle.net/keylog2

    RépondreSupprimer
  3. Bonjour,

    Ok c'est faisable en perl notamment. Qqun sait-il pourquoi la redirection dans un fichier ne fonctionne pas ?

    Alain

    RépondreSupprimer
  4. Suite du commentaire précédent

    Sous Ubuntu 10.10, ceci a l'air de fonctionner
    term1 :
    $ xinput test -proximity 11 > /tmp/keyb.log &
    $ jobs
    [1]+ Running xinput test -proximity 11 > /tmp/keyb.log &

    term2 :
    $tail -f /tmp/keyb.log

    NB : il faut taper un certain nombre de données avant de voir apparaître qqchose (buffer ?)

    Alain

    RépondreSupprimer
  5. xinput --list

    commande introuvable

    sur ma Debian Squeeze

    Donc la routine n'est pas installée donc aucun risque

    RépondreSupprimer
  6. http://blog.rom1v.com/2011/11/keylogger-sous-gnulinux-enregistrer-les-touches-tapees-au-clavier/

    RépondreSupprimer