⚠️ AVISO ÉTICO: Este proyecto es de uso estrictamente educativo y para investigación en ciberseguridad defensiva. El autor no se responsabiliza por el uso indebido de este material fuera de entornos autorizados y controlados.
Este proyecto es un Remote Access Trojan (RAT) de investigación desarrollado íntegramente en Python, diseñado para funcionar sobre sistemas Windows 10. Implementa una arquitectura clásica de Comando y Control (C2) basada en comunicación TCP/IP, con el objetivo de estudiar, desde una perspectiva técnica ofensiva-defensiva, los vectores de ataque utilizados por malware real en entornos controlados de laboratorio.
Este proyecto parece estar orientado tanto a la investigación personal en malware como a la demostración de buenas prácticas de seguridad en el ciclo de desarrollo.
- Arquitectura C2 Cliente-Servidor implementada sobre sockets TCP/IP nativos de Python, permitiendo control remoto de sistemas objetivo en red.
- Payload del lado cliente (
src/payload/) diseñado para ejecución en máquinas Windows 10, encargado de establecer la conexión reversa hacia el listener. - Servidor Listener C2 (
src/server/) responsable de recibir conexiones entrantes, emitir comandos y gestionar las sesiones activas. - Ofuscación del payload mediante integración con PyArmor, dificultando el análisis estático y la detección por soluciones antivirus convencionales.
- Estructura profesional de proyecto con separación por responsabilidades: código fuente, datos de laboratorio, diagramas de arquitectura y documentación técnica.
- Gestión segura de secretos mediante
.gitignoreestricto que excluye credenciales, claves.pem, configuraciones de red y archivos.env.
| Componente | Tecnología |
|---|---|
| Lenguaje principal | Python 3.12+ |
| Comunicación de red | Sockets TCP/IP (stdlib) |
| Ofuscación de payload | PyArmor |
| Empaquetado / compilación | PyInstaller |
| Linting de código | flake8 |
| Testing | pytest |
| Análisis de seguridad estático | bandit |
| Plataforma objetivo | Windows 10 |
| Diagramas de arquitectura | Draw.io / C4 Model |
| Licencia | Creative Commons BY-NC-SA 4.0 |
git clone https://github.com/devsebastian44/Troyano.git
cd Troyano# Windows
python -m venv venv
venv\Scripts\activate
# Linux/macOS (para desarrollo)
python3 -m venv venv
source venv/bin/activatepip install -r requirements.txtCopia el archivo de ejemplo y define tus variables de entorno:
cp .env.example .env
# Edita .env con los parámetros de red: HOST, PORT, etc.Todos los pasos de uso deben realizarse exclusivamente en entornos de laboratorio aislados (máquinas virtuales sin conexión a redes productivas), con autorización explícita sobre los sistemas involucrados.
python src/server/server.pyEn la máquina objetivo de prueba (VM):
python src/payload/troyano.pypyarmor pack -e " --onefile" src/payload/troyano.py# Linting
flake8 src/
# Tests con mocks
pytest tests/
# Análisis estático de seguridad
bandit -r src/ -o bandit-report.jsonTroyano/
│
├── .github/ # Workflows de GitHub Actions (CI/CD)
│ └── workflows/ci.yml # Pipeline automatizado de calidad y seguridad
│
├── data/ # Muestras de sesiones, volcados y capturas de laboratorio
│ └── sample_session.json # Única muestra pública incluida (resto en .gitignore)
│
├── diagrams/ # Diagramas de arquitectura del sistema
│ # (C4 Model, flujos de red, Draw.io)
│
├── docs/ # Documentación técnica, RFCs y manuales operativos
│
├── src/
│ ├── payload/ # Componente cliente (agente de infección)
│ │ └── troyano.py # Punto de entrada del payload
│ │
│ └── server/ # Componente servidor (Listener C2)
│ └── server.py # Listener TCP que gestiona sesiones remotas
│
├── tests/ # Suite de pruebas unitarias con mocks de red
│
├── configs/ # Plantillas de configuración de red y parámetros
│
├── scripts/
│ └── build.ps1 # Script de compilación
│
├── .gitignore # Exclusiones estrictas: venv, .env, *.pem, *.key, data/*
├── LICENSE # CC BY-NC-SA 4.0 — Copyright 2025 Sebastián Zhunaula
└── README.md # Documentación principal del proyecto
Este proyecto modela técnicas utilizadas por malware real de tipo RAT, y su estudio tiene un valor defensivo directo.
- Comunicación sin cifrado explícito: La conexión TCP/IP podría ser detectada por DPI.
- Ejecución remota de comandos:
banditalerta sobre el uso desubprocessuos.system. - Ofuscación con PyArmor: Reduce la detección estática pero no garantiza invisibilidad ante EDRs modernos.
- Gestión de secretos:
.gitignorepreviene fugas de configuraciones sensibles.
- Implementar cifrado TLS en el canal C2.
- Persistencia en el sistema objetivo.
- Módulo de captura de pantalla / keylogger.
- Dashboard web para el servidor C2.
- Integración con VirusTotal API.
- Contenedorización del entorno de laboratorio.
- Reglas YARA y Sigma para detección.
¡Las contribuciones son bienvenidas! Para colaborar:
- Haz un Fork del proyecto.
- Crea una rama para tu mejora (
git checkout -b feature/AmazingFeature). - Realiza tus cambios y asegúrate de que los tests pasen (
pytest). - Haz un Commit de tus cambios siguiendo Conventional Commits.
- Haz un Push a la rama (
git push origin feature/AmazingFeature). - Abre un Pull Request.
Este proyecto está distribuido bajo la licencia Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0).
Copyright © 2025 Sebastián Zhunaula (devsebastian44)
|
Sebastián Zhunaula Security Researcher · Python Developer · DevSecOps |