Payload执行的第一项是在主包中的installSelf
函数中实现, 该函数检查恶意软件是否在特定位置和特定名称下运行, 具体来说是: C:WindowsTempsvchost.exe`, 如果不是这种情况,它会读取自身的内容,写入该位置,创建一个新进程来启动其新副本,然后终止自身。二进制完整路径检查如下图:
下图是负责重新启动恶意软件的片段:
考虑到恶意软件正在正确的位置执行,它会继续执行接下来的步骤。该后门利用 Telegram 作为其 C2 机制,通过使用一个开源的 Go 包与 Telegram 进行交互。
该开源包的地址为: https://github.com/go-telegram-bot-api/telegram-bot-api
首先使用的包函数是 NewBotAPIWithClient
,该函数负责基于提供的令牌(由 Telegram BotFather 功能创建)创建一个 bot 实例。在分析的样本中,使用的令牌是 “8069094157:AAEyzkW_3R3C-tshfLwgdTYHEluwBxQnBuk”。
接着,它调用 GetUpdatesChan
函数并创建一个通道,以不断检查是否有来自 Telegram 聊天的新命令需要执行。如果有新命令,后门会检查命令的长度和命令本身,以确保它是有效的命令。
下图是Bot 连接和更新通道创建过程:
该恶意软件支持四个不同的命令,但实际上只有三个命令被实现。下表简要描述了这些命令的功能:
命令 | 功能 |
/cmd | 执行powershell命令 |
/persist | 重新载入自身(C:WindowsTempsvchost.exe |
/screenshot | 未实现 |
/selfdestruct | 删除自身 |
所有命令的输出通过 Send
包函数发送到 Telegram 渠道,该函数在恶意软件的 sendEncrypted
函数中被调用。
命令 “/cmd” 是唯一需要两条聊天消息的命令,第一条是命令本身,第二条是要执行的 PowerShell 命令。命令字符串发送后,恶意软件会在聊天中发送一条俄语字符串:“Enter the command:”。然后它等待 PowerShell 命令的发送,并使用以下格式执行该命令。
powershell -WindowStyle Hidden -Command <command>
如下图:
“/persist” 命令执行与恶意软件在初始化函数中进行的相同检查,并调用相同的安装函数来重新启动自己并退出。如图:
虽然 “/screenshot” 命令并未完全实现,但恶意软件仍然会向 Telegram 渠道发送一条消息:“Screenshot captured”截图已捕获),如图:
“/selfdestruct” 命令使后门删除 C:WindowsTempsvchost.exe 文件并终止自身。然后,它会向 Telegram 渠道发送一条消息:“Self-destruct initiated”自毁已启动):
原文始发于微信公众号(二进制空间安全):利用Telegram API隐藏通讯的后门
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论