HITCON GIRLS: Android 滲透測試介紹 (Elven Liu)
-
Upload
hitcon-girls -
Category
Technology
-
view
736 -
download
3
Transcript of HITCON GIRLS: Android 滲透測試介紹 (Elven Liu)
Android 滲透測試
[Android Penetration Testing]
2015/11 讀書會
摘要
前置作業
OWASP Mobile Top 10
AppUse介紹
Lab (1~3)
前置作業
1. 開啟AppUse的Emulator
2. 耐心等待......
3. 密碼:1234
備註:APPUSE 3.1版本無法免費外接實體手機
範例下載
https://goo.gl/0kmu7t
https://github.com/liuelves/android_demo_apk
Android 系統架構
OWASP MOBILE TOP 10
OWASP Mobile Top 10
src: https://www.owasp.org/index.php/File:2014-01-26_20-23-29.png
M1 - Weak Server Side Controls
● 漏洞描述○ Server的防護措施不足
■ 後端API服務、Web Service、傳統網站等......■ 請參考OWASP Web Top 10 , Cloud Top Ten Projects
M1 - Weak Server Side Controls
● 常見漏洞○ 網站流程邏輯錯誤
○ 脆弱的身分認證
○ 脆弱或無Session管理
○ 明文傳送敏感資訊(Get/Post Method)○ 伺服器端未過濾輸入資料資料 (SQL, XSS, Command…)
M2 - Insecure Data Storage
● 漏洞描述○ 竊取使用者敏感資訊
○ 利用惡意程式或修改並重新簽章一個合法APP
● 敏感資料○ Usernames、Password、Cookies、Authentication Tokens…….○ 應用程式資料:Location、UDID/IMEI......○ 個人資料:生日、身分證字號、信用卡資訊......
M2 - Insecure Data Storage
● 常見漏洞○ SQLite databases○ Log Files○ Plist Files○ XML Data Stores or Manifest Files○ Binary data stores○ Cookie stores○ SD Card○ Cloud synced
M3 - Insufficient Transport Layer Protection
● 漏洞描述○ 攻擊者可利用漏洞攔截傳輸時的敏感資訊
○ 威脅可能存在於
■ 與他人共享網路、網路裝置
■ 惡意程式
● 常見漏洞○ 未驗證憑證或憑證鏈
○ 脆弱的Handshake設計
M4 - Unintended Data Leakage
● 漏洞描述○ 不小心造成的資料外洩包含
■ 暫存資料 (Buffers, Cache, Temp)■ 圖像 (Screenshots)■ 按鍵事件 (key-presses, Logging)■ 日誌記錄 (Logs)
○ 可透過惡意程式、修改的APP或鑑識工具取得AP敏感資訊
M5 - Poor Authorization and Authentication
● 漏洞描述○ 弱密碼
○ 攻擊者可直接與APP後端伺服器互動
○ 攻擊者可繞過離線驗證服務
M6 - Broken Cryptography
● 漏洞描述○ 使用弱加密演算法或未妥善保護金鑰
○ 攻擊者可將已加密的敏感資訊解密為明文
● 常見漏洞○ 脆弱的金鑰管理程序
○ 使用自定義加密協定
○ 使用不安全和/或過時的演算法
M7 - Client Side Injection
● 漏洞描述○ APP接收不信任來源的資料
■ 內/外部使用者
■ APP本身、惡意APP○ 可透過該漏洞竊取敏感資訊
■ 密碼
■ 個人識別資訊
■ ......
M8 - Security Decisions Via Untrusted Inputs
● 漏洞描述○ 攻擊者可透過不被信任的資料輸入到敏感的方法呼叫(method calls)○ 可攔截呼叫(如:IPC或Web服務呼叫)並篡改(如:敏感的參數)
○ 提供最高訪問權限給攻擊者,甚至可繞過安全機制使APP喪失機密性與完
整性
M9 - Improper Session Handling
● 漏洞描述○ 為了方便使用者使用,APP的Session週期會設定的比瀏覽器長
○ 常見Session有HTTP Cookies、Oauth Token、Single Sign-on等○ 若Session值容易猜測,容易提升攻擊者於行動裝置的權限
M10 - Lack of Binary Protections
● 漏洞描述○ 有心人士可透過自動化工具對APP進行逆向工程取得程式碼
○ 若程式碼中含有敏感資訊,如hardcode API金鑰、帳號、密碼等,可能造成
智慧財產權遭竊取
○ 也可修改APP來執行一些惡意的隱藏功能
AppUse介紹
Introduction
AppUse (Android Pentest Platform Unified Standalone Environment)
Android 滲透測試平台的集中獨立環境
目的:為 Android 環境的行動應用程序安全測試
功能:Android 模擬器、開發工具,所需要的開發軟件SDK(軟件
工具包),反編譯,反彙 編等
Overview
Home
Load APK
Android Device
Tools
Reversing
Application Data
DemoWomanLog APK
Demo WomanLog APK1. 讀取WomanLog APK檔案並安裝
2. 正常輸入資料至APP內,且設置APP密碼
3. 將APP之DB以adb shell方式倒出○ ubuntu# adb pull /data/data/com.womanlog/database/ ./
4. 確認APP設置之密碼,且修改正確密碼
5. 將修改過的DB再以adb shell方式餵入手機模擬器中○ ubuntu# adb push ./womanlog.db /data/data/com.womanlog/database/
6. 測試手機密碼是否為舊密碼
AppUse 電子書https://goo.gl/eIB4py
https://liuelves.gitbooks.io/how-to-use-appuse-vm/content/
Lab
所有關卡: https://goo.gl/viT6bxLab1~3 解答影片:https://goo.gl/4yNcBq
Lab 1 不安全的儲存
不安全的儲存
● 儲存數據於Android App○ Shared Preferences○ SQLite Database○ Local Storage○ External Storage
Lab 2 蒐集Logcat洩露的資訊
蒐集Logcat洩露的資訊
● 問題
○ app 是否有洩漏敏感資訊的潛在可能
○ 如何透過logcat檢查
● 準備工作
○ 一個實體/虛擬Android設備
○ 透過adb 工具可連接Android與電腦
● 指令
○ adb logcat○ adb logcat | grep “http[s]”○ adb logcat | grep [Cc]ookie○ adb logcat | grep -i “[\w\s_-]*token[\w\s_-]*”○ adb logcat > output.log
Logcat ContentD/[SDK] AsyncHttpClient(31329): Making POST Request for url:http://beepost.beetalkmobile.com/api/device/registerand params[app_id=10023, nonce=6d91816485ce444482c1400032eb0a57, timestamp=1447654611, device_type=2, device_id=8206420927679614188, notify_token=323137323631363431363330363631343531, account=LuVcYUt2tFw+aMRvoyF0aGZcEMLVW9maHPjY8Q7vyW4=]
V, Verbose 詳細日誌D, Debug 除錯日誌I, Info 資訊級日誌W, Warn 警告級日誌E, Error 錯誤級日誌e.g. adb logcat *:E
Lab 3 man-in-the-middle attack :}Burp Suite
Lab 4 Wireshark
Wireshark封包側錄
● 將tcpdump 放進手機裡 (也可以放在system/bin or download中)○ adb push ‘/root/Desktop/tcpdump’ /data/local
● adb 指令
○ tcpdump -p -vv -s 0 -w /mnt/sdcard/htcws.pcap● 如果要把資料從手機撈出
○ adb pull /sdcard/abc.pcap ‘/root/Desktop’