Nexus安卓木马分析报告

概述

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

样本分析

• 样本名称:Chrome.apk

• 样本SHA256为:376d13affcbfc5d5358d39aba16b814f711f2e81632059a4bce5af060e038ea4

• 样本文件大小:4792032KB

 

主要行为列表

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

• 安装并启动任意应用

• 隐藏自身应用图标

• 卸载保护

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

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

• 拨打电话

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

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

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

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

• 设置静音

• 屏幕解锁

• 访问指定Url

• 试图禁用管理员用户

• 开启辅助功能

• 监听手机重启事件

• 使用DownloadManager下载文件

安装测试

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

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


 

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

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

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

样本深度分析

01基础信息

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

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

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

• 发送短信(SEND_SMS)

• 读取短信(READ_SMS)

• 接收短信(RECEIVE_SMS)

• 读取联系人(READ_CONTACTS)

• 写入联系人(WRITE_CONTACTS)

• 读取电话号码(READ_PHONE_NUMBER)

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

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

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

Bash
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:允许应用程序清除所有缓存文件

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

02静态代码分析

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

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

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

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

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

2. 安装并启动任意应用

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

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

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

3. 隐藏自身应用图标

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

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

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

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

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

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

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

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

NO.1上传短信

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

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

NO.2发送短信

调用系统SmsManager发送短信。

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

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

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

NO.1读取余额

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

NO.2读取seed phrase

利用辅助功能,从表示seed phrase的View中读取内容。

NO.3上传到服务器

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

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

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

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

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

10. 把手机设置静音

通过audo系统服务器,把手机设置为静音。

11. 监听手机重启事件

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

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

下载apk并且使用安装。

13. 拍照、录视频

14. 读取其他文档

15. 网络请求

代码中所有的Log都会上传,上传的服务器地址来自一段“加密”字符串

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

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

总结

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

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

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

题外话

初入计算机行业的人或者大学计算机相关专业毕业生,很多因缺少实战经验,就业处处碰壁。下面我们来看两组数据:

  • 2023届全国高校毕业生预计达到1158万人,就业形势严峻;
  • 国家网络安全宣传周公布的数据显示,到2027年我国网络安全人员缺口将达327万。

一方面是每年应届毕业生就业形势严峻,一方面是网络安全人才百万缺口。

6月9日,麦可思研究2023年版就业蓝皮书(包括《2023年中国本科生就业报告》《2023年中国高职生就业报告》)正式发布。

2022届大学毕业生月收入较高的前10个专业

本科计算机类、高职自动化类专业月收入较高。2022届本科计算机类、高职自动化类专业月收入分别为6863元、5339元。其中,本科计算机类专业起薪与2021届基本持平,高职自动化类月收入增长明显,2022届反超铁道运输类专业(5295元)排在第一位。

具体看专业,2022届本科月收入较高的专业是信息安全(7579元)。对比2018届,电子科学与技术、自动化等与人工智能相关的本科专业表现不俗,较五年前起薪涨幅均达到了19%。数据科学与大数据技术虽是近年新增专业但表现亮眼,已跻身2022届本科毕业生毕业半年后月收入较高专业前三。五年前唯一进入本科高薪榜前10的人文社科类专业——法语已退出前10之列。

 “没有网络安全就没有国家安全”。当前,网络安全已被提升到国家战略的高度,成为影响国家安全、社会稳定至关重要的因素之一。 

网络安全行业特点

1、就业薪资非常高,涨薪快 2021年猎聘网发布网络安全行业就业薪资行业最高人均33.77万!

 2、人才缺口大,就业机会多

2019年9月18日《中华人民共和国中央人民政府》官方网站发表:我国网络空间安全人才 需求140万人,而全国各大学校每年培养的人员不到1.5W人。猎聘网《2021年上半年网络安全报告》预测2027年网安人才需求300W,现在从事网络安全行业的从业人员只有10W人。

 行业发展空间大,岗位非常多

网络安全行业产业以来,随即新增加了几十个网络安全行业岗位︰网络安全专家、网络安全分析师、安全咨询师、网络安全工程师、安全架构师、安全运维工程师、渗透工程师、信息安全管理员、数据安全工程师、网络安全运营工程师、网络安全应急响应工程师、数据鉴定师、网络安全产品经理、网络安全服务工程师、网络安全培训师、网络安全审计员、威胁情报分析工程师、灾难恢复专业人员、实战攻防专业人员…

职业增值潜力大

网络安全专业具有很强的技术特性,尤其是掌握工作中的核心网络架构、安全技术,在职业发展上具有不可替代的竞争优势。

