首页
社区
课程
招聘
[原创]某魔改tg的黑灰样本分析报告
发表于: 2小时前 16

[原创]某魔改tg的黑灰样本分析报告

2小时前
16

nubseufhp.apk 安全分析报告

分析日期:2026-08-12
分析对象:nubseufhp.apk
总体风险:HIGH
结论:该样本不是官方 Telegram,而是经过 Native 加壳、资源混淆和随机改名的 Teamgram/DH171 私有客户端。它使用自定义认证协议和第三方代理基础设施,并具备由服务端远程开启完整 TL 请求/响应日志上传的能力,不应承载真实账号或敏感通信。

!!!AI 水文预警 没有干货,只有黑灰样本分析取证流程。
很神奇的样本,似乎是魔改的私有tg分支,还真是弄啥的都有
样本提取 1b9K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4L8$3k6A6L8r3g2Q4x3X3g2A6L8#2)9J5c8X3c8Q4x3V1k6g2e0g2k6$3d9W2V1`.

0. 手法

某笔记软件引流,通过特殊的wx二维码跳转界面引导下载安装包后在app内完成黑灰业务流程

1. 样本信息

  • APK SHA-256:b48d1ce86096b4116f470467ad2d59a2a03e1a47a9807497f08fab7f030307ed
  • 文件大小:53,672,768 字节
  • 包名:bbp.rnyjfghajcnxlb.tjjfxejqqcmdfop
  • 应用名:NtqOrf
  • 版本:171.5.12,versionCode 19
  • minSdk:21
  • targetSdk:34
  • ABI:仅 arm64-v8a
  • 签名:APK Signature Scheme v2/v3 有效,无 v1 签名
  • 证书 SHA-256:0673583f7889a09da5f09a4698712c2b5dc35d1ffb8a822a5095833a8638b679
  • 证书 DN:全部为随机字符串,不属于 Telegram 官方签名身份
  • 当前设备安装来源:com.coloros.filemanager

虽然包名和前台品牌为随机字符串,但以下证据表明其真实代码基于 Teamgram/Telegram:

  • 主界面仍为 org.telegram.ui.LaunchActivity
  • 外部存储目录为 Teamgram
  • 动态节点请求使用 User-Agent: TeamGram/1.0
  • BuildConfig 包含 DH171-vip-Android
  • 默认 Telegram 链接被替换为 webestim.meteamgram.netNtqOrf.net

2. 分析方法

  1. 使用 JADX 1.5.5 对原始 APK 反编译。
  2. 识别 libnpewswag.so Native 壳及壳入口 Application
  3. 从运行后目录 app_npewswag 只读提取 5 个解密 DEX。
  4. 对解密 DEX 再次执行 JADX,共恢复约 36,411 个 class definitions 和 11,201 个 Java 文件。
  5. 结合 aaptapksignerdumpsys package、进程映射和 TCP 套接字进行交叉验证。
  6. libgojni.so 构建参数中恢复客户端内嵌 RSA 私钥,离线解密代理启动配置。
  7. 未读取聊天数据库、账号配置、媒体文件或其他用户内容。

分析产物:

  • JADX 源码:/tmp/nubseufhp-real-jadx-b48d1ce8
  • 解密 DEX:/tmp/nubseufhp-unpacked-b48d1ce8
  • Go 代理库:/tmp/nubseufhp-native-b48d1ce8/libgojni.so

3. 关键链路

用户输入账号/密码
  -> 密码执行无盐 MD5
  -> 自定义 TL_auth_signIn(附带 device_id)
  -> Telegram native ConnectionsManager
  -> 强制入口 127.0.0.1:60171
  -> libgojni.so 私有 Go 代理
  -> *.sdkbhtog171.xverse66.com:30171
  -> 阿里云代理节点

启动时还会:

  • 请求 c96K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6A6M7q4)9J5k6i4y4T1i4K6u0r3K9i4l9`. 获取公网出口 IP。
  • 初始化 OpenInstall,获取并持久化渠道邀请码。
  • 从华为云 OBS 拉取加密节点配置。
  • 向自定义后端请求注册类型和用户权限配置。
  • 根据服务端返回值决定是否开启日志、通话、消息编辑/删除/转发等功能。

4. 风险发现

# Category Title Severity Confidence Evidence (Source -> Sink) Recommendation Location
1 sensitive_data_exposure 服务端可远程开启完整 TL 请求/响应日志并上传到任意 URL HIGH 0.99 自定义后端返回 PermissionConfig -> enableWriteLoglogUrl 写入运行配置 -> 每次请求完成后调用 dumpResponseAndRequest -> FileLog 使用 Gson 序列化完整请求/响应 -> 每 300 秒打包所有 .txt -> OkHttp 上传到服务端指定 URL。登录请求中包含手机号、验证码、用户名、MD5 密码和设备 ID;其他日志还包含登录令牌、购买令牌、对话 ID、位置及设备信息。 移除远程日志开关;生产环境禁止记录认证请求、令牌和消息对象;上传目标必须固定为受控 HTTPS 域名并启用证书固定;对历史日志和服务端存量执行清理审计。 UserPermissionConfigManager.java:[61, 99], ConnectionsManager.java:[855, 873], FileLog.java:[345, 390], LogUpLoadManager.java:[159, 249]
2 weak_crypto 用户密码使用无盐 MD5 后直接作为认证凭据 HIGH 0.99 用户输入的 8-16 位密码 -> Utilities.MD5(password) -> 写入 TL_auth_signIn.password -> sendRequest 发往自定义后端。固定、无盐 MD5 可被离线字典和彩虹表快速恢复,且相同密码产生相同凭据。 使用服务端挑战协议和抗 GPU 的密码派生算法,例如 Argon2id;每个账户使用随机盐;不要把可重放的固定哈希作为长期认证凭据;现有用户凭据应强制轮换。 LoginNewActivity.java:[209, 263]
3 sensitive_data_exposure 所有协议连接被强制导入第三方私有 Go 代理 HIGH 0.98 Application.onCreate 无条件初始化 Go SDK -> 本地监听 127.0.0.1:60171 -> ConnectionsManager 调用 native_setProxyEntryPoint(60171) -> 运行时连接到 8.138.244.148:301718.148.248.251:30171。同时认证 TL constructor 已被修改为包含用户名、密码、邀请码和设备 ID,无法视为官方 Telegram 直连协议。 不在真实账号上使用该客户端;若业务必须使用代理,应公开协议、服务运营方和数据处理范围,执行独立 Native 审计、端到端抓包验证、证书固定和节点透明度审计。 ApplicationLoader.java:[570, 582], ConnectionsManager.java:[543, 551], ConnectionsManager.simple.java:[865, 924]
4 sensitive_data_exposure 认证和代理层使用稳定设备指纹 MEDIUM 0.99 Android ID、序列号、Build 硬件字段、ABI、屏幕分辨率/密度,以及小米设备分支中的公网 IP 或时间值 -> SHA-1 生成并持久化 device_id -> 同时写入登录/注册请求及 Go 代理 deviceUUID。该标识可跨会话关联用户和设备。 仅采集完成明确功能所需的最小字段;使用可轮换、按服务域隔离的随机标识;提供明确告知、删除和重置机制;禁止把公网 IP 和硬件指纹组合成长期认证标识。 DeviceIdHelper.java:[46, 80], DeviceIdHelper.java:[102, 140], LoginNewActivity.java:[248, 257]
5 hardcoded_secret 代理控制面私钥和对称密钥可从客户端恢复 MEDIUM 0.99 Java 层内置 RSA 加密启动载荷 -> libgojni.so 通过 Go -ldflags 内嵌完整 RSA 私钥 -> 私钥可离线恢复并解密载荷 -> 得到代理域名、端口、SDK 版本和 AES key。任何持有 APK 的人都能解密控制面配置。 客户端只应持有公开验证材料,不得分发私钥;立即轮换现有 RSA/AES 密钥;控制面配置采用服务端签名、客户端公钥验证的模式;为每个版本和租户隔离密钥。 ConnectionsManager.java:[543, 551]

5. 远程控制能力

服务端通过自定义 TL_auth_getPermissionConfigs 返回任意键值配置。客户端已实现的远程开关包括:

  • enableWriteLog:开启完整请求/响应日志和周期上传。
  • logUrl:指定日志上传地址,代码未限制协议或主机。
  • allowVoiceCall / allowVideoCall:控制语音和视频通话。
  • createChannel:控制频道/群组创建能力。
  • privateMsgEdit / groupMsgEdit:控制消息编辑。
  • privateMsgDelete / groupMsgDelete:控制消息删除。
  • privateMsgForward / groupMsgForward:控制消息转发。
  • isPrivilegeUser:控制特权用户能力。
  • show_online_status:控制在线状态展示。
  • groupAvatarClick / groupLocation:控制群组资料和位置功能。

这不是 Android 运行时权限系统,而是由私有后端决定客户端能力的业务控制面。

6. 网络与 IOC

样本身份:

  • 包名:bbp.rnyjfghajcnxlb.tjjfxejqqcmdfop
  • 应用名:NtqOrf
  • 原始应用族:Teamgram / DH171
  • 壳库:libnpewswag.so
  • 私有代理库:libgojni.so
  • 解壳目录:app_npewswag
  • 本地代理端口:127.0.0.1:60171

确认的基础设施:

  • *.sdkbhtog171.xverse66.com:30171
  • 8.138.244.148:30171,阿里云
  • 8.148.248.251:30171,阿里云
  • 119.13.113.34:443,华为云香港,运行时观察到连接
  • 05562a6c1f780527.obs.ap-southeast-1.myhuaweicloud.com
  • webestim.me
  • teamgram.net
  • NtqOrf.net
  • NtqOrf.bet

节点缓存 URL:

666K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1j5H3y4e0f1$3x3X3p5$3j5K6q4X3y4K6R3H3y4e0t1%4i4K6u0W2L8$3u0K6i4K6u0W2j5i4m8Q4x3X3c8K6L8%4g2@1K9r3g2S2M7%4c8Q4x3X3b7I4i4K6u0W2L8i4W2Z5N6h3q4%4k6h3W2U0L8r3!0#2k6q4)9J5k6h3y4G2L8g2)9J5c8U0t1H3y4o6R3$3x3$3c8U0y4X3j5H3j5U0f1J5k6o6u0Q4x3X3g2V1j5i4b7`.

