PentestGPT
v0.14.0
一款支持 GPT 的渗透测试工具。
探索文档 »
设计细节·查看演示·报告错误或请求功能
virtualenv -p python3 venv
, source venv/bin/activate
)pip3 install git+https://github.com/GreyDGL/PentestGPT
安装项目export OPENAI_API_KEY='<your key here>'
导出您的API密钥,如果需要,使用export OPENAI_BASEURL='https://api.xxxx.xxx/v1'
导出API基础。pentestgpt-connection
测试连接tmux
作为终端环境。您只需在本机终端中运行tmux
即可做到这一点。pentestgpt --logging
resources
中查看此示例,我们使用它来解决 HackTheBox 挑战模板(网络挑战)。PentestGPT 在Python 3.10
下进行测试。其他 Python3 版本应该可以工作,但未经测试。
PentestGPT依靠OpenAI API实现高质量推理。您可以参考这里的安装视频。
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>'
导出您的 API 密钥export OPENAI_BASEURL='https://api.xxxx.xxx/v1'
导出 API 库。pentestgpt-connection
测试连接pentestgpt-connection
。一段时间后,您应该会看到一些与 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
已安装。如果没有,请参阅诗歌安装指南。 建议您运行:
pentestgpt --reasoning_model=gpt-4-turbo
使用最新的 GPT-4-turbo API。pentestgpt --reasoning_model=gpt-4
如果您有权访问 GPT-4 API。pentestgpt --reasoning_model=gpt-3.5-turbo-16k
如果您只能访问 GPT-3.5 API。首先,运行pentestgpt --args
。
--help
显示帮助信息--reasoning_model
是您要使用的推理模型。--parsing_model
是您要使用的解析模型。--useAPI
是否要使用OpenAI API。默认情况下它设置为True
。--log_dir
是自定义的日志输出目录。该位置是相对目录。--logging
定义您是否愿意与我们共享日志。默认情况下它设置为False
。该工具的工作原理与msfconsole类似。按照指导执行渗透测试。
一般来说,PentestGPT 接收的命令与 chatGPT 类似。有几个基本命令。
help
:显示帮助信息。next
:输入测试执行结果并进行下一步。more
:让PentestGPT解释当前步骤的更多细节。此外,还将创建一个新的子任务求解器来指导测试人员。todo
:显示待办事项列表。discuss
:与PentestGPT讨论。google
:在谷歌上搜索。该功能仍在开发中。quit
:退出工具并将输出保存为日志文件(请参阅下面的报告部分)。TAB
来自动完成命令。ENTER
选择该项目。同样,使用 <SHIFT + 向右箭头> 确认选择。在more
发起的子任务处理程序中,用户可以执行 more 命令来调查特定问题:
help
:显示帮助信息。brainstorm
:让 PentestGPT 就本地任务进行头脑风暴,找出所有可能的解决方案。discuss
:与 PentestGPT 讨论这个本地任务。google
:在谷歌上搜索。该功能仍在开发中。continue
:退出子任务并继续主测试会话。pentestgpt --logging
。我们只会收集 LLM 使用情况,而不收集与您的 OpenAI 密钥相关的任何信息。logs
文件夹中自动生成报告(如果使用quit
命令退出)。python3 utils/report_generator.py <log file>
可以以人类可读的格式打印报告。还上传了示例报告sample_pentestGPT_log.txt
。 PentestGPT 现在支持本地 LLM,但提示仅针对 GPT-4 进行了优化。
pentestgpt --reasoning_model=gpt4all --parsing_model=gpt4all
。pentestgpt/utils/APIs/module_import.py
中的module_mapping
类。module_import.py
、 gpt4all.py
和chatgpt_api.py
的示例为您自己的模型创建 API 支持。 请在以下位置引用我们的论文:
@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
}
根据 MIT 许可证分发。有关详细信息,请参阅LICENSE.txt
。该工具仅用于教育目的,作者不容忍任何非法使用。使用风险自负。
(回到顶部)