随着个人能力的不断提升,所从事工作的职业价值也会随着自身经验的丰富以及项目运作的成熟,升值空间一路看涨,这也是为什么受大家欢迎的主要原因。

从某种程度来讲,在网络安全领域,跟医生职业一样,越老越吃香,因为技术愈加成熟,自然工作会受到重视,升职加薪则是水到渠成之事。

黑客&网络安全如何学习

今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。

 1.学习路线图 

 攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去就业和接私活完全没有问题。

2.视频教程

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。

内容涵盖了网络安全法学习、网络安全运营等保测评、渗透测试基础、漏洞详解、计算机基础知识等,都是网络安全入门必知必会的学习内容。

 

 (都打包成一块的了,不能一一展开,总共300多集)

因篇幅有限,仅展示部分资料,需要保存下方图片,微信扫码即可前往获取

3.技术文档和电子书

技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,由于内容的敏感性,我就不一一展示了。 

  因篇幅有限,仅展示部分资料,需要保存下方图片,微信扫码即可前往获取

4.工具包、面试题和源码

“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。 

 还有我视频里讲的案例源码和对应的工具包,需要的话也可以拿走。

因篇幅有限,仅展示部分资料,需要保存下方图片,微信扫码即可前往获取

 最后就是我这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。

这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。

参考解析:深信服官网、奇安信官网、Freebuf、csdn等

内容特点:条理清晰,含图像化表示更加易懂。

内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…

 因篇幅有限,仅展示部分资料,需要保存下方图片,微信扫码即可前往获取 

  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/355144.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一款Wordpress网站导航主题,带昼夜切换功能

Wordpress网站导航主题,带昼夜切换功能。 基于wordpress,部署和使用都比较方便。 界面比较简洁大方。后台管理功能也比较全面,值得一试。 这款主题界面、功能都非常简洁。 作者把这款定位为简约导航主题,所以这款wordpress导航…

飞书API 2-1:如何通过 API 创建文件夹?

本文探讨如何通过飞书的 API 来创建文件夹。通过 API 创建的文件夹,一般是放在共享空间,如果要放在个人空间,建议手动创建。 查看 API 文档 API 路径,可在飞书开放平台的服务端 API,依次查找云文档>云空间>文件…

MavenPlus插件的基础功能完善

本次更新主要是在初版的searchEverywhere的基础上增加了pom.xml文件编辑器,目前的界面布局如下,进行适当说明: 打开pom文件后,你会得到如上图所示的布局页面,数据会同步显示 如果有冲突信息,则会以红色显示…

【Android面试八股文】你刚刚提到了V2签名使用美团的Walle实现多渠道打包,那么你能讲一讲Android 签名的 v1、v2、v3、v4版本的区别吗?

文章目录 前言一、简介二、APK 签名方案 v1 (JAR签名)2.1. 签名过程2.2 验证过程2.3 详细例子2.4 优缺点2.5 美团基于V1版本的多渠道打包方案三、APK 签名方案 v23.1 为什么要设计APK 签名方案 v2 ?3.2 APK 签名方案 v2 : 签名前和签名后的 APK3.2.1 签名前和签名后的 APK3.2…

qmt量化交易策略小白学习笔记第40期【qmt编程之期货数据--如何获取合约基础信息】

qmt编程之获取期货数据 qmt更加详细的教程方法,会持续慢慢梳理。 也可找寻博主的历史文章,搜索关键词查看解决方案 ! 感谢关注,咨询免费开通量化回测与获取实盘权限,欢迎和博主联系! 获取合约基础信息 …

Faiss:选择合适的索引Index

向量相似性搜索彻底改变了搜索领域。它允许我们高效地检索从GIF到文章等各种媒体,即使在处理十亿级别数据集时,也能在亚秒级时间内提供令人印象深刻的准确性。 然而,这种灵活性也带来了一个问题:如何知道哪种索引大小最适合我们的…

React+TS 从零开始教程(1)

源码链接:https://pan.quark.cn/s/c6fbc31dcb02 创建项目 直接通过以下命令,我们来创建一个reactts的项目。 npx create-react-app myapp --template typescript这样就创建好了,然后我们导入vscode. npx是npm里面的一个库,可以让你自动使用…

DAB-DETR

论文地址: https://arxiv.org/pdf/2201.12329 文章通过前人的经验得出,导致 DETR 训练速度慢的原因很大可能是因为 decoder 中 cross attention 这个模块,由上面的对比可以看出其与 self attention 的区别主要就在于query的不同。文章猜想两个…

【Maven】项目的Maven插件报错

1. 找到本地maven库 2. 删除本地插件 3. 在IDEA上更新pom.xml

ctfshow web七夕杯

