小米MIUI系統(tǒng)漏洞致大量系統(tǒng)、軟件和用戶數(shù)據(jù)泄露及修復(fù)方法
發(fā)布時(shí)間:2012-07-30 17:23:38 作者:Claud
我要評(píng)論

MIUI的刷機(jī)量很大.出現(xiàn)下面這個(gè)漏洞要及時(shí)補(bǔ)啊
該漏洞的成功利用不需要任何條件。
通過該漏洞,任何應(yīng)用軟件可以獲取下列信息:
- 硬件數(shù)據(jù),包括:系統(tǒng)版本、系統(tǒng)編譯信息、內(nèi)存和CPU信息、電池信息、IMEI、基帶版本、設(shè)備生產(chǎn)序號(hào)等
- 當(dāng)前狀態(tài)數(shù)據(jù),包括:當(dāng)前進(jìn)程基本信息、所有進(jìn)程的trace結(jié)果、分區(qū)掛載信息、路由表和ARP緩存表、運(yùn)營(yíng)商、當(dāng)前系統(tǒng)服務(wù)狀態(tài)、系統(tǒng)維護(hù)的Content Provider和Broadcast數(shù)據(jù)結(jié)構(gòu)和權(quán)限管理信息、各軟件運(yùn)行時(shí)間
- 日志數(shù)據(jù),包括:系統(tǒng)日志、系統(tǒng)事件日志、內(nèi)核事件日志、內(nèi)核消息、
- 軟件數(shù)據(jù),包括:已安裝軟件的包名、版本、簽名證書、使用權(quán)限、安裝時(shí)間、上次使用時(shí)間
- 用戶敏感數(shù)據(jù),包括:已連接的WiFi網(wǎng)絡(luò)(MAC地址、SSID、類型、IP、DNS、網(wǎng)關(guān)、DHCP)、周圍可用WiFi網(wǎng)絡(luò)的SSID/BSSID和類型等;、Broadcast處理的歷史記錄(可以對(duì)用戶行為做統(tǒng)計(jì))、當(dāng)前地理位置、歷史地理位置、用戶當(dāng)前賬戶的用戶名、用戶數(shù)據(jù)同步賬戶的用戶名和時(shí)間、軟件使用情況統(tǒng)計(jì)數(shù)據(jù)
當(dāng)前的MIUI系統(tǒng)存在兩個(gè)問題:
1. 以普通shell權(quán)限可以運(yùn)行/system/bin/bugreport程序,該程序用于搜集系統(tǒng)各類信息并輸出
2. 安裝了一個(gè)軟件/system/app/Cit.apk,原用于出廠硬件測(cè)試用,該軟件中,com.miui.cit.CitBroadcastReceiver組件存在permission re-delegation類型漏洞,通過利用該漏洞,可導(dǎo)致任何軟件通過特定參數(shù)遠(yuǎn)程觸發(fā)該接收器,觸發(fā)該軟件自動(dòng)調(diào)用bugreport,并將結(jié)果保存在SD卡的特定目錄/sdcard/MIUI/debug_log/下,如前所述,SD卡的文件可以被任意軟件讀寫
上述兩個(gè)問題中的任何一個(gè)都可以導(dǎo)致對(duì)本漏洞的利用。任何應(yīng)用軟件通過解析bugreport的輸出結(jié)果,得到上述信息。
漏洞證明:三種利用方法:
1. adb shell進(jìn)去,不提權(quán),直接bugreport > /sdcard/dump.txt即可,如圖所示:

2. 對(duì)應(yīng)用軟件,在源碼中用Runtime.getRuntime().exec()函數(shù)執(zhí)行bug report即可。獲得輸出結(jié)果有兩種方法,一是上面所示的重定向,二是對(duì)返回的Process對(duì)象調(diào)用getOutputStream()方法。不具體演示了,我在小米的代碼里有看到使用。
3. 對(duì)CitBroadcastReceiver的permission re-delegation攻擊,代碼片段如下:
Intent intent = new Intent();
intent.setAction("android.provider.Telephony.SECRET_CODE");
intent.setData(Uri.parse("android_secret_code://284"));
sendBroadcast(intent);
然后稍等十秒即可從SD卡的/sdcard/MIUI/debug_log/目錄讀到類似于bugreport-<date>-<time>.log的文件
可以讀取到的部分?jǐn)?shù)據(jù)如下:
IMEI

