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


文章插图
dart_obj_xref.py 修改 
然后 , 我们可以检查用 X27 处理的结构的反汇编程序列表 , 这些构造没有附加对 Dart 对象的注释引用 。我们可以通过 IDA 生成一个列表文件并使用 grep 实用程序进行 grep , 从而部分自动化这些操作 , 如下所示:
首先 , grep 查找具有 X27 的所有字符串 。然后 , 所有这些字符串都给了第二个 grep 命令 , 只打印那些不包含对 Dart 对象引用的字符串 。因此 , 我们只看到不受支持的 X27 引用 。
当检测到不受支持的 X27 构造时 , 我们将在脚本中添加支持该构造的代码 。经过几次迭代 , 我们终于获得了对 C&C 地址字符串的引用:
 

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

文章插图
对 C&C 地址字符串的引用 
让我们从 sub_70FD611C0C 开始检查这些函数 。简要概述显示 , 当与 C&C 服务器通信时 , 此函数打算使用路径为 "/addcontent3" 的 HTTP POST 方法来执行:
 
扒一扒针对东亚的新型恶意软件 FLUHORSE

文章插图
sub_70FD611C0C 函数的伪代码 
另一个 Dart 对象也有对这个函数的引用:
对 Dart 对象的引用
当我们遍历这些引用时 , 我们最终得到了带有以下代码的函数:
 
扒一扒针对东亚的新型恶意软件 FLUHORSE

文章插图
负责监听所有传入短信的代码 
此函数为所有传入的短信安装一个侦听器 。
为了确保我们做了正确的静态分析 , 我们在运行时在一个真实的设备上检查了这个函数 。实际上 , 我们捕获了一个发送到 C&C 服务器的 POST 请求 。
这是设备收到带有 "Fdsa" 文本的短信后的 C&C 请求示例:
 
扒一扒针对东亚的新型恶意软件 FLUHORSE

文章插图
因此 , 使用 sub_70FD611C0C 函数将短信泄露到 C&C 服务器 
除了被泄露的数据类型和服务器路径之外 , 函数 sub_70FD61EBC4 和 sub_70FD61EECC 看起来与已经分析的 sub_70FD 611C0C 非常相似 。这些函数分别使用路径 "/addcontent" 和 "/addcontent2" , 用于泄露受害者的凭据和支付卡信息 。
DEX 代码中没有服务器通信的痕迹 , 因此我们可以假设所有通信都位于应用程序的 Flutter 部分 。在分析了与命令控制服务器通信相关的所有功能之后 , 我们可以描述网络协议 。
C&C 通信
C&C 协议旨在将数据从受攻击设备发送到服务器 。没有命令可以在相反的方向上发送 , 即从服务器发送到受攻击设备 。HTTPS 用于传输数据 , 并且使用了几个终端 。
以下是我们在分析样本中遇到的每个终端的介绍:
 
扒一扒针对东亚的新型恶意软件 FLUHORSE

文章插图
用于约会恶意应用程序的网络诱饵变体使用了非常相似的协议 。这是一个泄露信用卡数据的示例: 
 
扒一扒针对东亚的新型恶意软件 FLUHORSE

文章插图
唯一的区别是正文格式:Web 版本使用 JSON 而不是 "name=value" 格式 。 
总结
这些恶意样本的技术实现由几个层组成 , 由于功能部分相对简单 , 我们可以得出结论 , 恶意软件开发人员没有在编程中投入太多精力 , 而是依赖 Flutter 作为开发平台 。开发人员的主要关注点是 GUI 。这种方法使他们能够创建危险且不易被发现的恶意应用程序 。使用 Flutter 的好处之一是其难以分析的特性使许多当代安全解决方案形同虚设 。

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


推荐阅读