Kali Linux, MCP y Telegram
π KaliBot: La Evolución del Pentesting con IA y MCP
En 2026, la ciberseguridad ha evolucionado más allá de scripts estáticos y comandos manuales. KaliBot representa una nueva generación de herramientas de pentesting que combinan la potencia de Kali Linux, la inteligencia artificial conversacional y el Model Context Protocol (MCP) para crear un asistente automatizado, inteligente y accesible desde cualquier lugar.
π Ver Repositorio en GitHub →
π Kali Linux: Fundamento del Proyecto
Desde su lanzamiento en 2013, Kali Linux se ha consolidado como la distribución de referencia para profesionales de la ciberseguridad. Con más de 600 herramientas preinstaladas, Kali cubre todos los aspectos del pentesting moderno:
- Reconocimiento - Nmap, theHarvester, Recon-ng
- Análisis Web - Nikto, SQLMap, Gobuster, WhatWeb
- Explotación - Metasploit, Msfvenom, ExploitDB
- Cracking - John the Ripper, Hashcat, Hydra
- Wireless - Aircrack-ng, Reaver, Wifite
- Forense - Volatility, Binwalk, Foremost
KaliBotMCP aprovecha este ecosistema nativo, permitiendo ejecutar estas herramientas mediante lenguaje natural desde Telegram.
π€ IA + MCP: La Nueva Frontera
Model Context Protocol (MCP)
El MCP es un estándar emergente que permite a las IAs interactuar con herramientas externas de forma estructurada. En lugar de simplemente generar texto, la IA puede:
- Comprender intenciones - "escanea google.com" → Nmap
- Validar parámetros - IP válida, puertos correctos
- Ejecutar herramientas reales - Comandos del sistema
- Devolver resultados - Salida formateada en Telegram
Esto convierte a la IA en un orquestador inteligente en lugar de un simple chatbot.
OpenAI GPT-4
KaliBotMCP usa GPT-4o-mini para:
- Interpretar peticiones en español colombiano coloquial
- Convertir lenguaje natural a parámetros técnicos
- Explicar resultados de forma comprensible
- Mantener contexto conversacional
Ejemplo:
Usuario: "quiero saber qué puertos tiene abiertos facebook.com"
IA: {"tool": "nmap", "parameters": {"target": "facebook.com", "ports": "1-1000"}}
Bot: Escaneando facebook.com con Nmap, parcero...
ποΈ Arquitectura del Sistema
KaliBotMCP implementa una arquitectura modular de 6 capas:
ββββββββββββββββββββββββββββββββββββββββββ
β Usuario (Telegram) β
βββββββββββββββββ¬βββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββ
β telegram_bot.py β
β • Validación de usuarios β
β • Routing de mensajes β
β • Formateo de respuestas β
βββββββββββββββββ¬βββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββ
β ai_assistant.py β
β • Parsing de lenguaje natural β
β • Conversión a JSON estructurado β
β • Contexto conversacional β
βββββββββββββββββ¬βββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββ
β tool_executor.py β
β • Ejecución de herramientas β
β • Validación de parámetros β
β • Manejo de timeouts β
βββββββββββββββββ¬βββββββββββββββββββββββββ
β
βββββββββ΄βββββββββ
βΌ βΌ
ββββββββββββββββ ββββββββββββββββ
βtool_system.pyβ βtool_discoveryβ
β• Descargas β β• Detección β
β• Installs β β• Catalogaciónβ
β• Archivos β β• Sugerencias β
ββββββββββββββββ ββββββββββββββββ
βοΈ Cómo Funciona el Código
1. Descubrimiento Automático de Herramientas
tool_discovery.py escanea el sistema para detectar herramientas de Kali Linux instaladas:
discovered_tools = {}
for tool in common_kali_tools:
if shutil.which(tool):
discovered_tools[tool] = {...}
Esto permite que el bot:
- Solo sugiera herramientas disponibles
- Ofrezca instalar herramientas faltantes
- Actualice automáticamente el catálogo
2. Definición de Herramientas como MCP Tools
Cada herramienta se define con un esquema JSON:
Tool(
name="nmap",
description="Escaneo de puertos",
inputSchema={
"type": "object",
"properties": {
"target": {"type": "string"},
"ports": {"type": "string"}
},
"required": ["target"]
}
)
La IA usa este esquema para saber qué parámetros son válidos y generar JSON estructurado.
3. Ejecución Segura de Comandos
tool_executor.py maneja la ejecución con:
async def run_command(command, timeout=300):
process = await asyncio.create_subprocess_shell(
command,
stdout=PIPE,
stderr=PIPE
)
stdout, stderr = await asyncio.wait_for(
process.communicate(),
timeout=timeout
)
return {
"success": True,
"stdout": stdout.decode(),
"stderr": stderr.decode()
}
Características:
- β Async/await para no bloquear el bot
- β Timeouts configurables
- β Captura de stdout y stderr
- β Detección de errores
4. Operaciones de Sistema
Además de herramientas de pentesting, KaliBotMCP puede:
Descargar archivos:
await system_manager.download_file(
"https://example.com/tool.sh",
"/tmp/tool.sh"
)
Clonar repositorios:
await system_manager.git_clone(
"https://github.com/danielmiessler/SecLists",
"/usr/share/wordlists/seclists"
)
Instalar paquetes:
await system_manager.install_package("hashcat", "apt")
5. Interpretación con IA
ai_assistant.py envía el mensaje del usuario a OpenAI con un system prompt que incluye:
- Personalidad - Español colombiano, amigable
- Herramientas disponibles - Lista dinámica
- Formato de respuesta - JSON estructurado
- Ejemplos - Casos de uso reales
Respuesta de la IA:
{
"tool": "nmap",
"parameters": {
"target": "192.168.1.1",
"ports": "80,443",
"scan_type": "syn"
},
"explanation": "Escaneando puertos 80 y 443 de 192.168.1.1"
}
π§ Tutorial: Agregar una Nueva Herramienta
Escenario: Agregar subfinder
Subfinder es una herramienta para descubrir subdominios.
Paso 1: Registrar en tool_discovery.py
self.common_kali_tools = {
# ...
"subfinder": {
"category": "info_gathering",
"description": "Subdomain discovery tool"
},
}
Paso 2: Crear ejecutor en tool_executor.py
async def execute_subfinder(self, params: Dict) -> str:
"""Ejecuta subfinder para descubrir subdominios"""
domain = params["domain"]
output_file = params.get("output", f"{domain}_subdomains.txt")
command = f"subfinder -d {domain} -o {output_file}"
if params.get("silent"):
command += " -silent"
result = await self.run_command(command, timeout=300)
if result.get("success") and os.path.exists(output_file):
lines = open(output_file).readlines()
result["subdomains_found"] = len(lines)
result["output_file"] = output_file
return self._format_result(result)
Paso 3: Registrar en mapeador
tool_methods = {
"nmap": self.execute_nmap,
"subfinder": self.execute_subfinder,
# ...
}
Paso 4: Actualizar prompts
Editar prompts/ai_assistant.txt:
Usuario: "busca subdominios de example.com"
{"tool": "subfinder", "parameters": {"domain": "example.com"}, "explanation": "Buscando subdominios de example.com"}
Paso 5: Probar
pkill -f main.py
python3 main.py
En Telegram:
Usuario: busca subdominios de google.com
Bot: Buscando subdominios de google.com con subfinder
β
Archivo generado: google.com_subdomains.txt
π Subdominios encontrados: 47
β Tutorial: Remover una Herramienta
Paso 1: Eliminar de tool_discovery.py
Buscar y eliminar la entrada de la herramienta en common_kali_tools
Paso 2: Eliminar ejecutor
Si tiene un método execute_* dedicado en tool_executor.py, eliminarlo
Paso 3: Eliminar del mapeador
Remover de tool_methods en execute_tool
Paso 4: Actualizar prompts
Eliminar ejemplos en prompts/ai_assistant.txt
π Comparación: KaliBotMCP vs Métodos Tradicionales
| Aspecto | Pentesting Manual | KaliBotMCP |
|---|---|---|
| Acceso | Terminal SSH | Telegram (móvil) |
| Sintaxis | Comandos exactos | Lenguaje natural |
| Documentación | man pages | IA conversacional |
| Instalación | Manual | Automática |
| Contexto | Sesiones separadas | Memoria conversacional |
| Aprendizaje | Curva alta | Más accesible |
π Casos de Uso
1. Pentesting remoto desde móvil
Ejecutar escaneos desde cualquier lugar sin necesidad de laptop.
2. Automatización de reconocimiento
"Descarga SecLists y escanea 192.168.1.0/24" → Todo automatizado.
3. Aprendizaje interactivo
"Qué es SQL injection?" → Explicación + ejemplos con sqlmap.
4. Operaciones de sistema
"Instala hashcat y descarga rockyou.txt" → Preparar entorno completo.
π Consideraciones de Seguridad
1. Validación de Usuarios
TELEGRAM_ALLOWED_USERS=123456789,987654321
Solo estos IDs pueden usar el bot.
2. ROOT_PASSWORD
Recomendación: Configurar NOPASSWD en sudoers en lugar de usar contraseña en texto plano.
3. Sanitización de Comandos
Los parámetros se validan básicamente, pero no hay sanitización completa contra inyección de comandos. Mejora futura: usar shlex.quote() en todos los parámetros.
π§ͺ Estado del Proyecto
| Característica | Estado |
|---|---|
| IA conversacional | β Funcional |
| Detección automática de herramientas | β Funcional |
| Ejecutores básicos | β Funcional |
| Operaciones de sistema | β Funcional |
| Español colombiano | β Funcional |
| Servidor MCP standalone | β οΈ Prototipo |
| Autenticación robusta | β οΈ En desarrollo |
| Interfaz web | β Pendiente |
π Recursos y Referencias
- π Repositorio GitHub - https://github.com/3p1c0w3nd/kali-linux-mcp
- Kali Linux Docs - https://www.kali.org/docs/
- Model Context Protocol - https://modelcontextprotocol.io/
- OpenAI API - https://platform.openai.com/docs
- python-telegram-bot - https://python-telegram-bot.org/
- Offensive Security - https://www.offensive-security.com/
β οΈ Disclaimer Legal
Este proyecto es exclusivamente para fines educativos y de investigación en ciberseguridad.
El uso de herramientas de pentesting sin autorización explícita y por escrito es ilegal en la mayoría de jurisdicciones.
Los desarrolladores de KaliBotMCP:
- β No se hacen responsables del mal uso
- β Promueven el hacking ético y legal
- β Recomiendan certificaciones (OSCP, CEH, etc.)
- β Apoyan el aprendizaje responsable
Usa KaliBotMCP MCPsolo en:
- Sistemas propios
- Entornos de prueba autorizados (HTB, TryHackMe)
- Auditorías contratadas legalmente
π§ Conclusión
KaliBot representa la convergencia de tres tecnologías clave:
- Kali Linux - El ecosistema de herramientas más completo
- IA conversacional - Accesibilidad y comprensión del lenguaje natural
- MCP - Estandarización de la interacción herramienta-IA
El resultado es un sistema que:
- Reduce la barrera de entrada al pentesting
- Mantiene la potencia de las herramientas nativas
- Permite operación remota desde cualquier dispositivo
- Puede evolucionar agregando o removiendo herramientas fácilmente
Este proyecto demuestra que la ciberseguridad del futuro no será manual vs automatizada, sino especialistas humanos potenciados por IA.
π Kali Linux + π€ IA + π± Telegram = El Futuro del Pentesting
Desarrollado por 3p1c0w3nd | 2026
Compartir en redes sociales