freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

Nexus安卓木马分析报告
2023-05-16 10:53:28
所属地 广东省

概述

2023 年 3 月 21 日晚上,链安与中睿天下联合研发的监控系统检测到一种新型安卓木马。在经过睿士沙箱系统捕获样本之后,发现该安卓木马极有可能是原安卓网银盗号木马 SOVA 的变种。与此同时,意大利安全公司 Cleafy 发布了一篇题为《Nexus:一个新的安卓僵尸网络?》的报告,确认该病毒确实是 SOVA 的变种,并将其重新命名为 Nexus。

样本分析

  • 样本名称: Chrome.apk

  • 样本 SHA256 为:  376d13affcbfc5d5358d39aba16b814f711f2e81632059a4bce5af060e038ea4

  • 样本文件大小:  4792032KB

主要行为列表

  • 删除指定应用以其应用数据

  • 安装并启动任意应用

  • 隐藏自身应用图标

  • 卸载保护

  • 上传用户短信数据以及通讯录

  • 使用 SmsManager 发送短信、 删除短信、取消短信通知

  • 拨打电话

  • 获取用户 cookie 信息并上传,注入 cookie 等

  • 读取并上传数字钱包信息

  • 记录并上传键盘输入记录

  • 查询敏感信息手机数据(查询存储邮件、应用账号数据、IMSI 等手机信息)

  • 设置静音

  • 屏幕解锁

  • 访问指定 Url

  • 试图禁用管理员用户

  • 开启辅助功能

  • 监听手机重启事件

  • 使用 DownloadManager 下载文件

安装测试

当木马安装完成后,手机主界面会出现一个类似 Chrome 浏览器的图标(如图1所示),与真实的 Chrome 图标略有差异。木马使用的图标较小,但在没有相关对比的情况下,基本上很难识别出这种差异。

1683624574_645a127eb0e7d28673fe8.png!small?1683624575941

图 1

当木马启动后,界面会提示用户需要开启“无障碍功能”。在用户点击界面任意位置时,将自动跳转到系统内的“无障碍功能”设置并自动启用该功能(如下图所示)。

在启动“无障碍功能”之后,程序会自动弹出并请求获取“设备管理员权限”(如图2所示)。

1683624593_645a129131f6f866d3425.png!small

图 2

在恶意应用获得设备管理员权限后,它会在后台不断收集用户信息,用户很难察觉其存在。一旦设备管理员权限被授予,用户在尝试打开设备管理员权限设置界面时会发现界面迅速关闭,无法撤销权限。类似地,通过 adb 执行操作时也会遇到相同问题,界面会立刻关闭。这是因为恶意应用程序已经监控了设备管理员设置界面的开启动作,从而阻止用户撤销其权限。因此,用户需要启用 root 权限才能成功卸载此恶意应用。

adb shell am start -S "com.android.settings/.Settings\$DeviceAdminSettingsActivity"

样本深度分析

基础信息

1681188352_6434e6003b2b0fd87717f.png!small?1681188356421

图 3

1683624712_645a13089447409ddb0f0.png!small?1683624714017

图 4

在使用 Incinerator 进行手动分析之前,通过“基础分析”模块,我们发现该样本程序具有加密壳(如图3所示)。这意味着恶意应用程序的开发者使用了一种加密方法来保护其代码,以防止分析和逆向工程。同时,我们注意到签名信息中使用了“CN=Android Debug”(如图4所示),这与正常的 Chrome 证书不一致。这可能意味着此恶意应用程序的开发者试图伪装成正常的 Chrome 应用,以便更容易地欺骗用户并获得其信任。

得益于 incinerator 具备 Apk 权限分析功能,我们可以在 Apk 的详细信息中获取相应的权限列表(如图5,6所示)。

1683624719_645a130ff0255403a6d67.png!small?1683624722492

图 5

1683624724_645a1314a5e8f0d39d386.png!small?1683624726164

图 6

在应用权限列表中,样本获取的权限中有 13 项被评定为“危险”的权限。其中有几个权限尤为危险:

  • 发送短信(SEND_SMS)

  • 读取短信(READ_SMS)

  • 接收短信(RECEIVE_SMS)

  • 读取联系人(READ_CONTACTS)

  • 写入联系人(WRITE_CONTACTS)

  • 读取电话号码(READ_PHONE_NUMBER)

普通应用通常不会申请一些涉及敏感操作的权限,如改写通讯录、读取和发送短信等。这些权限通常仅限于专门的通讯软件。然而,当恶意应用获取辅助功能权限后,它可以利用这一功能来自动开启其他权限,包括一些对用户隐私和安全具有潜在威胁的权限。

辅助功能是 Android 系统中一项强大的功能,旨在帮助有特殊需求的用户更好地使用设备。然而,这一功能也可能被恶意应用滥用,从而执行不受用户控制的操作。一旦恶意应用获得了辅助功能权限,它可以在用户不知情的情况下执行各种操作,如启用其他敏感权限,进而窃取用户数据和破坏其隐私。因此,用户需要谨慎授权辅助功能权限,避免将其授予不可信的应用。

代码中用辅助功能开启的权限列表如下:

android.permission.READ_SMS:允许应用程序读取短信消息
android.permission.SEND_SMS:允许应用程序发送短信消息
android.permission.RECEIVE_SMS:允许应用程序接收短信消息
android.permission.READ_CONTACTS:允许应用程序读取联系人列表
android.permission.WRITE_CONTACTS:允许应用程序编辑联系人列表
android.permission.READ_PHONE_STATE:允许应用程序读取设备电话状态和身份信息
android.permission.WRITE_EXTERNAL_STORAGE:允许应用程序写入外部存储,例如SD卡
android.permission.MODIFY_AUDIO_SETTINGS:允许应用程序修改声音设置
android.permission.READ_EXTERNAL_STORAGE:允许应用程序读取外部存储,例如SD卡
android.permission.INSTALL_PACKAGES:允许应用程序安装其他应用程序
android.permission.CALL_PHONE:允许应用程序拨打电话
android.permission.GET_ACCOUNTS:允许应用程序访问设备帐户列表
android.permission.READ_PHONE_NUMBERS:允许应用程序读取设备电话号码
android.permission.CLEAR_APP_CACHE:允许应用程序清除所有缓存文件

1683624734_645a131e712dc72581033.png!small?1683624735565

图 7

1683627609_645a1e59d4ced6be38db4.png!small?1683627610476

图 8

如上图所示,该应用首先硬编码了需要通过辅助功能开启的权限列表,接着向系统发起对这些权限的申请。在 PermissionsTask 环节中,应用会监听权限申请的动作。一旦监听到权限申请,该应用便利用辅助功能在权限申请界面上自动点击“同意”按钮。

静态代码分析

在使用 Incinerator 工具对样本进行自动脱壳并分析恶意行为代码后,我们发现以下主要功能:

1. 删除指定应用以其应用数据

恶意应用具有删除其他应用及其数据的能力,可能影响用户正常使用手机及其应用。

1683627620_645a1e64f01a00dadcf2c.png!small?1683627621599

图 9

clearApp方法确实是通过执行 pm clear package命令(如图9所示)来删除与特定应用程序包相关的缓存数据,包括图片缓存、临时文件、数据库缓存等。这样可以帮助清理设备上的垃圾文件,释放存储空间。

而 deleteThisApp方法则通过触发 android.intent.action.DELETEintent 来实现应用的卸载(如图9所示)。当系统接收到这个 intent 时,会弹出一个卸载确认界面。通常情况下,用户需要在此界面上手动点击“同意”按钮才能完成卸载。然而,由于这个恶意应用具有辅助功能权限,它可以在卸载确认界面出现时自动点击“同意”按钮,从而在用户不知情的情况下完成卸载操作。这种做法进一步提高了恶意应用的隐蔽性和破坏性。

2. 安装并启动任意应用

恶意应用可以安装并启动其他应用,可能进一步传播恶意软件或将用户引导至恶意网站。