离线解密后的代理启动配置(敏感密钥已省略):

{
  "app_domain": "*.sdkbhtog171.xverse66.com",
  "app_domain_port": 30171,
  "app_name": "dh171",
  "sdk_version": "4.0.1",
  "AES-key": "<redacted>"
}

7. 权限与当前设备状态

样本声明了联系人、通话记录、电话状态、录音、摄像头、前后台定位、悬浮窗和安装 APK 等高敏权限。多数权限也可由 Telegram 类应用的正常功能解释,因此仅凭声明不能认定恶意。

分析时设备状态:

  • 应用已安装并运行。
  • 所有危险运行时权限均为未授权。
  • 未发现样本已获得联系人、电话、录音、摄像头或定位权限的证据。
  • 安装级网络、开机启动、前台服务、广告 ID 等权限已按 Android 机制自动授予。

8. 处置建议

P0:

  • 不要使用真实账号登录,不要授予任何敏感权限。
  • 若已输入过密码,立即修改该密码;如密码在其他服务复用,应同步轮换。
  • 若使用过手机号/Telegram 登录,通过可信官方客户端终止其他会话。
  • 在受影响设备上卸载该包,并确认 bbp.rnyjfghajcnxlb.tjjfxejqqcmdfop 数据目录被清除。

P1:

  • 在网络侧阻断本报告列出的域名、IP 和端口,并保留 DNS、流量及安装来源日志。
  • 对已使用过该客户端的设备执行账号会话、联系人权限、悬浮窗和未知应用安装权限复核。
  • 若需要取证,在卸载前保全 APK、app_npewswagsdk_cache.json、应用日志和进程内存。

P2:

  • libgojni.solibtmessages.49.so 做进一步 Native 数据流审计。
  • 使用抓包和 Frida 验证本地 60171 入口前后的载荷边界,确认代理是否能读取应用层明文。
  • 对私有后端的认证、日志存储、节点控制、密钥管理和数据删除策略执行服务端审计。

9. 分析限制

  • 本次没有获得服务端代码,无法判断服务端如何存储、使用或转发账号和消息数据。
  • 已证明全部连接经过第三方代理,但未证明代理层能够直接读取所有 MTProto 内层明文。
  • 已证明服务端具备开启完整请求/响应日志上传的能力,但未读取当前账号缓存,未确认本次运行是否已收到 enableWriteLog=1
  • 未发现可直接证明后台静默录音、静默拍照或主动窃取联系人数据的代码链路。
  • 因此,本报告结论是“高风险、不可作为可信通信客户端”,而不是仅凭当前证据将其定性为特定恶意软件家族。

