PentestGPT | GPT 授权的渗透测试工具插图

常见问题

  • 问: PentestGPT 是什么?
    • 答: PentestGPT 是一款通过 ChatGPT 进行赋能的渗透测试工具,旨在自动化渗透测试过程。它建立在 ChatGPT 之上,以交互方式运行,指导渗透测试人员进行整体进度和具体操作。
  • 问: 我需要成为 ChatGPT plus 会员才能使用 PentestGPT 吗?
    • 答: 是的。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 设计以获取更多详细信息。
  • 问: AutoGPT 怎么样?
    • 答: AutoGPT 不是专为渗透测试而设计的。它可能会执行恶意操作。基于这种考虑,我们将 PentestGPT 设计为交互模式。当然,我们的最终目标是自动化渗透测试解决方案。
  • 问: 未来的计划?
    • 答: 我们正在撰写一篇论文来探索自动化渗透测试背后的技术细节。同时,请随时提出问题/讨论。我会尽力解决所有这些问题。
PentestGPT | GPT 授权的渗透测试工具插图1

入门

PentestGPT 是一款由 ChatGPT 赋能的渗透测试工具。它旨在自动化渗透测试过程,能够解决简单到中等的 HackTheBox 机器和其他 CTF 挑战。您可以在我们使用它解决 HackTheBox 挑战TEMPLATED (网络挑战)的地方查看此示例。资源文件提供了 PentestGPT 在目标 VulnHub 机器 (Hackable II) 上的示例测试过程。

下面是一个示例使用视频:(或在此处提供:演示)

安装

如果您想使用 cookie 设置,我们建议您在安装前观看此安装视频。

  1. 安装 requirements.txtCopy Codepip install -r requirements.txt
  2. config 中配置 cookie。您可以按照 config/chatgpt_config_sample.py 的示例进行操作,复制为 config/chatgpt_config.py。如果您使用 cookie,请观看此视频:https://youtu.be/IbUcj0F9EBc。一般步骤是:
    • 登录到 ChatGPT 会话页面。
    • Inspect - Network 中查找与 ChatGPT 会话页面的连接。
    • request to 中找到 request header 中的 cookie https://chat.openai.com/api/auth/session,粘贴到 cookie 的字段中 config/chatgpt_config.py。(您可以使用 Inspect->Network,找到会话并将字段 cookie 复制到 request_headers 中的 https://chat.openai.com/api/auth/session)请注意,由于 ChatGPT 页面的更新,其他字段已暂时弃用。
    • 填写 userAgent 您的用户代理。
  3. 如果您使用的是 API:在 config 中填写 OpenAI API 密钥 chatgpt_config.py。要验证连接配置是否正确,您可以运行 python3 test_connection.py。您应该会看到一些与 ChatGPT 的示例对话。示例输出如下:Copy Code1. You’re connected with ChatGPT Plus cookie.
      To start PentestGPT, please use <python3 main.py –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 <python3 main.py –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 <python3 main.py –reasoning_model=gpt-3.5-turbo –useAPI>注意:以上验证过程为 cookie。如果多次尝试后仍遇到错误,请尝试刷新页面,重复以上步骤,再试一次。您也可以尝试用 cookie 来 https://chat.openai.com/backend-api/conversations。如果您遇到任何问题,请提交问题。

用法

要开始,请运行 python3 main.py --args

  • --reasoning_model 是您要使用的推理模型。
  • --useAPI 是否要使用 OpenAI API。

建议您使用建议的组合 test_connection.py,它们是:

Copy Codepython3 main.py --reasoning_model=gpt-4
python3 main.py --reasoning_model=gpt-4 --useAPI
python3 main.py --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:退出子任务并继续主测试会话。