1683627628_645a1e6cb89a34ff7f0bd.png!small?1683627629902

图 10

安装和卸载应用确实是通过辅助功能来实现的。这种方式可以方便地为用户自动化应用的安装和卸载过程。唯一的区别在于,为了实现这一功能,恶意应用需要适配不同厂商的安装应用包名和安装 Activity 的名称。

这样一来,恶意应用可以在各种不同的设备上成功执行安装和卸载操作,从而更加隐蔽地实现其恶意行为。这种策略使得恶意应用在各类设备上具有更广泛的攻击能力。

3. 隐藏自身应用图标

为了难以被发现和卸载,恶意应用会隐藏自己的应用图标(如图11所示)。

1683627645_645a1e7d7d88003cb616f.png!small?1683627646074

图 11

在这个恶意应用中,开发者使用了 setComponentEnabledSetting方法来禁用 Launcher Activity。这样一来,用户就无法通过设备主屏幕上的应用图标(Launcher Icon)来操作或访问该恶意应用了。

setComponentEnabledSetting方法可以用来启用或禁用应用程序组件,如 Activity、Service、BroadcastReceiver 等。在这种情况下,恶意应用通过禁用 Launcher Activity,达到了隐藏自身的目的,让用户更难以察觉其存在。这种做法进一步提高了恶意应用的隐蔽性,使其更难以被发现和移除。

4. 上传手机联系人等敏感信息

恶意应用可以窃取并上传用户的联系人、短信、Cookie 等信息,可能导致用户隐私泄露和财产损失。

1683627655_645a1e870e906dd89bfa5.png!small?1683627655867

图 12

1683627662_645a1e8edf4a2398477ae.png!small?1683627664301

图 13

如图12、13所示,恶意应用首先通过 content://sms访问短信内容,然后经过一系列业务逻辑处理,将其整合到网络请求的数据中。除了短信数据,这个请求还包含了如 SIM 卡信息、受害者设备的 IP 地址、国家、城市和设备型号等信息。最后,这些数据会被发送到指定的服务器。

通过这种方式,恶意应用能够窃取用户的短信和设备信息,然后将这些数据发送给攻击者。攻击者可以利用这些信息进行各种违法活动,例如诈骗、窃取用户隐私、甚至是身份盗窃。

5. 使用 SmsManager 发送短信、 删除短信、取消短信通知、读取短信

5.1 上传短信

1683627672_645a1e985e6565da942de.png!small?1683627673304

图 14

1683627682_645a1ea2bca692ff24318.png!small

图 15

根据上述描述,该恶意应用通过监听收到短信的系统广播,从广播中提取收到的短信内容,然后将每一条短信发送给远程服务器。在完成这个过程之后,应用还会终止收到短信的广播,以免被用户或其他应用程序发现。如图15所示,super.execute指的是将收集到的短信数据发送给远程服务器。

这种行为表明,该恶意应用在窃取用户短信方面采取了较为积极的手段。用户需要加强对此类应用的防范意识,以避免对其隐私和安全造成不良影响。

5.2 发送短信

1683627697_645a1eb1ad07d54bacf01.png!small?1683627698236

图 16

调用系统 SmsManager 发送短信(如图16所示)。

6. 获取用户 cookie 信息并上传,注入 cookie 等

1683627704_645a1eb8920c25b40f1b6.png!small?1683627705624

图 17

如图17所示,读取所有 cookie,上传到远程服务器,并且通过 CookieManager 把本地 cookie 删除。

7. 读取和上传数字钱包信息

7.1 读取余额

1683627714_645a1ec2b2a979aafbbbe.png!small?1683627715475

图 18

通过辅助功能,读取代表余额的 View 显示的字符内容,就是用户钱包的余额(如图18所示)。

7.2 读取 seed phrase

1683627724_645a1eccec64db990ca89.png!small?1683627725659

图 19

1683627738_645a1edadfab697feb97a.png!small?1683627739534

图 20

利用辅助功能,从表示 seed phrase 的 View 中读取内容(如图19、20所示)。

7.3 上传到服务器

