突然消失するかもしれないブログ

”とつきえブログ”

Androidのhttpsの通信をスニファーする方法(暫定版)

Androidのhttpsの通信をスニファーする方法(暫定版)です。

現在、某アプリの解析が忙しいので簡単な図による説明だけです。

あとでまとめます。m(_ _)m

尚、https/sslによる通信は、端末やサーバに不具合などの脆弱性が無い、端末やサーバを改造されたりしなければ、一般的に覗き見されることはありません。

ここに記載した内容は、Androidのアプリのhttpsの通信を解析することを目的とした、技術的なノウハウをまとめたものです。


Androidでhttps通信をスニファーするのは、iPhone、Windows Phoneと異なり、とても大変です。

理由は、以下の通りです。

(1)システム共通のプロキシーの設定が行えない。

(2)ルート証明書を変更することができない。(追加や削除を行うにはroot権限が必要)

(3)iptablesによるポートフォワーディングを行うことができない。(root権限が必要)

 

ということで、方法は2つあります。

 

(方法1)ポートフォワーディングを使う

参考:

技術 / Android / Emulator(AVD)の証明書ストアに証明書を追加する

NewImage

・(1)実機からミログ系の検体アプリ、(2)ProxyDroid(透過型プロキシアプリ)を抜き出して、(3)エミュレータにインストールします。

・(4)ProxyDroid(Linuxのiptablesを使います)でAndroidの通信を外部PCで動作するBurp Proxy(非透過型プロキシ)に転送する設定を行います。

・(5)Burp ProxyのオレオレCA証明書をエミュレータに設定します。(6)Burp Proxyで特定ホスト名のサーバ証明書を返すように設定します。

これで、Burp Proxyでhttpsの通信をスニファーできます。

尚、Android Marketは実機のみで使え、正規の方法ではエミュレータでは使えないので、いずれにせよ実機は必要です。実機/エミュレータ共に正規の方法ではルート証明書を変更することができないので、エミュレータでもイメージの改造が必要です。

 

(2)AndroidのSSLのライブラリで証明書のチェックを無効化するように改造する

(あとで書く)

参考:

AndroidアプリケーションのSSL通信をプロキシで解析する(1)

 

 

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。