PentestGPT Herramienta de Pentesting Potenciada por GPT
PentestGPT Herramienta de Pentesting Potenciada por GPT

PentestGPT: Herramienta de Pentesting Potenciada por GPT

PentestGPT es una herramienta de pruebas de penetración potenciada por ChatGPT. Está diseñada para automatizar el proceso de pruebas de penetración. Está construida sobre ChatGPT y opera en un modo interactivo para guiar a los probadores de penetración tanto en el progreso general como en operaciones específicas.

  • ¡El soporte para la API OpenAI está disponible! En breve se implementará un parser de parámetros de entrada. Ahora puedes configurar libremente el modelo OpenAI en main.py (se incluyen varios ejemplos).
  • Se está probando PentestGPT en HackTheBox. Puedes seguir este enlace. Pronto se publicará más detalles.
  • Se incluye un video del uso de PentestGPT para una máquina tipo OSCP: HTB-Jarvis. Esta es sólo la primera parte.

Introducción a PentestGPT

PentestGPT es capaz de resolver máquinas HackTheBox fáciles a medianas, y otros desafíos CTF. Puedes consultar este ejemplo en resources donde lo utilizamos para resolver el desafío HackTheBox TEMPLATED (desafío web).

https://github.com/GreyDGL/PentestGPT/blob/main/resources/README.md

Un ejemplo del proceso de prueba de PentestGPT en una máquina objetivo VulnHub (Hackable II) está disponible aquí.

https://github.com/GreyDGL/PentestGPT/blob/main/resources/PentestGPT_Hackable2.pdf

Un video de ejemplo de uso está abajo:

Instalación de PentestGPT

  1. Instala requirements.txt con pip install -r requirements.txt
  2. Configura las cookies en config. Puedes seguir una muestra en cp config/chatgpt_config_sample.py. config/chatgpt_config.py.
    • Si usas cookie:
      • Accede a la página de sesión de ChatGPT.
      • En Inspect - Network, encuentra las conexiones a la página de la sesión ChatGPT.
      • Encuentra la cookie en la request header a to https://chat.openai.com/api/auth/session y pégalo en el campo cookie de config/chatgpt_config.py. (Puedes usar Inspect->Network, encontrar sesión y copiar el campo cookie en request_headers to https://chat.openai.com/api/auth/session)
      • Ten en cuenta que los otros campos están temporalmente obsoletos debido a la actualización de la página ChatGPT.
      • Completa userAgent con tu agente de usuario.
    • Si utilizas API:
      • Introduce la clave de la API de OpenAI en chatgpt_config.py.
  3. Para verificar que la conexión está configurada correctamente, puedes ejecutar python3 test_connection.py. Deberías ver algún ejemplo de conversación con ChatGPT.
    • A continuación, se muestra un ejemplo
1. You're connected with ChatGPT Plus cookie. 
To start PentestGPT, please use <python3 main.py --reasoning_model=gpt-4 --useAPI=False>
## Test connection for OpenAI api (GPT-4)
2. You're connected with OpenAI API. You have GPT-4 access. To start PentestGPT, please use <python3 main.py --reasoning_model=gpt-4 --useAPI=True>
## Test connection for OpenAI api (GPT-3.5)
3. You're connected with OpenAI API. You have GPT-3.5 access. To start PentestGPT, please use <python3 main.py --reasoning_model=gpt-3.5-turbo --useAPI=True>
  1. (Aviso) El proceso de verificación anterior para cookie. Si encuentras errores después de varios intentos, por favor intenta refrescar la página, repite los pasos anteriores e inténtalo de nuevo. También puede probar con la cookie a https://chat.openai.com/backend-api/conversations. Por favor, envíe una incidencia (issue) si encuentras algún problema.

Uso de PentestGPT

Uso de PentestGPT en la terminal
Uso de PentestGPT en la terminal

Para empezar, ejecuta:

python3 main.py --args
  • --reasoning_model es el modelo de razonamiento que quieres utilizar.
  • --useAPI es si quieres usar la API OpenAI.

Se recomienda utilizar la combinación sugerida por test_connection.py, que son:

python3 main.py --reasoning_model=gpt-4 --useAPI=False
python3 main.py --reasoning_model=gpt-4 --useAPI=True
python3 main.py --reasoning_model=gpt-3.5-turbo --useAPI=True

La herramienta funciona de forma similar a msfconsole. Sigue la guía para realizar pruebas de penetración.

En general, PentestGPT recibe comandos similares a chatGPT. Hay varios comandos básicos.

Los comandos son:

  • help: mostrar el mensaje de ayuda.
  • next: teclea el resultado de la ejecución de la prueba y obtén el siguiente paso.
  • more: deja que PentestGPT explique más detalles del paso actual. Además, se creará un nuevo solucionador de subtareas para guiar al probador.
  • todo: muestra la lista de tareas pendientes.
  • discuss: discute con el PentestGPT.
  • google: buscar en Google. Esta función aún está en fase de desarrollo.
  • quit: abandona la herramienta y guarda el resultado como archivo de registro (consulta la sección de informes –reporting– más abajo).

Adicionalmente:

  1. Puedes usar <SHIFT + flecha derecha> para terminar tu entrada (y es para la siguiente línea).
  2. Siempre puedes utilizar TAB para autocompletar los comandos.
  3. Cuando se te da una lista de selección desplegable, puedes utilizar el cursor o la tecla de flecha para navegar por la lista. Pulsa ENTER para seleccionar el elemento. Del mismo modo, utiliza <SHIFT + flecha derecha> para confirmar la selección.

En el gestor de subtareas iniciado por more, los usuarios pueden ejecutar más comandos para investigar un problema concreto:

Los comandos son:

  • help: mostrar el mensaje de ayuda.
  • brainstorm: deja que PentestGPT haga una lluvia de ideas en la tarea local para todas las soluciones posibles.
  • discuss: discutir con PentestGPT sobre esta tarea local.
  • google: search on Google. Esta función aún está en fase de desarrollo.
  • continue: salir de la subtarea y continuar con la sesión de prueba principal.

Informe

Tras finalizar la prueba de penetración, se generará automáticamente un informe en la carpeta logs (si se sale con el comando quit).

El informe se puede imprimir en un formato legible ejecutando python3 utils/report_generator.py . También se ha cargado un informe de ejemplo sample_pentestGPT_log.txt.

Preguntas Frecuentes

¿Necesito ser miembro de ChatGPT plus para usar PentestGPT?

Sí. PentestGPT se basa en el modelo GPT-4 para un razonamiento de alta calidad. Dado que aún no existe una API pública de GPT-4, se incluye un wrapper para utilizar la sesión de ChatGPT para soportar PentestGPT.

¿Por qué GPT-4?

Después de una evaluación empírica, de encontró que GPT-4 se desempeña mejor que GPT-3.5 en términos de razonamiento de pruebas de penetración. De hecho, GPT-3.5 conduce a pruebas fallidas en tareas sencillas.

¿Por qué no utilizar directamente GPT-4?

Se ha descubierto que GPT-4 sufre pérdidas de contexto a medida que se profundiza en la prueba. Es esencial mantener una “conciencia del estado de la prueba” en este proceso.

¿Qué pasa con AutoGPT?

AutoGPT no está diseñado para pentest. Puede realizar operaciones maliciosas. Debido a esta consideración, se ha diseñado PentestGPT en modo interactivo. Por supuesto, el objetivo final es una solución de pentest automatizada.

https://github.com/GreyDGL/PentestGPT

Mi Carro Close (×)

Tu carrito está vacío
Ver tienda