process

web自动化渗透

已经尝试做出第一版完全流程(其实就像是一个小实验)

  • 包括大模型的API调用
  • 提供给大模型的prompt (kali的渗透工程师 要求只给出命令 结合payload…)
  • 抛给大模型整个漏洞页面
  • 会话管理 提供给大模型漏洞页面的token
  • 插入人工干预 可以对大模型给出的命令进行修改

当前效果

  1. 可以正常处理抛给大模型的页面信息
  2. API调用也没问题
  3. 会话管理也OK
  4. 但是大模型给出的命令时好时坏 绝大多数情况下对于渗透没有效果
  5. 大模型能够高效的给出各种常见渗透工具的命令
  6. 一些给出的命令kali根本用不了 好像虽然确实是调用整个工具 kali里也有这个工具 但是执行命令会给出错误 应该是给出的命令的问题

按理说我用大模型打DVWA这种简单的靶场应该不会给错误命令 但是为什么他给的命令有时候没有用呢 是他没有定位到漏洞吗 我已经把整个漏洞页面都给他了 是我给的提示词不够准吗

  • 一个sql注入的靶场 我给他完整的漏洞页面 正常来讲他如果定位到是sql注入 那应该会给我sqlmap的命令 但是他还是给了一些其他的命令 nikto curl等等 甚至把我服务器一些信息都扒出来了(我靶场是服务器上用docker搭的啊 不知道这正常吗)

~~ 我懂了 他直接把我漏洞页面全扫了 因为他有我服务器IP 我靶场搭在8080端口的 ~~

当前的问题

  1. 大模型给出的命令大多数无效 (我觉得可能是大模型的问题 他不够专业 针对这个问题可以考虑对大模型进行微调 fine-tuning 但是估计要喂不少数据)
  2. 只有一轮会话 没有上下文信息(确实 整个问题挺严重 不可能一个漏洞大模型几句命令就一把梭了)
  3. 应该考虑大模型与用户交互 光指望大模型不太行 他不能一边根据回显 一边调整命令 等等 这是个思路:不断的通过抛给大模型漏洞页面 得到命令然后执行 得到回显 再抛给大模型 这样一直循环直到得到想要的结果(比如getshell) 但是这个过程就要考虑大模型的记忆能力
  4. 虽然当前不会考虑资源的影响 但是对用户的输入 漏洞页面的信息 命令执行后的回显等等各种数据信息 有必要进行一些处理 消除不必要的内容

在一次渗透过程中 一般做法是扫端口 根据端口情况 对不同的端口有针对性地进行渗透 利用一些工具 构造payload等多种手段 但是一般实际情况当中 很少会去直接攻击80等这些常用难打的端口 所以端口选择是一个问题 这里插个眼 后面解决

读pentestgpt论文的发现:

  1. 大型语言模型(LLMs)在执行端到端渗透测试任务方面表现出了能力,但在面对更复杂的测试目标时却遇到了困难。
  2. 大语言模型可以高效地使用渗透测试工具、发现常见漏洞并解读源代码以定位漏洞。
  3. LLMs在保持长期记忆方面存在困难,而长期记忆对于有效地将漏洞联系起来并制定exploitation策略至关重要。
  4. LLMs 更喜欢最近的任务和深度优先搜索方法,这往往导致对一个服务过度关注并忘记之前的发现。
  5. LLM 可能会生成不准确的操作或命令,这通常是由内在的不准确性和幻觉引起的。

pentest gpt的做法:

  1. PENTESTGPT 包含三个核心模块:推理模块(Reasoning Module)、生成模块(Generation Module)和解析模块(Parsing Module)。每个模块都保留一个 LLM 会话,以及与其相关的对话和上下文。 用户可以与 PENTESTGPT 进行顺畅交互,不同的模块处理不同类型的消息。这一交互最终产生一个建议,即用户在渗透测试过程中应采取的下一步行动。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