攻击事件介绍
鹰眼威胁情报中心团队于2021年4月披露了一起针对微信的窃密攻击行动(“微马来袭”:首例针对微信的大规模窃密攻击),自披露以来我们对该家族的动向进行密切关注,发现其幕后团伙并没有收手,仍在不断发展壮大自己以攫取更多的利益。根据毒霸内存防护拦截数据显示,微马家族的感染规模、更新活跃度在众多针对微信客户端的黑产活动中位居前列。如下图所示,从2022至今为止“微马”的感染量持续攀升,平均月感染量在20万左右,可以预估该家族在近两年活跃的时间里导致全网受感染用户已达到百万级别。
微马家族都是先通过流氓软件外壳伪装入驻用户系统,而后监控、注入微信进程并窃取用户授权令牌等敏感信息。此次捕获的木马在多个渠道传播,主要来源于以下几个流氓软件:
在捕获的新一代”微马”样本中我们发现,除了收集用户关键的微信token外,还定时暗刷广告营销类公众号文章进行引流,让大量的微信用户成为他们牟利的工具。在分析过程中我们拉取了上百条配置链接,经过对内容分类统计发现其中暗刷对象主要涉及美食、购物、汽车、房产、美妆等广告营销类文章。
综上可见发展壮大后的“微马”家族产业链已更加完善、分发渠道更加丰富,样本攻击更为活跃。
流程概要
攻击者为了提高用户感染率,将微马模块藏匿在流氓软件的安装包内。一旦在用户计算机安装成功则会将该模块注册成恶意服务实现持久化驻留。服务通过远控服务器下拉攻击载荷,该载荷启动后解密出窃密模块,对微信进程进行检测和反射式DLL注入,在内存中使用正则匹配暴力搜索访问链接的关键位置并且安装Hook,实时监控窃取用户令牌数据、下载流量配置,从而实现”流量暗刷”、“广告引流”等真正目的。
详细分析
1. 初始执行
此次捕获的微马模块由“整点播报”安装包释放。该程序具有数字签名“Wuhan Weizhinuo Network Technology Co., Ltd.”。该流氓软件被静默安装在用户计算机的同时释放注册了DrthServer服务,此服务对应落地文件DxpwServer.exe。
为了增强对抗,安装包根据用户环境的差异会释放两种不同版本:在测试环境中,被安装包释放的服务只有对流氓软件进程自保的单一功能;而在用户环境中,我们捕捉到的则是携带恶意功能的服务模块。两个服务文件的签名一致,但是恶意服务的体积较大,通常为400KB以上。
2. 对抗手段
(1) 字符串加密
DxpwServer服务文件由易语言编写,且其中重要的字符串均被加密,以对抗杀软检测,加大安全人员分析的难度。
(2) 环境检查
在服务运行中有多处位置在执行到关键步骤之前,都会通过查询下列相关进程判断是否有杀软、调试工具、虚拟机或者同系列的木马服务进程已经启动,如果有则直接禁用当前服务。
同时,服务还会查询注册表判断是否有同系列的木马已经植入到用户系统,如果有相关注册信息则退出服务进程。相关注册表项如下:
(3) 反射式DLL注入
恶意软件为了提高自身隐蔽性,利用DLL注入技术将恶意代码注入微信进程,注入完成后使用远程线程调用木马模块的DllEntryPoint函数执行初始化动作。从服务器下拉配置到启动恶意模块的期间无任何文件落地,同时增加了查杀检测难度。
(4) 持久化和更新模块
攻击者通过在用户计算机中注册服务,实现长期稳定地从远程服务器下载更新配置,其中包含注入微信进程的恶意载荷和广告暗刷的配置链接。
3. 下载服务配置
(1) 查询微信进程
通过查询wechat.exe、WeChatResource.dll进程是否存在来判断微信的运行状态,当微信启动时才会执行下一步骤。
(2) 获取云控配置
当服务确保微信正在运行之后,则会与C2地址:222.187[.]232.40 的地址进行通讯,访问 http://yihuafence.com/dates.zip 将数据获取到内存中:
通过将内存数据解密,我们捕获到真正的恶意载荷,模块名称是“发送统计.dll”,该文件是由易语言编写,其中重要的字符串仍然使用同一方式进行加密。
“发送统计.dll”是微马的核心功能模块,根据内存防护引擎捕捉到的数据显示,该模块每隔数月就会更新一代,与微信版本更新基本保持同步,截止本报告完成微信11月10号发布最新版本为8.0,该团伙已在11月15号完成了核心模块更新。
4. 反射式注入微信
(1) 注入恶意载荷
在确定用户计算机环境安全且正在运行微信进程之后,向WeChat.exe中注入解密后的“发送统计.dll”模块:
(2) 注入启动ReflectiveLoader
装载恶意载荷的ReflectiveLoader则是一段内嵌在服务文件“.data”段的shellcode,功能为内存展开模块并且调用库函数 ,木马服务将其写入Wechat.exe的内存,利用远程线程调用实现在微信进程中反射装载恶意DLL:
5. 分析恶意载荷
(1) 检查环境
攻击者在恶意载荷中仍会不断检查环境是否能够继续安全地执行恶意操作,比如:确认当前模块是否为微信的进程、验证微信是否登录、是否正在运行各类杀软、抓包工具、虚拟机及调试器等程序。
(2) 下拉暗刷配置
在检查环境之后若没有出现异常,则请求IP地址为 216.83[.]45.51:4018 的服务器 serviceswechat.com 下载加密配置,该链接是高仿微信的地址 servicewechat.com (仅多了一个字母“s”),在流量分析时很容易混淆在海量的正常微信流量中。下载的配置经解密以json的格式呈现,其中url都是微信公众号文章链接。服务配置更新的周期为一小时,每次下发配置中的链接总量都是27条,且链接URL和文章内容均不相同。
(3) 窃密用户Token
木马使用正则搜索定位到WechatWin.dll模块中与链接访问相关的目标位置,将需要HOOK的地址原汇编记录保存,跳转至新申请的内存空间安装钩子执行木马逻辑后返回原地址继续执行:
当用户在正常访问链接时,微信进程会执行到钩子的位置,实现获取链接中用户令牌相关字段的数据:uin、key、pass_ticket、devicetype、version。
而后将关键数据与特殊字符进行拼接组合,使用base64的加密方法加密后再进行倒序产生了一个新的数据包,发送至云端恶意IP:216.83[.]45.52 (http://serviceswechat.com:2837)。被收集的用户关键令牌信息也极有可能被利用在其他黑产和恶意活动之中,值得微信用户警惕。
(4) 暗刷流量
访问链接的部分使用了双层循环嵌套,外部循环会确认“WechatBrowser.exe”以及微信窗口是否运行以保证能正常调用接口,内部循环通过内存定位wechatwin.dll中web访问的函数地址,将链接地址作为参数传入完成暗刷操作。
如下图所示,源自配置链接的文章访问量可达到其他同类公众号文章的数倍之多。
关联同源样本
登录鹰眼情报中心(https://ti.duba.net)搜索或者上传样本后查看分析出的C2配置,通过IP地址查看所属家族和地区等详细信息,在“关联情报”里点击相关通信文件等选项即可获取关联的同源家族样本。
总结
在自媒体时代的洪流之下,用户个人流量已经成为商家的获利工具,与此同时必然会衍生出大量黑灰产业赚取红利。微马家族就是借助流氓软件易感染、难清除的“优势”潜伏在用户系统内,逐步形成了一条成熟的暗刷推广链。从溯源结果来看每个下放的微马服务中代码相似度很高,其中不仅有公众号相关的链接处理,还预留了视频号相关的处理逻辑,随着微信的产品功能升级,木马也会更新迭代加入新的黑产功能。而身为病毒携带传播者的流氓软件风险危害仍然不容小觑,需要及时做好检测清理和防范措施。目前毒霸已支持对该病毒的查杀:
IOCs
MD5(部分)
C&C
原文始发于微信公众号(鹰眼威胁情报中心):“微马二代”:针对微信的大规模黑产活动