PentestGPT
GPT 授权的渗透测试工具。
设计细节 · 查看演示 · 报告错误或请求功能
一般更新
- [更新于 2023 年 5 月 30 日] 一个重大更新,允许安装带有
pip
. - 可用视频:
- 用于类 OSCP 机器的 PentestGPT:HTB-Jarvis。这只是第一部分,其余的我会在有时间的时候完成。
- HTB-Lame上的 PentestGPT。这是一台简单的机器,但它向您展示了 PentestGPT 如何跳过兔子洞并处理其他潜在漏洞。
- 我们正在 HackTheBox 上测试 PentestGPT。您可以点击此链接。更多细节将很快发布。
- 随时加入Discord 频道以获取更多更新并分享您的想法!
常见问题
- 问:什么是 PentestGPT?
- A : PentestGPT 是一款由 ChatGPT 赋能的渗透测试工具。它旨在自动化渗透测试过程。它建立在 ChatGPT 之上,以交互方式运行,以指导渗透测试人员进行整体进度和具体操作。
- 问:我需要成为 ChatGPT plus 会员才能使用 PentestGPT 吗?
- A : 建议您使用 ChatGPT plus 或 GPT-4 API。PentestGPT 依靠 GPT-4 模型进行高质量推理。由于还没有公共 GPT-4 API,因此包含一个包装器以使用 ChatGPT 会话来支持 PentestGPT。如果您有权访问 GPT-4 API,您也可以直接使用它。
- 问:为什么选择 GPT-4?
- A : 经过实证评估,我们发现 GPT-4 在渗透测试推理方面表现优于 GPT-3.5。事实上,GPT-3.5 导致简单任务的测试失败。
- 问:为什么不直接使用 GPT-4?
- 答:我们发现随着测试的深入,GPT-4 会遭受上下文损失。在此过程中保持“测试状态意识”是必不可少的。您可以在此处查看 PentestGPT 设计以获取更多详细信息。
- 问:AutoGPT 怎么样?
- 答:AutoGPT 不是为渗透测试而设计的。它可能会执行恶意操作。基于这种考虑,我们将 PentestGPT 设计为交互模式。当然,我们的最终目标是自动化渗透测试解决方案。
入门
- PentestGPT是一款由ChatGPT赋能的渗透测试工具。
- 它旨在自动化渗透测试过程。它建立在 ChatGPT 之上,以交互方式运行,以指导渗透测试人员进行整体进度和具体操作。
- PentestGPT能够解决简单到中等的 HackTheBox 机器和其他 CTF 挑战。您可以在我们使用它解决 HackTheBox 挑战TEMPLATED (网络挑战)的地方查看此示例。
resources
- 此处提供了PentestGPT在目标 VulnHub 机器 (Hackable II) 上的示例测试过程。
- 下面是一个示例使用视频:(或在此处提供:演示)
安装
PentestGPT目前支持ChatGPT和OpenAI API的后端。您可以使用其中任何一个。我们正在努力支持自定义本地 LLM 模型。建议您使用 OpenAI API 以获得稳定性和性能(第 3 项中的详细信息)。
- 安装最新版本
pip3 install git+https://github.com/GreyDGL/PentestGPT
- 如果您决定使用ChatGPT作为后端
- 获取用于访问 ChatGPT 会话的 cookie
$ pentestgpt-cookie export CHATGPT_COOKIE='<your cookie here>`
- 复制之前的命令并在您的终端中运行它 (
export CHATGPT_COOKIE='<big-string-you-shall-get-from-the-previous-command>'
) - 测试连接
pentestgpt-connection
- 运行该工具
pentestgpt
- 使用 OpenAI API
- 导出您的 API 密钥
export OPENAI_KEY='<your key here>'
- 测试连接
pentestgpt-connection
- 导出您的 API 密钥
- 要验证连接配置是否正确,您可以运行
pentestgpt-connection
. 一段时间后,您应该会看到一些与 ChatGPT 的示例对话。- 示例输出如下
1. You're connected with ChatGPT Plus cookie. To start PentestGPT, please use <pentestgpt --reasoning_model=gpt-4> ## Test connection for OpenAI api (GPT-4) 2. You're connected with OpenAI API. You have GPT-4 access. To start PentestGPT, please use <pentestgpt --reasoning_model=gpt-4 --useAPI> ## 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 <pentestgpt --reasoning_model=gpt-3.5-turbo --useAPI>
- ChatGPT cookie 解决方案可能非常不稳定。我们一直在努力寻找更好的解决方案。如果您有任何想法或遇到任何问题,请随时与我们联系。
用法
- 要开始,请运行
pentestgpt --args
。--reasoning_model
是您要使用的推理模型。--useAPI
是否要使用 OpenAI API。- 建议您使用建议的组合
test_connection.py
,它们是:pentestgpt --reasoning_model=gpt-4
pentestgpt --reasoning_model=gpt-4 --useAPI
pentestgpt --reasoning_model=gpt-3.5-turbo --useAPI
- 该工具的工作方式类似于msfconsole。按照指南执行渗透测试。
- 一般来说,PentestGPT 接收类似于 chatGPT 的命令。有几个基本命令。
- 命令是:
help
: 显示帮助信息。next
:输入测试执行结果,进入下一步。more
: 让PentestGPT解释当前步骤的更多细节。此外,将创建一个新的子任务解决器来指导测试人员。todo
: 显示待办事项列表。discuss
: 与PentestGPT讨论。google
: 谷歌搜索。此功能仍在开发中。quit
:退出该工具并将输出保存为日志文件(请参阅下面的报告部分)。
- 您可以使用 <SHIFT + right arrow> 来结束您的输入(并且用于下一行)。
- 您可能总是使用
TAB
自动完成命令。 - 当您获得下拉选择列表时,您可以使用光标或箭头键在列表中导航。按下
ENTER
以选择项目。同样,使用 <SHIFT + 向右箭头> 确认选择。
- 命令是:
- 在由 发起的子任务处理程序中
more
,用户可以执行更多命令来调查特定问题:- 命令是:
help
: 显示帮助信息。brainstorm
:让 PentestGPT 在本地任务上集思广益,寻找所有可能的解决方案。discuss
: 与 PentestGPT 讨论这个本地任务。google
: 谷歌搜索。此功能仍在开发中。continue
:退出子任务并继续主测试会话。
- 命令是:
报告和记录
- 渗透测试完成后,会在
logs
文件夹中自动生成一份报告(如果你用quit
命令退出)。 - 可以通过运行以人类可读的格式打印报告
python3 utils/report_generator.py <log file>
。sample_pentestGPT_log.txt
还上传了样本报告。
项目地址
https://github.com/GreyDGL/PentestGPT