概括
在 Netskope 威胁实验室的追踪活动中,我们偶然发现了其他研究人员分享的IoC ,于是决定对其进行仔细研究。在分析过程中,我们发现该有效载荷显然仍在开发中,但已经完全投入使用。该恶意软件充当后门,并使用 Telegram 作为其命令和控制 (C2) 通道。
尽管我们并不常见到将云应用用作 C2 通道,但这种方法却被攻击者广泛使用,不仅因为无需为此实施整个基础设施,让攻击者的工作变得更加轻松,而且从防御者的角度来看,很难区分哪些是使用 API 的普通用户,哪些是 C2 通信。OneDrive、GitHub、DropBox 等云应用就是很好的例子,它们也给防御者带来了挑战,让他们无法检测这些应用是否以类似的方式被滥用。
在这篇博文中,我们将介绍该恶意软件的功能以及它如何与 Telegram 交互以接收命令并向其发送结果。
主要发现
-
发现了可能源自俄罗斯的新的 Go 后门。
-
该恶意软件使用 Telegram 作为其 C2 通道。
-
尽管该恶意软件似乎仍在开发中,但它已经完全具备功能。
细节
该恶意软件用 Golang 编译,一旦执行就会像后门一样运行。
根据 Detect It Easy 工具提供的恶意软件一般信息
有效载荷执行的第一个操作是在主包中的“installSelf”函数中实现的。该函数检查恶意软件是否在特定位置下运行并使用特定名称,更具体地说是“C:WindowsTempsvchost.exe”。如果不是,它会读取自身的内容,写入该位置,创建一个新进程来启动其新副本并终止自身。
此步骤在 init 函数中执行,因此它在调用 main 函数之前执行。
二进制完整路径检查
负责重新启动恶意软件的代码片段
考虑到恶意软件在正确的位置执行,它会继续执行下一步。后门使用 Telegram 作为其 C2 机制,并使用开源 Go 包与其进行交互。
使用的第一个包函数是NewBotAPIWithClient ,它负责根据 Telegram BotFather功能创建的令牌创建机器人实例。在分析的样本中,使用的令牌是“8069094157:AAEyzkW_3R3C-tshfLwgdTYHEluwBxQnBuk”。
然后,它会调用GetUpdatesChan函数并创建一个通道,以持续检查是否有来自 Telegram 聊天的新命令需要执行。如果有,后门会检查命令的长度,然后检查命令本身,以确保它是有效命令。
机器人连接和更新频道创建
该恶意软件支持四种不同的命令,但实际上只实现了三种。下表简要介绍了每条命令。
所有命令输出都通过“sendEncrypted”恶意软件函数中调用的发送包函数发送到Telegram频道。
命令“/cmd”是唯一需要 2 条聊天消息的命令,第一条是命令本身,第二条是要执行的 PowerShell 命令。发送命令字符串后,恶意软件会将俄语字符串“输入命令:”发送到聊天中。然后,它会等待 PowerShell 命令发送,然后使用以下格式执行该命令。
powershell -WindowStyle Hidden -Command <命令>
“/persist” 命令执行与恶意软件在 init 函数中相同的检查,并调用相同的安装函数重新启动并退出。
持久化命令检查和执行
尽管“/screenshot”命令尚未完全实现,但恶意软件仍会向 Telegram 频道发送一条消息,提示“已捕获屏幕截图”。
截图命令检查与执行
“/selfdestruct”命令使后门删除 C:WindowsTempsvchost.exe 文件并终止自身。然后它向 Telegram 频道发送一条消息,称“自毁已启动”。
自毁命令检查和执行
结论
使用云应用程序对防御者来说是一个复杂的挑战,攻击者也意识到了这一点。其他方面,例如设置和开始使用应用程序的难易程度,都是攻击者在攻击的不同阶段使用此类应用程序的例子。Netskope Threat Labs 将继续跟踪此 Go 后门的演变及其 TTP。
Go Telegram Backdoor (MD5)
f84ca2a61f648542f970e7120de116d2
原文始发于微信公众号(Ots安全):Telegram 被滥用为新 Golang 后门的 C2 频道
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论