Smishing僵尸网络在伊朗疯狂活动
2021-12-09 12:55:00 Author: www.4hou.com(查看原文) 阅读量:18 收藏

1.png

在过去的几个月里,多个伊朗媒体和社交网络都发布了警告,有攻击者正在假冒伊朗政府实施短信钓鱼活动。受害者点击一个恶意链接,输入他们的信用卡信息,几个小时内他们的钱就没了。值得注意的是,这些活动的攻击规模非常大。

与之前发现的攻击(例如Flubot木马通过注入代码和显示覆盖屏幕从设备中窃取敏感数据)不同,本研究中提出的恶意应用程序依靠社会工程来引诱受害者交出他们的信用卡详细信息。作案手法始终如一。受害者收到一条看似合法的短信,其中就包含一个假冒政府服务的网络钓鱼页面的链接,并诱使他们下载恶意的Android应用程序,然后为该服务支付少量费用。恶意应用程序不仅会收集受害者的信用卡号,还会访问他们的双因素身份验证短信,并将受害者的设备变成能够将类似网络钓鱼短信传播给其他潜在受害者的木马。

本文介绍了有关如何构建这些活动的技术细节、它们的商业模式,以及它们如何在使用简单工具的情况下屡屡得手。此外,调查显示,由于攻击者自身的OPSEC(操作安全)级别较低,受害者的数据不受保护,第三方可以自由访问。

尽管这些攻击伊朗网络警察的注意,但攻击仍在泛滥,几乎每天都在继续更新其恶意应用程序和底层基础设施。

感染链

1.jpg

攻击从一条钓鱼短信开始。在许多情况下,它是来自电子司法通知系统的消息。

2.jpg

发送给伊朗公民的钓鱼短信示例

该短信包含伊朗司法机构关于新文件/投诉的虚假通知,并建议点击链接查看完整的投诉。从短信链接到一个通常模仿官方政府网站的钓鱼网站。用户将收到针对他们的投诉通知,并要求提供个人信息,以便进入电子系统。

3.jpg

输入个人信息后,受害者被重定向到一个页面以下载恶意.apk文件。安装后,Android应用程序会显示一个虚假的Sana(伊朗电子司法通知系统)身份验证服务登录页面,要求提供受害者的手机号码和国民身份号码。它还通知受害者他们需要支付费用才能继续。这减少了怀疑并使操作看起来更合法。

s4.webp.jpg

伪造认证页面(左)和收集信用卡信息的网络钓鱼页面(右)

输入详细信息后,受害者将被重定向到付款页面。与大多数网络钓鱼页面类似,提交信用卡数据后,网站会显示“付款错误”消息,但钱已经不见了。攻击者将拥有受害者的信用信息,而Android应用程序仍然安装在受害者设备上的后门,这可以在需要信用卡公司绕过双因素或额外验证时促进额外的盗窃。

这些Android后门功能包括:

1.短信窃取。安装虚假应用程序后,受害者的所有短信都会立即被上传到攻击者的服务器。

隐藏以保持持久性。信用卡信息发送给攻击者后,应用程序可以隐藏其图标,使受害者难以控制或卸载该应用程序。

2.绕过双因素身份验证。攻击者可以访问受害者设备上的信用卡详细信息和短信,然后从受害者的银行账户中进行未经授权的提款,劫持双因素身份验证(一次性密码)。

3.僵尸网络。恶意软件可以通过FCM(FirebaseCloudMessaging)与C&C服务器通信,允许攻击者在受害者的设备上执行其他命令,例如窃取联系人和发送短信消息。

4.存在可以被电信公司屏蔽或追溯到攻击者的“恶意”号码。该应用程序可以使用自定义消息和从C&C服务器检索的电话号码列表向潜在受害者发送短信。这允许攻击者从典型用户的电话号码而不是从一个集中的地方传播钓鱼消息,而且不局限于一组容易被屏蔽的电话号码。这意味着,从技术上讲,不存在可以被电信公司屏蔽或追溯到攻击者的“恶意”号码。

下面的技术分析更详细地解释了这些后门功能是如何实现的。

Android应用程序

此攻击活动中典型的恶意Android应用程序是使用BasicforAndroid(b4a)构建的,这是AnywhereSoftware的一个开源项目,可帮助开发原生Android应用程序。