10. 后续链路追踪

查询时间:2026-08-12
当前归属结论:公开信息尚不能给出最终个人或公司法定名称,但已能高置信关联出同一运营集群,并形成可向域名注册商、阿里云和华为云申请数据保全及实名调取的证据链。

10.1 xverse66.com 注册链路

公开 WHOIS/RDAP 结果:

  • 域名:xverse66.com
  • Registry Domain ID:2988963959_DOMAIN_COM-VRSN
  • 注册时间:2025-06-04T13:21:21Z
  • 到期时间:2028-06-04T13:21:21Z
  • 注册商:Gname.com Pte. Ltd.
  • Registrar IANA ID:1923
  • 注册人国家字段:HK,CN
  • 注册人姓名、组织、地址、电话和邮箱:Redacted for privacy
  • 状态:clientTransferProhibited
  • DNS:使用 share-dns.com / share-dns.net 系列名称服务器
  • DNSSEC:未启用

公开记录只能确认 Gname 持有完整注册资料,不能直接确认注册人法定名称。可使用以下渠道:

10.2 TLS 证书反向关联

8.138.244.148:301718.148.248.251:30171 使用 a.sdkbhtog171.xverse66.com 作为 SNI 建立 TLS 连接时,两个节点返回完全相同的证书:

  • Subject CN:sdk33.01hd1.com
  • Issuer:Let's Encrypt YR1
  • Serial:0524E0EB655609DF1E44A6071A44C194629F
  • SHA-256:1E:A7:34:E3:F7:7F:46:EF:AB:84:52:38:CB:A4:F5:B3:D7:90:1D:CE:9C:E2:DA:5B:CF:F2:4F:E9:6C:D9:EC:A5
  • 生效时间:2026-06-29T04:50:55Z
  • 失效时间:2026-09-27T04:50:54Z

该证书证明两个阿里云节点与 01hd1.com 存在直接控制关系。域名验证型证书只能证明签发时的域名控制权,不能单独证明法定主体。

10.3 01hd1.com 注册链路

公开 WHOIS/RDAP 结果:

  • 域名:01hd1.com
  • Registry Domain ID:2963514449_DOMAIN_COM-VRSN
  • 注册时间:2025-03-01T10:00:12Z
  • 到期时间:2027-03-01T10:00:12Z
  • 注册商:Gname.com Pte. Ltd.
  • Registrar IANA ID:1923
  • 注册人国家字段:HK,CN
  • 注册人信息:Redacted for privacy
  • DNS:同样使用 share-dns.com / share-dns.net 系列名称服务器
  • DNSSEC:未启用

证书透明度记录还发现以下子域名:

  • index.01hd1.com
  • sdk.01hd1.com
  • sdk33.01hd1.com
  • tyugchqp.01hd1.com
  • vhtgqpy.01hd1.com

xverse66.com01hd1.com 具备以下共同特征:

  • 注册商相同。
  • 注册人国家字段相同。
  • 注册信息均开启隐私隐藏。
  • DNS 服务体系相同。
  • 注册时间均集中在 2025 年。
  • xverse66.com 指向的两个业务节点返回 01hd1.com 证书。

因此,可以高置信判断两个域名属于同一运营集群或同一基础设施供应链;在取得注册商或云账号实名记录前,不能将其直接等同于同一个法定主体。

10.4 云资源归属

阿里云节点:

  • 8.138.244.148
  • 8.148.248.251
  • APNIC 网段:8.128.0.08.159.255.255
  • NetName:ALICLOUD
  • 资源管理方:Aliyun Computing Co. LTD / Alibaba.com Singapore E-Commerce Private Limited
  • 滥用联系:abuse@alibaba-inc.com

华为云节点:

  • 119.13.113.34
  • APNIC 网段:119.13.112.0119.13.127.255
  • NetName:Huawei-Cloud-HongKong
  • 资源管理方:HUAWEI INTERNATIONAL PTE. LTD.
  • 滥用联系:hwssecurity@huaweicloud.com

OBS 对象:

d08K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1j5H3y4e0f1$3x3X3p5$3j5K6q4X3y4K6R3H3y4e0t1%4i4K6u0W2L8$3u0K6i4K6u0W2j5i4m8Q4x3X3c8K6L8%4g2@1K9r3g2S2M7%4c8Q4x3X3b7I4i4K6u0W2L8i4W2Z5N6h3q4%4k6h3W2U0L8r3!0#2k6q4)9J5k6h3y4G2L8g2)9J5c8U0t1H3y4o6R3$3x3$3c8U0y4X3j5H3j5U0f1J5k6o6u0Q4x3X3g2V1j5i4b7`.

公开响应特征:

  • 对象允许匿名读取,HTTP 状态为 200
  • Last-Modified: Tue, 11 Aug 2026 15:13:06 GMT
  • ETag: "c5e2dccafb7af1327aef1db6727eeed4"
  • Content-Length: 80
  • 桶根目录返回 403 AccessDenied
  • 响应未公开 OBS 租户账号或法定主体

阿里云、华为云是资源提供方,不应在没有租户资料的情况下被写成 App 运营主体。

10.5 公开查询工作流

第一步:备案主体查询。

当前自动查询未得到 xverse66.com01hd1.com 的明确备案主体记录。工信部官方查询存在人机验证,应人工完成验证码复核;未检出记录不等于已经证明“无备案”。

第二步:获得主办单位名称后的工商和司法核验。

第三步:域名和证书历史关联。

第四步:网络资产和样本关联。

建议优先使用以下搜索值:

xverse66.com
01hd1.com
sdk33.01hd1.com
8.138.244.148
8.148.248.251
119.13.113.34
1EA734E3F77F46EFAB845238CBA4F5B3D7901DCE9CE2DA5BCFF24FE96CD9ECA5
05562a6c1f780527
204863dc6f0b52d2.dat

10.6 实名数据保全与调取

公开 OSINT 已无法继续获得注册人法定名称。后续应先提出“数据保全”,再根据合法依据申请“数据披露”,防止域名转移、实例释放或日志过期。

向 Gname 申请保全:

  • xverse66.com01hd1.com 的注册人实名/KYC。
  • 注册账号、代理商或 reseller 信息。
  • 注册及续费付款记录。
  • 注册、登录、修改 DNS 和修改联系人信息时的 IP、时间和 User-Agent。
  • 历史注册资料及隐私保护启用时间。

向阿里云申请保全:

  • 8.138.244.148:301718.148.248.251:30171 在指定时间段的租户账号。
  • ECS/负载均衡/弹性 IP 实例 ID、创建和释放时间。
  • 云账号实名、付款主体、登录 IP、操作审计和安全组变更。
  • TLS 证书部署记录和关联域名。

向华为云申请保全:

  • 119.13.113.34 在指定时间段的云账号和资源实例。
  • OBS 桶 05562a6c1f780527 的所有者账号、创建时间、区域和操作日志。
  • 对象 204863dc6f0b52d2.dat 的上传、覆盖和下载日志。
  • 云账号实名/KYC、付款主体、登录 IP 和操作审计。

普通投诉通常只能触发转发、下架、限制或内部调查,云厂商和注册商一般不会直接向个人披露客户实名。涉及诈骗、账号窃取或数据泄露时,应向公安机关提交材料,由有权机关向 Gname、阿里云和华为云调取。

10.7 建议保全的证据包

  • 原始 APK 及 SHA-256。
  • APK 签名证书摘要。
  • 5 个解密 DEX 和 libgojni.so 摘要。
  • RSA 启动配置解密过程说明,敏感密钥单独封存。
  • sdk_cache.json 原件及 SHA-256。
  • OBS URL、ETag、Last-Modified 和响应头。
  • 运行时 ss/netstat 输出、进程 PID、设备时间和时区。
  • 两个 30171 节点的完整 TLS 证书、序列号和 SHA-256。
  • WHOIS/RDAP 原始响应及查询时间。
  • 工信部备案查询截图和查询时间。
  • 分析报告版本及生成时间。

证据中的时间应统一换算并记录为 UTC,同时保留原始本地时间和设备时区,避免云厂商无法按时间窗口定位租户。

结尾

耗子尾汁


冰与火的战歌:Windows内核攻防实战高级班!从零到实战,融合AI与Windows内核攻防全技术栈,打造具备自动化能力的内核开发高手。

收藏
免费 1
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回