利用人工智能增强渗透测试方法: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脚本。
|
|
占位符替换
接下来,我让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成为更好、更高效的渗透测试人员的方法有所帮助!