hitcon girls: android 滲透測試介紹 (elven liu)

41
Android 滲透測試 [Android Penetration Testing] 2015/11 讀書會

Upload: hitcon-girls

Post on 15-Jan-2017

736 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: HITCON GIRLS: Android 滲透測試介紹 (Elven Liu)

Android 滲透測試

[Android Penetration Testing]

2015/11 讀書會

Page 2: HITCON GIRLS: Android 滲透測試介紹 (Elven Liu)

摘要

前置作業

OWASP Mobile Top 10

AppUse介紹

Lab (1~3)

Page 3: HITCON GIRLS: Android 滲透測試介紹 (Elven Liu)

前置作業

1. 開啟AppUse的Emulator

2. 耐心等待......

3. 密碼:1234

備註:APPUSE 3.1版本無法免費外接實體手機

Page 4: HITCON GIRLS: Android 滲透測試介紹 (Elven Liu)

範例下載

https://goo.gl/0kmu7t

https://github.com/liuelves/android_demo_apk

Page 5: HITCON GIRLS: Android 滲透測試介紹 (Elven Liu)

Android 系統架構

Page 6: HITCON GIRLS: Android 滲透測試介紹 (Elven Liu)
Page 7: HITCON GIRLS: Android 滲透測試介紹 (Elven Liu)

OWASP MOBILE TOP 10

Page 8: HITCON GIRLS: Android 滲透測試介紹 (Elven Liu)

OWASP Mobile Top 10

src: https://www.owasp.org/index.php/File:2014-01-26_20-23-29.png

Page 9: HITCON GIRLS: Android 滲透測試介紹 (Elven Liu)

M1 - Weak Server Side Controls

● 漏洞描述○ Server的防護措施不足

■ 後端API服務、Web Service、傳統網站等......■ 請參考OWASP Web Top 10 , Cloud Top Ten Projects

Page 10: HITCON GIRLS: Android 滲透測試介紹 (Elven Liu)

M1 - Weak Server Side Controls

● 常見漏洞○ 網站流程邏輯錯誤

○ 脆弱的身分認證

○ 脆弱或無Session管理

○ 明文傳送敏感資訊(Get/Post Method)○ 伺服器端未過濾輸入資料資料 (SQL, XSS, Command…)

Page 11: HITCON GIRLS: Android 滲透測試介紹 (Elven Liu)

M2 - Insecure Data Storage

● 漏洞描述○ 竊取使用者敏感資訊

○ 利用惡意程式或修改並重新簽章一個合法APP

● 敏感資料○ Usernames、Password、Cookies、Authentication Tokens…….○ 應用程式資料:Location、UDID/IMEI......○ 個人資料:生日、身分證字號、信用卡資訊......

Page 12: HITCON GIRLS: Android 滲透測試介紹 (Elven Liu)

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

Page 13: HITCON GIRLS: Android 滲透測試介紹 (Elven Liu)

M3 - Insufficient Transport Layer Protection

● 漏洞描述○ 攻擊者可利用漏洞攔截傳輸時的敏感資訊

○ 威脅可能存在於

■ 與他人共享網路、網路裝置

■ 惡意程式

● 常見漏洞○ 未驗證憑證或憑證鏈

○ 脆弱的Handshake設計

Page 14: HITCON GIRLS: Android 滲透測試介紹 (Elven Liu)

M4 - Unintended Data Leakage

● 漏洞描述○ 不小心造成的資料外洩包含

■ 暫存資料 (Buffers, Cache, Temp)■ 圖像 (Screenshots)■ 按鍵事件 (key-presses, Logging)■ 日誌記錄 (Logs)

○ 可透過惡意程式、修改的APP或鑑識工具取得AP敏感資訊

Page 15: HITCON GIRLS: Android 滲透測試介紹 (Elven Liu)

M5 - Poor Authorization and Authentication

● 漏洞描述○ 弱密碼

○ 攻擊者可直接與APP後端伺服器互動

○ 攻擊者可繞過離線驗證服務

Page 16: HITCON GIRLS: Android 滲透測試介紹 (Elven Liu)

M6 - Broken Cryptography

● 漏洞描述○ 使用弱加密演算法或未妥善保護金鑰

○ 攻擊者可將已加密的敏感資訊解密為明文

● 常見漏洞○ 脆弱的金鑰管理程序

○ 使用自定義加密協定

○ 使用不安全和/或過時的演算法

Page 17: HITCON GIRLS: Android 滲透測試介紹 (Elven Liu)

M7 - Client Side Injection