该恶意软件需要一些权限才能执行其恶意活动,包括访问短信和联系人以及互联网连接。它还需要GoogleFirebase定义的一些权限:RECEIVE用于接收推送通知,BIND_GET_INSTALL_REFERRER_SERVICE用于Firebase识别应用程序的安装位置。

s5.jpg

恶意应用程序示例的Android清单(7767659fab29de6412402d9ea38670b3d32b088fa29e7b457a770433845dc550)

首次启动时,应用程序请求4个权限:应用程序请求4个权限:PERMISSION_RECEIVE_SMS, PERMISSION_READ_SMS, PERMISSION_SEND_SMS, PERMISSION_READ_CONTACTS。对于每个权限,调用_activity_permissionresult函数:

s6.jpg

恶意软件通知面板有关新安装的木马并上传来自新感染设备的所有短信

首先,该函数创建某种类型的互斥锁:它检查文件set.txt是否存在,如果找不到则创建它。然后它从文件/assets/port.txt中读取端口(活动名称)。这个活动的面板URL在以后的整个应用程序中使用:

https://hardcoded_panel_domain/ + port + /panel.php.

该应用程序向面板发送受害者设备的Android ID,宣布新设备安装了该恶意软件。然后,它从设备收集所有的短信到文件SMS .txt,并将其上传到相同的面板与Android ID作为参数。为了启动钓鱼流程,恶意软件从assets/mon.bal文件加载布局,并从文件assets/url.txt中检索欺诈网站的URL。它在web视图中加载网络钓鱼URL,并将设备的android_id作为参数传递给此URL。这样,在受害者在网络钓鱼页面输入他的信用卡详细信息后,攻击者将android_id作为后续步骤的标识符,当他们需要从受害者的设备获取2FA短信并将其与信用卡号匹配时。

不用说,来自网络钓鱼页面的信用卡详细信息由PHP代码处理并直接发送给攻击者。

监视新的短信消息并将它们发送到C&C服务器

除了检索和上传短信消息到服务器之外,一旦安装了应用程序并授予访问短信的权限,恶意软件就会监视新的短信消息并将它们发送到C&C服务器。为此,他们使用以下接收器:

s7.jpg

描述短信接收器的恶意软件Android清单的一部分

新收到的短信消息正文和发件人号码以明文形式作为GET请求的参数发送到C&C服务器:

s8.jpg

恶意软件将新收到的短信发送到面板

在该恶意软件的一些后续版本中,有一段代码可以发送一个附加参数:标志是bank,表明短信来自任何银行。这个简单的检查是通过将body与波斯语中与“bank”相关的预定义单词列表进行匹配来完成的。

僵尸网络C&C通信

安装了恶意软件的设备将所有操作的输出发送到面板,并使用FCM(Firebase云消息传递)从C&C接收要运行的命令。

s9.jpg

来自恶意软件样本的Firebase配置

该恶意软件使用FCM主题消息传递,允许它向选择了特定主题的多个设备广播消息。每个特定示例中使用的主题是端口值。

s10.jpg

恶意软件根据应用程序的“端口”值订阅FCM主题

钓鱼短信传播

最有趣和最关键的功能之一是恶意软件能够将网络钓鱼活动传播给其他潜在受害者。C&C服务器发送“send”命令,应用程序从控制面板请求两个文件:

Message.oliver,即要发送的短信内容;

Numbers.oliver,发送此消息的号码列表。

如果恶意短信确实发送成功,受感染的设备会传播网络钓鱼消息并通知C&C服务器。这是通过将其与设备上的最后一条传出短信消息进行比较来完成的。

s11.jpg

处理发送短信并向服务器报告操作成功(红色)或失败(黄色)的恶意软件代码

这种僵尸网络功能可能会引起潜在受害者的怀疑,因为网络钓鱼短信来自某个住户电话号码,而不是政府服务通常使用的短号码。另一方面,这种方法不需要攻击者维护特定号码,可以在电话运营商级别阻止或追溯到攻击者。

以下是恶意软件支持的命令摘要:

12.png

FCMC&C命令的完整列表

基础设施

需要维护Web和移动基础设施的网络钓鱼操作非常罕见。为了执行这种恶意操作,攻击者需要维护几个不同的组件:

