Uma ferramenta de teste de penetração habilitada para GPT.
Explore os documentos »
Detalhes do projeto · Ver demonstração · Relatar bug ou solicitar recurso
virtualenv -p python3 venv
, source venv/bin/activate
)pip3 install git+https://github.com/GreyDGL/PentestGPT
export OPENAI_API_KEY='<your key here>'
, exporte a base de API com export OPENAI_BASEURL='https://api.xxxx.xxx/v1'
se precisar.pentestgpt-connection
tmux
como ambiente de terminal. Você pode fazer isso simplesmente executando tmux
no terminal nativo.pentestgpt --logging
resources
onde o utilizamos para resolver o desafio HackTheBox TEMPLATED (desafio web). PentestGPT é testado em Python 3.10
. Outras versões do Python3 devem funcionar, mas não foram testadas.
PentestGPT depende da API OpenAI para obter raciocínio de alta qualidade. Você pode consultar o vídeo de instalação aqui.
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'
se precisar.pentestgpt-connection
pentestgpt-connection
. Depois de um tempo, você deverá ver alguns exemplos de conversa com 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
esteja instalada. Caso contrário, consulte o guia de instalação de poesia. Recomenda-se que você execute :
pentestgpt --reasoning_model=gpt-4-turbo
para usar a API GPT-4-turbo mais recente.pentestgpt --reasoning_model=gpt-4
se você tiver acesso à API GPT-4.pentestgpt --reasoning_model=gpt-3.5-turbo-16k
se você tiver acesso apenas à API GPT-3.5. Para começar, execute pentestgpt --args
.
--help
mostra a mensagem de ajuda--reasoning_model
é o modelo de raciocínio que você deseja usar.--parsing_model
é o modelo de análise que você deseja usar.--useAPI
é se você deseja usar a API OpenAI. Por padrão, está definido como True
.--log_dir
é o diretório de saída de log customizado. O local é um diretório relativo.--logging
define se você gostaria de compartilhar os logs conosco. Por padrão, está definido como False
.A ferramenta funciona de forma semelhante ao msfconsole . Siga as orientações para realizar testes de penetração.
Em geral, o PentestGPT recebe comandos semelhantes ao chatGPT. Existem vários comandos básicos.
help
: mostra a mensagem de ajuda.next
: digite o resultado da execução do teste e siga para a próxima etapa.more
: deixe PentestGPT explicar mais detalhes da etapa atual. Além disso, um novo solucionador de subtarefas será criado para orientar o testador.todo
: mostra a lista de tarefas.discuss
: discutir com o PentestGPT .google
: pesquise no Google. Esta função ainda está em desenvolvimento.quit
: saia da ferramenta e salve a saída como arquivo de log (veja a seção de relatórios abaixo).TAB
para preencher automaticamente os comandos.ENTER
para selecionar o item. Da mesma forma, use <SHIFT + seta para a direita> para confirmar a seleção. No manipulador de subtarefa iniciado por more
, os usuários podem executar mais comandos para investigar um problema específico:
help
: mostra a mensagem de ajuda.brainstorm
: deixe o PentestGPT fazer um brainstorming sobre a tarefa local para todas as soluções possíveis.discuss
: discuta com PentestGPT sobre esta tarefa local.google
: pesquise no Google. Esta função ainda está em desenvolvimento.continue
: saia da subtarefa e continue a sessão de teste principal.pentestgpt --logging
. Coletaremos apenas o uso do LLM, sem qualquer informação relacionada à sua chave OpenAI.logs
(se você sair com o comando quit
).python3 utils/report_generator.py <log file>
. Um relatório de amostra sample_pentestGPT_log.txt
também é carregado. PentestGPT agora oferece suporte a LLMs locais, mas os prompts são otimizados apenas para GPT-4.
pentestgpt --reasoning_model=gpt4all --parsing_model=gpt4all
.module_mapping
em pentestgpt/utils/APIs/module_import.py
.module_import.py
, gpt4all.py
e chatgpt_api.py
para criar suporte de API para seu próprio modelo. Por favor, cite nosso artigo em:
@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
}
Distribuído sob a licença MIT. Consulte LICENSE.txt
para obter mais informações. A ferramenta tem apenas fins educacionais e o autor não tolera qualquer uso ilegal. Use por sua própria conta e risco.
(voltar ao topo)