简介
2019年3月,埃及曾发生过针对当地记者和人权人士的网络攻击事件。攻击者没有依靠传统的网络钓鱼方法或窃取凭据的恶意工具,而是利用了一种更隐蔽,更有效的方式来访问受害者的收件箱——这种方法被称为“ OAuth网络钓鱼”技术,简单来说是通过滥用第三方应用程序来使用Gmail或Outlook等邮件服务,进而获得对邮箱的完全访问权限。
图1:过去的OAuth网络钓鱼活动
最近,Checkpoint发现了此次行动中未公开过的一些恶意构成,其钓鱼途径多样且隐蔽,甚至包括了在Google Play Store中上架的恶意应用。
早期构架
攻击者伪造了多个网站,使用了“邮件”、“安全”或“验证”之类的诸多词来试图伪装成合法的服务网站。
对每个网站的可视化显示了它们之间的关联性,比如都是使用NameCheap注册、具有HTTPS证书、许多都解析为相同的IP地址。
这些地址共享相同的IPv4范围或网络块(185.125.228[.]0/22),属于一家名为MAROSNET的俄罗斯电信公司。
图2:活动基础结构的可视化
虽然现在无法访问这些网站,但是通过其中一些网站的公开扫描可以看到,除了与OAuth网络钓鱼有关之外,它们还托管了伪Outlook/Facebook页面,以试图窃取用户的登录凭证:
图3:Outlook仿冒页面示例
假冒页面会访问名为“ Tarsotelvab”的帐户的Github存储库,检索其使用的CSS文件。 “ Tarsotelvab”主要活跃于2017年,共有五个存储库:
图4:Tarsotelvab在GitHub上的存储库
其中一个存储库的CSS文件涉及到卡塔尔航空、半岛电视台和一家名为AlArab的卡塔尔报纸,可能是模拟这些网站进行单独的网络钓鱼活动,但目前没有发现此类攻击。
不过可以肯定的是,以前的钓鱼攻击和OAuth钓鱼攻击都使用了相同的构架,而且到现在仍被攻击者使用。
构架2.0
许多新注册且不相关的域都解析为与此活动有关的相同IP,寻找相关指标也并非易事,但是通过搜索命名规则类似、地址中有“邮件”或“验证”字样的域名,能帮助我们进行过滤。
其中一个域maillogin[.]live,有一个开放的目录,在5月和6月期间上传了文件,可以下载和查看其所有后端脚本:
图5:maillogin[.]live上的index目录
目录里包含了许多PHP脚本、API客户机、SQL文件和配置文件,对它们的研究能揭示其内部工作方式,在这个服务器上实现的功能以及其他可能实现的功能,还有关于幕后犯罪者的一些信息。比如控制操作由攻击者向一个PHP脚本发送命令来实现,该脚本还允许攻击者查询服务器上存储的数据,它还具有自毁功能,例如中止行动或删除从受害者那里收集的所有信息:
图6:删除函数
为了防止一些外来访问,脚本将对接收到的请求总数进行计数,如果数字超过30,则会发送邮件到地址“ [email protected] [.] com”,警告攻击者服务器上的可疑活动,并要求他们进行检查:
图7:异常活动警报功能
攻击者创建了多个数据库来存储来自服务器的统计数据、从受害者那里窃取的数据、被列入黑名单的用户代理,等等。每个数据库的凭证被硬编码到一些脚本中,比如用户名“drivebac_drivebk”、“mailveri_shorten”或“loginacc_ifish”:
图8:硬编码的数据库凭证
其中一个数据库甚至包括攻击者生成的钓鱼url列表,每个链接都提到了受害者的电子邮件地址。这暴露了钓鱼的可能目标,主要是来自埃及的著名记者、人权活动人士和非营利组织成员。
图9:生成的网络钓鱼URL
第三方间谍应用
除了暴露目标受害者之外,服务器中的文件还帮助我们了解了OAuth网络钓鱼攻击的全部流程。第三方应用程序的两个配置文件引用了一个名为“ capture.php”的脚本,托管在drivebackup [.] co上。虽然无法再访问此网站,但副本在maillogin [.] live中:
图10:OAuth网络钓鱼配置
“ capture.php”脚本负责将受害者带到第三方应用程序。在被授予请求的权限之后,应用程序将重定向回此脚本,该脚本将记录有关受害者的被盗信息,并最终重定向到谷歌。
图11:OAuth网络钓鱼入侵流程
我们发现了两个新的应用程序,要求获得受害者的基本信息和邮件地址的访问权限,还可以无限制地访问Google Drive:
图12:新发现的OAuth Google应用程序
单击应用程序名称将显示开发人员的详细信息,开发人员的邮件地址与我们在后端脚本中观察到的邮件地址相同:
图13:开发人员信息
应用程序会访问Gmail收件箱,但攻击者似乎并不满足于只查看电子邮件,还试图将范围扩大到个人文件。
除Gmail外,其他邮件服务也成为了目标,“Mail Sender”是另一个Outlook外部应用程序,于2018年1月创建的:
图14:OAuth Outlook应用程序
除此以外,关于drivebackup [.co]的信息知之甚少。
间谍程序v1.apk
早在2月份,VirusTotal对此Android应用程序只检测出了一项,称为“ v1.apk”:
图15:Android应用程序
此样本没有图标,其构建类型设置为“ debug”,内部版本号设置为“ 1.0”,表明它仍处于早期测试阶段。
图16:应用程序的内部配置
当应用程序运行时,会要求用户输入激活密钥,然后将激活密钥发送到drivebackup[.]co。这可能是为了过滤用户,因为密钥必须经过服务器的批准。
图17:应用程序的界面
密钥获得批准后,应用程序实施其唯一功能:收集有关用户位置的信息。设备的确切坐标、坐标精度、本地时间和电池状态也都上传到drivebackup [.] co:
图18:应用程序收集的信息
此功能本身非恶意,但与其他功能结合使用时,会引发许多危险。
图19:应用程序的图标和名称
该应用程序称自己为“iLoud 200%”,其主要活动的名称为“iLoud”,并向用户显示消息称“ringtone is now 100% louder”,应用程序会伪装成增加设备容量的服务。
另一个警告标志是收集坐标的服务,会在设备启动时自动运行。如果由于某种原因停止,则将广播发送到另一个类,后者负责重新启动该服务并确保其继续运行:
图20:服务功能
我们意识到此应用程序指在随时监控安装在其上的设备的位置,并隐藏其真实意图,它的创建目的应该是出于监视受害者。
v1.apk更多信息
“ v1.apk”于1月上传到indexy [.] org:
图21:应用程序的上传时间戳
indexy [.] org上有一个管理此应用程序的管理面板,该应用程序在登录页面中称为“ I.Track”:
图22:C&C Web登录面板
面板需要的许多JS和CSS文件都丢失了,无法加载,它的大部分资源需要从drivebackup [.] co中导入:
图23:源代码指向drivebackup [.] co
目录“styles”包含了登录后可供管理员使用的页面的HTML模板:
图24:indexy [.] org上的其他部件
检查HTML页面的名称可以看出面板的执行操作:添加目标、控制现有目标并跟踪所有目标。其中一个名为“ trackgroup.html”的页面将初始化Google地图,向其中添加收集的坐标,定义的默认位置放大为:
图25:嵌入的初始坐标
这些坐标指向开罗的一座未命名建筑,尚不清楚它是否是开发人员所在地,还是因为它靠近受监视目标所设的一个默认位置:
图26:坐标的Google Maps视图
另外一个有趣的发现是在“styles”下的“ dist”目录中,该目录包含AdminLTE引导模板默认提供的图像,还包含两个其他图标,分别称为“ logo.png”和“ logo_ifish.png”,提到了“ iFish”一词:
图27:“ dist”目录下的iFish图标
“iFish”这个词以前出现在maillogin[.]live中用于访问数据库的一个凭据对中,它可能指的是项目的内部名称:
图28:过去出现的iFish
indexy[.]org还与一个名为“ IndexY”的Android应用程序有关。
间谍程序IndexY
“ IndexY”在Google Play中的下载量超过5000:
图29:Google Play上的IndexY应用程序
IndexY类似于TrueCaller,允许用户查找电话号码或其所有者的详细信息。IndexY在说明中声称拥有一个超过1.6亿个电话号码的大型数据库,数据库似乎只针对讲阿拉伯语的用户。
包名称中提到“ Index Masr”,意思是“ Index Egypt”。此外,IndexY用户的默认国家/地区显示该服务主要针对埃及人:
图30:嵌入的位置配置
安装该应用程序后,它可以访问用户的联系人和通话记录,但该应用程序不仅可以从通话记录中导出电话号码,还可以记录每个通话的方向(来电,去电或未接来电),接听日期及其持续时间:
图31:应用程序记录的呼叫信息
IndexY的“styles”目录
与先前的情况类似,IndexY有一个管理面板来控制。“styles”目录可以查看管理员登录后所获得页面的HTML模板:
图32:indexy [.] org的文件夹视图
该目录包含2016年上载的HTML页面,其中两个甚至与位置跟踪面板中找到并重用的页面相同。
页面显示,管理员可以存储和检查从用户收集的信息,包括每个国家的用户数量列表、详细的通话记录,甚至包括用户的国际通话列表:
图33:显示信息
基于此可以判断,IndexY背后的运营人员在滥用访问权限,他们不只是存储应用程序收集的数据,还会仔细分析数据,并在其中查找可疑活动,这远远超出了像TrueCaller这类服务的范围。
IndexY跟钓鱼活动的目的可能相同,都是为了监视埃及的一些人物。
归因线索
有线索表明此次攻击也来自埃及,发现分为三类:
· 线索一:国际特赦组织
大赦国际报告中的域名有类似特征,但只有其中一个站点(account-login[.])有WHOIS记录,详细记录了注册者的信息,记录显示登记人来自埃及:
图34:WHOIS信息
此外,注册人的姓名和组织都提到MCIT,疑似是埃及通信和信息技术部的缩写。
另外还有诸如Telegram小组“ el7arkaelsha3bea”(埃及语“大众运动”的音译),似乎是为寻求加入“反对埃及政权的社会运动”的激进分子而设计的。
· 线索二:开放目录
maillogin [.] live中的脚本有许多语法错误和拼写错误,有的可以泄露攻击者的来历,比如使用“ Puffering”(原意应是“ Buffering”),但阿拉伯字母没有“ P”音。
还有配置文件默认时区设置为开罗时:
图35:代码中的预定义默认时区
· 线索三:IndexY开发人员
Google Play商店中IndexY的最新版本号是11.08,前10个版本并不总是与indexy [.] org通信,还有诸如arabindex [.] info、indexmasr [.] com、servegates [.] com等网址,所有网站都解析为相同的IP地址,WHOIS记录表明它们注册的邮件地址相同,且注册人可能来自埃及。
结论
此次行动背后的攻击者可能由埃及政府支持,目标包括政治和社会活动家,知名新闻工作者以及埃及的非营利组织成员,监控途径多样。