使用ChatGPT分析一个涉嫌的AgentTesla样本
一些说明
首先,我要感谢我的Curated Intelligence团队成员在发布之前进行了评论并提供了反馈!
https://twitter.com/CuratedIntel
这个最初在CI之间共享,被分类为TLP: AMBER;在发布博客时已重新分类为TLP: CLEAR。
此外,当这篇草稿撰写时,哈希标记为DarkGate;现在它们似乎被标记为AgentTesla。不过,分析结果保持不变。
阶段1(LNK文件)
快捷方式调用PowerShell的Invoke-WebRequest来下载http://185.196.9[.]20/test/sleeps.exe,并通过Start-Process执行它。
以下图片展示了我使用的一个bash函数,用于分析LNK文件以及LNK文件的内容。
第二阶段(.NET EXE)
在分析时(2024年2月5日),访问上述网址得到了以下哈希值。
下载文件并在Detect It Easy中打开,显示一个.NET可执行文件。
将此打开在ILSpy中会展示出一些有趣的内容:
- 它从一个文本文件中下载数据。
- 它解密这些数据并将其传递给具有 regasm.exe 作为参数的“RunPE”函数。
此“RunPE”功能似乎是一个进程注入技术,因为我们看到它正在读取、分配和写入内存。
我对这些的理解是:
- 程序正在下载并解密文件。
- 然后它会取出解密后的信息,并将其注入到regasm.exe中。
第三阶段(加密数据)
通过下载加密数据,我们看到它只是被解读为“二进制”,这是预料之中的。
在这一点上,我尝试用Python重新创建解密程序,但遇到了困难。所以我转向了ChatGPT。它也遇到了和我一样的错误,但最终能够解决它们。
参考,上述代码的这个特定部分是解密例程。
(诚然,我猜测这可能是C#;不确定这是C的哪个派生版本)
这段代码产生了一个和我正在处理的错误相同的错误,因此我将错误传递给它。
它给出的答案似乎是合理的,所以我需要对其进行修改,因为ILSpy中的代码显示密钥是一个数组。
在尝试编写自己的代码时,我遇到的一个问题是将数据写入新文件时发生错误(我一直写入整数而不是字节)。幸运的是,我也能够解决这个问题。
在这里,我们可以看到解密程序的完成版本并排放置。
在运行后,它确实产生了一个与原始样本不同的哈希值。更重要的是,当我在Detect It Easy中打开解密的数据时,它显示为是一个有效的二进制文件!
对PEStudio中代码的高级审查显示了大量可疑的导入和字符串。
最后,代码写得有很多不必要的条件判断。
虽然我无法独立确认这是否是AgentTesla,但主要目的是展示如何使用ChatGPT来帮助逆转XOR加密方案。
如果在分析中发现任何错误,请在https://twitter.com/_montysecurity 上联系我。
IOC(指标和检测规则)
- d3ab1b047a1ee9985c00c95cd4d205f79bdf47ade1f18ee30ec9d88a58cb133d(阶段1;LNK文件)
- f62640b8047a6105ba98ab690d7908f6c3e8aef22f05d6512e838457a01e0593(第2阶段; .NET EXE)
- 3ae234ec1adbc5e133e9aa67c28b92abccb1d7b009594c34d46dd94070361ee3(阶段3;加密的EXE)
- f6f4c2e5a15e8eec24ec79553ef380b31569bb92e28411687bf305f20174487f (阶段 3;解密的 EXE)
- 185.196.9[.]20(托管有效载荷)