Skip to content

nelsonamp/pentestgpt-gemini

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

██████╗ ███████╗███╗   ██╗████████╗███████╗███████╗████████╗ ██████╗ ██████╗ ████████╗
██╔══██╗██╔════╝████╗  ██║╚══██╔══╝██╔════╝██╔════╝╚══██╔══╝██╔════╝ ██╔══██╗╚══██╔══╝
██████╔╝█████╗  ██╔██╗ ██║   ██║   █████╗  ███████╗   ██║   ██║  ███╗██████╔╝   ██║   
██╔═══╝ ██╔══╝  ██║╚██╗██║   ██║   ██╔══╝  ╚════██║   ██║   ██║   ██║██╔═══╝    ██║   
██║     ███████╗██║ ╚████║   ██║   ███████╗███████║   ██║   ╚██████╔╝██║        ██║   
╚═╝     ╚══════╝╚═╝  ╚═══╝   ╚═╝   ╚══════╝╚══════╝   ╚═╝    ╚═════╝ ╚═╝        ╚═╝   

Asistente de Pentesting potenciado por Gemini AI

Desarrollado por Nelson Abner Mendoza Pérez · Adaptado de PentestGPT original


Python Gemini AI License Status Ethical


⚠️ Aviso de Uso Ético

Esta herramienta está diseñada exclusivamente para pentesting autorizado y fines educativos. No la utilices en sistemas sin permiso explícito por escrito. El uso no autorizado es ilegal y contrario a los principios del hacking ético. El autor no se responsabiliza por el uso indebido de esta herramienta.


¿Qué es PentestGPT con Gemini AI?

PentestGPT con Gemini AI es una herramienta de línea de comandos diseñada para asistir a profesionales de seguridad informática y pentesters en su trabajo diario. Integra el modelo gemini-2.0-flash-thinking-exp de Google, capaz de razonamiento profundo, para guiar cada etapa de una evaluación de seguridad: desde el reconocimiento hasta la elaboración del informe final.

Este proyecto es una adaptación del PentestGPT original, reemplazando la API de ChatGPT por la API de Gemini, con mejoras adicionales en formato de salida, soporte de categorías y flexibilidad de configuración.


Características Principales

Característica Descripción
🤖 Motor de IA avanzado Utiliza gemini-2.0-flash-thinking-exp, optimizado para razonamiento técnico complejo
💻 Interfaz de línea de comandos Modo interactivo y modo de consulta directa por argumentos
🗂️ Categorías especializadas Soporte para 11 categorías de pentesting con contexto específico
📄 Formatos de salida múltiples Exporta en texto plano, Markdown, JSON y HTML
💾 Guardado de respuestas Guarda resultados directamente en archivos con un solo argumento
⚙️ Configuración flexible Ajusta temperatura, tokens máximos y categoría desde la CLI

Requisitos del Sistema

  • Python 3.6 o superior
  • Conexión a Internet (para acceder a la API de Gemini)
  • Clave API de Gemini (incluida por defecto en .env)

Instalación

1. Clonar el repositorio

git clone https://github.com/nelsonamp/pentestgpt-gemini.git
cd pentestgpt-gemini

2. Instalar dependencias

pip install -r requirements.txt

3. Configurar la clave API (opcional)

El proyecto incluye una clave API preconfigurada en el archivo .env. Si deseas usar tu propia clave:

# Edita el archivo .env
nano .env

# Cambia el valor de:
GEMINI_API_KEY=tu_clave_api_aqui

💡 Puedes obtener tu clave API gratuita en Google AI Studio


Uso

Modo Interactivo

Lanza el asistente en modo conversacional:

python main.py

Una vez dentro, puedes escribir consultas libremente. Escribe exit o quit para salir.


Modo por Comando (una sola consulta)

python main.py --query "Explica cómo realizar un escaneo de puertos con nmap"
# o en forma corta:
python main.py -q "Explica cómo realizar un escaneo de puertos con nmap"

Referencia de Argumentos

Argumento Abreviado Tipo Descripción
--query -q string Consulta directa al modelo
--category -c string Categoría de pentesting (ver lista abajo)
--temperature -t float Creatividad del modelo: 0.0 (preciso) a 1.0 (creativo)
--max-tokens -m int Número máximo de tokens en la respuesta
--output-file -o string Ruta del archivo donde guardar la respuesta
--output-format -f string Formato de salida: text, markdown, json, html

Ejemplos de Uso

# Consulta simple
python main.py -q "¿Cómo puedo realizar un análisis de vulnerabilidades en una red?"

# Consulta en una categoría específica
python main.py -q "Mejores herramientas para recolectar información OSINT" -c reconnaissance

# Guardar respuesta en Markdown
python main.py -q "Técnicas de evasión de IDS/IPS" -f markdown -o informe_evasion.md

# Respuesta en JSON con temperatura baja (más preciso)
python main.py -q "Explica el ataque SQL Injection" -f json -t 0.2 -o sqli.json

# Limitar tokens para respuestas cortas
python main.py -q "¿Qué es un ataque de fuerza bruta?" -m 512

# Flujo completo: categoría + formato + archivo
python main.py -q "Plan de explotación para un servidor Apache desactualizado" \
  -c exploitation -f markdown -o reporte_apache.md

Categorías de Pentesting Soportadas

Cada categoría ajusta el contexto del modelo para obtener respuestas más precisas y relevantes:

Categoría Descripción
reconnaissance Recolección de información pasiva y activa, OSINT
scanning Escaneo de puertos, servicios y sistemas operativos
vulnerability_assessment Identificación y evaluación de vulnerabilidades
exploitation Técnicas de explotación de vulnerabilidades
post_exploitation Movimiento lateral, persistencia y escalada de privilegios
reporting Redacción de informes técnicos y ejecutivos
social_engineering Phishing, pretexting y manipulación humana
web_application OWASP Top 10, pruebas en aplicaciones web
network Ataques y análisis de redes
wireless Seguridad en redes Wi-Fi (WPA2, WPS, handshakes)
mobile Pruebas en aplicaciones Android e iOS

Estructura del Proyecto

pentestgpt-gemini/
├── main.py               # Punto de entrada principal
├── requirements.txt      # Dependencias del proyecto
├── .env                  # Configuración de la clave API
├── README.md             # Documentación
└── modules/
    ├── gemini_client.py  # Cliente de la API de Gemini
    ├── categories.py     # Definición de categorías de pentesting
    └── output.py         # Formateadores de salida

Notas de Seguridad y Buenas Prácticas

  • 🔒 No compartas tu clave API públicamente ni la subas a repositorios sin protección.
  • 🧪 Prueba solo en entornos controlados: laboratorios propios, máquinas virtuales (TryHackMe, HackTheBox, VulnHub).
  • 📝 Documenta siempre el alcance de tus pruebas con el cliente o propietario del sistema.
  • 🚫 Nunca uses esta herramienta en sistemas reales sin autorización escrita.

Contribuciones

Las contribuciones son bienvenidas. Si encuentras un bug, tienes una mejora o quieres añadir una nueva categoría:

  1. Haz un fork del repositorio
  2. Crea una rama: git checkout -b feature/mi-mejora
  3. Haz commit de tus cambios: git commit -m 'feat: descripción de la mejora'
  4. Abre un Pull Request

Créditos


Licencia

Distribuido bajo la licencia MIT. Consulta el archivo LICENSE para más detalles.


Hecho con propósito educativo · Úsalo con responsabilidad

About

Adaptación de PentestGPT con Gemini AI. Asistente CLI para pentesting ético en Python. Consultas de seguridad, escaneo y reporte. 🔐

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages