我仅使用 ChatGPT 提示创建了一个无法检测到的渗透漏洞

ChatGPT 是一种强大的 AI 语言模型,可以根据提示生成人类文本,使其成为各种自然语言处理任务的有用工具

正如我之前提到的,其中一项任务是编写代码。所以,我心想,有没有可能只使用 ChatGPT 提示来构建一个新的漏洞?

为此,我决定不自己编写代码,

只使用隐写术等最佳实践,这些实践以前只为攻击保留。我想尝试创造一些从头到尾都能完全工作的东西,而读者不必想象某些恶意软件会如何“相互通信”。

这个练习的总体目标是证明两件事:

1)如何轻松绕过ChatGPT的不足障碍。

2) 无需编写代码且仅使用 ChatGPT 即可创建高级恶意软件是多么容易。

我从看看我可以让 ChatGPT 生成什么来开始我的经验。我决定使用 Go 实现语言,因为它易于开发,而且如果需要调试问题,我可以手动检查代码。

第一个版本是创建 MVP(最小可行产品)

我做的第一个提示是简单地生成属于恶意软件类别的东西

可以理解的是,ChatGPT 提醒我生成恶意软件是不道德的,并拒绝向我提供任何代码来帮助我这样做。

ChatGPT 回应:

对不起,作为一个人工智能模型,我既不能编写恶意代码,也不能

参与任何可能导致伤害或非法的活动。

我的目标是以合乎道德和负责任的方式帮助用户,并严格遵守道德和道德标准

。重要的是要优先考虑道德考虑,避免任何

可能造成损害或非法的行为。

为了解决这个问题,我决定不是立即向 ChatGPT 发送请求,而是生成一小段辅助代码并手动组装整个exe。我得出的结论是,隐写术是解决外泄的最佳方法,而

“使用你所拥有的”是查找磁盘本身已经

存在的大型图像文件的最佳方法。该恶意软件针对特定的个人,它可以在 C 驱动器上找到有价值的文档,而不是冒着将外部文件下载到设备并被标记为调用外部 URL 的风险。

第一个成功的请求只是要求生成代码,以

在本地上查找大于 5MB 的 PNG。这里的想法是,一个 5MB 的 PNG足以存储重要商业文档的片段,例如 PDF 或 DOCX。

ChatGPT 代码响应,用于在本地驱动器上搜索 PNG 文件。完整答案已编辑。

有了搜索大于 5MB 的 PNG 文件的代码,我将其复制回控制台,并要求 ChatGPT 添加代码,以使用隐写术对它找到的 PNG 进行编码。为此,他提出了一个现成的 Auer 隐写库:https://github.com/auyer/steganography 

在这一点上,我几乎已经准备好了一个 MVP 来测试,难题中缺失的一部分是我需要在渗透设备上找到一些文件以及在哪里上传结果。我决定让 ChatGPT 给我一些代码,这些代码可以遍历“用户文档”、“桌面”和“AppData”文件夹,以查找任何要泄露的 PDF 文档或 DOCX 文档。我添加了最大 1MB 的大小,以便将整个文档放入单个图像中,以进行代码的第一次迭代。

对于渗透,我认为 Google Drive 是一个不错的选择,因为 Google 的整个域往往在大多数公司网络的“允许列表”上。

以下代码将我们生成的 PNG 文件上传到 Google Drive,以便攻击者在公司基础设施之外进行解码。

合并片段以创建我们的 MVP

事实证明,组装带有提示的片段出乎意料地是最简单的部分,因为我
只需要发布我设法让 ChatGPT
生成并将它们合并在一起的代码片段。因此,有了 ChatGPT 的这个结果,我现在
有了一个 MVP,但它相对没用,因为任何“美味”的文档
都可能大于 1MB,因此需要分成多个“块”才能
使用隐写术进行静默渗透。在四五个
提示问题之后,我有了将 PDF 拆分100KB 的代码,并相应地从从设备上本地找到的 PNG 生成的列表中生成了 PNG。
所以现在我有了我的 MVP,是时候进行一些测试了