1683627747_645a1ee38ceb93628bb88.png!small?1683627748288

图 21

把加密钱包信息发生到远程服务器。

8. 记录并上传键盘输入记录

1683627756_645a1eec48ae7dc3acd43.png!small?1683627757603

图 22

1683627766_645a1ef6846b1a927c865.png!small?1683627767230

图 23

上面两张图,图22所示监听键盘输入,通过辅助功能抽取数据,图23所示把这些数据上传到远程服务器。

9. 查询敏感信息手机数据(查询存储邮件 和应用账号数据,IMSI 等手机信息)

1683627776_645a1f00b9b304b434a69.png!small?1683627777377

图 24

通过 AccountManager 获取账号信息,上传到远程服务器。

10. 把手机设置静音

1683627786_645a1f0a5d6d9e6fd7d6f.png!small?1683627787153

​图 25

通过 audio 系统服务器,把手机设置为静音(如图25所示)。

11. 监听手机重启事件

1683627793_645a1f11407f403dcef47.png!small?1683627793902

图 26

1683627800_645a1f18a0c2ff6e428f3.png!small?1683627801310

图 27

监听手机重启事件,手机重启后恶意就开始工作。

12. 使用 DownloadManager 下载 APK 并且安装

1683627808_645a1f20edd7cd8880e61.png!small?1683627809615

图 28

下载 apk 并且使用安装。

13. 拍照、录视频

1683627819_645a1f2b61d255c260ab7.png!small?1683627819937

图 29

1683627826_645a1f321a96cb54b9d47.png!small?1683627826965图 30

14. 读取其他文档

1683627833_645a1f3952fe3c598b194.png!small?1683627833976

图 31

1683627839_645a1f3f73403c8e58143.png!small?1683627840100

图 32

15. 网络请求

代码中所有的 Log 都会上传,上传的服务器地址来自一段“加密”字符串(如图33、34所示)。

1683627845_645a1f451f541afe640c6.png!small?1683627845793

图 33

1683627851_645a1f4be3a7b1828d461.png!small?1683627852588

图 34

基于"aHR0cDovLzE5My40Mi4zMi44Ny8=" 是一段 Base64 编码。解码后,我们得到了 "http://193.42.32.87/" 这个网址,这是一个用于接收被收集数据的服务器地址。然而,在中国大陆地区,这个网址是无法访问的。因此,即使国内用户安装了这个恶意应用,他们的数据也不会被采集,因为数据无法成功发送至服务器。

另外,被 URL 字符串扫描器识别出的网址 "http://ip-api.com/json" 和 "https://icanhazip.com" 也因为 GFW 而无法访问。

总结

总的来说,这个恶意应用主要目的是窃取用户隐私,并对相关隐私数据进行了精细化处理。在分析过程中,发现了大量针对中国手机厂商华为、小米、OPPO 的特殊处理,暗示这款恶意应用可能主要针对中国区用户。

为了隐藏其恶意行为,应用使用了简单的加密壳来掩盖关键代码。这种手法在海外的恶意应用中并不常见。从窃取的数据类型来看,这款恶意应用的危害性较高,因为它窃取了短信、加密钱包、Cookie 等非常敏感的信息,可能对用户的财产安全造成影响。

技术手段方面,该恶意应用主要利用了 Android 的辅助功能和设备管理员权限。这种手法在恶意应用中较为常见。用户需要提高警惕,防范此类应用对其隐私和安全造成的威胁。

IOC 指标

SHA256:

376d13affcbfc5d5358d39aba16b814f711f2e81632059a4bce5af060e038ea4

724a56172f40177da76242ee169ac336b63d5df85889368d1531f593b658606b

f3fc80a8793e60a901da44b9ab315931699e64a4f3eddb8aba839fe860de46dc

ec5b083c017570f846f6925b7c79d9e5886525a9b7ba7e514dabad0325c0af5e

C2Server:

193.42.32.87

85.31.45.101

源地址:https://liansecurity.com/#/main/news/RGt-ZocBrFZDfCElrqy8/detail

# 恶意代码 # 安卓安全
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录