TeaBot-目标欧洲银行的Android恶意软件

 

1. 概述

银行恶意软件一直都是我们暗影实验室关注的重点。近期,意大利出现了一种新型的Android恶意软件,研究人员发现它与目前已知的银行木马家族都不相关,命名这款新型的银行木马家族为TeaBot(也有命名为Anatsa)。

该恶意软件最初出现时间是在2020年12月初,它伪装成“VLC_MediaPlayer”,“TeaTV”应用程序。TeaBot家族恶意软件的其主要目标是窃取用户凭证信息和短信消息,用于已预先设计好的银行欺诈方案。

目前,TeaBot似乎处于开发的早期阶段。2021年3月,发现意大利银行的相关注入模块,2021年5月,发现比利时和荷兰银行的注入

用户在成功安装TeaBot后,攻击者就可以随时实时获取设备屏幕,并通过AccessibilityServices交互,窃取用户隐私信息,根据用户安装的应用列表,获知已安装的银行应用,并分发已预先设计好的银行欺诈注入代码,诱导用户登录,操作等,并获取用户短信验证消息,最终导致用户个人信息泄露和财产损失,安装图标如下:

VLC_MediaPlayer TeaTV

 

2. 样本信息

表2-1 样本基本信息

序号 应用安装名称 MD5 版本号
1 VLC_MediaPlayer B694BA8BF9C8D2B9CFDE8C20C76C4716 1.0
2 TeaTV CB187F22AA2A67C28CB604487E85BE9F 1.0

 

3. 程序运行流程图

图3-1 TeaBot程序运行流程图

 

4. 样本分析

4.1 静态分析

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 动态分析

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方法实施远控操作,包含的远控指令,如下表所示:

指令 功能
app_delete 从包名称中删除一个应用程序
ask_syspass 显示生物识别授权弹出窗口
ask_perms 向用户请求权限
change_pass 显示一条提示消息(小弹出窗口),通知用户更新密码(锁定模式)
get_accounts 在Android设置中获取帐户
kill_bot 自行删除
muute_phone 使设备静音
open_activity 通过包名打开一个应用程序
open_inject 执行覆盖攻击,打开注入(html负载)
reset_pass 功能缺失
start_client 设置一个IP和PORT,用于通过屏幕截图观察受感染的设备
swipe_down 执行手势,例如在屏幕上滑动
grab_google_auth 打开并在Google Auth应用中获取code
activate_screen 启用屏幕。TeaBot能够控制设备的屏幕(例如,能够使屏幕保持暗淡状态)

表4-2远控指令列表

4.3 服务器地址

服务器地址 分布区域
185.215.***.31 英国(塞舌尔 英吉利河 维多利亚)
Kop***apalo.xyz 比利时(域名解析:35.205.**.67)
Sepo***kotop.xyz 德国(域名解析:87.106.**.146)

表4-3 服务器地址分布

 

5. 应用危害

此类银行木马的危害十分严重,一旦安装后,用户的所有信息将被窃取,并且还会实时的监控用户的使用状态、截屏上传服务器。此木马最大的危害是对银行信息的窃取,其使用的覆盖攻击可以以假乱真,在用户不知情的情况下,轻松获取用户的凭证和短信信息。对用户造成财产损失。虽然目前TeaBot只是针对欧洲银行,但是不排除会增加其他国家的银行注入,所以此类木马家族还需要持续关注。

 

6. 安全建议

  1. 此恶意软件对自身实时了保护,用户通常难以卸载。

(1)立即关闭所有网络连接(断开手机移动网络和wlan),在未删除app前,建议禁止网络连接;

(2)使用adb指令删除恶意软件;

(3)如果以上方法都无法删除,备份一些重要数据到电脑,然后恢复出厂设置。

  1. 用户安装所需软件,建议去正规的应用市场下载、去官方下载。
  2. 在手机当中安装必要的安全软件,并保持安全软件更新。
  3. 关注“暗影安全实验室”微信公众号,我们将持续关注安全事件。
(完)