● 漏洞描述○ APP接收不信任來源的資料

■ 內/外部使用者

■ APP本身、惡意APP○ 可透過該漏洞竊取敏感資訊

■ 密碼

■ 個人識別資訊

■ ......

Page 18: HITCON GIRLS: Android 滲透測試介紹 (Elven Liu)

M8 - Security Decisions Via Untrusted Inputs

● 漏洞描述○ 攻擊者可透過不被信任的資料輸入到敏感的方法呼叫(method calls)○ 可攔截呼叫(如:IPC或Web服務呼叫)並篡改(如:敏感的參數)

○ 提供最高訪問權限給攻擊者,甚至可繞過安全機制使APP喪失機密性與完

整性

Page 19: HITCON GIRLS: Android 滲透測試介紹 (Elven Liu)

M9 - Improper Session Handling

● 漏洞描述○ 為了方便使用者使用,APP的Session週期會設定的比瀏覽器長

○ 常見Session有HTTP Cookies、Oauth Token、Single Sign-on等○ 若Session值容易猜測,容易提升攻擊者於行動裝置的權限

Page 20: HITCON GIRLS: Android 滲透測試介紹 (Elven Liu)

M10 - Lack of Binary Protections

● 漏洞描述○ 有心人士可透過自動化工具對APP進行逆向工程取得程式碼

○ 若程式碼中含有敏感資訊,如hardcode API金鑰、帳號、密碼等,可能造成

智慧財產權遭竊取

○ 也可修改APP來執行一些惡意的隱藏功能

Page 21: HITCON GIRLS: Android 滲透測試介紹 (Elven Liu)

AppUse介紹

Page 22: HITCON GIRLS: Android 滲透測試介紹 (Elven Liu)

Introduction

AppUse (Android Pentest Platform Unified Standalone Environment)

Android 滲透測試平台的集中獨立環境

目的:為 Android 環境的行動應用程序安全測試

功能:Android 模擬器、開發工具,所需要的開發軟件SDK(軟件

工具包),反編譯,反彙 編等

Page 23: HITCON GIRLS: Android 滲透測試介紹 (Elven Liu)

Overview

Page 24: HITCON GIRLS: Android 滲透測試介紹 (Elven Liu)

Home

Page 25: HITCON GIRLS: Android 滲透測試介紹 (Elven Liu)

Load APK

Page 26: HITCON GIRLS: Android 滲透測試介紹 (Elven Liu)

Android Device

Page 27: HITCON GIRLS: Android 滲透測試介紹 (Elven Liu)

Tools

Page 28: HITCON GIRLS: Android 滲透測試介紹 (Elven Liu)

Reversing

Page 29: HITCON GIRLS: Android 滲透測試介紹 (Elven Liu)

Application Data

Page 30: HITCON GIRLS: Android 滲透測試介紹 (Elven Liu)

DemoWomanLog APK

Page 31: HITCON GIRLS: Android 滲透測試介紹 (Elven Liu)

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. 測試手機密碼是否為舊密碼

Page 32: HITCON GIRLS: Android 滲透測試介紹 (Elven Liu)

AppUse 電子書https://goo.gl/eIB4py

https://liuelves.gitbooks.io/how-to-use-appuse-vm/content/

Page 33: HITCON GIRLS: Android 滲透測試介紹 (Elven Liu)

Lab

所有關卡: https://goo.gl/viT6bxLab1~3 解答影片:https://goo.gl/4yNcBq

Page 34: HITCON GIRLS: Android 滲透測試介紹 (Elven Liu)

Lab 1 不安全的儲存

Page 35: HITCON GIRLS: Android 滲透測試介紹 (Elven Liu)

不安全的儲存

● 儲存數據於Android App○ Shared Preferences○ SQLite Database○ Local Storage○ External Storage

Page 36: HITCON GIRLS: Android 滲透測試介紹 (Elven Liu)

Lab 2 蒐集Logcat洩露的資訊

Page 37: HITCON GIRLS: Android 滲透測試介紹 (Elven Liu)

蒐集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

Page 38: HITCON GIRLS: Android 滲透測試介紹 (Elven Liu)

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

Page 39: HITCON GIRLS: Android 滲透測試介紹 (Elven Liu)

Lab 3 man-in-the-middle attack :}Burp Suite

Page 40: HITCON GIRLS: Android 滲透測試介紹 (Elven Liu)

Lab 4 Wireshark

Page 41: HITCON GIRLS: Android 滲透測試介紹 (Elven Liu)

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’