FakeTelegram木马分析报告
2021-04-15 15:10

报告编号:B6-2021-041502

报告来源:360高级威胁研究分析中心

报告作者:360高级威胁研究分析中心

更新日期:2021-04-15

0x01   概述

今年3月份,360安全大脑反病毒团队发现了一起伪装成Telegram通讯软件安装包进行的攻击。“安装包”执行后,会下载合法的Telegram安装包进行安装,以掩盖暗中的恶意行为,通过RDP服务实现驻留。

攻击流程图如下:

0x02   攻击途径

木马的下载链接:

hxxps://iplogger.org/2r64b6

(数据显示该短链接的来源页面为hxxps://telegram.ccmmsl.com/)

浏览器访问下载链接,将被重定向到URL:

hxxps://cdn.discordapp.com/attachments/815911118606172214/818981362928713758/tsetup.exe。

从最后的资源链接可以看出,该木马被托管于Discord CDN服务器。Discord是一款主要面向游戏玩家的流行聊天通讯软件,用户量逐年增加。并且由于向Discord上传的附件可被所有人下载,用户之间的文件分享和传输快速便捷等特点,同样也引起了网络犯罪人员的注意。随之而来的就是大量恶意软件被托管于Discord的CDN服务器以提供给木马远程下载。本次攻击中的木马资源链接就是一个典型案例。

0x03   执行攻击

本次攻击中,从链接下载回来的“安装包”使用C#语言进行编写,并通过程序图标伪装成Telegram安装程序的32位文件。为了更好地伪装自身,还盗用了Telegram合法软件签名Telegram FZ-LLC,不过从文件属性中可以看到该签名实际无效。

为了躲避检测,程序中大量敏感字符串进行了Base64编码,运行时才会解码。

执行环境准备

虚假安装包木马会获取本地机器的MAC地址,匹配自身携带的地址库(共含13345个MAC地址),若在列表中则不进行感染。除此之外,程序中还有绕过指定的IP List和地区、恶意代码延迟执行等功能,不过并未启用。

为了避免重复感染,程序通过确认文件 _%LocalAppData%\ASUNCB-dcBdklMsBabnDBlU _是否存在来判断当前机器是否已被感染过,若确认已感染便会退出并自我删除,否则便创建该文件并继续执行后续操作。

接着访问网址 hxxps://www.google.com/,确认网络可用,否则持续等待,直至访问响应成功。

为了攻击过程的顺利进行,木马通过修改注册表_EnableBalloonTips、EnableSmartScreen、EnableLUA、ConsentPromptBehaviorAdmin、PromptOnSecureDesktop_等键值的方式禁用SmartScreen和UAC,降低系统的防御能力,让用户对攻击过程无感知。

然后从Telegram官方URL:hxxps://updates.tdesktop.com/tsetup/tsetup.2.6.1.exe下载正常的Telegram安装程序到目录 %LocalAppData% 下,以管理员权限执行合法安装程序,完成安装包原本的工作。

最后,创建两个bat文件 %TEMP%\\Action.bat、%TEMP%\\Remove.bat,写入batch命令并执行脚本。Action.bat执行后续攻击流程,Remove.bat则完成自我删除。

Powershell脚本下载和启动

脚本文件Action.bat利用powershell执行远程脚本:

hxxp://ppoortu8.beget.tech/new_file.txt

而new_file.txt又作为downloader再次下载其它3个脚本并执行其中的start.vbs。

start.vbs只对ROM容量大于128KB的机器进行感染。如果符合条件,启动%TEMP%\\ready.ps1。

ready.ps1将patch自身powershell进程中的amsi.dll模块,以此躲避其对内存中恶意脚本内容的检测。最后执行Get-Content.PS1脚本内容。

后门程序的释放和驻留

Get-Content.ps1作为最后执行的脚本,负责完成后门程序的释放和驻留操作。

首先,脚本判断当前脚本执行环境是否拥有管理员权限,有则执行后续操作,没有则尝试以管理员身份重新执行start.vbs。此外,该脚本还会尝试绕过系统UAC的防护。

成功后绕过防护后,脚本开始准备释放后门dll,涉及到的服务为termservice。先将3个目录加入Windows Defender扫描排除项中,以免目录中的相关文件被清除:

1. C:\windows\branding\

2. C:\users\wgautilacc\desktop\

3. C:\users\mirrors\desktop\

然后检查服务termservice是否存在,若没有则进行创建,并导入相应的注册表配置(%Temp%\\rpds.reg)。termservice服务存在的情况下,Get-Content.ps1会暂时禁用该服务,待后续操作修改配置后再运行。

接下来,会解密并创建以下文件:

- %SystemRoot%\branding\mediasrv.png(RDP Wrapper DLL);

- %SystemRoot%\branding\mediasvc.png(ServHelper BackDoor DLL);

- %SystemRoot%\branding\wupsvc.png(RDP Wrapper配置文件);

-

如果以下合法文件在系统中没有,则进行创建:

- %SystemRoot%\system32\rdpclip.exe;

- %SystemRoot%\system32\rfxvmt.dll。

病毒还会对TermService服务相关注册表值进行修改:

1. 设置RDP-Tcp使用端口为7201:

2. 使用上一步释放的dll文件%SystemRoot%\branding\mediasrv.png作为termservice的ServiceDll:

3. 禁用WDDM显示驱动模型,使用更老的XDDM

设置TermService启动类型为自动运行。这样服务每次运行都会加载ServiceDll,即%SystemRoot%\branding\mediasrv.png,ServiceDll会加载后门,从而实现后门程序在机器上的驻留。

将网络服务SID:S-1-5-20转为用户名NT Authority\Network Service,将其加入管理员组。

最后,将目录%SystemRoot%\branding\下的所有文件创建、访问、修改时间都改为2014/11/11 12:00:00。启动远程桌面服务rdpdr、TermService。清除 %TEMP% 目录下与本次攻击相关的文件。

0x04   后门程序启动

TermService服务启动后,会加载mediasrv.png(ServiceDll)。mediasrv.png实际是一个RDP Wrapper程序,但除此之外,该dll的代码中还多出一个加载恶意dll(%SystemRoot%\branding\mediasvc.png)的动作。

总的来说,mediasrv.png主要进行以下三个操作:

1. 导入系统原始RDP相关DLL: termsrv.dll。对外间接提供termsrv.dll原始功能;

2. 利用解密出的RDP Wrapper配置文件(%SystemRoot%\\branding\wupsvc.png)实现RDP功能的包装,支持更多功能;

3. 将mediasvc.png作为DLL进行加载,攻击的后续动作由mediasvc.png的dll主函数完成。

被加载的dll: mediasvc.png,是一款名为ServHelper后门木马,于2018年末第一次被发现。该木马使用Delphi语言进行开发,通常以dll形式出现,并使用PECompact进行加壳,以劫持RDP服务的方式完成在受害机器上的驻留。

此次攻击释放的木马文件中大部分敏感字符串均进行了加密,解密密钥为“RSTVWVDJ”。

执行后,ServHelper会连接C2: hxxps://jfuag3.cn/figjair/b.php,根据收到的命令执行相应操作。其共支持32条指令:包括用户创建、文件下载、远控工具配置、键盘记录、会话通道控制等功能。

解密出的字符串,含有各项命令涉及的URL、注册表项、命令行、文件路径等。

下表列出了所支持的命令字符串:

bk会话通道创建
info获取机器信息
fixrdp设置注册表项并重启系统
reboot重启计算机
updateuser更新管理员组和远程账户用户名和密码,没有则默认用户为WgaUtilAcc
deployns部署NetSupport远控工具
keylogadd添加键盘记录器,向管道\\.\pipe\txtpipe写入”add^”
keylogdel删除键盘记录器,向管道\\.\pipe\txtpipe写入”del^”
keyloglist列出键盘记录器,向管道\\.\pipe\txtpipe写入”list”
keylogreset重置键盘记录器,向管道\\.\pipe\txtpipe写入”reset”
keylogstart通过执行模块中导出函数euefnaiw启动keylogger
sshurl下载ssh.zip
getkeylog获取键盘记录(c:\windows\temp\tv.txt)
getchromepasswords获取chrome密码,存储于c:\windows\temp\logins_read.txt
getmozillacookies获取mozallia Cookies,存储于c:\windows\temp\moz.txt
getchromecookies获取chrome Cookies,存储于c:\windows\temp\cookies.txt
search查询mozallia和chrome Cookies中的内容
bkport指定隧道端口
hijack通过执行模块导出函数gusiezo3劫持用户账户
persist持久化驻留
stophijack停止劫持
sethijack劫持活动用户
setcopyurl设置复制工具url
forcekill强制终止进程
nop心跳包
Tun创建ssh通道,本地端口为7201
Slp睡眠
killtun关闭ssh进程
shell执行cmd命令并回显
update模块更新
load从url下载执行文件
socks创建ssh通道

0x05   后续更新

在攻击发生后的几天,伪装的安装包文件曾有过一次更新。下载回的文件是基于github开源项目go-clr编写的加载器。运行后会解密除携带的C#木马并使用CLR托管执行。

释放并执行的C#木马内部名称为Droper.exe,仅实现一个功能,释放并执行两个powershell脚本:

1. %TEMP%\\get-content.ps1;

2. %TEMP%\\ready.ps1;

释放成功后执行ready.ps1。

对比之前的样本,Dropper.exe不再下载合法安装包进行安装,不再将ROM大小作为执行条件,成功执行后无需联网。

0x06   IOCs

MD5

- 675f88e0715be722e6609e4047f2aad7

- de78b574c81eb85652c198e70898a9a0

- 8a4e2ee2fa9195022c3747a363baa092

- 3a9821c769ecbf95d44117a04729f2f2

- b1a2d11ae871805b8fcb2b4820b47e7e

- 37330f50cf392bca59567a22de3b836a

- 7fcaacd9d9ba4695d12e82020d84a95d

- aa5219949ca4ecdcd0d9afe7615124fb

- 6c5b7af9c87ee08c7a7bd43ed7f75d6d

URL

- hxxps://telegram.ccmmsl.com/

- hxxps://iplogger.org/2r64b6

- hxxps://cdn.discordapp.com/attachments/815911118606172214/- 818981362928713758/tsetup.exe

- hxxp://ppoortu8.beget.tech/new_file.txt

- hxxp://ppoortu8.beget.tech/start.vbs

- hxxp://ppoortu8.beget.tech/Get-Content.ps1

- hxxp://ppoortu8.beget.tech/ready.ps1

- hxxp://bromide.xyz/ssh.zip

- hxxp://sdsddgu.xyz/khkhkt

- hxxps://raw.githubusercontent.com/sqlitey/sqlite/master/speed.ps1

- nvursafsfv.xyz

- pgf5ga4g4b.cn

0x07   字符串解密脚本

def decbkd(s, k = 'RSTVWVDJ'):
    l = len(s)
    kl = len(k)
    o = ''
    for i in range(l):
        if s[i].isalpha():
            o += chr((ord(s[i].upper()) - ord(k[i%kl].upper()) + 26)%26 + (ord('A') if s[i].isupper() else ord('a')))
        else:
            o += s[i]
return o

0x08   参考

- https://www.binarydefense.com/an-updated-servhelper-tunnel-variant/

- https://www.proofpoint.com/us/threat-insight/post/servhelper-and-flawedgrace-new-malware-introduced-ta505