Una herramienta de prueba de penetración potenciada por GPT.
Explora los documentos »
Detalles de diseño · Ver demostración · Informar error o solicitar función
virtualenv -p python3 venv
, source venv/bin/activate
)pip3 install git+https://github.com/GreyDGL/PentestGPT
export OPENAI_API_KEY='<your key here>'
, exporte la base API con export OPENAI_BASEURL='https://api.xxxx.xxx/v1'
si es necesario.pentestgpt-connection
tmux
como entorno de terminal. Puede hacerlo simplemente ejecutando tmux
en la terminal nativa.pentestgpt --logging
resources
donde lo usamos para resolver el desafío HackTheBox TEMPLADO (desafío web). PentestGPT se prueba en Python 3.10
. Otras versiones de Python3 deberían funcionar pero no están probadas.
PentestGPT se basa en la API OpenAI para lograr un razonamiento de alta calidad. Puede consultar el vídeo de instalación aquí.
pip3 install git+https://github.com/GreyDGL/PentestGPT
git clone https://github.com/GreyDGL/PentestGPT
cd PentestGPT
pip3 install -e .
export OPENAI_API_KEY='<your key here>'
export OPENAI_BASEURL='https://api.xxxx.xxx/v1'
si es necesario.pentestgpt-connection
pentestgpt-connection
. Después de un tiempo, deberías ver algún ejemplo de conversación con ChatGPT. You're testing the connection for PentestGPT v 0.11.0
#### Test connection for OpenAI api (GPT-4)
1. You're connected with OpenAI API. You have GPT-4 access. To start PentestGPT, please use <pentestgpt --reasoning_model=gpt-4>
#### Test connection for OpenAI api (GPT-3.5)
2. You're connected with OpenAI API. You have GPT-3.5 access. To start PentestGPT, please use <pentestgpt --reasoning_model=gpt-3.5-turbo-16k>
pentestgpt --reasoning_model=gpt-4 --useAPI=False
.poetry
esté instalada. De lo contrario, consulte la guía de instalación de poesía. Se recomienda ejecutar :
pentestgpt --reasoning_model=gpt-4-turbo
para utilizar la última API GPT-4-turbo.pentestgpt --reasoning_model=gpt-4
si tiene acceso a la API GPT-4.pentestgpt --reasoning_model=gpt-3.5-turbo-16k
si solo tiene acceso a la API GPT-3.5. Para comenzar, ejecute pentestgpt --args
.
--help
muestra el mensaje de ayuda--reasoning_model
es el modelo de razonamiento que desea utilizar.--parsing_model
es el modelo de análisis que desea utilizar.--useAPI
es si desea utilizar la API OpenAI. Por defecto está configurado en True
.--log_dir
es el directorio de salida del registro personalizado. La ubicación es un directorio relativo.--logging
define si desea compartir los registros con nosotros. Por defecto está configurado en False
.La herramienta funciona de manera similar a msfconsole . Siga las instrucciones para realizar pruebas de penetración.
En general, PentestGPT toma comandos similares a chatGPT. Hay varios comandos básicos.
help
: muestra el mensaje de ayuda.next
: ingrese el resultado de la ejecución de la prueba y obtenga el siguiente paso.more
: deje que PentestGPT explique más detalles del paso actual. Además, se creará un nuevo solucionador de subtareas para guiar al evaluador.todo
: muestra la lista de tareas pendientes.discuss
: discutir con el PentestGPT .google
: busca en Google. Esta función aún está en desarrollo.quit
: salga de la herramienta y guarde el resultado como archivo de registro (consulte la sección de informes a continuación).TAB
para autocompletar los comandos.ENTER
para seleccionar el elemento. De manera similar, use <SHIFT + flecha derecha> para confirmar la selección. En el controlador de subtareas iniciado por more
, los usuarios pueden ejecutar más comandos para investigar un problema específico:
help
: muestra el mensaje de ayuda.brainstorm
: deje que PentestGPT intercambie ideas sobre la tarea local para todas las soluciones posibles.discuss
: discuta con PentestGPT sobre esta tarea local.google
: busca en Google. Esta función aún está en desarrollo.continue
: sale de la subtarea y continúa con la sesión de prueba principal.pentestgpt --logging
. Solo recopilaremos el uso de LLM, sin ninguna información relacionada con su clave OpenAI.logs
(si sale con el comando quit
).python3 utils/report_generator.py <log file>
. También se carga un informe de muestra sample_pentestGPT_log.txt
. PentestGPT ahora admite LLM locales, pero las indicaciones solo están optimizadas para GPT-4.
pentestgpt --reasoning_model=gpt4all --parsing_model=gpt4all
.module_mapping
en pentestgpt/utils/APIs/module_import.py
.module_import.py
, gpt4all.py
y chatgpt_api.py
para crear soporte API para tu propio modelo. Cite nuestro artículo en:
@inproceedings {299699,
author = {Gelei Deng and Yi Liu and V{'i}ctor Mayoral-Vilches and Peng Liu and Yuekang Li and Yuan Xu and Tianwei Zhang and Yang Liu and Martin Pinzger and Stefan Rass},
title = {{PentestGPT}: Evaluating and Harnessing Large Language Models for Automated Penetration Testing},
booktitle = {33rd USENIX Security Symposium (USENIX Security 24)},
year = {2024},
isbn = {978-1-939133-44-1},
address = {Philadelphia, PA},
pages = {847--864},
url = {https://www.usenix.org/conference/usenixsecurity24/presentation/deng},
publisher = {USENIX Association},
month = aug
}
Distribuido bajo la licencia MIT. Consulte LICENSE.txt
para obtener más información. La herramienta tiene únicamente fines educativos y el autor no tolera ningún uso ilegal. Úselo bajo su propio riesgo.
(volver arriba)