已安裝軟件信息

已安裝軟件的簽名

用戶賬戶

正在使用的和周邊的WiFi網(wǎng)絡(luò)信息

地理位置信息和歷史記錄

修復(fù)建議:
1. 將bugreport的執(zhí)行權(quán)限調(diào)為root
2. 刪掉Cit.apk軟件,或?yàn)槠銫itBroadcastReceiver接收器的調(diào)用加入靜態(tài)或者動(dòng)態(tài)的自定義權(quán)限檢查代碼
3. 考慮對(duì)bugreport輸出結(jié)果進(jìn)行加密,既然這個(gè)東西只有小米的工程師看,可以在設(shè)備上部署同一個(gè)公鑰,私鑰只有小米官方掌握就可以了
通過該漏洞,任何應(yīng)用軟件可以獲取下列信息:
- 硬件數(shù)據(jù),包括:系統(tǒng)版本、系統(tǒng)編譯信息、內(nèi)存和CPU信息、電池信息、IMEI、基帶版本、設(shè)備生產(chǎn)序號(hào)等
- 當(dāng)前狀態(tài)數(shù)據(jù),包括:當(dāng)前進(jìn)程基本信息、所有進(jìn)程的trace結(jié)果、分區(qū)掛載信息、路由表和ARP緩存表、運(yùn)營(yíng)商、當(dāng)前系統(tǒng)服務(wù)狀態(tài)、系統(tǒng)維護(hù)的Content Provider和Broadcast數(shù)據(jù)結(jié)構(gòu)和權(quán)限管理信息、各軟件運(yùn)行時(shí)間
- 日志數(shù)據(jù),包括:系統(tǒng)日志、系統(tǒng)事件日志、內(nèi)核事件日志、內(nèi)核消息、
- 軟件數(shù)據(jù),包括:已安裝軟件的包名、版本、簽名證書、使用權(quán)限、安裝時(shí)間、上次使用時(shí)間
- 用戶敏感數(shù)據(jù),包括:已連接的WiFi網(wǎng)絡(luò)(MAC地址、SSID、類型、IP、DNS、網(wǎng)關(guān)、DHCP)、周圍可用WiFi網(wǎng)絡(luò)的SSID/BSSID和類型等;、Broadcast處理的歷史記錄(可以對(duì)用戶行為做統(tǒng)計(jì))、當(dāng)前地理位置、歷史地理位置、用戶當(dāng)前賬戶的用戶名、用戶數(shù)據(jù)同步賬戶的用戶名和時(shí)間、軟件使用情況統(tǒng)計(jì)數(shù)據(jù)
當(dāng)前的MIUI系統(tǒng)存在兩個(gè)問題:
1. 以普通shell權(quán)限可以運(yùn)行/system/bin/bugreport程序,該程序用于搜集系統(tǒng)各類信息并輸出
2. 安裝了一個(gè)軟件/system/app/Cit.apk,原用于出廠硬件測(cè)試用,該軟件中,com.miui.cit.CitBroadcastReceiver組件存在permission re-delegation類型漏洞,通過利用該漏洞,可導(dǎo)致任何軟件通過特定參數(shù)遠(yuǎn)程觸發(fā)該接收器,觸發(fā)該軟件自動(dòng)調(diào)用bugreport,并將結(jié)果保存在SD卡的特定目錄/sdcard/MIUI/debug_log/下,如前所述,SD卡的文件可以被任意軟件讀寫
上述兩個(gè)問題中的任何一個(gè)都可以導(dǎo)致對(duì)本漏洞的利用。任何應(yīng)用軟件通過解析bugreport的輸出結(jié)果,得到上述信息。
漏洞證明:三種利用方法:
1. adb shell進(jìn)去,不提權(quán),直接bugreport > /sdcard/dump.txt即可,如圖所示:

