扒一扒针对东亚的新型恶意软件 FLUHORSE( 二 )


 

扒一扒针对东亚的新型恶意软件 FLUHORSE

文章插图
恶意软件安装完成后 , 需要短信权限: 
 
扒一扒针对东亚的新型恶意软件 FLUHORSE

文章插图
ETC APK 请求 SMS 权限 
在此步骤中获得的权限将在受害者输入敏感数据后生效 。
恶意电子收费 APK
此应用程序仅包含 3 个窗口:
 
扒一扒针对东亚的新型恶意软件 FLUHORSE

文章插图
恶意 ETC APK 按顺序显示的窗口 
第一个窗口询问用户凭证 , 第二个窗口询问信用卡数据 。所有这些敏感数据都被泄露到恶意的 C&C 服务器 。接下来 , 第三个窗口要求用户等待 10 分钟 , 因为 " 系统繁忙 " 。希望用户关闭应用程序 , 或者至少在合理的时间内不被怀疑 。当用户被 " 系统繁忙 " 消息误导而产生虚假的安全感时 , 攻击者会执行所有必要的操作 , 即拦截所有带有 2FA 代码的短信 , 并利用被盗数据 。
这个诱饵应用程序的整个 GUI 看起来像是原始 ETC 应用程序的一个简单副本 , 用于收取通行费 。以下是恶意和合法应用程序入口窗口的可视化比较:
 
扒一扒针对东亚的新型恶意软件 FLUHORSE

文章插图
原始输入窗口 ( 左 ) 和恶意 APK 输入窗口 ( 右 ) 
原始应用程序不显示任何用于登录或输入用户凭据的字段 。相反 , 有一个单独的窗口用于此目的:
 
扒一扒针对东亚的新型恶意软件 FLUHORSE

文章插图
原始应用程序登录表格 
恶意 VPBank APK
此应用程序仅包含 2 个窗口:
 
扒一扒针对东亚的新型恶意软件 FLUHORSE

文章插图
恶意 VPBank APK 按顺序显示的窗口 
其原理与其他恶意 APK 相同:要求用户输入凭据 , 然后等待 15 分钟(而恶意 ETC APK 则为 10 分钟) 。在此期间 , 恶意软件拦截所有传入的 SMS , 从而为攻击者提供他们可能需要的所有 2FA 代码 。请注意 , 此应用程序不要求提供信用卡详细信息 。
恶意和合法应用程序登录窗口之间的比较:
 
扒一扒针对东亚的新型恶意软件 FLUHORSE

文章插图
原始登录窗口(左)和恶意 APK 输入窗口(右) 
如上所示 , 即使缺少某些 GUI 元素 , 恶意副本看起来也很好 。
恶意约会 APK
约会应用程序不包含任何窗口 。相反 , 它实际上充当了一个浏览器 , 引导用户进入钓鱼约会网站 。但是 , 窃取和处理数据的原理是一样的 。
我们没有与受害者交互的所有步骤的屏幕截图 , 因为在撰写本文时 , 负责处理从该 APK 窃取的数据的恶意服务器尚未激活 。根据代码 , 只有信用卡数据被盗 , 不需要凭证 。
 
扒一扒针对东亚的新型恶意软件 FLUHORSE

文章插图
APK 中显示的钓鱼交友网站窗口 
所示消息的翻译如下:
 
扒一扒针对东亚的新型恶意软件 FLUHORSE

文章插图
网络钓鱼网站上显示的消息翻译 。 
技术细节
与分析纯 Android 应用程序相比 , 分析基于 flutter 的应用程序需要一些中间步骤才能达到目的 。
深度分析
如上所述 , Flutter 使用自定义的虚拟环境来支持具有单一代码库的多平台开发 。开发过程中使用了一种名为 Dart 的特定编程语言 。分析 Flutter 平台代码变得更容易了 , 因为它是一个开源项目 , 但仍然是一个繁琐的过程 。
 
扒一扒针对东亚的新型恶意软件 FLUHORSE

文章插图
Flutter Github 页面中的 Dart 演示 
让我们来看看在处理 Flutter 运行时的特殊领域时遇到的一些复杂情况 。我们用哈希 2811f0426f23a7a3b6a8d8b7e1bcd79e495026f4dcdc1c2fd218097c98de684 解剖了一个 APK 。
ARM 的 Flutter 运行时使用自己的堆栈指针寄存器(R15)而不是内置的堆栈指针(SP) 。哪个寄存器用作堆栈指针在代码执行或反向工程过程中没有区别 。然而 , 这对反编译器来说有很大的不同 。由于寄存器的使用不规范 , 会生成错误且难看的伪代码 。


推荐阅读