一款基于GPT的渗透测试工具
作者:Sec-Labs | 发布时间:
项目地址
https://github.com/GreyDGL/PentestGPT
PentestGPT
一款基于GPT的渗透测试工具。
常规更新
- [更新于2023年5月30日] 一次重大更新,允许使用
pip安装PentestGPT。 - 可用的视频:
- **PentestGPT用于OSCP样式机器:HTB-Jarvis**。这只是第一部分,我会在有时间的时候完成其余部分。
- 在HTB-Lame上使用PentestGPT。这是一台易于机器,但它展示了PentestGPT如何跳过兔子洞并在其他潜在的漏洞上工作。
- 我们正在HackTheBox上测试PentestGPT。您可以关注这个链接。更多细节即将发布。
- 欢迎加入Discord频道获取更多更新并分享您的想法!
常见问题
- 问: PentestGPT是什么?
- 答: PentestGPT是一种由ChatGPT支持的渗透测试工具。它旨在自动化渗透测试过程。它建立在ChatGPT之上,在交互模式下操作,以指导渗透测试人员在整体进展和特定操作方面。
- 问: 我是否需要成为ChatGPT Plus会员才能使用PentestGPT?
- 答: 您建议使用ChatGPT Plus或GPT-4 API。PentestGPT依赖于GPT-4模型进行高质量的推理。由于目前还没有公共的GPT-4 API,因此包含了一个包装器来使用ChatGPT会话支持PentestGPT。如果您有访问权限,您也可以直接使用GPT-4 API。
- 问: 为什么是GPT-4?
- 答: 经过实证评估,我们发现GPT-4在渗透测试推理方面的表现优于GPT-3.5。事实上,GPT-3.5在简单任务中会导致测试失败。
- 问: 为什么不直接使用GPT-4?
- 答: 我们发现,随着测试的深入,GPT-4会丧失上下文的损失。在这个过程中保持“测试状态意识”至关重要。您可以在此处检查PentestGPT设计here以获取更多详细信息。
- 问: AutoGPT怎么样?
- 答: AutoGPT不是为渗透测试而设计的。它可能执行恶意操作。出于这种考虑,我们以交互模式设计PentestGPT。当然,我们的最终目标是自动化的渗透测试解决方案。
入门
- PentestGPT是一款由ChatGPT支持的渗透测试工具。
- 您需要ChatGPT Plus或GPT-4 API才能使用PentestGPT。
- 以下是一个示例会话:
$ python3 main.py
PentestGPT: 嗨,我是PentestGPT,我可以帮助你进行渗透测试。
输入您要测试的域名或IP地址:
> 10.10.10.10
PentestGPT: 好的,现在开始进行测试。您希望从哪里开始?
> 扫描
PentestGPT: 您希望进行哪种类型的扫描?
> 端口扫描
PentestGPT: 好的,现在开始进行端口扫描。
- 请查看这个链接以获取更多详细信息。
使用方法
- 首先运行
pentestgpt --args。--reasoning_model是您想要使用的推理模型。--useAPI是您是否想使用 OpenAI API。- 建议使用
test_connection.py建议的组合,它们是:pentestgpt --reasoning_model=gpt-4pentestgpt --reasoning_model=gpt-4 --useAPIpentestgpt --reasoning_model=gpt-3.5-turbo --useAPI
- 该工具的使用方式类似于 _msfconsole_。按照指导进行渗透测试。
- 一般来说,PentestGPT 接收与 chatGPT 类似的命令。有几个基本命令。
- 这些命令是:
help: 显示帮助信息。next: 输入测试执行结果并获得下一步。more: 让 PentestGPT 解释当前步骤的更多细节。同时,将创建一个新的子任务求解器来指导测试人员。todo: 显示待办事项列表。discuss: 与 PentestGPT 进行讨论。google: 在 Google 上搜索。该功能仍在开发中。quit: 退出工具并将输出保存为日志文件(请参见下面的 报告 部分)。
- 您可以使用 <SHIFT + 右箭头> 结束输入(并用于下一行)。
- 您始终可以使用
TAB自动完成命令。 - 当您被给定一个下拉选择列表时,您可以使用光标或箭头键浏览列表。按
ENTER选择项目。类似地,使用 <SHIFT + 右箭头> 确认选择。
- 这些命令是:
- 在由
more启动的子任务处理程序中,用户可以执行更多命令以深入研究特定问题:- 这些命令是:
help: 显示帮助信息。brainstorm: 让 PentestGPT 对所有可能的解决方案进行头脑风暴。discuss: 与 PentestGPT 讨论此本地任务。google: 在 Google 上搜索。该功能仍在开发中。continue: 退出子任务并继续主测试会话。
- 这些命令是:
报告和日志
- 完成渗透测试后,将自动在
logs文件夹中生成报告(如果您使用quit命令退出)。 - 报告可以通过运行
python3 utils/report_generator.py <log file>以人类可读格式打印。还上传了一个示例报告sample_pentestGPT_log.txt。
标签:工具分享, ChatGPT