2. 對(duì)應(yīng)用軟件,在源碼中用Runtime.getRuntime().exec()函數(shù)執(zhí)行bug report即可。獲得輸出結(jié)果有兩種方法,一是上面所示的重定向,二是對(duì)返回的Process對(duì)象調(diào)用getOutputStream()方法。不具體演示了,我在小米的代碼里有看到使用。
3. 對(duì)CitBroadcastReceiver的permission re-delegation攻擊,代碼片段如下:
Intent intent = new Intent();
intent.setAction("android.provider.Telephony.SECRET_CODE");
intent.setData(Uri.parse("android_secret_code://284"));
sendBroadcast(intent);
然后稍等十秒即可從SD卡的/sdcard/MIUI/debug_log/目錄讀到類似于bugreport-<date>-<time>.log的文件
可以讀取到的部分?jǐn)?shù)據(jù)如下:
IMEI

已安裝軟件信息

已安裝軟件的簽名

用戶賬戶

正在使用的和周邊的WiFi網(wǎng)絡(luò)信息

地理位置信息和歷史記錄

修復(fù)建議:
1. 將bugreport的執(zhí)行權(quán)限調(diào)為root
2. 刪掉Cit.apk軟件,或?yàn)槠銫itBroadcastReceiver接收器的調(diào)用加入靜態(tài)或者動(dòng)態(tài)的自定義權(quán)限檢查代碼
3. 考慮對(duì)bugreport輸出結(jié)果進(jìn)行加密,既然這個(gè)東西只有小米的工程師看,可以在設(shè)備上部署同一個(gè)公鑰,私鑰只有小米官方掌握就可以了
相關(guān)文章
手機(jī)停機(jī)一樣可以無限量免費(fèi)上網(wǎng)
手機(jī)停機(jī)一樣可以無限量免費(fèi)上網(wǎng) 現(xiàn)在向大家透露一個(gè)如何激活已停機(jī)卡的方法!?激活了以后就可以免費(fèi)上網(wǎng)了。注:《本人動(dòng)感地帶的卡已測(cè),通過》! 首先2009-06-28- 手機(jī)病毒是病毒的一個(gè)分支,雖然其存在只有短短數(shù)年,但在將來很可能會(huì)隨著3G的推廣而大量涌現(xiàn)。 病毒類型:手機(jī)病毒 病毒目的:破壞手機(jī)系統(tǒng),狂發(fā)短信等2009-06-28
三星Android(安卓)手機(jī)系統(tǒng)鎖屏功能信息泄露風(fēng)險(xiǎn)的防范
安卓常見的九點(diǎn)鎖屏模式.不小心會(huì)被泄露信息哦2012-06-25- Android系統(tǒng)承襲了Linux開源操作系統(tǒng)的安全特性,并采用了層次化的方式來保證系統(tǒng)安全,本文將詳細(xì)介紹Android層次化安全架構(gòu)及其核心組件。2012-07-07
怎樣利用架構(gòu)廉價(jià)的追蹤網(wǎng)絡(luò)中的入侵者
在缺乏大量預(yù)算的前提下要怎樣追蹤網(wǎng)絡(luò)入侵者?這里有一個(gè)廉價(jià)的解決辦法:一旦架構(gòu)建立并且數(shù)據(jù)開始收集,網(wǎng)絡(luò)防御者可以在這些被動(dòng)DNS數(shù)據(jù)上執(zhí)行大范圍的分析來追蹤網(wǎng)絡(luò)2016-06-01手機(jī)里的信息到底安不安全?手機(jī)數(shù)據(jù)泄露大揭秘
如果你給自己的手機(jī)設(shè)置了PIN碼,甚至忘記了連自己也解不開;又或者設(shè)置了比劃甚至指紋解鎖,然后以為這樣的手機(jī)就是安全的了。是的,對(duì)于一般的人來說算安全了,可是對(duì)于2016-06-03