利用Chatgpt进行AsyncRAT恶意软件分析实践

随着网络威胁不断演变和变得更加复杂,安全研究人员和专业人士保持领先至关重要。在本文中,我们将探讨ChatGPT如何协助分析恶意软件,特别是远程访问木马(RAT)AsyncRAT,并深入探讨ChatGPT的能力,讨论如何通过分析网络流量和揭示命令和控制(C2)基础设施来协助识别威胁指标。但在继续之前,先简要介绍一下ChatGPT。

ChatGPT是由人工智能(AI)驱动的,于2022年11月由OpenAI推出的原型,旨在回答长篇复杂问题。ChatGPT的革命性在于它被训练学习问题背后的含义。因此,所报告的答案非常类似于人类的回答。目前尚不确定ChatGPT是否会在打击网络犯罪方面提供支持或构成挑战,但现在让我们专注于ChatGPT及其恶意软件分析能力。

因此,无论您是经验丰富的安全专业人员还是刚刚入门的人员,本文将为您提供有关在恶意软件分析中使用高级语言模型的有价值见解。

让我们开始吧!

为了了解ChatGPT的能力和功能,我们开始分析AsyncRAT。我们很好奇这种尖端AI技术如何帮助揭示这种恶意软件的内部工作原理,并有可能通过分析网络流量和揭示命令和控制(C2)基础设施来协助识别威胁指标。

作为我们研究的结果,我们发现以下代码片段作为AsyncRAT的第1阶段加载器,包含大量混淆和一个base64编码的字符串。代码是用Python编写的,并利用公共语言运行时(CLR)库与.NET Framework交互,加载和运行一个以base64编码的程序集。

在进一步研究中,我们发现ChatGPT在分析AsyncRAT等恶意软件方面非常有用,但也发现它在某些领域仍有局限性。尽管如此,我们认为在打击网络威胁方面使用高级语言模型如ChatGPT是一个有前途的发展。

利用Chatgpt进行AsyncRAT恶意软件分析实践

在这里,我们决定将此代码作为 ChatGPT 的输入,并深入了解该代码。

利用Chatgpt进行AsyncRAT恶意软件分析实践

利用Chatgpt进行AsyncRAT恶意软件分析实践

提供的代码使用 base64 编码的字符串,由于其字符串长度限制和允许执行的操作限制,ChatGPT 无法对其进行解码。但是,ChatGPT 仍然能够对代码的功能和潜在的恶意意图提供简单易懂的解释。值得注意的是,ChatGPT 是一种功能强大的语言模型,但它应该与其他方法和技术结合使用,并不是所有与恶意软件分析相关的任务的灵丹妙药。

利用Chatgpt进行AsyncRAT恶意软件分析实践

利用Chatgpt进行AsyncRAT恶意软件分析实践

这就是我们使用 Cyber​​chef 解码 base64 字符串的原因,结果证明这是第二阶段加载程序 python 脚本。

利用Chatgpt进行AsyncRAT恶意软件分析实践

利用Chatgpt进行AsyncRAT恶意软件分析实践

我们再次将这段代码作为 ChatGPT 的输入,看看它能告诉我什么,

利用Chatgpt进行AsyncRAT恶意软件分析实践

同样,我们有一个长的 base64 编码字符串,我们必须使用 Cyber​​chef 对其进行解码。

利用Chatgpt进行AsyncRAT恶意软件分析实践

这个字符串原来是一个PE文件。我们无法将 PE 文件传递​​给 ChatGPT,因此从 PE 文件分析的角度来看没有任何帮助。但我们决定继续查看 PE 文件中的内容。

利用Chatgpt进行AsyncRAT恶意软件分析实践

我们将使用 Dnspy 反编译这个二进制文件。

利用Chatgpt进行AsyncRAT恶意软件分析实践

 

如您所见,base64 解码函数的输出作为输入传递给解压缩函数。

利用Chatgpt进行AsyncRAT恶意软件分析实践

上面的代码是一个 C# 函数,它似乎正在解压缩一个名为“gzip”的字节数组。该函数使用 GZipStream 类创建一个新流,并向其传递一个使用“gzip”字节数组构造的 MemoryStream 对象。然后使用 GZipStream 读取 4096 字节块中的压缩数据并将其写入新的 MemoryStream 对象。然后该函数使用 MemoryStream 对象的 ToArray 方法将解压缩的数据作为字节数组返回。

简单来说,这个函数接受一个压缩的字节数组,使用 Gzip 算法对其进行解压缩,并将解压缩的数据作为字节数组返回。此函数可用于解压缩先前使用 Gzip 算法压缩的数据。

我们再次决定使用 Cyber​​chef 来解码,

利用Chatgpt进行AsyncRAT恶意软件分析实践

