问答
发起
提问
文章
攻防
活动
Toggle navigation
首页
(current)
问答
商城
实战攻防技术
漏洞分析与复现
NEW
活动
摸鱼办
搜索
登录
注册
记一次Android 恶意软件逆向及Frida动态分析
移动安全
本文记录了一次Android 恶意软件逆向及Frida动态分析的实战过程,包括脱壳、恶意软件代码逆向分析、frida破解加密、绕过frida检测等技术细节,详细分析了Android 恶意软件的攻击链路。
一个在国外的同学说工作邮箱收到了一封钓鱼邮件,扫描钓鱼邮件的二维码会下载一个Android APP,想让我帮忙分析下这个恶意APP究竟会执行什么操作。Android 恶意软件平时遇到的不多,便想着研究研究。 逆向分析 ==== 脱壳-解除DPT-Shell的保护 ----------------- 先在Android模拟器上运行该应用程序,查看进程:  使用JADX反编译代码,反编译后查看包名,竟然与进程中的包名不一样。  我们简单查看一下代码,从这里可以看到APP受到名为 [**DPT-Shell**](https://github.com/luoyesiqiu/dpt-shell) 的工具的保护。  由于这是一个开源应用程序保护工具,因此去github上分析一下源码看看它是如何工作的。在 APK 加壳过程中,将事先准备好的壳 dex 与原始应用的 dex/资源压缩包拼接生成新的 `classes.dex`,其中壳 dex 负责解密与加载逻辑,原始数据以 zip 形式附加在壳 dex 之后,并在文件末尾额外写入 4 个字节记录原始数据长度,最后修正 dex 的文件大小、SHA1 和校验和头部,使其成为合法的 dex 文件,从而实现安装时先运行壳逻辑、再在运行时释放和加载真实的应用代码,达到保护与防逆向的目的。  注意到代码中有这样一段`ZipUtils.compress(getDexFiles(apkDir), getOutAssetsDir(apkDir).getAbsolutePath() + File.separator + "i111111.zip"); `,`getDexFiles(apkDir)` 会收集 **APK 里真正的 dex 文件**,然后用 `ZipUtils` 压缩,打包成一个压缩包,输出路径就是`assets/i111111.zip`,因此,下一步是寻找保存在 assets 文件夹中的实际 dex 文件。  最终在应用程序android目录的code\_cache文件夹中找到了i111111.zip,解压后就得到了真正的dex文件:  恶意软件功能分析 -------- BroadcastReceiver 暴露了大量自定义广播指令,涵盖应用管理(安装、卸载、获取应用列表)、界面控制(弹窗、日志窗口、权限界面)、敏感操作(相机、人脸识别、短信收发、身份证上传、支付页面)以及系统控制(后台运行、音量、外部存储读写)等功能,加上其中出现的 **ShowBankDF**(银行对话框)模块,可以判断该 App 具备远程控制和窃取敏感信息的能力,整体行为特征非常接近 **恶意金融木马/远控木马**。  接下来我们具体分析: ### 短信追踪 `SmsServiceRoom` 是一个封装短信内容的服务类,采用单例模式保存 `SmsContent`,对外提供存取接口。它在整个 App 中可能承担 **短信拦截、存储与转发的核心功能**,和前面 BroadcastReceiver 中的短信相关广播(读取、通知、发送)形成呼应,进一步印证该 App 具备 **监控和操纵用户短信** 的恶意特征。  ### 屏幕录制 `ScreenRecordService` 是一个后台录屏服务类,支持持续录制屏幕。它与前面提到的短信拦截、摄像头、银行对话框等模块一起,构成一个功能完整的远控木马框架:既能获取短信、相机、身份证件,又能录屏监控用户在应用中的操作,尤其可能用于 **窃取网银/支付类操作的敏感信息**。  该应用程序在后台运行多个服务,其中突出显示的是 ScreenRecord 服务。  ### 数据泄露 媒体窃取服务,属于恶意Android应用的服务模块,用于统计用户的音频、视频、图片、下载文件和联系人等信息,窃取到敏感信息用于进一步勒索和诈骗。  联系信息窃取服务,属于恶意 Android 应用的联系人收集模块,用于序列化并上传用户的姓名、电话、邮箱及联系历史等隐私信息。攻击者窃取然后使用这些信息对其他潜在受害者进行横向移动,并采取与当前受害者相同的步骤。  ### 浮窗密码窃取 `BcaInputPwdWindow` 是恶意 Android 应用中的浮窗密码窃取模块,它继承自 `FloatWindow`,在用户界面上悬浮显示虚假输入框,通过 `LiveString pwd` 实时捕获用户输入的密码,并利用 `commitData()` 方法可能将密码上传到远程服务器,结合 `show(int i)` 方法实现对系统界面覆盖和展示,整个模块经过混淆和加固,属于典型的 Android 欺骗输入、窃取敏感信息的技术实现。  借助此功能,恶意软件可以自动执行点击并假装这是来自用户的合法点击事件。为了了解该模块如何在诈骗活动中利用,我们进一步跟进Strategy类,如下图所示: `PhoneStrategy` 是恶意 Android 应用中管理手机 PIN 或解锁策略的模块,封装单个和多组策略对象,可能用于记录或匹配用户密码模式,以配合浮窗窃取和其他隐私收集功能。  `ListenMethod` 是恶意 Android 应用中定义的枚举监听模块,提供多种用户操作和输入事件捕获方式,其中包含密码输入监听,可能与浮窗和策略模块结合,用于全面监控和窃取用户敏感行为。  **`PhoneStrategy`** 中封装了单个和多组策略 (`StrategyData`),但是在反编译的源码中没有找到策略的内容,由此可以想到此恶意软件应用程序会动态加载来自JNI Functions 的数据,也就是so文件,我们需要用Ghidra逆向so文件进行进一步分析:   获取到保存在Native Lib中的策略数据后,可以在看到这条策略定义了一个针对 **BBL 手机银行 App 的 PIN/数字输入监听规则**,通过监听点击事件获取用户输入的数字键(0~9)和删除操作,并将文本内容返回给应用逻辑(可能进一步上传),实现精准收集用户 PIN 或交易密码。该策略结合前面分析的 `BcaInputPwdWindow` 和 `ListenMethod`,形成完整的 **输入监听 → 数据收集 → 远程上传**链路。   ### 人脸识别视频录制 FaceRecognition服务,人脸服务通过前置/后置摄像头在前台或策略触发条件下隐蔽采集用户面部图像或视频,可能结合本地处理与加密上传,实现身份验证欺诈或账户接管。当攻击者有足够的信息来访问手机银行账户时,将会使用记录的人脸识别视频绕过手机银行的登录验证。  ### 恶意软件利用链路总结 当受害者下载安装恶意应用后,应用会在受害者使用目标应用(如银行或支付 App)时触发各模块协同工作:`BcaInputPwdWindow` 在前台显示浮窗覆盖真实界面,诱导受害者输入密码或 PIN;`ListenMethod` 枚举监听用户的点击、输入和回车行为,配合 `PhoneStrategy` 和 `StrategyData` 策略决定何时收集敏感信息;同时,`MediaFilesData` 和 `ContactData` 被动收集受害者的多媒体文件和联系人信息,人脸服务模块`FaceRecognition`在策略触发或用户操作过程中隐蔽采集面部图像或视频,所有数据经序列化或加密上传至远程服务器,实现从用户安装、正常操作到多类型隐私数据收集和远程窃取的完整互动攻击链路。 动态分析 ==== 使用BurpSuite来拦截恶意软件应用程序流量,但是可以看到报文是加密的,在代码中查找密钥,但是都无法解开加密,   尝试用frida来破解加密,在加密前发起请求,解密后发起响应。在第一次尝试中,发生了与 **Null 指针异常**相关的错误。程序尝试返回**0x0**,由于这不是一个有效的地址,会触发 **Null 指针异常**。  考虑到APP试用了DPt-shell保护程序,分析DPT-Shell源码看看是不是对frida也有检测:   如果代码检测到 **Frida-server**,将运行汇编指令,这意味着 lr(链路寄存器)设置为 0,因此当程序尝试使用此寄存器返回时,它最终会到达程序最终崩溃的地址。`mov lr,#0 0x0`  通过分析,我们可以得知**frida 检测**使用 **pthread** 创建一个新线程来运行 **Frida Detection**,因此我们可以用以下脚本来bypass,通过 hook `pthread_create` 并在特定条件下返回错误,Frida 检测线程根本无法启动,程序就不会触发 `dpt_crash()`。  最终绕过成功,  成功看到登录的明文数据,包含了用户名、密码、银行卡号、设备 ID、设备型号和来源信息等敏感字段,存在账户和设备信息泄露风险。服务器返回的 JSON 响应包含状态码和提示信息。这条登录报文显示应用收集了大量用户和设备信息,一旦被恶意程序截获,就可能导致隐私泄露。  通过抓包可以看到恶意软件应用程序有一个定期执行ping的操作,这可以定时向攻击者同步受害者设备的状态。   总结 == 该移动应用程序具有多项高风险行为和敏感权限,存在显著的安全隐患。它可在后台执行位置跟踪、文件上传等操作,并访问或修改用户数据,具备窃取信息的潜在能力。同时,应用能够利用麦克风录音和模拟用户操作的方式进行监控和欺骗,诱导用户执行未经授权的操作。请求的权限涵盖精确位置、联系人、短信、摄像头、麦克风及存储访问等,可能被用于数据泄露、监控或其他恶意行为。 整体来看,该应用功能与权限组合高度危险,用户在安装和使用移动应用时需保持警惕,不在非官方渠道下载安装应用,强化恶意软件防护意识,严格管理权限,并配合移动设备的安全防护措施,有效保障个人隐私和数据安全。
发表于 2025-09-24 10:00:00
阅读 ( 598 )
分类:
二进制
0 推荐
收藏
0 条评论
请先
登录
后评论
xiaoyu007
3 篇文章
×
发送私信
请先
登录
后发送私信
×
举报此文章
垃圾广告信息:
广告、推广、测试等内容
违规内容:
色情、暴力、血腥、敏感信息等内容
不友善内容:
人身攻击、挑衅辱骂、恶意行为
其他原因:
请补充说明
举报原因:
×
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!