FakeTelegram木马分析报告

admin 2021年4月19日12:41:40评论108 views字数 5854阅读19分30秒阅读模式


赶紧点击上方话题进行订阅吧!

报告编号:B6-2021-041502

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

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

更新日期:2021-04-15


1
 概述



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

攻击流程图如下:

FakeTelegram木马分析报告


2
 攻击途径



木马的下载链接:

hxxps://iplogger.org/2r64b6

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

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

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

FakeTelegram木马分析报告

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


3
 执行攻击



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

FakeTelegram木马分析报告

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

执行环境准备

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

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

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

FakeTelegram木马分析报告

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

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

FakeTelegram木马分析报告

最后,创建两个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。

FakeTelegram木马分析报告

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

FakeTelegram木马分析报告

后门程序的释放和驻留

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

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

FakeTelegram木马分析报告

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

1. C:windowsbranding

2. C:userswgautilaccdesktop

3. C:usersmirrorsdesktop

FakeTelegram木马分析报告

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

FakeTelegram木马分析报告

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

- %SystemRoot%brandingmediasrv.png(RDP Wrapper DLL);

- %SystemRoot%brandingmediasvc.png(ServHelper BackDoor DLL);

- %SystemRoot%brandingwupsvc.png(RDP Wrapper配置文件);

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

- %SystemRoot%system32rdpclip.exe;

- %SystemRoot%system32rfxvmt.dll。

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

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

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

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

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

FakeTelegram木马分析报告

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

FakeTelegram木马分析报告

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


4
 后门程序启动



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

FakeTelegram木马分析报告

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

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

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

FakeTelegram木马分析报告

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条指令:包括用户创建、文件下载、远控工具配置、键盘记录、会话通道控制等功能。

FakeTelegram木马分析报告

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

FakeTelegram木马分析报告

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

bk 会话通道创建
info 获取机器信息
fixrdp 设置注册表项并重启系统
reboot 重启计算机
updateuser 更新管理员组和远程账户用户名和密码,没有则默认用户为WgaUtilAcc
deployns 部署NetSupport远控工具
keylogadd 添加键盘记录器,向管道\.pipetxtpipe写入”add^”
keylogdel 删除键盘记录器,向管道\.pipetxtpipe写入”del^”
keyloglist 列出键盘记录器,向管道\.pipetxtpipe写入”list”
keylogreset 重置键盘记录器,向管道\.pipetxtpipe写入”reset”
keylogstart 通过执行模块中导出函数euefnaiw启动keylogger
sshurl 下载ssh.zip
getkeylog 获取键盘记录(c:windowstemptv.txt)
getchromepasswords 获取chrome密码,存储于c:windowstemplogins_read.txt
getmozillacookies 获取mozallia Cookies,存储于c:windowstempmoz.txt
getchromecookies 获取chrome Cookies,存储于c:windowstempcookies.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通道

5
 后续更新



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

FakeTelegram木马分析报告

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

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

2. %TEMP%\ready.ps1;

释放成功后执行ready.ps1。

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


6
 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


7
 字符串解密脚本



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

8
 参考



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

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




往期推荐
01

【POC公开】Chrome 远程代码执行漏洞通告

02

CVE-2021-21975/21983 VMware SSRF、任意文件上传漏洞分析

03

Exchange 多个蠕虫级远程命令执行漏洞通告


FakeTelegram木马分析报告
360CERT

https://cert.360.cn/

进入官网查看更多资讯

长按扫码关注我们
FakeTelegram木马分析报告


FakeTelegram木马分析报告
点击在看,进行分享
FakeTelegram木马分析报告

本文始发于微信公众号(三六零CERT):FakeTelegram木马分析报告

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年4月19日12:41:40
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   FakeTelegram木马分析报告https://cn-sec.com/archives/338469.html

发表评论

匿名网友 填写信息