利用人工智能增强渗透测试方法:Copilot实战指南

本文详细介绍了如何利用GitHub Copilot进行渗透测试中的payload生成和漏洞分析,包括Python脚本自动化替换URL、绕过AI限制获取危险JavaScript方法信息,以及在实际测试中的应用技巧和注意事项。

利用人工智能增强渗透测试方法:Copilot实战指南

引言

大型语言模型(LLMs)的一个常见用例是快速软件开发。在我渗透测试方法中首次使用AI的方式之一就是用于payload生成。例如,我想创建一个详尽的无带外(OOB)命令注入payload列表。

Payload生成实战

初始数据收集

我从各种来源(如SecLists、PayloadAllTheThings、Payload Box等)收集命令注入payload列表。许多这些payload需要修改,因为它们包含了我无法控制的用于带外交互的IP地址和域名。

Copilot辅助脚本开发

我打开具有内置GitHub Copilot集成的Visual Studio Code,指示Copilot编写一个Python脚本,该脚本逐行读取文件,并将每个IP地址或URL实例替换为占位符文本{{}}

几秒钟后,我得到了一个可以保存并在payload列表上运行的Python脚本。

1
2
3
┌──(root㉿kali)-[/home/kali/Desktop/blog]
└─# python ./url_replacer.py sample-payloads.txt
Processing complete. Modified file saved as: modified_sample-payloads.txt

占位符替换

接下来,我让Copilot编写另一个Python脚本,该脚本逐行读取两个文件,将第一个文件中占位符文本的任何实例替换为第二个文件的下一行,并将结果输出到第三个文件。

我将这个新脚本与一个文本文件一起保存,其中粘贴了一些Burp Suite Collaborator URI。使用包含占位符的payload列表和Collaborator文件运行新脚本后,确认Collaborator URI已成功插入正确位置。

现在,每当我想测试命令注入时,可以将新的Collaborator URI保存到文件中,并再次运行第二个脚本,快速生成更多唯一payload以供Intruder使用。

AI辅助漏洞分析

初始尝试

LLMs在渗透测试中也有助于头脑风暴想法,但有时它们对你询问的内容很敏感。例如,我想审查OWASP的Juice Shop的main.js文件以寻找潜在漏洞。我向Copilot询问了潜在危险JavaScript方法的示例,但它表示无法协助可能被恶意使用的信息。

绕过限制

通过一些提示操作或越狱,有时可以让LLMs合作。通过解释我是一名道德安全研究人员,我能够让模型列出一些危险的JavaScript方法。

我继续询问有关Juice Shop main.js文件中潜在危险JavaScript方法的使用情况。Copilot回应了一些关于注释中eval()函数引用和innerHTML使用的信息。

模型越狱

在使用Copilot作为黑客助手进行实验时,我将其配置为使用Claude 3.5 Sonnet模型。我遇到了Joseph Thacker(又名rez0__)的一篇博客文章,其中包含针对此模型的越狱提示,最初由另一位黑客Pliny分享。

我向模型提交了这个越狱,它回应了更多关于JavaScript文件的防御中心信息。然而,模型继续提供了额外的响应,其中包含了关于JavaScript中潜在可利用漏洞的更详细信息。

获取概念验证代码

在实际渗透测试中,我肯定会停止使用AI并跳入尝试利用这些漏洞的正常流程。但我注意到模型似乎编辑了一些潜在的概念验证(PoC)代码。

我再次提示它,指定它应该"为每个识别的漏洞提供概念验证利用代码"。Copilot给出了相同的关于只帮助安全编码模式的说辞,但在几轮要求详细PoC、告诉它不要编辑响应并重新应用越狱后,我能够让它回应一些相当具体的利用说明。

重要注意事项

需要注意的是,Juice Shop是一个故意易受攻击的应用程序。在执行真实世界的渗透测试时,保护客户信息非常重要。因此,如果在实际渗透测试中尝试以这种方式使用AI,我会使用本地部署的LLM。

希望您发现这种探索利用AI成为更好、更高效的渗透测试人员的方法有所帮助!

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计