GodFather Android 恶意软件分析
本文分析了 GodFather Android 恶意软件。该恶意软件不断以各种形式出现,主要针对银行和加密货币应用,以窃取用户的资金和敏感信息。
我一直对恶意软件分析着迷。这项工作不仅展示了黑客在绕过操作系统和应用防御机制方面的独创性,也展示了他们如何欺骗用户以窃取关键数据。
分析恶意软件需要一大杯咖啡、敏锐的分析能力,以及合适的逆向工程工具来破解应用中的谜题。
本文将分析 GodFather 恶意软件,它不断以各种形式出现,主要针对银行和加密货币应用。
当我们在设备上运行 GodFather 恶意软件时,它会执行恶意操作,例如转账,以及收集电话号码、已安装应用列表和电池信息等设备信息。此外,通过利用在受感染设备上获得的权限,该恶意软件可以在用户不知情的情况下拦截短信、使用 VNC 操控设备屏幕、转接电话以及打开 URL。
本次分析将主要使用 Ostorlab 平台,因为它可以让我们:
- 获取 APK 的源代码和汇编代码。
- 将 Manifest 和资源文件转换为可读的文本格式。
- 获取原生代码(应用中的 .so 文件)的汇编代码。
- 获取函数调用树,并根据函数的特征和风险为其添加标签。
- 拦截应用发出的流量。
您可以通过此链接查看扫描结果并访问分析环境。
初步发现:
当我们在平台上扫描该应用时,首先注意到的是应用的图标,它与 Android 设置的图标完全相同:

在摘要部分,我们可以看到该应用请求了 22 项权限,其中包括 8 项危险权限:

- android.permission.RECORD_AUDIO
- android.permission.SEND_SMS
- android.permission.READ_CONTACTS
- android.permission.READ_SMS
- android.permission.READ_PHONE_STATE
- android.permission.RECEIVE_SMS
- android.permission.WRITE_EXTERNAL_STORAGE
- android.permission.CALL_PHONE
- android.permission.DISABLE_KEYGUARD
该应用导出了两个组件(一个服务和一个广播接收器),用于与短信进行交互。


快速浏览检测结果可以发现,该应用会检查自己是否运行在已 Root 的设备上。它处于调试模式,并且没有实施任何网络配置设置。

此外,扫描器还报告了两个与加密问题相关的中危发现:
- 使用硬编码密钥:
- 使用非随机的初始化向量(IV)


从污点追踪中可以看到,加密被用于在发送短信、按键日志和设备日志时对数据进行加密。
使用分析环境:
借助 Ostorlab 的分析环境,可以轻松浏览应用并理解其行为。我们首先要检查的文件是 AndroidManifest,并在其中查找应用的主 Activity:


主 Activity 的名称是 com.rduzmauwns.jieliysagr.aJtzcrQbcpuSYfz。
因此,我们将使用静态分析部分来分析其源代码:

在 OnCreate 方法中,恶意行为开始之前有一系列检查。

- 第一项检查涉及设备的国家/地区代码。如果设备来自俄罗斯或塔吉克斯坦,该恶意软件将不会运行。

- 第二项检查涉及执行环境。如果不是在真机上执行,该恶意软件将不会运行。
我总是喜欢看看应用是如何检测真机的,因为有多种脚本和方法可以绕过这些检查。
我们使用 调用栈 标签页,并查找 isEmulator 以查看最后执行的检查:
在本例中,它会检查设备的内置参数是否包含 "generic"、"Emulator"、"Genymotion" 等已知值

恶意软件启动后,会禁用自己的图标并在后台运行。

为此,该应用使用了 setComponentEnabledSettings 方法,并传入参数 2、1。


到了这一步,恶意应用已经在后台运行了!
我准备好了,开始吧!
该恶意软件会启动一个名为 com.rduzmauwns.jieliysagr.vCdmvEHqFNkYwsB 的新服务。

该服务实现了 java.lang.Runnable 接口,其代码将在一个单独的线程中执行。
在这个线程中,我们启动了其中一个间谍方法 SendNewUser。

该方法获取受害者的设备详细信息,并将其发送(POST)到服务器。

该恶意软件可以通过发起 USSD(Unstructured Supplementary Service Data,非结构化补充业务数据)呼叫来转账。对于不了解 USSD 的读者:它是 GSM 蜂窝电话用来与服务提供商的计算机进行通信的一种通信协议。它允许用户访问各种服务,例如查询账户余额、充值话费、转账以及订阅各类服务等。

妙处(或者说并不妙)在于,该恶意软件在发起呼叫时不会使用拨号界面。

该恶意软件还会:
- 使用
SmsSender()方法发送多段文本短信, - 窃取受害者设备中的短信。
- 使用
callForward()方法——将受害者的来电转接到服务器提供的号码。 linkopen()方法使恶意软件能够在无需用户干预的情况下,在设备浏览器中打开 URL- 窃取应用日志。
- 使用 VNC Viewer 远程查看/控制受感染设备的屏幕

攻击面:
用于发送数据和接收命令的端点并没有直接定义在恶意软件中。它从一个 Telegram 频道获取这些端点,频道描述中包含加密后的端点地址。(使用的正是前面扫描器所报告的 ECB 模式加密。)

该恶意软件有三个主要端点:
henkormerise.combanerrokutepera.comheikenmorgan.com
结论
随着时间推移,银行类威胁的风险不断上升,并且变得越来越复杂。GodFather 恶意软件就是一个典型例证。这一特定版本的恶意软件具备收集敏感数据的恶意功能。
总之,恶意软件分析是一项引人入胜、需要关注细节的工作。GodFather 恶意软件只是银行和加密货币行业所面临的不断演变的威胁中的一个例子。通过了解该恶意软件的运作方式及其可能造成的损害程度,我们可以更好地保护自己和设备免受此类攻击。