Keylogger Phantom

Proyecto educativo en Python orientado al estudio de la monitorización de eventos de entrada en sistemas Linux y Windows, desarrollado para entornos de laboratorio y análisis defensivo. Una herramienta para entender las vulnerabilidades y fortalecer la seguridad.

Python 3.11 Windows 11 Ubuntu 24.04 LTS Ciberseguridad Proyecto académico Análisis defensivo Monitorización de eventos Python pynput

Propósito del proyecto

Keylogger Phantom nace como un ejercicio académico cuyo objetivo principal es comprender cómo funcionan los sistemas de captura de eventos de teclado desde un punto de vista técnico, analítico y defensivo.

El proyecto se centra en el diseño de un generador configurable en Python que permite estudiar el comportamiento de agentes de monitorización en diferentes plataformas, siempre dentro de sistemas propios o entornos controlados. El conocimiento adquirido se aplica luego en la creación de medidas defensivas más efectivas.

Arquitectura del sistema

El proyecto se divide claramente en dos partes independientes: el builder y el agente generado. Esta separación permite analizar cada fase del proceso de forma aislada y entender el ciclo completo de un sistema de monitorización.

  1. Configuración inicial del agente mediante parámetros definidos por el usuario.
  2. Selección de módulos de monitorización según el escenario de estudio.
  3. Generación dinámica del script final en Python.
  4. Preparación del entorno de ejecución para la plataforma objetivo.
  5. Documentación automática del despliegue para su análisis posterior.
  6. Herramientas de análisis para estudiar el comportamiento del agente.

Características principales

Arquitectura modular

El sistema está diseñado por módulos independientes que permiten activar o desactivar funcionalidades según el objetivo del análisis. Cada módulo se puede estudiar por separado.

Multiplataforma

Soporte para entornos Linux y Windows, permitiendo comparar diferencias de comportamiento entre sistemas operativos y sus respectivas APIs de entrada.

Separación de responsabilidades

El builder y el agente final están completamente desacoplados, facilitando el mantenimiento, la comprensión del flujo completo y el análisis independiente de cada componente.

Enfoque educativo

Diseñado exclusivamente para aprendizaje, análisis técnico y prácticas de ciberseguridad defensiva. Incluye documentación detallada de cada componente.

Captura de Pantalla & Cloudflare Workers

El proyecto incluye un sistema avanzado de captura de pantalla periódica que envía las imágenes directamente a un Cloudflare Worker para almacenamiento y análisis remoto.

Captura Periódica Automática

El sistema toma capturas de pantalla a intervalos configurables (por defecto cada 30 segundos) utilizando múltiples métodos según la plataforma: mss, scrot, pyautogui o GDK para Linux.

Cloudflare Worker Integration

Cada captura se envía automáticamente a un Cloudflare Worker configurado, que almacena las imágenes en R2 Storage o las procesa según las reglas definidas en el Worker.

Múltiples Métodos de Envío

El sistema prueba tres métodos diferentes para asegurar la entrega: multipart/form-data, bytes directos con headers, y codificación base64. Si uno falla, intenta con el siguiente.

Metadatos y Seguridad

Cada imagen incluye metadatos en los headers: nombre de máquina, método de captura usado, timestamp y tamaño. El Worker puede validar estas credenciales antes de aceptar la imagen.

Cómo Funciona:

  1. Configuración del intervalo de captura durante la generación (mínimo 10 segundos).
  2. Selección automática del mejor método de captura según el sistema operativo.
  3. Captura de la pantalla completa y almacenamiento temporal en formato PNG.
  4. Envío al Cloudflare Worker con todos los metadatos relevantes.
  5. Verificación de entrega y eliminación del archivo temporal local.
  6. El Worker procesa la imagen según su lógica (almacenamiento, análisis, etc.).

Configuración Técnica:

Nota educativa: Esta funcionalidad se incluye para estudiar cómo los sistemas de monitorización pueden capturar y transmitir información visual de manera eficiente y segura usando servicios serverless modernos.

Tecnologías utilizadas

Una combinación de tecnologías modernas y conceptos avanzados para un estudio completo:

Python 3.11

Lenguaje principal del proyecto, elegido por su versatilidad, amplias bibliotecas y facilidad para el análisis de sistemas.

Razón de uso: Permite acceso de bajo nivel al sistema mientras mantiene un código legible y educativo.

Sistemas Operativos

Windows 11 y Ubuntu 24.04 LTS como plataformas de estudio principales.

Nota: El script build.py solo puede ejecutarse en Linux, mientras que el agente generado funciona en ambas plataformas.

Conceptos clave

Monitorización de eventos, multithreading, gestión de procesos, empaquetado y análisis de comportamiento.

Enfoque: Cada concepto se implementa de forma modular para facilitar su estudio individual.

Bibliotecas Python

pynput, threading, os, sys, platform, entre otras específicas de cada plataforma.

Propósito: Estudiar cómo diferentes bibliotecas interactúan con el sistema operativo para capturar eventos.

Ética y uso responsable

Importante: Este proyecto ha sido desarrollado exclusivamente con fines educativos y de investigación en seguridad defensiva.

Todas las pruebas se realizan en sistemas propios o entornos de laboratorio controlados. El código incluye salvaguardas técnicas que previenen su ejecución en sistemas no autorizados.

El uso de este tipo de herramientas en sistemas sin autorización expresa está prohibido y va en contra de los principios éticos y legales del proyecto.

Repositorio y documentación

El código fuente y la documentación técnica detallada están disponibles en el repositorio del proyecto. Se incluyen guías paso a paso, análisis de código y consideraciones de seguridad.

Nota: No se publican ejemplos funcionales con fines maliciosos. Todo el material está orientado a la educación.

Ver repositorio GitHub Volver a proyectos