Top Banner
2015/09/29 @kengoScal Android Pen Test - Recon -
24

Android Pen Test - Recon -

Apr 12, 2017

Download

Engineering

Kengo Suzuki
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Android Pen Test - Recon -

2015/09/29 @kengoScal

Android Pen Test - Recon -

Page 2: Android Pen Test - Recon -

自己紹介

名前: 鈴木 研吾 twitter: @kengoScal

2011~2014:セキュリティアナリスト@某SIer 2014年11月: マネーフォワード入社 2014年11月~2015年01月: iOS開発 2015年02月~08月:Android開発 2015年10月~ : セキュリティ的な何か

2

Page 3: Android Pen Test - Recon -

Pen Testとは

• Pen(etration) Test • ターゲットアプリの脆弱性を実際に突き、情報の取得や改竄を狙うテストのこと

• バグ探し(テスト)の一種

3

Page 4: Android Pen Test - Recon -

自前Pen Testのすゝめ

• 価格は大体50万~100万くらい • 自分で(も)やったほうがよくね? • 診断項目の取捨選択 -> 大事な情報にリソースを • 診断担当者とのやり取りの捗り • Androidのフレームワークについて語れる • お小遣い稼ぎに繋がる

4

Page 5: Android Pen Test - Recon -

Pen Test Phases

1. Planning 2. Scoping 3. Recon 4. Scanning 5. Exploitation 6. Reporting

5

Page 6: Android Pen Test - Recon -

Reconとは

• Recon(naisance): 偵察 • リーチ可能な情報を収集し、整理するフェーズ • 技術的情報ももちろんだが、ターゲットの組織図・ビジネス内容といったところもターゲット

6

Page 7: Android Pen Test - Recon -

Recon@Android

• アプリ情報収取 • logcat探し • Networkキャプチャ

7

Page 8: Android Pen Test - Recon -

Recon@Android

• アプリ情報収拾 • logcat探し • Networkキャプチャ

8

Page 9: Android Pen Test - Recon -

アプリ情報収集

• 収拾対象 • package情報 • Permission情報 • データの置き場 • android:exported=trueなコンポーネント • etc

• drozerを使うとラク • Androidセキュリティ・アセスメントツール

• デモ

9

Page 10: Android Pen Test - Recon -

Drozer

10

# package dz> run app.package.list -f Maps com.google.android.apps.maps (Maps)

# package情報(含むPermission) dz> run app.package.info -f Maps Package: com.google.android.apps.maps Application Label: Maps Process Name: com.google.android.apps.maps Version: 8.4.1 Data Directory: /data/data/com.google.android.apps.maps APK Path: /system/app/Maps/Maps.apk UID: 10073 GID: [3003, 1028, 1015] Shared Libraries: null Shared User ID: com.google.android.apps.maps Uses Permissions: - android.permission.INTERNET...

Page 11: Android Pen Test - Recon -

11

# android:exportedなActivity dz> run app.activity.info -a com.google.android.apps.maps Package: com.google.android.apps.maps com.google.android.maps.MapsActivity Permission: null com.google.android.maps.PlacesActivity...

# android:exported=trueなコンポーネントサマリ dz> run app.package.attacksurface com.google.android.apps.maps Attack Surface: 9 activities exported 2 broadcast receivers exported 1 content providers exported 4 services exported Shared UID (com.google.android.apps.maps)

Page 12: Android Pen Test - Recon -

Recon@Android

• アプリ情報収取 • logcat探し • Networkキャプチャ

12

Page 13: Android Pen Test - Recon -

logcat探し

• デバッグ用に実装していたlogcatがリリース用のapkに残ったまま 且つlogcatがセンシティブな情報を含んでる場合 • -> 情報漏えいのチャンス

13

Page 14: Android Pen Test - Recon -

logcat探し

• 下記ターミナルで実行して、アプリを弄っとけばおk % adb logcat | egrep --color=auto -i 'cookie|token'

• 対策は簡単 • BuildVariantsでわけるとか • Timberとかでちょろっと対応してればおk

• やっててそんなに楽しくなかった

14

Page 15: Android Pen Test - Recon -

Recon@Android

• アプリ情報収取 • logcat探し • Networkキャプチャ

15

Page 16: Android Pen Test - Recon -

Networkキャプチャ

• トラフィックを観察して、tcp周りのプロテクションの問題、サーバサイド側の変な実装、セッションハンドリングなどの情報を収集することが目的 

16

Page 17: Android Pen Test - Recon -

Networkキャプチャ: tcp編

17

• tcpdump + netcat + wiresharkでリアルタイムにパケットを見る(デモ) • tcpdump:

• netcat:

• wireshark:

※エミュレータには別途インストールが必要

※実機の場合、Root化が必要

※エミュレータと実機はCPUアーキテクチャが 違うので、コンパイル時に注意する

Page 18: Android Pen Test - Recon -

環境図

18

:54321:12345forward

Page 19: Android Pen Test - Recon -

19

[Kengo@Mac] ~ % adb shell "./data/local/tcpdump -w - | /data/local/./netcat -l -p 12345”

% adb forward tcp:12345 tcp:54321 && nc 127.0.0.1 54321 | sudo wireshark -k -S -i lo0

Page 20: Android Pen Test - Recon -

• L4レイヤーまでしか一見してわからない • セッションレベルの話ならわかる

• でもアプリとサーバとの動作はイマイチわからりにくい • Https通信を見れない

ローカルWebプロキシを立てる

tcpdump + netcat + wiresharkの限界

20

Page 21: Android Pen Test - Recon -

Network Capture: http(s)編

21

• ローカルWebプロキシ

• ブラウザ<-->Webサーバ間のhttp(s)通信をスニッフィングし • パラメタやシグネチャ等を改竄@ローカルプロキシしたり • OWASP ZAPならReconからExploitationへの遷移が楽です

参照: http://www.slideshare.net/zaki4649/ss-39061128

Page 22: Android Pen Test - Recon -

22 参照: http://www.slideshare.net/zaki4649/ss-39061128

こんな感じ

Page 23: Android Pen Test - Recon -

次回予告

23

1. Planning 2. Scoping 3. Recon 4. Scanning 5. Exploitation 6. Reporting

-> StageFlight辺りをやってみる(たい)

Page 24: Android Pen Test - Recon -

Thank you!

絶賛採用中