热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Trojan.AndroidOS.Loapi:Android端恶意软件中的多面手

 写在前面的话其实大家都知道,我们的智能手机一不小心就会感染恶意软件,哪怕你只从Google的官方应用商店(Google Play)下载软件也一样救不了你。但如果你喜欢从其他地方(除官方应用商店之外)

 

写在前面的话

其实大家都知道,我们的智能手机一不小心就会感染恶意软件,哪怕你只从Google的官方应用商店(Google Play)下载软件也一样救不了你。但如果你喜欢从其他地方(除官方应用商店之外)下载软件的话,那你估计够呛了,因为这些第三方商店中充斥着大量伪造的以及未进行安全检测的应用程序。
话虽如此,但针对安卓操作系统的恶意软件可不仅仅会在非官方应用商城中传播,它们还会利用恶意广告、SMS垃圾短信以及其他各种技术来进行传播。在各种针对安卓平台的恶意软件威胁中,我们发现了一个有趣的样本实例-Trojan.AndroidOS.Loapi。这个木马拥有十分复杂的模块化结构,这意味着它可以进行各种恶意活动,例如挖矿、给用户不断弹出烦人的广告、以及利用受感染设备发动DDoS(分布式拒绝服务)攻击等等。而在此之前,我们从未见过功能如此之多的移动端恶意软件,它足以配得上“多面手”这个称号了。

 

传播与感染

Loapi木马家族的样本主要通过恶意广告活动来进行传播,当用户被重定向到攻击者所控制的恶意Web资源后,恶意文件将会被下载到目标用户的安卓手机上。我们目前已经发现了超过20个这样的恶意资源,它们有些指向的是热门的反病毒厂商官网,有些则指向的是著名的色情网站。如下图所示,Loapi会用很多反病毒产品或者成人内容App来伪装自己:
安装完成之后,恶意应用会尝试获取设备的管理员权限,并不停地申请权限直到用户点击“同意”为止。Trojan.AndroidOS.Loapi还会检测设备是否已经root过,但它并不会使用root权限。毫无疑问,它肯定会在将来的某些新模块中使用root权限。
获取到设备的管理员权限之后,恶意软件将会在菜单中隐藏自己的图标,或使用各种反病毒产品来伪装自己:

 

自我保护

Loapi会使用各种方法来防止用户调用设备管理器权限,如果用户尝试移除恶意软件的相关权限,恶意将会锁定屏幕并关闭设备管理器的设置窗口,然后执行以下代码:
除了这种较为常见的保护技术之外,我们还在其自我保护机制中发现了一个非常有趣的功能。该木马可以从远程C&C服务器接收一个恶意应用程序列表,它会使用这个列表来监控这些恶意软件的安装、启动和运行过程。如果其中一个App安装并启动之后,该木马便会显示一条伪造的信息并告知用户它成功检测到了一个恶意软件,并提示用户将其删除:
这条信息会不断地循环显示,所以如果用户点击“取消”之后,这条信息将会不断地重复弹出,直到用户同意删除应用程序为止。

 

层级架构

