Skip to content

Repository files navigation

Pentesting Framework

Framework modular de pentesting para auditorías de seguridad en entornos controlados.

PythonKaliLicense

Indice

  1. Descripcion general
  2. Caracteristicas
  3. Requisitos
  4. Instalacion
  5. Estructura del proyecto
  6. Comandos
  7. Navegacion
  8. Atlas - Asistente de IA
  9. Configuracion
  10. Sistema de prompts
  11. Spotlight
  12. Compatibilidad y dependencias
  13. Instalador de dependencias
  14. EULA y disclaimer
  15. Autor
  16. Aviso legal

Descripcion general

Este framework es una plataforma CLI modular orientada a auditorías de seguridad ofensiva. Permite navegar por un arbol de categorías y herramientas, ejecutar módulos de pentesting, consultar un asistente de IA llamado Atlas para obtener sugerencias, y personalizar completamente la experiencia del terminal.

Lo desarrolle como parte de mi TDR (Treball de Recerca) de instituto. Atlas, la entidad de inteligencia artificial integrada, forma parte del mismo proyecto de investigacion.

Inicio del framework

Inicio del framework con prompt Kali Classic


Caracteristicas

  • Navegacion modular: Explora categorías y herramientas con comandos cd y run, como un sistema de archivos.
  • Asistente de IA (Atlas): Consulta en lenguaje natural para obtener sugerencias de herramientas, categorías o respuestas técnicas.
  • Sistema de prompts: 20 estilos de prompt distintos + 10 esquemas de color para el prompt Kali Classic.
  • Spotlight (Ctrl+Espacio): Busqueda rápida y filtrado de herramientas/categorías en tiempo real.
  • Autocompletado: Tres modos — desactivado, minimal (estilo bash) y completo (dropdown con descripciones).
  • Configuracion interactiva: Menu en ncurses para ajustar preferencias, interfaz monitor, IA, dependencias y sistema.
  • Instalador de dependencias: Detecta automaticamente herramientas faltantes y las instala via apt-get.
  • Compatibilidad declarativa: Cada herramienta tiene un manifiesto JSON que especifica OS compatibles, requisito de root y dependencias.
  • Historial de comandos: Persistente entre sesiones.
  • Resaltado de comandos: Colorea comandos reconocidos (run, cd, clear, etc.) en azul y negrita.
  • EULA interactivo: Aceptacion del disclaimer con opción de guardar permanentemente.

Requisitos

  • Python 3.10+
  • Kali Linux (recomendado; también compatible con otras distribuciones Linux)
  • Root para ejecutar herramientas de pentesting
  • Dependencias de Python:
    • colorama
    • prompt_toolkit (opcional, para autocompletado avanzado)
  • Dependencias del sistema (por herramienta):
    • arp-scan, dsniff (arpspoof), tcpdump
    • mdk4, aircrack-ng (airmon-ng, airodump-ng)

Instalacion

# Clonar el repositorio
git clone https://github.com/samilososami/framework.git
cd framework
# Instalar dependencias de Python
pip install colorama prompt_toolkit
# Ejecutar (requiere root para herramientas de pentesting)
sudo python3 framework.py

Estructura del proyecto

framework/
framework.py # Framework principal (REPL, navegación, comandos)
config.py # Configuracion interactiva (ncurses), instalador de dependencias
eula.py # EULA / disclaimer
prompts.py # 20 estilos de prompt
prompt_colors.py # 10 esquemas de color para prompt Kali Classic
oui.py # Base de datos OUI (33.000+ vendors MAC)
README.md # Este documento
.gitignore # Archivos excluidos de git
config/ # Configuracion persistente (no versionada)
config.json # Preferencias del usuario
eula.txt # Estado de aceptación del EULA
prompt_config.txt # Seleccion de estilo de prompt
prompt_colors.txt # Esquema de color actual
prompt_selections.txt # Selecciones multiples de prompt
cmd_history.txt # Historial de comandos
modules/
ai.py # Asistente Atlas (Ollama Cloud API)
pentesting/
red/ # Herramientas de red
dos/ # Denegacion de servicio
internetblocker.py
internetblocker.json
exploit/ # Explotacion (pendiente)
mitm/ # Man in the middle (pendiente)
scan/ # Escaneo de red (pendiente)
sniff/ # Captura de tráfico (pendiente)
wifi/ # Herramientas inalambricas
deauth/ # Desautenticacion WiFi
deauther.py
deauther.json
web/ # Pentesting web (pendiente)
ad/ # Active Directory (pendiente)
docs/
screenshots/ # Capturas de pantalla para documentación

