安卓應用程序滲透測試(九)
在上一篇文章安卓應用程序滲透測試八中,我們講解了當app想要與其他app共享數據時,通過content provider發起攻擊和不安全的加密技術,本文我們繼續講解其他攻擊手法。
攻擊安卓粘貼板(pasteboard)
安卓提供剪貼板框架來複制和粘貼不同類型的數據,如文本,圖像,二進位流數據或者其他複雜的數據類型。
簡單的文本數據直接存儲在剪貼板中,而複雜的數據則存儲為一個引用,將要粘貼的應用使用content provider可以對這個引用進行解析。
在實現了剪貼板框架的app內部或不同的app之間可以進行複製粘貼。
為了使用剪貼板,你需要調用getSystemService()方法來實例化一個ClipboardManager對象。
「服務調用剪貼板」,服務碼1,2,3分別代表的是getClipboadrText,setClipboardText和hasClipboardText。
服務調用剪貼板 2 s16 thisisinsertedtext(插入的內容)
下面使用銀行app來作為例子,我們從一個app中複製賬號,如圖:
我們可以看到所有進程,我們也可以通過apk名來搜索我們想看的進程,如圖:
命令:ps | grep 『insecure』
我們可以使用下面的命令來獲取到複製的賬號:
我們可以看到輸入的內容,也就是app中被複制的內容。能看到明文,這就很不安全了。如果是信用卡,借記卡,PIN,CVV或者是賬號,這就更加嚴重了。
緩解措施
·為了完全不使用剪貼板,KeePass密碼管理軟體提出了所謂的自動類型。它通過模擬相應的按鍵直接向目標欄位填充。這麼做的優點是沒有通過剪貼板來傳輸數據。
·如果要使用剪貼板來複制粘貼密碼時,可以配置KeePass在短時間內自動清除clipboard中的內容。
·複製密碼時,KeePass會在其主窗口底部顯示一個遞減進度條,用戶可以實實在在的看到超時進度,一旦超時到期(例如15秒或30秒),如果剪貼板中還包含KeePass數據,KeePass就會立刻刪除剪貼板的內容(用戶無法再使用剪貼板歷史管理功能)。
攻擊安卓鍵盤緩存
安卓中有一個用戶字典,可以保存用戶輸入,為了方便以後自動更正用戶的輸入。但是所有其他的app都可以任意訪問這個用戶字典,而沒有進行許可權設置。
在下面的例子中,我們將選擇文本,添加用戶名到用戶字典中,如圖:
你可以在用戶字典資料庫中獲取到這個信息。
用戶字典文件存儲在/data/data/com.android.providers.userdictionary/databases目錄中
打開資料庫文件 sqlite3 user_dict.db
『select * from words』這條查詢語句會查詢出所有添加到用戶字典的信息,如圖:
緩解措施
·禁用任何敏感信息的自動更正功能,不僅是密碼欄位。因為鍵盤可以緩存敏感信息,所以可以恢復。
·為了提高安全性,可以考慮使用自定義鍵盤(以及PIN輸入),該鍵盤可以禁用緩存,還提供了其他的保護措施來防禦惡意軟體。
※Adobe Reader類型混淆導致代碼執行漏洞分析
※CVE-2017-8360利用分析
TAG:嘶吼RoarTalk |