这又是一个 PE 文件,在分析时是一个 .NET 程序集。我们使用 Dnspy 对其进行分析。

利用Chatgpt进行AsyncRAT恶意软件分析实践

这个二进制文件有 base64 编码的字符串,但是如果你仔细看最后一个字,你会知道 base64 字符串在解码时会变成一个 powershell 脚本。

利用Chatgpt进行AsyncRAT恶意软件分析实践

如您所见,powershell 非常模糊,所以我们决定检查 ChatGPT 是否可以为我们解码。下面是输出。

利用Chatgpt进行AsyncRAT恶意软件分析实践

利用Chatgpt进行AsyncRAT恶意软件分析实践

当被问及此类脚本的功能是什么时,收到的输出如下所示。

利用Chatgpt进行AsyncRAT恶意软件分析实践

.NET 程序集中多了一个 base64 编码的字符串。它首先传递给一个名为 cipher 的函数,其参数是密码的密钥。

利用Chatgpt进行AsyncRAT恶意软件分析实践

利用Chatgpt进行AsyncRAT恶意软件分析实践

所以我们决定看看 Cipher 函数的逻辑是什么。

利用Chatgpt进行AsyncRAT恶意软件分析实践

现在,我们决定将此代码作为 ChatGPT 的输入,并要求它识别密码。
这个输出让我们感到惊讶。

利用Chatgpt进行AsyncRAT恶意软件分析实践

我们在 python 中实现了相同的逻辑,以便进入下一阶段。
这是输出。最终的 PE 文件:

利用Chatgpt进行AsyncRAT恶意软件分析实践

这又是一个 .NET 文件。在 Dnspy 中检查时,这是我们得到的。

利用Chatgpt进行AsyncRAT恶意软件分析实践

利用Chatgpt进行AsyncRAT恶意软件分析实践

通过查看函数,我们对这个文件的功能有了一个清晰的认识,即它的反分析技术和注册表功能等等。我们很想知道 ChatGPT 是否会理解这段代码的用途并识别它是什么类型的恶意软件。

利用Chatgpt进行AsyncRAT恶意软件分析实践

代码中的关键函数是“Install”方法,它似乎负责在启动时安装和运行指定的文件。
“FileInfo”对象用于指定代码试图安装和运行的文件。
“Process.GetCurrentProcess().MainModule.FileName”和“fileInfo.FullName”用于检查当前运行的进程是否与指定文件相同。
“Process.GetProcesses()”方法用于获取所有正在运行的进程的列表,代码遍历它们以停止与指定文件具有相同文件路径的任何进程。
“Methods.IsAdmin()”方法用于检查用户是否具有管理员权限。
“schtasks”命令用于创建计划任务以在登录时运行指定文件(如果用户具有管理员权限)。
“Registry.CurrentUser.OpenSubKey”方法用于打开HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run键,“registryKey.SetValue”方法用于将键值设置为指定文件路径文件(如果用户没有管理员权限)。
“File.Exists”方法用于检查指定文件是否已经存在,“File.Delete”方法用于在存在时将其删除。
“FileStream”对象用于在指定的文件路径下创建一个新文件,并将当前运行进程的文件内容写入其中。
执行“Methods.ClientOnExit()”方法。
“Path.GetTempFileName()”方法用于创建临时.bat 文件,“StreamWriter”对象用于向其写入一系列命令。
“Process.Start”方法用于启动.bat文件,“Environment.Exit(0)”方法用于退出当前进程。

从这段代码可以推断,该代码试图在启动时安装并运行一个特定的文件,而且它似乎旨在确保指定的文件在启动时运行,并且以管理权限运行。该代码还尝试删除原始文件并创建一个具有相同名称和内容的新文件,这可能表明它正试图用恶意版本替换原始文件。使用检查用户是否具有管理员权限、计划任务创建和注册表项修改的方法表明它正在尝试在任何可能的情况下启动时运行该文件。还有就是使用各种方法来隐藏文件的执行,比如创建一个bat文件,以隐藏方式运行,执行完再删除bat文件,

利用Chatgpt进行AsyncRAT恶意软件分析实践

它能够理解代码是恶意的,并正确地将其识别为远程访问工具(RAT)。

通过这个训练,我们能够更好地解密ChatGPT,并了解它如何协助恶意软件分析。虽然ChatGPT已经展示了它的基本能力,但它目前还无法与人类智能驱动的恶意软件分析相匹敌,后者更具有综合能力。我们将继续关注ChatGPT,并在未来分享更多更新,以增强其能力和力量。

原创文章,作者:首席安全官,如若转载,请注明出处:https://cncso.com/asyncrat-analysis-with-chatgpt.html

(58)
上一篇 2023年3月20日 下午10:33
下一篇 2023年7月5日 上午12:33

相关推荐