文件基本信息
应用基础信息
文件基本信息
应用基础信息
恶意软件家族情报
序号 | 属性 | 值 |
---|---|---|
1 | 恶意家族 | CustServRemoteThief |
2 | 描述信息 | CustServRemoteThief (中文名:六耳吞金。引自:《西游记》六耳猕猴伪装孙悟空。) 是一款由南明离火平台命名的恶意软件,基于 RustDesk 远程控制软件二次开发而成,采用 Flutter 开发框架构建,最早可追溯至 2023 年。其主要通过伪造应用程序以及冒充客服等渠道进行传播,使攻击者得以侵入受害者设备,获取远程访问权限,进而窃取受害者的银行资金等敏感信息。目前,已发现该家族恶意 APP 名称包括但不限于:银联会议、银保会议、银监会议、腾讯会议、专用会议、抖音会议、中银会议、认证会议、在线会议、银办通、云会议、U 会议。 |
3 | C2服务器 | |
4 | 凭证数据 | |
5 | 关联情报 |
文件结构与资源列表
应用签名证书信息
二进制文件已签名
v1 签名: True
v2 签名: True
v3 签名: True
v4 签名: False
主题: C=af228fc8, ST=af228fc8, L=af228fc8, O=af228fc8, OU=af228fc8, CN=af228fc8
签名算法: rsassa_pkcs1v15
有效期自: 2024-05-31 14:46:53+00:00
有效期至: 2124-05-07 14:46:53+00:00
发行人: C=af228fc8, ST=af228fc8, L=af228fc8, O=af228fc8, OU=af228fc8, CN=af228fc8
序列号: 0x3822b653
哈希算法: sha256
证书MD5: 90c401d108bd7316e8b2c977e964667f
证书SHA1: 70046b0a7091c10dd43fbcd26c8bf4e2e011d244
证书SHA256: d06f37669e8f354d37e711353aabf469f5ad05a66c96a0b7b0f66fc93d1fe2eb
证书SHA512: 375ecd138c59439469be94ae3e217107651096c86c0eeee88e148dedf2f7d9403297ea803211088e6f8a9be211b479a3333bdf51729c215ec98427d987f4cc9b
公钥算法: rsa
密钥长度: 1024
指纹: b88af4704ecb254f3eba55ae5c235611c165a2d349e2627ef9c43e9eabbe7b91
找到 1 个唯一证书
权限声明与风险分级
权限名称 | 安全等级 | 权限内容 | 权限描述 | 关联代码 |
---|---|---|---|---|
android.permission.MANAGE_EXTERNAL_STORAGE | 危险 | 文件列表访问权限 | Android11新增权限,读取本地文件,如简历,聊天图片。 | |
android.permission.POST_NOTIFICATIONS | 危险 | 发送通知的运行时权限 | 允许应用发布通知,Android 13 引入的新权限。 | |
android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS | 普通 | 使用 Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS 的权限 | 应用程序必须拥有权限才能使用 Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS。 | |
android.permission.READ_EXTERNAL_STORAGE | 危险 | 读取SD卡内容 | 允许应用程序从SD卡读取信息。 | |
android.permission.WRITE_EXTERNAL_STORAGE | 危险 | 读取/修改/删除外部存储内容 | 允许应用程序写入外部存储。 | 显示文件 |
android.permission.INTERNET | 危险 | 完全互联网访问 | 允许应用程序创建网络套接字。 | |
android.permission.ACCESS_NETWORK_STATE | 普通 | 获取网络状态 | 允许应用程序查看所有网络的状态。 | |
android.permission.FOREGROUND_SERVICE | 普通 | 创建前台Service | Android 9.0以上允许常规应用程序使用 Service.startForeground,用于podcast播放(推送悬浮播放,锁屏播放) | |
android.permission.RECORD_AUDIO | 危险 | 获取录音权限 | 允许应用程序获取录音权限。 | |
android.permission.WAKE_LOCK | 危险 | 防止手机休眠 | 允许应用程序防止手机休眠,在手机屏幕关闭后后台进程仍然运行。 | |
android.permission.RECEIVE_BOOT_COMPLETED | 普通 | 开机自启 | 允许应用程序在系统完成启动后即自行启动。这样会延长手机的启动时间,而且如果应用程序一直运行,会降低手机的整体速度。 | |
android.permission.SYSTEM_ALERT_WINDOW | 危险 | 弹窗 | 允许应用程序弹窗。 恶意程序可以接管手机的整个屏幕。 | |
jferm.mhwes.kobgd.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION | 未知 | 未知权限 | 来自 android 引用的未知权限。 | |
android.permission.CAMERA | 危险 | 拍照和录制视频 | 允许应用程序拍摄照片和视频,且允许应用程序收集相机在任何时候拍到的图像。 |
证书安全合规分析
标题 | 严重程度 | 描述信息 |
---|---|---|
已签名应用 | 信息 | 应用程序使用代码签名证书进行签名 |
Manifest 配置安全分析
序号 | 问题 | 严重程度 | 描述信息 | 操作 |
---|---|---|---|---|
1 |
应用程序已启用明文网络流量 [android:usesCleartextTraffic=true] |
警告 | 应用程序打算使用明文网络流量,例如明文HTTP,FTP协议,DownloadManager和MediaPlayer。针对API级别27或更低的应用程序,默认值为“true”。针对API级别28或更高的应用程序,默认值为“false”。避免使用明文流量的主要原因是缺乏机密性,真实性和防篡改保护;网络攻击者可以窃听传输的数据,并且可以在不被检测到的情况下修改它。 | |
2 |
应用程序数据存在被泄露的风险 未设置[android:allowBackup]标志 |
警告 | 这个标志 [android:allowBackup]应该设置为false。默认情况下它被设置为true,允许任何人通过adb备份你的应用程序数据。它允许已经启用了USB调试的用户从设备上复制应用程序数据。 | |
3 |
Broadcast Receiver (sk2zfq.tf_36c.of3tec.eoa0a2) 未被保护。 [android:exported=true] |
警告 | 发现 Broadcast Receiver与设备上的其他应用程序共享,因此可被设备上的任何其他应用程序访问。 | |
4 |
Broadcast Receiver (androidx.profileinstaller.ProfileInstallReceiver) 受权限保护, 但是应该检查权限的保护级别。 Permission: android.permission.DUMP [android:exported=true] |
警告 | 发现一个 Broadcast Receiver被共享给了设备上的其他应用程序,因此让它可以被设备上的任何其他应用程序访问。它受到一个在分析的应用程序中没有定义的权限的保护。因此,应该在定义它的地方检查权限的保护级别。如果它被设置为普通或危险,一个恶意应用程序可以请求并获得这个权限,并与该组件交互。如果它被设置为签名,只有使用相同证书签名的应用程序才能获得这个权限。 | |
5 |
高优先级的Intent (1000) - {1} 个命中 [android:priority] |
警告 | 通过设置一个比另一个Intent更高的优先级,应用程序有效地覆盖了其他请求。 |
可浏览 Activity 组件分析
ACTIVITY | INTENT |
---|---|
sk2zfq.tf_36c.of3tec.smk1n2 |
Schemes:
rustdesk://,
|
网络通信安全风险分析
序号 | 范围 | 严重级别 | 描述 |
---|
API调用分析
API功能 | 源码文件 |
---|---|
调用java反射机制 | yo1/u3d.java |
一般功能-> 文件操作 | yo1/u3d.java |
加密解密-> Base64 解密 | yo1/u3d.java |
安全漏洞检测
序号 | 问题 | 等级 | 参考标准 | 文件位置 | 操作 |
---|
Native库安全分析
序号 | 动态库 | NX(堆栈禁止执行) | PIE | STACK CANARY(栈保护) | RELRO | RPATH(指定SO搜索路径) | RUNPATH(指定SO搜索路径) | FORTIFY(常用函数加强检查) | SYMBOLS STRIPPED(裁剪符号表) |
---|---|---|---|---|---|---|---|---|---|
1 | arm64-v8a/libapp.so |
True
info 二进制文件设置了 NX 位。这标志着内存页面不可执行,使得攻击者注入的 shellcode 不可执行。 |
动态共享对象 (DSO)
info 共享库是使用 -fPIC 标志构建的,该标志启用与地址无关的代码。这使得面向返回的编程 (ROP) 攻击更难可靠地执行。 |
True
info 这个二进制文件在栈上添加了一个栈哨兵值,以便它会被溢出返回地址的栈缓冲区覆盖。这样可以通过在函数返回之前验证栈哨兵的完整性来检测溢出 |
Not Applicable
info RELRO 检查不适用于 Flutter/Dart 二进制文件 |
None
info 二进制文件没有设置运行时搜索路径或RPATH |
None
info 二进制文件没有设置 RUNPATH |
False
info 二进制文件没有任何加固函数。加固函数提供了针对 glibc 的常见不安全函数(如 strcpy,gets 等)的缓冲区溢出检查。使用编译选项 -D_FORTIFY_SOURCE=2 来加固函数。这个检查对于 Dart/Flutter 库不适用 |
True
info 符号被剥离 |
2 | arm64-v8a/librustdesk.so |
True
info 二进制文件设置了 NX 位。这标志着内存页面不可执行,使得攻击者注入的 shellcode 不可执行。 |
动态共享对象 (DSO)
info 共享库是使用 -fPIC 标志构建的,该标志启用与地址无关的代码。这使得面向返回的编程 (ROP) 攻击更难可靠地执行。 |
True
info 这个二进制文件在栈上添加了一个栈哨兵值,以便它会被溢出返回地址的栈缓冲区覆盖。这样可以通过在函数返回之前验证栈哨兵的完整性来检测溢出 |
Full RELRO
info 此共享对象已完全启用 RELRO。 RELRO 确保 GOT 不会在易受攻击的 ELF 二进制文件中被覆盖。在完整 RELRO 中,整个 GOT(.got 和 .got.plt 两者)被标记为只读。 |
None
info 二进制文件没有设置运行时搜索路径或RPATH |
$ORIGIN/../../../../../../root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/aarch64-linux-android/lib
high 二进制文件设置了 RUNPATH。在某些情况下,攻击者可以滥用这个特性或者修改环境变量来运行任意的库,从而实现代码执行和权限提升。库应该设置 RUNPATH 的唯一时间是当它链接到同一个包中的私有库时。移除编译选项 --enable-new-dtags,-rpath 来移除 RUNPATH |
True
info 二进制文件有以下加固函数: ['__memcpy_chk', '__memset_chk', '__read_chk', '__vsnprintf_chk', '__memmove_chk'] |
True
info 符号被剥离 |
文件分析
序号 | 问题 | 文件 |
---|
行为分析
编号 | 行为 | 标签 | 文件 |
---|---|---|---|
00024 | Base64解码后写入文件 |
反射 文件 |
升级会员:解锁高级权限 |
敏感权限分析
恶意软件常用权限 是被已知恶意软件广泛滥用的权限。
其它常用权限 是已知恶意软件经常滥用的权限。
IP地理位置
恶意域名检测
手机号提取
URL链接分析
URL信息 | 源码文件 |
---|---|
https://github.com/journeyapps/zxing-android-embedded https://journeyapps.com/ |
自研引擎-S |
http://errorinvalid https://github.com/rustdesk/rustdesk/wiki/headless-linux-supportconfigenc_idkey_confirmedkeys_confirmedstruct https://admin.rustdesk.comrustdesk.com/api/audit/content-typewrong https://rustdesk.com/docs/en/manual/linux/#x11-requiredinput-2fare-input-passworddo https://rustdesk.com/docs/en/manual/linux/#x11-requiredrustdesk https://docs.rs/flexi_logger/latest/flexi_logger/error_info/index.html#writeflushformatlogfilepoisonsymlinkwriterspecerror https://docs.rs/getrandom#nodejs-es-module-support/dev/urandom https://docs.rs/rustls/latest/rustls/manual/_03_howto/index.html#unexpected-eoffailed https://rustdesk.com/docs/en/rustdesk |
lib/arm64-v8a/librustdesk.so |
Firebase配置检测
邮箱地址提取
第三方追踪器
名称 | 类别 | 网址 |
---|
敏感凭证泄露
活动列表
显示 4 个 activities
服务列表
显示 3 个 services
广播接收者列表
显示 2 个 receivers
内容提供者列表
显示 2 个 providers
污点分析
当apk较大时,代码量会很大,造成数据流图(ICFG)呈现爆炸式增长,所以该功能比较耗时,请先喝杯咖啡,耐心等待……规则名称 | 描述信息 | 操作 |
---|---|---|
病毒分析 | 使用安卓恶意软件常用的API进行污点分析 | 开始分析 |
漏洞挖掘 | 漏洞挖掘场景下的污点分析 | 开始分析 |
隐私合规 | 隐私合规场景下的污点分析:组件内污点传播、组件间污点传播、组件与库函数之间的污点传播 | 开始分析 |
密码分析 | 分析加密算法是否使用常量密钥、静态初始化的向量(IV)、加密模式是否使用ECB等 | 开始分析 |
Callback | 因为Android中系统级的Callback并不会出现显式地进行回调方法的调用,所以如果需要分析Callback方法需要在声明文件中将其声明,这里提供一份AndroidCallbacks.txt文件,里面是一些常见的原生回调接口或类,如果有特殊接口需求,可以联系管理员 | 开始分析 |