具有正确诱饵的网页,用于传播移动应用程序和具有相同诱饵主题的网络钓鱼页面,以收集信用卡数据;

存储被盗数据的面板;

用于C&C通信的Firebase域;

在代码和配置文件中定义了以上所有的Android应用程序;

钓鱼网页

负责钓鱼网站的网络基础设施主要利用免费域名注册服务和.tk、.ml、.cf、xyz、.gqTLD来注册他们试图冒充的服务的多个相似域名。这使他们几乎每天都可以免费更新域和URL,并且短期域减少了恶意URL被阻止的机会。钓鱼页面的源代码可在多个Telegram频道和Github上公开获取。此代码通常可根据用户的需要进行定制,并包含辅助操作员的附加功能。例如,它可能会在每次新受害者提交信用卡数据时发出警报。为此,处理被盗信用卡数据的PHP页面的源代码包含一个模板,可通过API自动将数据提交给Telegram木马:

13.jpg

与Telegram集成的钓鱼页面示例:处理所有用户数据的opt.php脚本的一部分将此数据发送到已配置的Telegram组

面板

主面板域在移动示例中进行了硬编码,但它们会随着时间的推移与应用程序一起发生变化。在某些活动中,该面板停留在同一个IP地址上,该地址也与网络钓鱼页面域共享,表明整个网络基础设施属于同一个攻击者:

14.jpg

窃取受害者数据

攻击者不仅从受害者那里窃取数据和金钱,而且他们完全缺乏OPSEC使得被盗的短信数据被泄露并在攻击者的面板上免费提供。其中一个小组Oliverdnssop[.]cf向它报告了10多个不同的活动。一个公开特定活动的文件和文件夹结构的opendir足以通过直接访问其他活动的URL来访问从任何其他活动的受害者那里窃取的数据,即使是那些未通过opendir直接公开的URL.

15.jpg

攻击者面板上一个特定端口(活动)上的Opendir

位于每个活动文件夹中的文件包括已经提到的文件:

Contacts.txt:从添加到僵尸网络的最后一个设备中窃取的所有联系人的列表;

Sms.txt:从木马窃取的所有短信;

Message.oliver:由木马传播的网络钓鱼消息;

Numbers.oliver:木马应向其发送此消息的电话号码列表;

On.oliver:所有在线木马的列表;

Users.oliver:参与此僵尸网络的android_id的完整列表。

泄露的数据显示,在不到10天的时间里,有超过1000名受害者从一个活动中安装了该应用程序,在同时运行的多个活动中,一个活动每天约有100名受害者。这意味着在这些活动的几个月内,受害者人数就达到数万。

16.jpg

商业模式和攻击者

在跟踪特定类型的恶意软件时,研究人员发现了一些其他活动,这些活动不仅冒充伊朗政府,还冒充伊朗社会保障服务、电话被盗或丢失时使用的设备跟踪系统、伊朗银行、约会和购物网站等。

17.jpg

假冒Divar购物网站及其翻译的一个钓鱼网站的截图(左),以及一个经过审查的虚假约会网站(右)

在过去的几个月中,研究人员总共发现了数百个不同的网络钓鱼Android应用程序。它们使用不同的代码库,但都包含相似的功能,并利用僵尸网络根据从FirebaseCloudMessaging接收到的命令将短信消息传播到其他设备的相同方法。

这些应用程序的包名如下:

com.psiphone3:研究人员在本文中讨论的应用程序,有50多个应用程序上传到VirusTotal,使用此类应用程序的活动于2021年10月上旬开始。

caco333.ca:最广泛的应用程序,自7月份开始传播以来,已有超过250种不同的应用程序在野外使用。

ir.PluTus.pluto包:自9月底以来在野外出现。

从技术角度来看,这两个应用程序的级别并不比我们前面讨论的复杂多少。其中一些应用程序包含更多的功能,可用于逃避和隐蔽,包括那些向C&C发送剪贴板数据,或使应用程序崩溃或静音通知,这样受害者就不会注意到传入的短信。

18.jpg

负责附加功能的恶意软件代码片段

本文翻译自:https://research.checkpoint.com/2021/smishing-botnets-going-viral-in-iran/如若转载,请注明原文地址


文章来源: https://www.4hou.com/posts/AKAz
如有侵权请联系:admin#unsafe.sh