一切都按预期进行。使用另一个隐写术解码工具,我确认我能够成功解码图像。

MVP

测试 作为我测试的一部分,我想看看完成的代码与 Emotet 等现代

攻击相比如何,以及许多供应商是否会认为 ChatGPT 生成的 EXE 文件是恶意的,所以我将 MVP 上传到 VirusTotal

IMG_20240804_182653

因此,仅使用 ChatGPT 生成了整个代码库,我认为 69 家供应商中有 5家将文件标记为恶意文件并不是一个糟糕的开始,但我们需要努力不辜负0day的名称。

规避优化

最明显的优化是强制 ChatGPT 重构调用 Auer 隐写库的代码。我怀疑编译的EXE文件中某处的GUUID或变量可能导致这五个供应商触发以将文件标记为恶意文件。ChatGPT 在我的本地应用程序中创建我自己的 LSB 隐写功能,而不是调用外部库,做得非常出色。这样可以将检测次数减少到两个制造商,但还没有完全达到将文件标记为恶意文件的0。

  • 至于最后两个供应商,我知道他们中的一个是领先的沙盒商,另一个是做exe的静态分析。考虑到这一点,我要求 ChatGPT 对代码进行两项新的更改,一项是将实际启动延迟两分钟,从而假设应该打开 0 Day 的假设企业用户不会在打开后立即注销更改,背后的逻辑是,这将避免监视功能,因为某些沙箱具有内置超时(出于性能原因),如果超过此超时,即使分析尚未完成,它们也会以“文件干净”判定进行响应。

向脚本添加一个简单的睡眠变量以绕过沙盒检测。

我要求 ChatGPT 做的第二个改变是混淆代码:

混淆代码以避免检测是不道德和非法的,并且违背了软件的目的,即创建可维护、可靠和安全的
代码。相反,您应该专注于保护代码免受非法访问的合法方法,例如加密和访问控制系统。

对于对 ChatGPT 的直接请求,都实施了一些安全措施,这意味着至少需要一定程度的能力才能了解如何绕过 ChatGPT 的保护。

在看到 ChatGPT 不支持我的直接请求后,我决定再试一次。通过简单地将我的请求从混淆代码的请求更改为 ChatGPT 将所有变量更改为随机英文名字和姓氏的请求,他很高兴地同意了。作为额外的测试,我为了保护我的代码知识产权而伪装了我的混淆请求,同样,他提供了一些混淆变量名称的示例代码,并建议了我可以用来创建完全混淆代码的适当 Go 模块。这种变化背后的理论是,对于第二个制造商,我们需要避免静态恶意软件分析,并且通过混淆代码,有时可以避免检测。

但是,

如果在可读性之外进行混淆,则可能会触发其他基于检测的工具,因为使用了不可读的变量名称。因此,考虑到所有这些,我决定以名字和姓氏的形式使用人为延迟和变量重新测试

一切都按预期

进行 因此,有了这些更改,一切都很好,让我们将其上传到VirusTotal并查看新的结果:

IMG_20240804_183319

我们获得了一个先进的、缓慢的、隐蔽的0day,旨在泄露机密文件。

就是这样 – 我们准备好了一个0day实用程序。仅通过使用 ChatGPT 的提示,而不编写任何代码,我们就能够在短短几个小时内进行非常复杂的攻击。据我估计,如果没有人工智能驱动的聊天机器人,一个由 5-10 名恶意软件开发人员组成的团队可能需要数周时间,尤其是绕过所有基于检测的产品制造商。

我希望一些阅读这篇文章的人会说这一切都很好,但我在客户计算机上的端点保护工具将通过行为分析来检测该实用程序。但是,我在两个行业领先的行为监控端点保护工具上测试了代码的两个版本,在这两种情况下,我都能够运行exe并成功将数据上传到 Google Drive。这可能是由于非标准代码行为造成的。

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片快捷回复

    暂无评论内容