2020版Smokeloader僵尸网络变种分析
↑ 点击上方
“安天”
关注我们
近期,安天CERT通过网络监测发现了一起僵尸网络事件,经分析人员判定,该僵尸网络名为Smokeloader,它从2011年开始在黑客论坛出售,一直处于更新状态。安天CERT分析人员发现本次活跃的Smokeloader样本是2020年最新的版本。Smokeloader主要通过垃圾邮件携带恶意宏代码的Office文档进行传播,该样本具备远程下载其它组件、窃取用户敏感信息和发起DDoS攻击等功能。该僵尸网络曾被发现用来传播GandCrab勒索软件[1]、Kronos银行木马[2]等多款臭名昭著的恶意软件。
2020版本的Smokeloader使用多种规避检测和对抗分析的技术,如运行环境的检测、花指令、代码自解密、反虚拟机等。运行成功后将自身添加为计划任务,保证自身的持久化。Smokeloader在获取系统基本信息后,将其加密发送到攻击者服务器,接收返回信息,下载插件并注入内存中运行,插件功能主要包括窃取网站信息、收集邮件信息、窃取虚拟货币信息、监控浏览器、键盘记录、下载Team Viewer等三种远程控制软件进行隐蔽控制等。此外Smokeloader还会下载远程控制程序、挖矿木马和勒索软件。
Smokeloader为了达成目的做了充分的“多手准备”:为了实现远程控制功能,下载了三种远程控制程序来提升远控的成功机率;为了实现窃取浏览器凭证等信息,使用了多套技术装备提升窃取浏览器信息的成功机率;使用了多种反调试、反虚拟机和反查杀等技术对抗安全人员的分析、自动化分析环境的检测和安全软件的查杀。攻击者使用了Anyplace Control、AnyDesk和Team Viewer三种远程控制软件,它们的特点是网络流量均由各自的服务器进行通信,即攻击者与受害者不直接通信,而是通过上述三款远程控制软件的服务器进行中转,导致追踪攻击者的难度增大。
该起事件针对目标系统投放Smokeloader僵尸网络,通过对该事件进行ATT&CK映射,展示攻击者在该事件中使用的技术特点。
图 2-1 事件对应的ATT&CK映射图谱
具体ATT&CK技术行为描述表:
表 2-1 该事件的ATT&CK技术行为描述表
样本标签
表 3-1 Smokeloader样本标签
样本功能流程概览
Smokeloader僵尸网络通常使用垃圾邮件传播,邮件附件携带恶意宏文档,文档启用宏后下载Smokeloader僵尸网络,该僵尸网络运行后首先通过shellcode技术与自身程序创建系统ntdll.dll方式来规避检测,然后通过检测系统注册表中是否存在特定的关键词方式判断是否在虚拟机中运行。样本首先判断自身是否在Windows7以上系统环境中运行,否则退出进程。样本成功执行后将恶意代码注入到系统Explorer进程中,将自身添加为计划任务,间隔10分钟运行一次,保证自身的持久化。样本在获取系统基本信息后,将其加密发送到攻击者服务器,并下载落地多个实体文件,包括Avaddon勒索软件、CoinMiner挖矿木马、远程控制软件(Team Viewer、AnyDesk、Anyplace Control)等,如3-2所示,此外该僵尸网络还在内存中下载了多个插件,具体插件功能如表3-3所示。
图 3-1 样本的传播与功能图
通过安天威胁情报综合分析平台关联Smokeloader样本,发现了大量的关联域名、IP、样本等信息。
图 3-2 安天威胁情报综合分析平台样本关联分析
图 3-3 与Smokeloader通信的域名
表 3-2 下载样本功能列表
表 3-3 插件功能列表
安天提醒广大用户,提高网络安全意识,及时进行系统更新和漏洞修复,避免下载非正版的应用软件、非官方游戏及注册机等;安装具有主动防御能力的终端防护软件(如安天智甲)以对勒索软件提供有效防护;及时备份重要文件,文件备份应与主机隔离;尽量避免打开社交媒体分享的不明来源链接,将信任网站添加书签并通过书签访问;避免使用弱口令或统一的口令;接收邮件时要确认发送来源是否可靠,避免打开可疑邮件中的网址和附件,避免轻易下载来源不明的附件。
目前,安天智甲终端防御系统(点击查看)可实现对以上恶意软件的查杀与有效防护。
图 4-1 安天智甲有效防护
该样本运用shellcode技术规避检测,样本中包含了大量对抗分析的技术,如运行环境的检测、花指令、代码自解密、反虚拟机等。运行后将自身添加为计划任务,间隔10分钟运行一次,保证自身的持久化。样本在获取系统基本信息后,将其加密发送到攻击者服务器,接受返回信息下载插件加载运行。
解密shellcode
主样本运用shellcode技术规避检测,运行后首先解密第一段shellcode代码并执行,然后会分配新的内存空间,将第二段shellcode写入,并将自身进程挂起。
图 5-1 写入shellcode
对抗分析
由于沙箱和其他安全性解决方案经常使用ntdll函数的用户域挂钩,跟踪样本的所有系统调用,故该样本首先复制系统目录下的ntdll.dll到%APPDATA%\ Local \ Temp目录并重名为D47F.tmp,而后使用LdrLoadDll加载D47F.tmp到内存,来规避沙箱环境的检测。
图 5-2 创建新的ntdll.dll副本
样本中包含了大量对抗分析的技术,包含运行环境的检测、花指令、代码自解密、反虚拟机等,通过检测系统注册表中是否存在特定的关键词,以此判断是否运行于虚拟机中。
表 5-1 查询注册表键值
获取系统OSMajorVersion,只能在Win7及以上的系统环境运行。
图 5-3 获取系统OSMajorVersion
创建计划任务,下载插件
该样本运行后将自身添加为计划任务设置计划任务名为NvNgxUpdateCheckDaily_{%08X-%04X-%04X-%04X-%08X%04X}(十六进制值在二进制文件中是硬编码的),间隔10分钟运行一次,保证自身的持久化。
图 5-4 生成计划任务名称
图 5-5 计划任务
样本在获取系统基本信息后,将其加密发送到攻击者服务器,并接受返回信息。
图 5-6 POST发送数据
样本中解密后的硬编码域名信息:
表 5-2 域名信息
接收的返回数据中,前4字节表示长度,数据的长度要大于前4字节所表示的长度。样本对数据进行解密之后,会对第5,6字节进行校验,判断是否为2020。通过对该僵尸网络以往版本的分析确认,该样本是2020年新的版本。
图 5-7 样本版本
样本插件功能分析
安天CERT分析发现Smokeloader共有9个插件,插件功能主要包括窃取网站信息、收集邮件信息、窃取虚拟货币信息、监控浏览器、键盘记录、下载Team Viewer等三种远程控制软件进行隐蔽控制等。
插件1 窃取网站与Windows登录凭证
该插件的功能是读取多个浏览器的数据库文件,从中窃取网站登录的用户名和密码。并且通过vaultcli.dll,访问Windows凭证管理器,窃取保存的账号密码信息。通过HTTP协议将窃取的信息上传到攻击者指定的服务器。
表 5-3 读取的浏览器信息
插件2 下载其他恶意代码、结束进程与重启电脑
根据指令中关键词“procmon_rules”提供的规则,该规则有下载其他恶意代码、强制结束进程与重启电脑操作功能。该指令的规则是procmon_rules = XXX.exe|[operation number]?[id],XXX.exe指想要结束的进程名称,供operation number中的1使用;operation number可以控制该插件进行三种操作;指令id是起到唯一标识的作用。
operation number可以控制该插件进行三种操作,使用0,1,2对应其三种操作:
0对应操作是请求下载新的恶意软件,然后创建一个临时文件,把下载下来的恶意软件写入临时文件并运行。
1对应的操作是根据XXX.exe指定的进程名,然后调用TerminateProcess结束该进程。
2对应的操作是提升当前进程的权限,然后调用ExitWindowsEx强制重启电脑。
插件3 收集用户邮件文件
Smokeloader插件3收集用户邮件,通过HTTP协议将窃取的信息上传到攻击者指定的服务器。收集邮件的相关路径、文件夹及文件后缀如下:
表 5-4 收集邮件内容
插件4 窃取网站登录凭证
判断指令中是否存在“fgclearcookies”,存在,则清理浏览器cookies,使用户再次登录网站时,需要输入用户名密码。无论是否存在该关键词,都会对多个浏览器进程进行监控。当发现浏览器进程时,会将代码进行注入,HOOK浏览器进程的相关个函数用来监控是否有cookies传输。当发现cookies进行传输时,进行拦截。强制用户使用用户名密码登录,窃取用户的网站用户名和密码。
表 5-5 监控多个浏览器进程
插件5 窃取浏览器、邮件、FTP凭证
该插件会监控进程,当发现有以下进程时会将代码注入到该进程内,对send函数和WSASend函数进行HOOK,用来窃取登录凭证。
表 5-6 监控相关进程
插件6 窃取虚拟货币
该插件用来进行文件搜索操作,搜索规则由指令中的“filesearch_rules”来指定,将搜索到的文件回传给攻击者。从已知的指令来看,主要针对虚拟货币钱包相关文件。
首先定位
“filesearch_rules=*wallet*=100000000*2fa*=100000000*backup*phrase*=100000000……”字符串,解析指令,提取虚拟货币钱包相关的字符串(*wallet*,*2fa*,*backup*phrase*)等。
图 5-8 定位filesearch_rules规则
该插件遍历系统磁盘搜索存在关键词的文件并将其存在临时目录下,完成后压缩文件发送给攻击者指定服务器。
图 5-9 压缩窃取的文件
插件7 DDoS攻击
该插件用来进行DDoS攻击,攻击规则由指令中的“ddos_rules”指定,指令的规则一般是“ddos_rules=[0-7]|[URL/IP]”,0-7代表了8种不同的DDoS攻击手法,用来对指定的网站或IP发起DDoS攻击。
插件8 键盘记录
该插件用来进行键盘记录,规则由指令中的“keylog_rules”指定,针对keylog_rules指定的进程,对其的TranslateMessage和Getclipboarddata函数进行HOOK获取目标进程的键盘输入和剪切板内容,将记录的内容回传给攻击者服务器。
插件9 下载执行远程控制软件
该插件用来执行指令“runhtv”,若存在该指令,则下载执行远程控制软件。连接C2下载远程控制软件Team Viewer、AnyDesk和Anyplace Contro,使用HOOK的方法隐藏窗体执行,获取远程控制软件的登录凭证,这样可以实现以下两个目的:
一是使远程控制软件隐藏运行,不显示窗体。二是用来获取连接到此机器的凭证,并将凭证回传给攻击者,使攻击者可通过Team Viewer、Anyplace Control和AnyDesk远程控制该主机。
以Team Viewer为例进行分析,下载的Team Viewer远程控制软件相关文件:
图 5-10 Team Viewer
以暂停的状态创建进程Team Viewer
图 5-11 创建进程
向进程中写入代码,恢复进程运行。写入到Team Viewer进程中的代码,会对特定的函数进行HOOK操作。被HOOK的函数如下:
表 5-7 被HOOK的函数
可以实现两个目的:一是使Team Viewer隐藏运行,不显示窗体。二是用来获取连接到此机器的Your ID和Password,并将ID和Password回传给攻击者,使攻击者可通过Team Viewer来远程控制该主机。
图 5-12 Team Viewer运行界面
该Team Viewer相关的文件是带有数据签名的官方文件,版本为14.2.2558。
Team Viewer网络流量均由各自的服务器进行通信,即攻击者与受害者不直接通信,而是通过上述三款远程控制软件的服务器进行中转,导致追踪攻击者的难度增大。
图 5-13 Team Viewer网络流量由服务器转发
参考资料
[1] TxHollower加载器更新隐藏技术投递多种载荷
https://blog.ensilo.com/txhollower-process-doppelganging
[2] Kronos重生
https://www.proofpoint.com/us/threat-insight/post/kronos-reborn
[3] 精准投放Tsunami僵尸网络和“魔铲”挖矿木马的行动分析
https://www.antiy.cn/research/notice&report/research_report/20200424.html
[4] 传播CoronaVirus勒索软件和KPOT窃密木马事件的分析
https://www.antiy.cn/research/notice&report/research_report/20200323.html
往期推荐