银行恶意软件一直都是我们暗影实验室关注的重点。近期,意大利出现了一种新型的Android恶意软件,研究人员发现它与目前已知的银行木马家族都不相关,命名这款新型的银行木马家族为TeaBot(也有命名为Anatsa)。
该恶意软件最初出现时间是在2020年12月初,它伪装成“VLC_MediaPlayer”,“TeaTV”应用程序。TeaBot家族恶意软件的其主要目标是窃取用户凭证信息和短信消息,用于已预先设计好的银行欺诈方案。
目前,TeaBot似乎处于开发的早期阶段。2021年3月,发现意大利银行的相关注入模块,2021年5月,发现比利时和荷兰银行的注入
用户在成功安装TeaBot后,攻击者就可以随时实时获取设备屏幕,并通过AccessibilityServices交互,窃取用户隐私信息,根据用户安装的应用列表,获知已安装的银行应用,并分发已预先设计好的银行欺诈注入代码,诱导用户登录,操作等,并获取用户短信验证消息,最终导致用户个人信息泄露和财产损失,安装图标如下:
VLC_MediaPlayer TeaTV
表2-1 样本基本信息
图3-1 TeaBot程序运行流程图
4.1.1 增高安全分析难度
4.1.1.1 dex动态加载
在启动恶意软件后,先执行自定义Application类的attachBaseContext方法,然后执行ghostincome方法动态加载assets文件路径内的rA.json文件。rA.json文件是一个加密的dex文件,恶意代码模块主要集中在rA.json文件内。
图4-1-1 动态加载rA.json文件过程
4.1.1.2 使用XOR加密算法
通过静态分析发现,该样本使用XOR加密算法对部分网络通信进行加密。
图4-1-2 XOR加密
4.1.2 TeaBot支持6种语言
通过逆向分析代码发现,TeaBot检索银行app时,判断的结果使用了6种语言(西班牙语,英语,意大利语,德语,法语和荷兰语)。
图4-1-3 支持6种语言
4.1.3 主要功能
4.1.3.1 跟踪记录
通过使用Android无障碍服务,TeaBot能够观察和跟踪用户在目标应用程序上执行的所有信息,并将关键的跟踪信息通过SharedPreferences储存到config.xml配置文件中。TeaBot在与C&C服务器进行首次通信时,会发送已安装应用程序的列表,以验证受感染的设备是否已安装一个或多个目标应用程序。当其中有一个匹配时,它会下载特定的WebView以执行覆盖攻击,并开始跟踪用户在目标应用程序上执行的所有活动。这些信息都是每间隔10秒发送到指定的C&C服务器。下图为代码模块和config文件:
服务器地址:185...31:80
图4-1-4 发送请求获取检索应用代码
图4-1-5 写入config.xml
配置文件中包含需要检索的应用包名、远控指令执行状态、C2服务器的url等。远控和检索包名等功能都是在无障碍服务的onAccessibilityEvent方法中执行的。
4.1.3.2 屏幕截图
TeaBot可以进行屏幕截图来不断监视受感染设备的屏幕。当用户启动恶意软件后,Teabot发送包含设备信息的post请求至C&C服务器,服务器返回信息中如果含有一套IP地址和PORT的“ start_client ”命令时,开始启动截图。TeaBot启动一个循环,在该循环中创建一个“VirtualScreen”以获取屏幕截图。
1)发送post请求到服务器
服务器地址:185.215.*.31:80
图4-1-6 发送post请求
2)服务器返回“start_client”指令
图4-1-7 解析返回指令“start_client”
3)启动截屏模块
图4-1-8 启动截屏模块
4.1.3.3 覆盖攻击
覆盖攻击是一种Android银行木马(例如Anubis,Cerberus)普遍的技术手段,虚假的界面覆盖能够迷惑和诱骗用户信以为真,继而窃取用户的个人隐私。
通常有两种方式:1、伪造虚假的银行app并启用;2、在合法应用程序(例如银行应用程序)的上层启动一个虚假的WebView来迷惑和欺诈用户。TeaBot能够对多个银行应用程序执行覆盖攻击,以窃取登录凭据和银行卡信息。
图4-1-9 覆盖攻击模块
根据抓包和恶意代码分析,总结了覆盖攻击的流程图如下:
1)先判断是否含有特定的银行应用包名,然后下载注入模块。
2)用户打开银行应用,操作的数据会上传C2服务器,C2服务器返回覆盖攻击的远控指令。
3)虚假的webview会覆盖真实的银行app界面,诱导用户输入登录凭证。
4)窃取的用户隐私通过加密的POST请求上传至C2服务器。
图4-1-10 覆盖攻击流程图
4.1.3.4 其他功能
1)能够拦截/隐藏短信
恶意软件具有拦截/隐藏短信的功能,拦截的短信信息会通过每隔10s的post加密请求发送到C2服务器(服务器地址:185.215.*.31:80),其主要目的是获取用户银行登录或修改密码的短信验证。隐藏短信的主要目的是隐秘的修改或登录用户银行账号,防止用户发现。
图4-1-11 拦截短信
图4-1-12 隐藏短信
2)能够窃取Google身份验证code。
图4-1-13 窃取Google身份验证code
3) 远程控制Android设备
恶意软件通过无障碍辅助功能和实时屏幕共享,将收集的信息、截图实时上传至服务器(服务器地址:185.215.*.31:80),再通过解析服务器的返回,获取远控指令,并通过无障碍辅助功能实现其远控功能。如下图是无障碍辅助功能开启后,onAccessibilityEvent方法中的远控操作:
图4-1-14 远程操作
更多远控指令详见“表4-1远控指令列表”,以下是其中一个远控操作(获取用户账号信息),如下图所示:
图4-1-15 远程操作-获取用户账号信息
4.2.1 启用无障碍辅助服务
I. 此类木马在启动后,会诱骗用户开启无障碍辅助服务(AccessibilityService)。此服务设计初衷在于帮助残障用户使用android设备和应用,启动后在后台运行,可以监听用户界面的状态。如下图所示:
图4-2-1 诱骗用户开启无障碍辅助服务
此恶意程序通过此服务监听用户手机界面变化,同时会禁止用户查看应用程序列表,禁止用户关闭无障碍模式,阻止用户卸载此应用。一般用户极难卸载此类木马。
II. 开启无障碍辅助服务后,TeaBot会请求敏感的android权限,如上图:
III. 接受请求的权限后,恶意应用程序将从设备中删除自身的图标。删除图标后,此恶意程序依然在后台运行,与C&C服务器通信并持续监控和窃取用户数据,然而用户却并不知情。
4.2.2 在后台与C&C服务器通信
4.2.2.1 使用http协议通信
通过抓包发现恶意程序和C&C之间的通信使用的是http协议。服务器地址:185.215.*.31:80
图4-2-2 wireshark抓包数据
如图所示,根据其网络通讯内容和功能,将与C&C服务器的通信分为3个阶段:
1)Uricontent:/api/botupdate
从抓包数据中可以发现,TeaBot恶意软件每10秒钟发送一次POST请求,其中包含有关受感染设备的所有信息(图4-2-7网络数据加密部分详解)。
图4-2-3 第一次请求botupdate
C&C服务器返回信息使用异或XOR解密,如下图:
图4-2-4 C2返回信息解密
该响应通常由配置更新组成(例如C2地址,远控命令启动等)。
2)Uricontent:/api/getkeyloggers
每10秒钟TeaBot执行一次GET请求,以检索跟踪记录功能所收到的应用程序列表。
图4-2-5 第二次请求getkeyloggers
3)Uricontent:/api/getkeylogge
TeaBot发送包含受感染设备上安装的所有程序包名称的JSON文件(未加密)的POST请求。通过这些信息,C&C服务器就能知道是否有一个或多个目标应用程序,并响应下载相关的注入。
图4-2-6 第三次请求getbotinjects
4.2.2.2 使用XOR异或加密流量
通过逆向恶意代码模块,发现其加密部分使用了XOR异或加密。
图4-2-7 网络数据加密部分详解
4.2.2.3 远控命令
恶意程序通过onAccessibilityEvent方法实施远控操作,包含的远控指令,如下表所示:
表4-3 服务器地址分布
此类银行木马的危害十分严重,一旦安装后,用户的所有信息将被窃取,并且还会实时的监控用户的使用状态、截屏上传服务器。此木马最大的危害是对银行信息的窃取,其使用的覆盖攻击可以以假乱真,在用户不知情的情况下,轻松获取用户的凭证和短信信息。对用户造成财产损失。虽然目前TeaBot只是针对欧洲银行,但是不排除会增加其他国家的银行注入,所以此类木马家族还需要持续关注。
此恶意软件对自身实施了保护,用户通常难以卸载。
(1)立即关闭所有网络连接(断开手机移动网络和wlan),在未删除app前,建议禁止网络连接;
(2)使用adb指令删除恶意软件;
(3)如果以上方法都无法删除,备份一些重要数据到电脑,然后恢复出厂设置。
用户安装所需软件,建议去正规的应用市场下载、去官方下载。
在手机当中安装必要的安全软件,并保持安全软件更新。