Comandos

ComandoDescripcionEjemplo
cd <ruta>Navegar por el arbol de categoríascd pentesting/red/dos
run <herramienta>Ejecutar una herramientarun internetblocker
run <herramienta> <args>Ejecutar con argumentosrun internetblocker -ip 192.168.1.10
lsListar contenido del nodo actualls
helpAyuda generalhelp
help <comando>Ayuda de un comandohelp run
help <herramienta>Ayuda de una herramientahelp internetblocker
ai <prompt>Consultar a Atlas (IA)ai escanear puertos
configAbrir menu de configuraciónconfig
set-styleCambiar estilo de promptset-style
set-promptCambiar colores del promptset-prompt
clearLimpiar la terminalclear
x <comando>Ejecutar comando del sistemax whoami
exit / salir / Ctrl+C x2Salir del frameworkexit

Navegacion de rutas:

  • Rutas absolutas: cd /pentesting/red/dos
  • Rutas relativas: cd dos (desde /pentesting/red)
  • Subir nivel: cd ..
  • Raiz: cd (sin argumentos)
Comando help

Salida del comando `help`

Comando ls

Salida del comando `ls` en el directorio raiz


Atlas - Asistente de IA

Atlas es la entidad de inteligencia artificial integrada en el framework, desarrollada como parte de mi TDR.

Uso

ai <consulta en lenguaje natural>

Ejemplos:

ai qué herramienta usar para bloquear internet a una ip
ai cómo escaneo puertos en una red
ai quién eres

Tipos de respuesta

Atlas responde en formato JSON y el framework interpreta tres tipos:

  • Herramienta: sugiere run <nombre> y navega automaticamente a la categoría
  • Categoria: sugiere cd <ruta> para explorar un area
  • Chat: responde a preguntas generales de pentesting/seguridad
Consulta a Atlas

Ejemplo de consulta a Atlas sugiriendo una herramienta

Niveles de comentarios

Ajustable desde config > Inteligencia Artificial > Comentarios IA:

NivelDescripcion
OffSolo muestra el comando (run / cd)
MinimosMuestra la razon de la sugerencia + comando
DetalladosMuestra razon + ruta completa + comando

Configuracion de Atlas

  1. Ve a config > Modelo IA > selecciona Cloud
  2. Introduce tu API key de ollama.com
  3. Ajusta el nivel de comentarios segun prefieras

Modelo utilizado: minimax-m2.7:cloud (via Ollama Cloud API)


Configuracion

El menu de configuración (config) permite ajustar todos los parámetros del framework mediante una interfaz ncurses.

Menu de configuración

Menu de configuración interactiva

Secciones

PREFERENCIAS

  • Autocompletado: Off / Minimo / Full
    • Off: sin completado
    • Minimo: completado estilo bash (lista debajo, sin dropdown)
    • Full: completado con dropdown y descripciones
  • Resaltado de comandos: Off / On — colorea run, cd, clear, etc. en azul

WIFI

  • Interfaz monitor: selección de interfaz de red desde /sys/class/net/. Presiona Enter para abrir un panel vertical con todas las interfaces disponibles.

INTELIGENCIA ARTIFICIAL

  • Modelo IA: Off / Cloud — presiona Enter para configurar la API key
  • Comentarios IA: Off / Minimos / Detallados — controla la cantidad de explicacion que Atlas muestra

HERRAMIENTAS

  • Instalar dependencias: abre el instalador con arbol de categorías. Muestra estado de cada dependencia (instaladas / totales) y permite instalar por categoría o todas.

SISTEMA Y COMPATIBILIDAD

  • Ver sistema y compatibilidad: muestra información del sistema (OS, kernel, CPU, RAM, Python, root) y tabla de compatibilidad de herramientas (Compatible / Incompatible) con motivo.

