导语:趋势科技最近发现了第一个由 Kotlin 语言编写的 Android 恶意应用程序,该应用程序可以远程控制用户手机、窃取短信、自动订阅收费短信服务。

趋势科技最近发现了第一个由 Kotlin 语言编写的 Android  恶意应用程序,该应用程序可以远程控制用户手机、窃取短信、自动订阅收费短信服务。

发现过程

本次由趋势科技发现的恶意应用已被他们定义为ANDROIDOS_BKOTKLIND.HRX,截至目前,它似乎是第一个使用Kotlin语言编写的恶意应用程序。研究人员是在Google Play上找到的恶意应用示例——Swift Cleaner中发现的,Swift Cleaner是一款用于清理和优化Android设备的工具。截止发现时,该恶意应用程序已经被下载安装了5000次。该恶意程序可以执行远程命令,信息窃取,短信发送,URL转发和点击欺诈。最重要的是,在未经许可的情况下自动为用户订阅收费短信服务。

Figure_1.png

伪装成Swift Cleaner的恶意应用程序

为什么想到使用Kotlin开发恶意软件

Kotlin 是一个基于 JVM 的新的编程语言,由JetBrains开发。

Kotlin非常简洁,大大减少了样板代码的数量,且非常安全,因为它避免了诸如空指针异常等整个类的错误。且Kotlin可以编译成Java字节码,也可以编译成JavaScript,方便在没有JVM的设备上运行,目前Kotlin已正式成为Android官方支持开发语言。

而且Google于2017年5月宣布Kotlin为编写Android应用程序的第一语言,这意味着取代Java只是时间问题。自Kotlin发布以来,17%的Android Studio项目开始使用编程语言,目前Twitter,Pinterest和Netflix都是使用的是Kotlin。然而,Kotlin的上述功能可以在创建恶意软件时发挥出什么威力,却不得而知。

Figure_2.png

使用Kotlin开发的恶意应用程序的程序包结构

技术分析

在启动Swift Cleaner后,恶意软件会将受害者的设备信息发送到其远程服务器,并启动后台服务以从其远程C&C服务器获取攻击任务。当设备第一次被感染时,恶意软件会将短信发送到它的C&C服务器提供的指定号码。

Figure_3.png

恶意应用程序通过短信发送受害者的设备信息

恶意软件收到SMS命令后,远程服务器将执行URL转发并点击广告欺诈。

Figure_4.png

C&C服务器通过网络发送任务(左图),正在进程中的恶意软件代码片段(右图)

在其点击欺诈例程中,恶意软件会收到执行WAP协议任务的远程命令。在此之后,将进行恶意Javascript代码的注入,然后替换正则表达式,这是一系列定义搜索模式的字符。这将允许恶意行为者在特定的搜索字符串中解析广告的HTML代码。随后,它会在后台默默地打开设备的移动数据,解析图像base64代码,破解CAPTCHA,并将完成的任务发送到远程服务器。

Figure_5.png

恶意应用程序将完成的任务上传到C&C服务器

恶意软件还可以将用户服务提供商的信息以及登录信息和验证码图片上传到C&C服务器。一旦上传,C&C服务器就会绕过用户自动处理短信订阅服务,从而产生流量欺诈。

Figure_6.jpg

恶意应用程序上传将短信订阅服务的令牌

Figure_7.png

恶意应用程序上传用于短信订阅服务的CAPTCHA图片

IoCs

360截图16600904877885.jpg

C&C服务器

hxxp://adx[.]gmpmobi[.]com

hxxp://52[.]76[.]80[.]41

源链接

Hacking more

...