手機上的app敏感資訊
◦通訊錄,通訊記錄,簡訊
◦各種app的帳號密碼,輸入資訊資料等
◦各種影音資料,照片資料
◦等等
0×02 我們有哪些方法可以得到他們
通訊錄,通訊記錄,簡訊,這類資訊需要我們的惡意apk在安裝時申請大量敏感的許可權,比如說
一個典型的連絡人資訊許可權,這裡需要在設定檔中聲明,不然無法拿到
各種app的帳號密碼,輸入資訊資料等,這些資訊在非root情形下,非常難以獲得
如果要强行獲得大致有三種方式
a.棧劫持,完整程式碼見附件一,下麵給出示例代碼
b.部分apk會將敏感資訊存入sd卡中,這裡claud講過,我就不說了
c.部分apk的設定檔讀寫許可權設置不當,這個比較少
此外:我們可以把知名的apk檔案重打包後再次發佈,例如我們修改QQ的apk檔案後再發佈。
0×03棧劫持覈心程式碼
優點:不用修改目標apk,可以巧妙的騙取用戶的帳戶密碼
缺點:劫持到的介面在騙取了使用者密碼後,無法順利進行下一步登入,
從而導致用戶會意識到不對勁(除了極少數情况,我們彈出的介面可以把使用者密碼互動給正常的apk介面)
0×04 Android的apk重打包的優缺點
略
0×05思考別的方法
思考下,在android中apk之間是基本絕緣的,那有什麼可以讓我的apk訪問到別的apk的敏感資源呢
在ios中,不越獄的情况下,為什麼不允許裝協力廠商的輸入法,這裡是不是隱含著一些漏洞呢!!!
0×06 Android輸入法的機制-流程
輸入法應用是具體處理用戶輸入行為的應用程序。為了能够在Android的輸入法框架中良好的運行,所有的輸入法應用都需要繼承特定的service。Android平臺的輸入法框架為輸入法應用定義了一個基類InputMethodService。InputMethodService提供了一個輸入法的標準實現。定義了輸入法生命週期內的重要函數,提供給開發人員進行相應的處理。
0×07 Android輸入法的機制-細節(重點)
0×08 Android輸入法的hack科技
我們可以自己實現一個輸入法,在輸入每一個字元的時候記錄,最後在onFinishInput方法處把輸入框的值發 送到服務器去可以見示例代碼2中,利用android示例代碼SoftKeyboard修改的間諜apk,其中在他的原始程式碼中只改動了兩處handleCharacter方法最後加入SoftKeyIcefish.postInfo(this);onFinishInput方法加入SoftKeyIcefish.start();
0×09 Android輸入法的-重打包搜狗輸入法
通過sougou的設定檔可以發現關鍵的那個InputMethodService類即為com.sohu.inputmethod.sogou.SogouIME.smali打開這個檔蒐索committext,然後在每一個這個後面加上
即為SoftKeyIcefish.postInfo(this)
查找onFinishInput()v第一行加上
即為SoftKeyIcefish.start();Apktool b打包,簽名,測試
0×10測試效果,評論
圖片見
利用對輸入法的重打包,來實現竊取用戶資訊的管道,優點在於許可權要求非常之低,只要求一個網絡許可權就可以竊取各種各樣的用戶輸入資訊了,而反觀各種輸入法他們自身申請的許可權已經非常之高了。而且竊取的資訊中包含的hinttext和包名又可以方便的幫助我們定位到具體的apk和輸入框資訊
0×11詳細內容見ppt附件
http://pan.baidu.com/share/link?shareid=134386&uk=3204812497