下面给出的是该木马的架构详情:


  1. 在初始阶段,恶意应用会从“assets”目录中加载一个文件,并使用Base64对其进行解码,最后使用异或操作将其解密。App签名哈希将作为密钥使用,并得到一个DEX文件(Payload),然后木马会使用ClassLoader来加载这个Payload。

  2. 在第二阶段,恶意应用会将目标设备信息以JSON格式数据发送至中央C&C服务器(hxxps://api-profit.com):

    服务器所返回的响应命令格式如下所示:

    其中,列表installs中包含的是需要下载并执行的模块ID;列表removes中包含的是需要删除的模块ID;列表domains中包含的是C&C服务器的域名;而reservedDomains则是一个包含了后备域名的列表;hic标记代表的是是否会给用户显示应用程序图标;列表dangerousPackages中包含的是该木马需要阻止安装和运行的应用程序(自我保护机制)。

在第三阶段,该木马的功能模块会被下载并初始化,接下来我们一起来看一看我们从攻击者的服务器中获取到了哪些攻击模块。

 

恶意广告模块

目的和功能:这个模块可以用来在目标设备上强制显示广告,其大致功能如下。
-显示视频广告和标语;
-打开指定的URL;
-在目标设备上创建快捷图标;
-显示通知;
-在热门社交网络中打开页面,例如Facebook和Instagram等;
-下载并安装其他应用程序;
我们从攻击者服务器中接收到的广告信息如下所示:
在处理这项任务时,应用程序会发送一个隐藏请求,其中包含了特殊的User-Agent以及指向Web页面hxxps://ronesio.xyz/advert/api/interim的引用,而这个地址将会重定向到一个包含了恶意广告的页面。

 

SMS短信模块

目的和功能:这个模块用来隐藏Web页面所要执行的Javascript代码,并强制用户订阅各种付费服务。大多数情况下,移动运营商会给用户发送短信以确认付费服务的订阅,但是这个木马的SMS短信模块会自动给这种确认短信发送回复确认。除此之外,这个模块还可以用来进行Web页面爬取。比如说,下面给出的就是其中一个Web页面爬取示例:

在我们的测试过程中(24小时),这个模块在目标设备上总共尝试打开了28000多个不同的URL地址。

 

代理模块

目的和功能:这个模块用来实现一个HTTP代理服务器,它允许攻击者给目标设备发送HTTP请求。这也就意味着,攻击者将能够利用目标设备来发动DDoS攻击。除此之外,该模块还能改变目标设备的网络连接类型,例如将移动数据修改成Wi-Fi。

 

挖矿模块(门罗币)

目的和功能:这个模块可以利用目标设备来挖门罗币,部分挖矿代码如下所示:

上述代码使用了下列参数:

-url:矿池地址,“stratum+tcp://xmr.pool.minergate.com:45560”
-this.user:用户名、以及从列表中选出的随机值(“lukasjeromemi@gmail.com”, “jjopajopaa@gmail.com”, “grishaobskyy@mail.ru”, “kimzheng@yandex.ru”, “hirt.brown@gmx.de”, “swiftjobs@rambler.ru”, “highboot1@mail333.com”, “jahram.abdi@yandex.com”, “goodearglen@inbox.ru”, girlfool@bk.ru)
-password:常量值“qwe”

 

总结

Loapi是目前一种极具代表性的安卓端恶意软件,它的开发者几乎已经将目前所有的攻击技术都融入在里面了。比如说,该木马会强制用户订阅付费服务、发送短信至任何号码、生成流量并通过恶意广告来赚钱、使用目标设备的计算能力进行挖矿、以及执行各种互联网攻击行为等等。不过,该木马唯一缺失的功能就是“网络间谍”功能,但这种木马所采用的模块化设计允许开发人员随时向其添加这种功能。

 

P.S.

在分析这款恶意软件的过程中,我们在一台测试设备上对其进行了动态分析,而下图显示的是两天之后的实验设备:
由于恶意软件的挖矿模块会不断生成流量并消耗计算资源,手机电池已经澎胀变形并撑破了手机后盖。

 

C&C服务器

ronesio.xyz (恶意广告模块)
api-profit.com:5210 (SMS短信模块和挖矿模块)
mnfioew.info (网络爬虫)
mp-app.info (代理模块)

 

域名

该木马用于下载恶意软件/Payload的Web资源列表如下所示:


推荐阅读
  • ejava,刘聪dejava
    本文目录一览:1、什么是Java?2、java ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 单点登录原理及实现方案详解
    本文详细介绍了单点登录的原理及实现方案,其中包括共享Session的方式,以及基于Redis的Session共享方案。同时,还分享了作者在应用环境中所遇到的问题和经验,希望对读者有所帮助。 ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • 本文介绍了RxJava在Android开发中的广泛应用以及其在事件总线(Event Bus)实现中的使用方法。RxJava是一种基于观察者模式的异步java库,可以提高开发效率、降低维护成本。通过RxJava,开发者可以实现事件的异步处理和链式操作。对于已经具备RxJava基础的开发者来说,本文将详细介绍如何利用RxJava实现事件总线,并提供了使用建议。 ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
  • {moduleinfo:{card_count:[{count_phone:1,count:1}],search_count:[{count_phone:4 ... [详细]
  • Harmony 与 Game Space 达成合作,在 Shard1 上扩展 Web3 游戏
    旧金山20 ... [详细]
  • 知识图谱表示概念:知识图谱是由一些相互连接的实体和他们的属性构成的。换句话说,知识图谱是由一条条知识组成,每条知识表示为一个SPO三元组(Subject-Predicate-Obj ... [详细]
  • SQL Server 2008 到底需要使用哪些端口?
    SQLServer2008到底需要使用哪些端口?-下面就来介绍下SQLServer2008中使用的端口有哪些:  首先,最常用最常见的就是1433端口。这个是数据库引擎的端口,如果 ... [详细]
  • Python开源库和第三方包的常用框架及库
    本文介绍了Python开源库和第三方包中常用的框架和库,包括Django、CubicWeb等。同时还整理了GitHub中最受欢迎的15个Python开源框架,涵盖了事件I/O、OLAP、Web开发、高性能网络通信、测试和爬虫等领域。 ... [详细]
  • OCR:用字符识别方法将形状翻译成计算机文字的过程Matlab:商业数学软件;CUDA:CUDA™是一种由NVIDIA推 ... [详细]
  • python+selenium十:基于原生selenium的二次封装fromseleniumimportwebdriverfromselenium.webdriv ... [详细]
author-avatar
54打工仔i_858
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有