android pen test - recon -
TRANSCRIPT
自己紹介
名前: 鈴木 研吾 twitter: @kengoScal
2011~2014:セキュリティアナリスト@某SIer 2014年11月: マネーフォワード入社 2014年11月~2015年01月: iOS開発 2015年02月~08月:Android開発 2015年10月~ : セキュリティ的な何か
2
自前Pen Testのすゝめ
• 価格は大体50万~100万くらい • 自分で(も)やったほうがよくね? • 診断項目の取捨選択 -> 大事な情報にリソースを • 診断担当者とのやり取りの捗り • Androidのフレームワークについて語れる • お小遣い稼ぎに繋がる
4
Reconとは
• Recon(naisance): 偵察 • リーチ可能な情報を収集し、整理するフェーズ • 技術的情報ももちろんだが、ターゲットの組織図・ビジネス内容といったところもターゲット
6
アプリ情報収集
• 収拾対象 • package情報 • Permission情報 • データの置き場 • android:exported=trueなコンポーネント • etc
• drozerを使うとラク • Androidセキュリティ・アセスメントツール
• デモ
9
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...
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)
logcat探し
• 下記ターミナルで実行して、アプリを弄っとけばおk % adb logcat | egrep --color=auto -i 'cookie|token'
• 対策は簡単 • BuildVariantsでわけるとか • Timberとかでちょろっと対応してればおk
• やっててそんなに楽しくなかった
14
Networkキャプチャ: tcp編
17
• tcpdump + netcat + wiresharkでリアルタイムにパケットを見る(デモ) • tcpdump:
• netcat:
• wireshark:
※エミュレータには別途インストールが必要
※実機の場合、Root化が必要
※エミュレータと実機はCPUアーキテクチャが 違うので、コンパイル時に注意する
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
• L4レイヤーまでしか一見してわからない • セッションレベルの話ならわかる
• でもアプリとサーバとの動作はイマイチわからりにくい • Https通信を見れない
ローカルWebプロキシを立てる
tcpdump + netcat + wiresharkの限界
20
Network Capture: http(s)編
21
• ローカルWebプロキシ
• ブラウザ<-->Webサーバ間のhttp(s)通信をスニッフィングし • パラメタやシグネチャ等を改竄@ローカルプロキシしたり • OWASP ZAPならReconからExploitationへの遷移が楽です
参照: http://www.slideshare.net/zaki4649/ss-39061128
22 参照: http://www.slideshare.net/zaki4649/ss-39061128
こんな感じ
次回予告
23
1. Planning 2. Scoping 3. Recon 4. Scanning 5. Exploitation 6. Reporting
-> StageFlight辺りをやってみる(たい)