-
-
[翻译]俄罗斯人黑俄罗斯人?正经应用外衣下的恶意广告木马Ewind及其背后的始作俑者
-
发表于: 2017-4-15 21:29 4936
-
2016年中以来,我们已观察到多个“Ewind”(一个Android恶意广告软件家族)的新样本。这个adware(恶意广告软件)背后的actor(注:指恶意软件作者,可理解为始作俑者、活跃者)利用一种简单而又有效的方法—他们下载一个流行的、合法的Android应用,反编译它,添加恶意例程,然后重新打包成Android应用程序包(APK)。然后他们使用自己面向俄语的Android应用程序网站来分发这个木马化了的Android应用。
Ewind盯上了一些流行Android应用程序,其中包括:GTA Vice City, AVG cleaner, Minecraft – Pocket Edition, Avast! Ransomware Removal, VKontakte,和Opera Mobile.
虽然Ewind从根本上讲算是adware,通过在受害者设备上显示广告来获利,但它还拥有其他功能,如收集设备数据,以及向攻击者转发SMS消息。这个adware木马实际上潜在地使得可以远程完全操控被感染的设备。
我们相信此应用,被注入广告,应用站点以及攻击者都来自俄罗斯。
我们在AutoFocus(a1aK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2H3j5h3I4G2j5h3I4@1L8$3&6W2N6s2N6G2M7X3E0K6i4K6u0W2j5$3!0E0i4K6u0r3M7s2u0G2k6s2g2U0N6s2y4Q4x3V1k6K6k6h3y4#2M7X3g2Q4x3X3c8@1K9r3g2Q4x3X3c8F1k6i4c8%4L8%4u0C8i4K6u0r3M7%4g2T1M7$3y4J5K9i4m8@1K9h3!0F1M7#2)9J5c8X3q4#2N6r3!0X3L8$3y4#2M7#2!0q4c8W2!0n7b7#2)9^5z5g2!0q4z5q4!0m8y4#2)9^5x3W2!0q4y4g2!0m8c8W2)9&6c8W2!0q4y4g2)9^5z5q4!0n7x3q4!0q4y4g2!0m8y4q4!0m8y4#2!0q4z5g2)9^5y4#2)9^5c8W2!0q4z5g2)9^5y4#2)9^5c8q4!0q4y4W2)9^5z5g2)9&6x3#2!0q4y4g2)9^5b7#2)9^5y4g2!0q4y4#2)9&6b7g2)9^5y4p5q4b7d9#2!0q4c8W2!0n7b7#2)9^5b7#2!0q4y4#2)9&6y4q4!0m8z5q4!0q4y4#2)9&6b7W2!0n7z5q4!0q4y4g2)9&6x3q4)9^5b7#2!0q4y4#2)9&6b7g2)9^5y4q4!0q4y4g2)9^5c8W2!0m8c8W2!0q4y4#2)9&6y4W2)9&6x3g2!0q4z5q4!0m8c8W2)9^5x3g2!0q4y4q4!0n7z5g2!0m8y4W2!0q4y4#2!0m8c8q4!0n7c8g2!0q4y4g2)9&6x3q4)9^5c8q4!0q4x3#2)9^5x3q4)9^5x3W2!0q4y4q4!0n7c8q4!0n7c8W2!0q4y4#2)9&6y4q4!0m8z5q4!0q4y4g2)9&6x3g2!0n7c8q4!0q4y4q4!0n7b7W2!0m8y4q4!0q4z5q4!0m8x3g2)9^5b7#2!0q4y4g2!0n7y4#2!0m8y4g2!0q4y4g2)9^5y4g2!0n7y4#2!0q4x3W2)9^5x3q4)9&6b7$3E0W2P5i4c8G2L8$3I4Q4c8e0u0Q4z5o6m8Q4z5f1c8Q4c8f1k6Q4b7V1y4Q4z5p5y4Q4c8e0k6Q4z5o6S2Q4z5e0q4Q4c8e0c8Q4b7V1u0Q4b7f1y4Q4c8e0S2Q4b7f1k6Q4z5o6k6Q4c8e0g2Q4z5o6S2Q4b7f1u0Q4c8e0c8Q4b7U0S2Q4z5o6m8Q4c8e0c8Q4b7V1q4Q4z5f1u0Q4c8e0N6Q4z5o6W2Q4b7U0W2Q4c8e0k6Q4z5f1y4Q4z5o6W2Q4c8e0N6Q4z5f1q4Q4z5o6c8Q4c8e0N6Q4b7f1c8Q4b7V1g2Q4c8e0g2Q4z5e0m8Q4z5p5c8Q4c8e0S2Q4b7f1k6Q4z5o6q4Q4c8e0c8Q4b7U0W2Q4b7e0k6Q4c8e0g2Q4z5o6g2Q4z5o6y4Q4c8e0N6Q4b7U0c8Q4b7e0m8Q4c8e0y4Q4z5o6m8Q4z5o6u0Q4c8e0S2Q4b7f1k6Q4z5o6q4Q4c8e0c8Q4b7U0W2Q4b7e0k6Q4c8e0c8Q4b7V1c8Q4z5p5c8Q4c8e0c8Q4b7V1q4Q4z5p5g2Q4c8e0k6Q4z5o6W2Q4z5o6m8Q4c8e0k6Q4z5f1y4Q4z5o6W2Q4c8e0k6Q4b7e0m8Q4b7U0N6Q4c8e0g2Q4z5e0y4Q4z5o6q4Q4c8e0c8Q4b7U0S2Q4b7f1c8Q4c8e0N6Q4z5f1q4Q4z5o6c8Q4c8e0u0Q4z5o6m8Q4z5f1y4y4c8g2c8m8i4K6u0V1d9f1&6r3i4K6u0r3b7g2m8b7i4K6u0W2f1W2y4m8i4@1f1J5i4K6R3H3i4K6W2p5i4@1f1@1i4@1t1^5i4@1q4p5i4@1g2r3i4@1u0o6i4K6W2m8
owner=CN=app
issuer=CN=app
md5=962C0C32705B3623CBC4574E15649948
sha1=405E03DF2194D1BC0DDBFF8057F634B5C40CC2BD
sha256=F9B5169DEB4EAB19E5D50EAEAB664E3BCC598F201F87F3ED33DF9D4095BAE008
注意到许多APK包括Anti-Virus和其他知名应用程序的名字,我们就更怀疑了。
尽管Ewind有多种变体,但我们选择分析重打包“AVG Cleaner”的样本。
9c61616a66918820c936297d930f22df5832063d6e5fc2bea7576f873e7a5cf3
该特定样本是从承载多个Android应用商店的IP地址88.99.112[.]169下载的。
可以很容易地识别出被添加进AndroidManifest.xml中的木马组件,因为它们都以“b93478b8cdba429894e2a63b70766f91”开头:
b93478b8cdba429894e2a63b70766f91.ads.Receiver
b93478b8cdba429894e2a63b70766f91.ads.admin.AdminReceiver
b93478b8cdba429894e2a63b70766f91.ads.AdDialogActivity
b93478b8cdba429894e2a63b70766f91.ads.AdActivity
b93478b8cdba429894e2a63b70766f91.ads.admin.AdminActivity
b93478b8cdba429894e2a63b70766f91.ads.services.MonitorService
b93478b8cdba429894e2a63b70766f91.ads.services.SystemService
Ewind为以下事件注册ads.Receiver:
启动完成(“android.intent.action.BOOT_COMPLETED”)
屏幕关闭(“android.intent.action.SCREEN_OFF”)
用户出现(“android.intent.action.USER_PRESENT”)
ads.Receiver第一次被调用时,它从设备收集环境信息,并将其发送到Command-and-Control(C2)服务器。收集的信息可以在下面的图1中看到。Ewind会为每个安装生成唯一的ID,并将其作为URL参数传输。URL参数“type=init”表示首次运行。
图1-Ewind将受害者信息传送给C2
C2使用以下命令语法响应HTTP纯文本:
Ewind将每个接收的命令存储在名为“main”的本地SQLite数据库中,然后按顺序处理。完成每个命令后,Ewind将结果报告给C2。结果用URL参数“type=response”标记(图2)。
图2-受害者对C2命令的响应
我们观察到命令“adminActivate”仅在初始化阶段接收到。该命令指示Ewind打开“AdminActivity”,其试图欺骗受害者授予Ewind设备管理员权限。消息的翻译是对应用“点击激活”以正确完成安装(图3)。
图3-Ewind试图欺骗用户授予管理员权限
还不清楚为什么Ewind试图获得设备管理员权限。成为设备管理员的好处是,对于非技术用户来说卸载特洛伊木马程序有点困难。观察到的另一种技术是,在设备管理屏幕中单击停止激活时,Ewind使用自身能力将屏幕锁定5秒,解锁时将屏幕切换回常规设置屏幕。
虽然这应该使得更难卸载Ewind,但在这个具体的样本中,有一个bug阻止了“锁定屏幕”功能的调用。为了锁定屏幕,Ewind创建AsyncTask(注:异步任务),它无限循环。Ewind无法再次执行此AsyncTask,直到第一个完成(Android平台限制)。
有趣的是,虽然Ewind会检查手机是否被监禁,但我们没有观察到利用这种功能的任何代码路径。
看起来,Ewind并不仅用于展示广告。Ewind有一个名为“ads.Monitor”的服务,它监控前台应用程序(此功能仅适用于Android 4.4及更低版本,因为Android更高版本限制了“getRunningTasks”API的使用)。如果应用程序的软件包名称与Ewind的“目标应用程序”(列表在7dfK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6H3j5h3&6Q4x3X3c8#2L8X3W2@1y4o6u0Q4x3V1k6A6L8$3y4K6i4K6u0r3j5X3I4G2j5W2)9J5c8X3#2S2M7%4c8W2M7W2)9J5c8X3g2%4K9h3&6V1i4K6u0r3j5i4m8H3M7#2)9J5k6h3y4K6N6W2!0q4c8W2!0n7b7#2)9^5z5g2!0q4y4q4!0n7z5q4!0m8c8q4!0q4y4g2)9^5z5q4)9&6y4#2!0q4y4g2)9^5y4#2!0n7b7g2!0q4y4#2)9&6b7g2)9^5y4q4!0q4z5q4!0n7c8q4!0m8c8W2!0q4y4q4!0n7b7W2!0n7y4W2!0q4y4g2)9^5b7#2)9^5y4g2!0q4y4#2)9&6b7W2!0n7z5q4!0q4y4g2)9^5b7#2!0n7z5g2!0q4z5g2)9^5y4g2)9^5c8q4!0q4c8W2!0n7b7#2)9^5b7@1g2%4K9h3&6V1i4@1f1@1i4@1u0o6i4K6W2m8i4@1f1#2i4K6V1H3i4K6V1I4b7K6u0Q4c8e0g2Q4z5p5k6Q4z5e0q4Q4c8e0W2Q4z5o6m8Q4z5o6q4Q4c8e0c8Q4b7U0S2Q4z5o6m8Q4c8e0c8Q4b7U0S2Q4b7f1q4Q4c8e0u0Q4z5o6m8Q4z5f1y4@1P5i4m8W2i4K6y4p5k6i4k6W2L8Y4c8Q4c8e0u0Q4z5o6m8Q4z5f1c8Q4c8f1k6Q4b7V1y4Q4z5o6S2Q4c8e0g2Q4z5f1u0Q4b7V1f1@1i4@1g2r3i4@1u0o6i4K6R3&6i4@1f1K6i4K6R3H3i4K6R3J5i4@1f1#2i4@1p5$3i4K6R3J5i4@1f1$3i4K6W2q4i4K6W2o6i4@1f1#2i4@1u0m8i4K6V1@1i4@1f1%4i4K6V1@1i4@1p5^5i4@1f1%4i4@1p5^5i4K6S2n7i4@1f1#2i4@1u0m8i4K6S2r3i4@1f1@1i4@1t1^5i4K6S2p5i4@1f1#2i4K6R3$3i4K6S2p5i4@1f1#2i4K6W2o6i4@1p5^5i4@1f1#2i4K6R3&6i4K6S2p5i4@1f1#2i4K6S2r3i4@1t1H3i4@1g2r3i4@1u0o6i4K6S2o6c8i4N6A6L8X3c8Q4c8e0c8Q4b7U0W2Q4z5f1k6Q4c8e0c8Q4b7V1y4Q4z5f1q4Q4c8e0g2Q4z5p5k6Q4z5e0q4Q4c8e0W2Q4z5o6m8Q4z5o6q4Q4c8e0c8Q4b7U0S2Q4z5o6m8Q4c8e0c8Q4b7U0S2Q4b7f1q4Q4c8e0u0Q4z5o6m8Q4z5f1y4K6N6r3!0H3b7i4m8H3i4@1f1J5i4K6R3H3i4K6W2p5i4@1f1@1i4@1u0m8i4K6S2n7i4@1f1@1i4@1u0n7i4@1t1$3i4@1f1K6i4K6R3H3i4K6R3J5i4@1f1#2i4K6R3#2i4@1t1$3i4@1f1@1i4@1u0n7i4K6V1$3i4@1f1@1i4@1u0m8i4K6S2n7i4@1f1@1i4@1u0n7i4@1t1$3i4@1f1#2i4K6S2o6i4K6R3#2i4@1f1$3i4K6S2n7i4@1q4o6i4@1f1J5i4K6R3H3i4K6W2o6N6i4y4W2M7W2m8J5k6i4y4W2L8Y4c8Q4c8e0u0Q4z5o6m8Q4z5f1c8Q4c8f1k6Q4b7V1y4Q4z5p5y4Q4c8e0u0Q4z5o6m8Q4z5f1y4K6j5%4u0W2k6h3&6a6k6X3k6Q4c8e0u0Q4z5o6m8Q4z5f1c8Q4c8f1k6Q4b7V1y4Q4z5p5y4Q4c8e0u0Q4z5o6m8Q4z5f1y4A6L8Y4y4@1j5h3I4D9i4@1f1J5i4K6R3H3i4K6W2p5i4@1g2r3i4@1u0o6i4K6R3^5i4@1f1#2i4@1t1%4i4@1t1J5i4@1f1%4i4@1u0n7i4K6S2r3i4@1f1#2i4K6W2o6i4@1p5^5i4@1f1^5i4@1q4q4i4@1u0q4i4@1f1#2i4@1p5@1i4K6R3%4i4@1f1@1i4@1t1^5i4K6S2m8i4@1f1%4i4K6W2m8i4K6R3@1i4@1f1#2i4K6S2o6i4K6R3#2i4@1f1%4i4K6W2m8i4K6R3@1i4@1g2r3i4@1u0o6i4K6R3&6i4@1g2r3i4@1u0o6i4K6S2o6i4@1f1J5i4K6R3H3i4K6W2o6N6h3&6A6L8Y4y4@1j5h3I4D9i4@1f1J5i4K6R3H3i4K6W2p5i4@1g2r3i4@1u0o6i4K6S2o6i4@1f1J5i4K6R3H3i4K6W2o6j5h3c8E0K9h3&6m8j5%4c8A6N6X3q4@1k6h3c8Q4c8e0u0Q4z5o6m8Q4z5f1c8Q4c8e0g2Q4z5e0u0Q4z5p5y4Q4c8e0u0Q4z5o6m8Q4z5f1y4S2k6r3#2A6L8V1c8A6M7$3q4T1L8r3g2V1i4@1f1J5i4K6R3H3i4K6W2p5i4@1g2r3i4@1u0o6i4K6S2o6i4@1f1J5i4K6R3H3i4K6W2o6j5$3I4A6j5$3E0Q4c8e0u0Q4z5o6m8Q4z5f1c8Q4c8f1k6Q4b7V1y4Q4z5o6S2Q4c8e0N6Q4z5e0c8Q4b7e0S2Q4c8e0k6Q4z5o6S2Q4b7U0N6Q4c8e0N6Q4z5o6u0Q4b7U0W2Q4c8e0g2Q4z5o6N6Q4b7V1u0Q4c8e0k6Q4z5e0S2Q4b7V1g2Q4c8e0N6Q4b7e0c8Q4b7V1q4Q4c8e0N6Q4z5f1q4Q4z5o6c8Q4c8e0g2Q4b7U0W2Q4b7V1k6Q4c8e0g2Q4z5e0q4Q4z5p5q4Q4c8e0k6Q4z5e0N6Q4b7U0k6Q4c8f1k6Q4b7V1y4Q4z5o6W2Q4c8e0u0Q4z5o6m8Q4z5f1y4J5k6h3y4W2K9i4k6W2i4K6u0W2M7$3#2K6i4@1f1J5i4K6R3H3i4K6W2p5i4@1f1#2i4K6V1J5i4K6S2o6i4@1f1J5i4K6R3H3i4K6W2o6M7$3#2K6i4K6u0W2k6X3W2D9N6r3g2J5i4@1f1J5i4K6R3H3i4K6W2p5i4@1f1K6i4K6R3H3i4K6R3J5
图4-Ewind将应用程序活动报告给C2
服务器会响应(图5),以指示Ewind执行一个动作—通常是显示一个广告。服务器还提供要显示的广告的URL。该广告使用简单的webview显示。
图5-C2命令受害者显示广告
在我们的测试中,只有在金融相关的应用程序处于前台时,受害者才会收到一个显示广告的命令(没有一个目标浏览器在前台时接收到命令)。另外,无论应用程序启动还是停止,它总是触发命令“showFullScreen”。该命令的参数是“URL”(是广告的)和“delay”(Ewind要等待多久才显示广告(秒))。
发送给我们实验受害者的广告都只来自于网址mobincome[.]org/banners/banner-720×1184-24.html(图6)。点击后,它会尝试从应用程序商店androidsky[.]ru下载应用程序“mobCoin”。在我们分析Ewind示例时,下载链接不起作用了。我们发现了一个Ewind木马化了的MobCoin应用程序样本(393ffeceae27421500c54e1cf29658869699095e5bca7b39100bf5f5ca90856b),不过不清楚这是否是以前由androidsky[.]ru提供的文件。
图6-Ewind显示的广告
最后一种通信类型是“type=timer”,用作保持链路功能。Ewind以预定义的间隔(通常为180上下随机秒数)发送,请求如下图7所示。通常,除了保持活动功能之外,这个请求没什么意思,但是我们观察到,每天一次,服务器将使用更新的目标应用程序列表来响应此请求。
图7-Ewind发送的Keep-alive请求
Ewind可被指示使用“smsFilters”命令转发任何符合过滤条件的SMS消息到C2。过滤器包括匹配电话号码或消息文本。如果从匹配的电话号码或匹配的文本收到消息,Ewind会向C2发送包含完整短信和发送电话号码的请求事件“receive.sms”。如果电话号码和文本过滤器都匹配,Ewind会通过事件“sms.filter”通知C2。
此功能可能旨在通过SMS破坏双因素身份验证。我们没有观察到使用此命令的actors(注:如前所述指作者),但是当我们手动将过滤器插入Ewind受害者数据库时,我们可以观察到它生效了。
图-receive.sms
如果包名称与目标应用程序列表匹配,则每次应用程序处于前台或后台时,Ewind都会通知C2。C2回复一个命令给Ewind执行,通常是显示一个广告。目标应用程序列表在首次执行Ewind时由服务器初始化,并且每天更新。该列表存储在{data_dir_of_the_app}/shared_prefs/a5ca9525-c9ff-4a1d-bb42-87fed1ea0117.xml。
就我们所看到的,目标应用程序列表主要包含浏览器和金融相关的应用程序。我们还注意到,在浏览器执行时,没(至少现在)看到C2发送命令到Ewind,而只有金融应用程序被上报了。
Ewind使用简单的与其共享preferences–“a5ca9525-c9ff-4a1d-bb42-87fed1ea0117”的文件名的XOR 来混淆了其部分字符串。在去掉混淆后,我们得到以下一个字符串数组的json片段:
以下的Ewind中的命令列表既包括我们看到生效的功能,还包括我们没观察到被使用的:
showFullscreen - 显示广告
showDialog - 显示一个对话框,点击后会打开一个广告
showNotification - 在通知栏中显示通知
createShortcut - 下载APK并创建一个快捷方式
openUrl - 使用webview打开一个URL
changeTimerInterval - 更改保持活动ping之间的间隔
sleep - 休眠一段时间
getInstalledApps - 检索已安装应用程序的列表
changeMonitoringApps - 定义目标应用程序列表
wifiToMobile - 启用/禁用连接,不过似乎什么都没做
openUrlInBackground - 在后台打开一个URL
webClick - 在特定网页的webview中执行提供的javascript