作者:BHIS
克雷格(Craig)曾是一名软件开发商和红色团队。自2018年以来,他一直在Black Hills Infosec认装。
自从我进入该行业以来,人工智能(AI)一直是信息技术和信息安全的热门话题。我已经意识到了AI的发展,但是我没有选择在利用AI作为渗透测试人员的工作的一部分方面真正深入研究该主题。不久前,我给了有关渗透测试方法的网络广播,后来有人问我如何在方法/工作流程中使用AI。当时,我的回答是我不。
长期以来,我认为AI很有趣,但并不是特别有用。但是,取得了进步,技术有所改进,很明显,AI已经成熟到我们绝对可以使用它来帮助我们作为渗透测试人员的工作。那么,这是什么样的?这篇博客文章将是一系列文章中的第一篇,我将描述我的最初经验,试图将AI集成到我的渗透测试方法中。
在探索新技术并将其纳入您的方法论时,首先要研究您的空间中的其他人已经对该技术做了什么,这总是一个好主意。当我最初开始走这条路时,我的BHIS同事Derek Banks向我介绍了一个名为的项目burperference。BURPEREFERS是一个Burp Suite插件,可以对且从范围内的Web应用程序进行请求和响应,并将其发送到LLM进行推理。在人工智能的背景下,推论正在采用训练有素的模型,为其提供新信息,并要求它根据其培训来分析此新信息。
在Burp Suite中安装Burpference扩展名是一项简单的任务。扩展程序利用Jython独立的罐子。下载罐子后,我配置了Burp Suite Python环境,以指向罐子。可以通过在“扩展”选项卡中打开扩展设置来找到此设置。
配置Python环境后,我下载并解压缩了最新发行释放。Burpference在扩展目录中生成日志文件,因此我需要确保Burp Suite对该位置具有写入权限。接下来,我打开了“扩展”选项卡的“已安装”页面,单击“添加”按钮,然后从扩展名目录中选择burpference.py文件。
我检查了Burp Suite扩展装载机的输出部分,以确保不会发生任何错误。加载扩展名后,我打开了新的Burperefere选项卡,然后选择了指向我LLM的配置文件。对于我对Burperence进行的最初实验,我在实验室的一台较旧游戏PC上在Ollama中建立了一个小的(70亿个参数)DeepSeek-R1模型。
为了测试扩展功能,我安装并运行了OWASP的本地实例有意脆弱果汁店应用。
为了减少LLM上的噪音和不必要的负载,Burpference仅发送范围内请求和响应。因此,我在Burp Suite的项目范围中添加了Juice Shop应用程序。可以通过右键单击应用程序并选择“添加到范围”来从“目标”选项卡中完成。
我遇到了两个陷阱,在配置扩展程序时必须进行故障排除:
随着扩展程序成功与模型进行通信,我开始手动浏览Juice Shop应用程序。当我浏览申请时,我注意到Burpference在以下提示下向LLM发送了每个请求和响应:
您是Web应用程序渗透测试仪,在参与的进攻阶段对应用程序进行全面操作,并专注于利用安全缺陷。您的目的是检查我们测试应用程序时通过Web应用程序从Web应用程序中获得的HTTP请求和响应。该分析将重点介绍: - 请求和响应评估:审查HTTP请求和响应安全性错误,敏感数据暴露和其他漏洞。 - 身份验证和会话管理:评估身份验证机制和会话处理实践的有效性。 - 输入验证和输出编码:识别可能导致注射攻击或跨站点脚本(XSS)的输入验证相关的弱点。使用推理和上下文通过提供可能导致成功利用的示例有效载荷和POC来查找应用程序中的潜在缺陷。如果您认为任何漏洞,请在响应中以任何级别在您的响应中包括该发现的严重性(案例敏感):“批判的”“高的”“中等的”“低的”“信息”对于任何信息级别的发现或观察结果,例如cookie中缺少“安全”标志。并非每个请求和响应都可能具有任何指标,在您的方法中是简洁但确定性和创造性的。HTTP请求和响应对在此行下方提供:[下面的请求和响应JSON]
Burperence提示(格式为可读性)
我注意到的第一件事是该模型响应缓慢。这可能是由于我正在运行模型的主机的硬件限制所致。我决定以后使用更强大的远程OpenAI模型尝试扩展。扩展程序发送完整的请求和响应,几乎可以肯定会包含敏感信息,例如凭据,会话令牌,响应数据等。执行渗透测试时,保持客户数据的机密性是很高的优先级,并且可以使用远程模型,而您对严重关注的远程模型没有完全控制。因此,我想先验证扩展功能,并首先使用本地的本地模型评估其性能。浏览申请后,我花了一些时间在Burpference记录页面中查看推理结果。
虽然很慢,但扩展名似乎已经成功地与模型交流并记录了推理结果。我观察到,LLM审查了请求动词,参数,标题,cookie等,并从安全角度评估了它可以讲述该应用程序的内容。最终,它没有报告任何我在对请求和响应的手册审查中无法确定的任何内容。但是,它确实确定了一个有趣的曲奇welcomebanner_status
那是解雇
,甚至集思广益可能是攻击矢量!
即使有一个小的本地型号在不太明星的硬件上运行,我已经可以在扩展中看到一些值,至少是第二组眼睛的功能。我继续重新配置扩展名,以使用远程OpenAI GPT-4O-Mini型号。如您所料,我看到了更大的模型的性能要好得多。除了确定与CORS和安全标头配置有关的问题外,它还确定了它认为很容易受到跨站点脚本(XSS)的请求参数。该模型甚至提供了概念验证有效载荷。
我在浏览器中尝试了概念验证请求。虽然XSS有效载荷未触发,但该应用程序返回了HTTP 500内部服务器错误。
通过经验丰富的Web应用程序测试仪的眼睛观察此错误响应,很明显,我应该在这里寻找SQL注入脆弱性,但是我们的AI助手呢?我很高兴地发现Burpference在我最初忽略的另一个更详细的错误消息中识别了SQL语法。它确定相同的参数可能容易受到SQL注入的影响,并提供了另一种概念证明利用。
我在浏览器中尝试了此POC,并使用包含所有应用程序产品信息的JSON进行了响应。这表明有效载荷成功,并且该应用程序容易受到SQL注入的影响。
我在评估burpperence时注意到的一件事是,每个推论请求的上下文仅由一个请求和响应组成。我认为这可能是该扩展目前存在的有用性的一个限制因素。较小的本地模型的回答清楚地表明,如果提供了更多上下文,它可能会告诉我更多有用的信息。我认为,可能有机会扩展扩展功能,以选择性地在相同的推理请求中选择一系列对模型的请求和响应,以提供更有用的上下文。
总体而言,我发现该扩展是用作第二组眼睛看我的网络流量的情况,它成功地使我走上了发现有效脆弱性的途径。我喜欢它在后台被动地工作,并且我绝对可以看到自己利用我的Web应用程序渗透测试方法中的本地延伸来利用这一扩展。具体来说,我认为在新的Web应用程序渗透测试开始时,在执行手动枚举时启用Burpference将是有用的。
准备了解更多吗?
通过Antisyphon的负担得起的课程提高您的技能!
可用的现场/虚拟和按需