web签到 执行命令没有回显&#xff0c;我们直接写文件就可以了 有字符长度限制 ls />a nl /*>a访问url/api/a下载文件 easy_calc <?phpif(check($code)){eval($result."$code".";");echo($result); }function check(&$code){$num1…

LVS/NAT负载均衡实操

添加规则,并做持久操作 1 添加规则 [rootlvs ~]# ipvsadm -A -t 10.36.178.183:80 -s wrr [rootlvs ~]# ipvsadm -a -t 10.36.178.183:80 -r 192.168.65.201:80 -m -w 3 [rootlvs ~]# ipvsadm -a -t 10.36.178.183:80 -r 192.168.65.202:80 -m -w 1[rootlvs ~]# ipvsadm -Ln …

百度YY设计稿转代码的探索与实践

作者 | KyrieChen 导读 本文阐述了百度&YY互动团队在设计稿转代码方面的实践与沉淀&#xff0c;自研的YYF2C是Figma & AI相结合生成开发代码的一站式解决方案。文章将从遇到的痛点以及对应的方案成果来阐述&#xff0c;并介绍相对应的YYF2C功能点。 全文7217字&#xf…

我的创作纪念日--码农阿豪

个人名片 &#x1f393;作者简介&#xff1a;java领域优质创作者 &#x1f310;个人主页&#xff1a;码农阿豪 &#x1f4de;工作室&#xff1a;新空间代码工作室&#xff08;提供各种软件服务&#xff09; &#x1f48c;个人邮箱&#xff1a;[2435024119qq.com] &#x1f4f1…

OpenCV读取图片

import cv2 as cv # 读取图像 image cv.imread(F:\\mytupian\\xihuduanqiao.jpg) # 创建窗口 cv.namedWindow(image, cv.WINDOW_NORMAL) #显示图像后&#xff0c;允许用户随意调整窗口大小 # 显示图像 cv.imshow(image, image) cv.waitKey(0)import cv2 as cv srccv.imread(…

KVB交易平台:国内三大交易所(上海、深圳、北京)的概要与分析

概述&#xff1a; 上海证券交易所&#xff08;上交所&#xff09;、深圳证券交易所&#xff08;深交所&#xff09;和北京证券交易所&#xff08;北交所&#xff09;是中国大陆三大主要证券交易所。以下是对这三个交易所的比较分析&#xff1a; 一、基本概况 1. 上海证券交易所…

Python和OpenCV图像分块之图像边长缩小比率是2

import cv2 import numpy as npimg cv2.imread("F:\\mytupian\\xihuduanqiao.jpg") # 低反光 cv2.imshow(image, img) # # 图像分块 # dst np.zeros(img.shape, img.dtype) ratio 2 #图像边长缩小比率是2&#xff0c;也就是一张图片被分割成四份 height, wi…

RapidLayout:中英文版面分析推理库

引言 继上一篇文章之后&#xff0c;我这里想着将360发布的版面分析模型整合到现有的rapid_layout仓库中&#xff0c;便于大家快速使用。 不曾想到&#xff0c;我这整理工作越做越多了&#xff0c;好在整体都是往更好方向走。 起初&#xff0c;rapid_layout项目是在RapidStru…

番外篇 | 基于改进YOLOv5的安全帽佩戴检测 | 重参数化结构RepVGG + 空间对象注意力机制RCS-OSA模块

前言:Hello大家好,我是小哥谈。RCS-YOLO是一种目标检测算法,它是基于YOLOv3算法的改进版本。通过查看RCS-YOLO的整体架构可知,其中包括RCS-OSA模块。RCS-OSA模块在模型中用于堆叠RCS模块,以确保特征的复用并加强不同层之间的信息流动。本文针对安全帽佩戴的检测就是基于RC…

Python - 各种计算器合集【附源码】

计算器合集 一&#xff1a;极简版计算器二&#xff1a;简易版计算器三&#xff1a;不简易的计算器四&#xff1a;还可以计算器 一&#xff1a;极简版计算器 运行效果&#xff1a; import tkinter as tk import tkinter.messagebox win tk.Tk() win.title("计算器")…

【PL理论】(34) 类型系统:不完备性 | 为什么推导树推导失败? | 实现类型系统 | 调整到类型系统 | 思考:强制程序员写类型还是自动推断类型?

&#x1f4ac; 写在前面&#xff1a;回顾我们的目标是为 F- 语言设计一个完备但不完全的类型系统&#xff0c;本章我们探讨的主题是类型系统的完备性。 目录 0x00 类型系统的不完备性 0x01 为什么推导树推导失败&#xff1f; 0x02 实现类型系统 0x03 调整到类型系统 0x04…