简介
近期,暗影实验室的态势感知平台捕获一款新型Android木马,该木马相比以往恶意程序功能更加齐全,手段更加高明,也更加流氓, 无障碍模式被玩的近乎神奇。这款恶意软件多针对国外用户,仿冒国外知名企业的官方APP,诱导用户安装使用,全面接管用户手机。
我们截获的这款木马起名BAWAG PSK Security,是国外知名金融公司BAWAG PSK的一款产品,其拥有230万客户,是奥地利最大的银行之一。该木马的功能机制极其优秀,利用Android系统的无障碍服务自动完成各类操作,虽然该系统功能自4.0版本开始就已经存在了,但是从未见过将该功能运用如此完善的木马,实属特洛伊木马学院毕业的高材生了。
样本信息
样本名称 | BAWAG PSK Security |
---|---|
样本包名 | com.ombththz.ufqsuqx |
样本版本 | 1.0 |
样本MD5 | E5445CDA1BF1F82FC1FD4EDB1317C41F |
样本签名 | emailAddress=android@android.com,CN=Android, OU=Android,O=Android,L=Mountain View, ST=California,C=US |
签名MD5 | E89B158E4BCF988EBD09EB83F5378E87 |
样本图标 |
流程图
图 1 运行流程
详细分析
运行过程
APP运行后释放木马程序,动态载入内存并删除该文件,同时隐藏图标增加隐蔽性。我们通过HOOK删除函数将木马程序复制出来,得到完整代码。
图 2 Hook代码
木马首先检查手机系统语言是否是ru,如果不是则继续执行。之后程序检查各种权限是否授权,包括以下内容:
检擦无障碍模式是否开启
是否开启设备管理器权限
检查所有敏感权限是否授权
检查是否为短信默认应用
检查是否授权通知管理权限
检查是否开启Google Play Protect功能
检查是否能截屏切换响铃
检查电池优化是否关闭
检查三星安全是否关闭
初始化配置,包括木马解锁时间、待加载模块、主控地址等
向主控地址注册设备信息并开始定时Ping。
注册的设备信息如下:
FCM token
系统版本、设备型号
应用包名
是否激活设备管理器
国家、网络运营商
之后开始创建虚假推送以及虚假Toast,诱导用户开启无障碍服务。
防御机制
该木马的防御机制分为两种:防普通用户和防安全从业人员,防普通用户则是防发现、防修改、防卸载;防安全从业人员则是防分析、防杀软、防追踪。
APP运行后会隐藏图标防止用户发现并请求开启无障碍服务
图 3 申请无障碍服务
如果用户未打开,则不停的打开无障碍服务页面诱导用户开启,包括持续的Toast消息提醒、不停的推送通知
图 4 虚假消息
当你打开无障碍服务之后就是噩梦的开始。该服务允许应用查看控制屏幕或者与应用互动,木马获得权限后会申请敏感权限(通讯录、短信、电话、存储空间),在权限申请弹窗后自动点击允许;
图 5 自动控制手机操作
还会不停的监控页面打开情况,如果用户拖动木马图标打开应用设置页面或者打开木马的卸载对话框,该木马会自动关闭该页面防止被修改或者被卸载;木马还会自动将自己添加到设备管理器防止卸载,自动关闭取消设备管理器权限的页面并返回Home页面;自动关闭取消无障碍服务的页面并返回Home页面。
第一,获得的APP只是一个壳程序,真正的木马程序被加密,需要先分析解密代码;第二,无论是壳程序还是木马程序,所使用的字符串全部被异或算法加密保存,增加了程序的分析难度;第三,木马使用Tor网络连接,并预置了网桥节点,该方式专门防范流量过滤、嗅探分析,增加了程序的隐蔽性,使得杀软更难在现网流量中识别并截获
图 6 防范机制
主控地址
木马通过Tor网络获取主控地址,Tor网络地址在程序中经过base64编码
图 7 Tor网络连接
转换后得到地址如下:
http://loa5ta2rso7xahp7lubajje6txt366hr3ovjgthzmdy7gav23xdqwnid.onion/api/mirrors
通过Tor访问该地址获取到木马的主控地址,同样是经过base64编码,解码后获得明文地址:http://zhgggga.in ,该地址会定时变换
图 8 主控地址获取
指令下发
木马启动后定时去连接上面的主控地址,获取指令,在该程序中称为Ping,还可以通过FCM消息模式来接收指令,两种方式获取的指令功能大致相同,但是有些功能模块中不存在FCM消息指令,而且Ping获取的指令更全
图 9 指令下发方式
指令分析
下表中是通过Ping获取指令的作用
指令 | 作用 |
---|---|
sms | 发送短信到指定号码 |
smsAdminRequested | 请求成为默认短信应用 |
ussd | 拨打指定的USSD代码 |
locked | 锁定屏幕,播放指定文字内容 |
settings | 下载待注入的APP的图片 |
notifications | 注入APP |
proxyServer | 建立socks5连接 |
showScreen | 屏幕截图 |
action_home | 点击home键 |
action_back | 点击返回键 |
soundEnabled | 设置响铃模式 |
hide_push | 隐藏所有通知 |
disabledPackages | 禁用某应用的通知 |
bulk_sms | 群发短信给手机所有联系人 |
action_request_pin | 窃取手机Pin码 |
approvedPin | 设置手机Pin码 |
apks | 指定url下载apk |
remove_app_by_id | 卸载指定APP |
remove_all | 卸载teamviewer的Host应用以及自身 |
openApp | 启动指定APP |
teamViewerOptions | 启动teamviewer的Host应用 |
call_forwarding | 设置呼叫转发手机号 |
模块分析
这款恶意软件采用模块化结构设计,每个模块拥有不同的功能,可以有选择性地进行模块初始化。以下是木马中各个功能模块的相关分析
这个模块的作用是进行短信相关的操作。通过Ping和FCM消息两种形式接收指令操作用户设备进行发短信、设置默认短信应用、上传用户短信内容的操作。
接收指令,获取指令中的手机号、内容,通过用户设备将内容发送到手机号,如果不是默认短信应用,则申请成为默认应用
通过FCM消息的形式:
图 10 fcm消息指令
通过Ping的形式
图 11 Ping指令
请求设置为默认APP应用:
图 12 申请短信默认应用
当用户设备收到短信时,该木马获取短信手机号及内容上传到服务器
图 13 上传短信内容
USSD是非结构化补充数据业务,基于 GSM 的新型交互式数据业务,USSD 在会话过程中一直保持通话连接,提供透明通道,无需进行存储转发。
该模块指令也是通过两种形式接收的:FCM消息和Ping形式。
FCM消息:
图 14 fcm消息指令
Ping:
图 15 Ping指令
获取到指令后,调用拨打电话APP发送
图 16 拨打电话
该模块主要是通过全屏显示页面锁定用户屏幕,显示指定内容。
通过FCM消息以及Ping的形式获取指令
图 17 获取指令方式
根据指令显示全屏页面
图 18 虚假锁屏页面
诱导用户重启手机
图 19 虚假重启手机提示
该模块会在用户安装新应用以及刷新设备信息时上传应用程序列表用以确定需要注入的应用
图 20 上传应用安装列表
通过Ping和FCM消息获取指令,但是两种方式获取的指令有所不同,Ping获取的指令比较全,主要功能指令是settings和notifications。其中settings指令是下载APP注入所需的图片
图 21 下载图片
notifications指令是通过settings指令下载的图片创建一个页面覆盖被注入的APP,从而误导用户
图 22 创建虚假页面
FCM消息模式的主要功能指令则只有notification,跟Ping中的作用一样
图 23 fcm消息指令
该模块的功能是跟指定服务器建立socket链接,执行远程命令
通过FCM消息和Ping获取指令proxy,内容包含设置代理所需的host、user、password、port。
图 24 指令获取方式
执行远程命令
图 25 执行命令
该模块的功能是对手机屏幕进行截图并上传到服务器
通过FCM消息获取指令,主要功能指令为show_screen,使用该指令进行屏幕截图
图 26 fcm消息
通过Ping获取指令,主要功能指令有三个:showScreen用于屏幕截图;action_home返回home页面;action_back点击返回按钮。
图 27 Ping指令
上传屏幕截图到服务器
图 28 上传屏幕截图
该模块的作用是切换手机响铃模式,在响铃和静音之间切换。
只有Ping一种形式接收指令soundEnabled。
图 29 Ping指令
该模块的作用是请求通知使用权权限,监听手机通知变化,根据指令隐藏推送。
只有Ping一种形式接收指令hidden_push
图 30 Ping指令
收到该指令后会屏蔽所有通知
图 31 屏蔽通知
该模块的作用是关闭指定APP的通知
只有Ping一种形式接收指令disabledPackages,获取包名并关闭该包名对应应用的通知
图 32 关闭通知
该模块的作用是群发短信,将指定内容发送到手机设备上所有的联系人
只有Ping一种形式接收指令bulk_sms,获取联系人列表,将指令附带的短信内容发送至所有号码。
图 33 群发短信
该模块的作用是窃取或者设置手机pin密码
只有Ping一种形式接收指令action_request_pin和approvedPin, action_request_pin会通过Android无障碍模式窃取用户手机的Pin码。
图 34 窃取Pin码
approvedPin指令会获取指令附带的PIN码,并设置为该值
图 35 设置Pin码
该模块的作用是从指定url下载APP并安装或者卸载指定APP。
模块有Ping和FCM消息两种指令获取方式,通过Ping获取apks、remove_all、remove_app_by_id指令
apks指令附带id和url,url为待下载APP的地址
图 36 下载app
如果接收的指令是remove开头的则进行卸载操作
图 37 卸载app
通过FCM消息则只能获取apks指令,指令功能如Ping中的apks指令一样
图 38 fcm消息
该模块包含两个功能,一个是运行指定APP,一个是启动teamviewer开发的手机端应用“Host”从而实现远控
以下是“Host”应用
图 39 Host应用
模块有Ping和FCM消息两种指令获取方式,Ping可以获取两种指令openApp和teamViewerOptions
openApp指令附带包名,木马根据包名启动指定APP
图 40 启动app
teamViewerOptions指令则是启动“Host”应用,进行远程控制
图 41 启动Host应用
FCM消息获取的指令则只有app_open一个,该指令的功能如Ping中openApp指令一样,安装指定APP
图 42 fcm消息
该模块的作用是设置用户手机的呼叫转发功能,
只有Ping一种形式接收指令:commands,指令中附带了呼叫转发的手机号
图 43 呼叫转发
卸载方法
用户安装并授权一系列权限后会发现进入设置-应用页面无法正常卸载,通过第三方清理软件也无法正常卸载,对于普通用户来说有两种情况,分别对应不同的卸载方式:
情况一,未授权设备管理权限,该情况下有两种简单方式可以卸载木马:
(1)进入设置-应用页面,找到BAWAG PSK Security应用,这时不要点击卸载,否则会自动回到Home页面,点击强制停止按钮,再点击卸载即可;
(2)同样是进入设置-应用页面,找到BAWAG PSK Security应用,点击存储,有两个包含“清除”的按钮,都点击一下清除应用数据,之后回到上一页,点击卸载即可;
情况二,已授权设备管理权限,该情况下首先尝试取消该木马的设备管理权限,如果木马反复自动授权设备管理权限导致无法取消该权限,则备份数据,恢复出厂设置,如果成功取消设备管理权限,则根据情况一进行卸载操作
如果用户稍微懂点Android开发知识,可以打开开发者模式,连接电脑,使用adb uninstall或者pm uninstall命令进行卸载。
总结
从之前的短信拦截马简单的通过短信下发指令,到现在通过各种消息推送、通过Tor网络进行数据传输,再加上优秀的防御机制,Android木马正在变得越来越专业、越来越高端,相信特洛伊学院不止一个高材生,其他类型的木马只要放出来就存在被捕获的可能,安全的对抗一直在持续,我们能做的只有不断进步,完善平台,捕获更多未知恶意软件,保障用户数据安全、设备安全。
安全建议
恒安嘉新暗影移动安全实验室在此提醒广大用户,不轻易相信陌生人,不轻易点击陌生人发送的链接,不轻易下载不安全应用,不安装非正规途径来源的APP。
- 谨慎打开未知短信的下载链接。
- 避免点击网页中的链接或下载附件。
- 仅从受信任的来源下载应用程序,建议去正规的应用市场或官方下载。
==================================================
暗影移动安全实验室(EversecLab)是恒安嘉新移动安全能力的支撑部门,由移动安全、数据安全、人工智能、漏洞挖掘等众多领域专家组成,专注于移动安全技术创新与研究,以及移动互联网应用安全的生态建设,包括移动恶意程序分析、安全风险评估、信息安全检测、数据安全评估、黑灰产溯源挖掘、诈骗APP分析、隐私合规检测等等。自主研发第四代移动APP高速研判分析引擎,支持动态检测引擎(动态沙箱技术)、静态检测引擎、AI检测引擎,样本库积累千万级,PB级大数据存储处理技术等。可为客户提供海量应用的信息挖掘,精准、实时、高效的APP检测、情报数据收集、数据关联分析、情报线索扩展,大屏态势感知展示等等。
“安全创造价值”–暗影移动安全实验室坚持以安全为核心,研究为己任,继续创新和开发解决用户问题和行业痛点的产品,为国家的网络安全事业保驾护航。
==================================================
发表评论
您还未登录,请先登录。
登录