一款基于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: 好的,现在开始进行端口扫描。

使用方法

  1. 首先运行 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
  2. 该工具的使用方式类似于 _msfconsole_。按照指导进行渗透测试。
  3. 一般来说,PentestGPT 接收与 chatGPT 类似的命令。有几个基本命令。
    1. 这些命令是:
      • help: 显示帮助信息。
      • next: 输入测试执行结果并获得下一步。
      • more: 让 PentestGPT 解释当前步骤的更多细节。同时,将创建一个新的子任务求解器来指导测试人员。
      • todo: 显示待办事项列表。
      • discuss: 与 PentestGPT 进行讨论。
      • google: 在 Google 上搜索。该功能仍在开发中。
      • quit: 退出工具并将输出保存为日志文件(请参见下面的 报告 部分)。
    2. 您可以使用 <SHIFT + 右箭头> 结束输入(并用于下一行)。
    3. 您始终可以使用 TAB 自动完成命令。
    4. 当您被给定一个下拉选择列表时,您可以使用光标或箭头键浏览列表。按 ENTER 选择项目。类似地,使用 <SHIFT + 右箭头> 确认选择。
  4. 在由 more 启动的子任务处理程序中,用户可以执行更多命令以深入研究特定问题:
    1. 这些命令是:
      • help: 显示帮助信息。
      • brainstorm: 让 PentestGPT 对所有可能的解决方案进行头脑风暴。
      • discuss: 与 PentestGPT 讨论此本地任务。
      • google: 在 Google 上搜索。该功能仍在开发中。
      • continue: 退出子任务并继续主测试会话。

报告和日志

  1. 完成渗透测试后,将自动在 logs 文件夹中生成报告(如果您使用 quit 命令退出)。
  2. 报告可以通过运行 python3 utils/report_generator.py <log file> 以人类可读格式打印。还上传了一个示例报告 sample_pentestGPT_log.txt

 

标签:工具分享, ChatGPT