Controles del menu

  • Flechas / WASD: navegar entre opciones
  • Izquierda / Derecha / AD: cambiar valor de opciones ciclicas
  • Espacio: ciclar valor
  • Enter: entrar en sub-pantallas (IA, interfaz, dependencias, sistema)
  • Esc x2: guardar cambios (animacion de circulos de confirmacion)
  • Ctrl+C x2: salir sin guardar

Sistema de prompts

El framework incluye 20 estilos de prompt distintos, accessibles via set-style.

Estilos disponibles

#NombreImagen
1Kali Classic
2Operator
3Bash
4Metasploit
5Red Ops
6Tactical
7Ghost
8Stealth
9Netinfo
10Root Access
11Professional
12Hacker
13System
14Bracket Stack
15Compact
16Simple
17Status
18Operations
19Dual
20Framework

Esquemas de color (sólo Kali Classic)

Via set-prompt:

#Nombre
1Kali Root
2Cyberpunk
3Red Team
4Phantom
5Militar
6Neon
7Sombra
8Medusa
9Cobalto
10Monocromo

Spotlight

Busqueda rápida de herramientas y categorías con Ctrl+Espacio.

Controles

  • Escribir: filtra resultados en tiempo real
  • Flechas arriba/abajo / Tab: navegar entre resultados
  • Enter: navegar a la categoría o pre-ejecutar la herramienta
  • Alt+Enter: ejecutar directamente (bypass de confirmacion)
  • Esc: cerrar spotlight

Caracteristicas

  • Sobreescritura de pantalla alternativa (preserva el contenido anterior)
  • Sugerencia automatica en color tenue despues del cursor
  • Modo modifyOtherKeys para detectar combinaciones extendidas

Compatibilidad y dependencias

Cada herramienta incluye un manifiesto JSON declarativo junto a su módulo .py:

{
"name": "internetblocker",
"desc": "Bloquea el acceso a internet de uno o más objetivos",
"compat": ["Linux"],
"root": true,
"tools": [
{"check": "arp-scan", "package": "arp-scan"},
{"check": "arpspoof", "package": "dsniff"},
{"check": "tcpdump", "package": "tcpdump"}
]
}

Campos del manifiesto

CampoDescripcion
nameNombre exacto de la herramienta
descDescripcion corta en espanol
compatSistemas operativos compatibles (Linux, Windows, macOS)
roottrue sí requiere privilegios de root
toolsLista de dependencias: {check: "binario", package: "apt-package"}

La pantalla Sistema y compatibilidad verifica automaticamente:

  • Compatibilidad de OS
  • Requisito de root
  • Disponibilidad de cada dependencia via which

Instalador de dependencias

Desde config > Instalar dependencias.

Funcionamiento

  1. Selecciona una categoría o [ALL] para instalar todo
  2. El instalador estima el tamano de descarga via apt-cache show
  3. Confirma con Si/No
  4. Ejecuta apt-get install -y para cada paquete faltante
  5. Muestra progreso en tiempo real con contador de herramientas instaladas
  6. Ctrl+C x2 cancela la instalación

Requisitos

  • Debes ejecutar el framework como root para instalar dependencias

EULA y disclaimer

Al primer inicio, el framework muestra un EULA interactivo en ncurses:

Este framework esta diseñado EXCLUSIVAMENTE para auditorías de seguridad autorizadas y fines educativos.

Debes tener autorización explicita por escrito antes de usar esta herramienta en cualquier sistema o red.

Sami NO asume responsabilidad alguna por uso indebido o actividad no autorizada. El usuario es el único responsable de garantizar el cumplimiento de las leyes aplicables.

Opciones

  • Aceptar: continua al framework
  • Aceptar permanentemente (P o Shift+Enter): guarda aceptación en config/eula.txt, no vuelve a mostrar
  • Denegar: el framework se cierra

Autor

Sami Gonzalez Kamel@samilososami

Lo desarrolle como parte de mi TDR (Treball de Recerca) de instituto.

Donaciones

Si te resulta util el proyecto, puedes apoyar el desarrollo:


Aviso legal

Este framework es exclusivamente para uso educativo y auditorías de seguridad autorizadas.

El usuario es el único responsable de garantizar el cumplimiento de las leyes aplicables. No asumo responsabilidad alguna por uso indebido o actividad no autorizada.

NO utilices este framework en sistemas o redes sin autorización explicita por escrito.