首页 > 其他分享 >PentestGPT:A GPT-empowered penetration testing tool

PentestGPT:A GPT-empowered penetration testing tool

时间:2023-09-14 12:22:34浏览次数:34  
标签:empowered ReasoningSession tool testing 用户 信息 渗透 测试人员 PentestGPT

一、What is PentestGPT?

PentestGPT是一种由大型语言模型(LLMs)赋能的渗透测试工具。它旨在自动化渗透测试过程。它基于ChatGPT构建,并以交互模式运行,以指导渗透测试人员在整体进展和具体操作上。

General Design

PentestGPT提供了一个统一的终端输入处理程序,并由三个主要组件支持:

  • 测试生成模块(generation module),用于生成用户执行的确切渗透测试命令或操作。
  • 测试推理模块(reasoning module),用于对测试进行推理,指导渗透测试人员下一步要做什么。
  • 解析模块(parsing module),用于解析渗透工具的输出和WebUI上的内容。

Function Design

处理程序是渗透测试工具的主要入口点。它允许渗透测试人员执行以下操作:

  1. 使用预先设计的prompt提示初始化自身。
  2. 通过提供目标信息启动新的渗透测试会话。
  3. 获取todo-list待办列表,并获取下一步执行的步骤。
  4. 渗透测试人员完成实际操作后,将渗透结果信息传递给PentestGPT,这些结果信息包括:
    1. 工具输出
    2. 网页内容
    3. 人类对当前测试结果的描述
  5. 生成模块还可以启动连续模式,帮助渗透测试人员深入研究特定任务。 

Logic Flow Design

  1. 用户初始化所有会话。

  2. 用户通过以下几个步骤完成初始化任务。
    1. 用户向ReasoningSession提供目标信息。
    2. ReasoningSession根据目标信息生成任务树。
    3. ReasoningSession决定下一步要做的事情,并将信息传递给GenerationSession。
    4. GenerationSession生成用户执行的确切命令,并将其传递给用户。
  3. 进入主循环。用户可以选择以下几个步骤:
    1. 向PentestGPT提供todo-list待办列表执行结果。
      1.  用户将工具的输出提供给ParsingSession。
      2. ParsingSession解析输出,并将信息传递给ReasoningSession。
      3. ReasoningSession根据信息更新任务树。
      4. 重复执行步骤3.2.1-3.2.3。

    2. 询问待办事项。
      1. ReasoningSession分析任务树。它决定下一个待办事项,包括(1)自然语言描述和(2)要执行的确切命令。
      2. ReasoningSession将信息传递给GenerationSession进行进一步验证。
      3. GenerationSession生成用户执行的确切命令,并将其传递给用户。

    3. 通过提供任意信息与PentestGPT讨论。
      1. 用户将信息提供给ParsingSession。
      2. ParsingSession解析信息: 如果信息太长,进行摘要。 否则,重新表述。
      3. ReasoningSession分析信息并更新任务树。
  4. 退出程序。

下面显示了一个流程图:

参考链接:

https://github.com/GreyDGL/PentestGPT/blob/main/PentestGPT_design.md 
https://github.com/GreyDGL/PentestGPT

 

二、关于LLM赋能安全领域的必要组成条件思考

  • 历史操作过程(status db)需要以某种形式记录,并且LLM的token窗口能够允许每次请求时status db作为context。
    • 值得注意的是,需要记录哪些信息,以什么样的格式记录,这部分需要领域专家进行人工定义,属于领域先验知识的部分。
  • 任务必须能够被分解为多个子步骤。
    • 最好通过领域专家通过few-shot的方式预先定义好任务步骤分解的套路,这部分也属于领域先验知识的部分。
  • 涉及到工具调用和返回结果解析和具体垂直领域和具体的工具强相关,协议解析和信息格式提取是一个重工作量的领域。

 

三、通过GPT进行多步骤Webshell生成

 

标签:empowered,ReasoningSession,tool,testing,用户,信息,渗透,测试人员,PentestGPT
From: https://www.cnblogs.com/LittleHann/p/17702202.html

相关文章

  • 9-14|npm install --global windows-build-tools 安装太慢了,能够指定国内源
    如果你在中国,并且发现`npm`的包下载速度很慢,那么很可能是因为默认的npm源在国外。为了提高下载速度,你可以使用淘宝的npm镜像。以下是使用淘宝npm镜像的方法:1.**临时使用** ``` npminstall--globalwindows-build-tools--registry=https://registry.npm.taobao.org......
  • testing-code-测试代码unittest如何编写?
    1---name_function.py函数name_function.py用来获取人名,入参时选择姓、名、中间字三项(middle为可选入参项)1#!usr/bin/env/python23defget_formatted_name(first,last,middle=""):4ifmiddle:5full_name=f"{first}{middle}{last}"6returnf......
  • Transformer-empowered Multi-scale Contextual Matching and Aggregation for
    Transformer-empoweredMulti-scaleContextualMatchingandAggregationforMulti-contrastMRISuper-resolution(阅读文献)10.12基于变压器的磁共振多对比度超分辨率多尺度背景匹配与聚合摘要:MRI可以显示相同解剖结构的多对比图像,使多对比超分辨率(SR)技术成为可能。和使用单一......
  • 循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(3)--自定义用
    在我们创建界面元素的时候,不管在Vue3+ElementPlus的前端上,还是Winform桌面端上,都是会利用自定义用户控件来快速重用一些自定义的界面内容,对自定义用户控件的封装处理,也是我们开发WPF应用需要熟悉的一环。本篇随笔继续深入介绍介绍基于CommunityToolkit.Mvvm和HandyControl的WPF应......
  • RocketMQ教程-(6-2)-运维部署-Admin Tool
    执⾏命令⽅法:./mqadmin{command}{args}⼏乎所有命令都需要配置-n表⽰NameServer地址,格式为ip:port⼏乎所有命令都可以通过-h获取帮助如果既有Broker地址(-b)配置项又有clusterName(-c)配置项,则优先以Broker地址执⾏命令,如果不配置Broker地址,则对集群中所有主机执⾏命令......
  • hutool依赖,复制list<a>的相同属性给list<b>,判断传入值是否为空等
      依赖传入<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.11</version></dependency>   以下是将list<User>与list<UserVO>相同属性名的属性值,从list<User>......
  • a-tooltip气泡指令
    /***气泡指令*@param{?String|?Number}title-自定义内容*@param{?String|'top'}placement-气泡冒出位置*@param{?String|'right'}position-气泡位置*@param{Object}binding.value-{title,placement,position}*直接使用:v-tooltip="......
  • win everything toolbar设置
    everythingtoolbar设置安装好toolbar后需要设置后才能在工具栏显示,且有一些个性化设置。工具栏显示toolbar工具栏->右键->工具栏->everythingtoolbar隐藏无效搜索设置详细显示......
  • 功耗分析 Powerplay power analysis tool
    generatethevcdfileforthePowerplaypoweranalysistoolPowerplay使用方法Assignments-->Settings-->Simulation,勾选生成VCD文件,并且需要填写仿真文件所例子化的顶层名称继续点击MoreEDANetlistWriterSettings-->Generatenetlistforfunctionalsimulationo......
  • VisionPro学习笔记(3)——BeadInspectTool
    如果需要了解其他图像处理的文章,请移步小编的GitHub地址传送门:请点击我如果点击有误:https://github.com/LeBron-Jian/ComputerVisionPracticeVisionPro有很多的示例和算子,这里再展示一个最新出的算子BeadInspectTool。估计理解这个算子需要有一定的基础,但是使用......