web-dev-qa-db-ja.com

iPhoneのネットワークトラフィックをどのように監視しますか?

サードパーティと提携する前に、サードパーティのアプリケーションをテストするためにiPhoneで使用するWiresharkのようなツールを探しています。助言がありますか?

58
Jason Reynolds

HTTP/HTTPSトラフィックのみを表示する場合は、他の回答で提案されているような中間者プロキシが適切なソリューションです。

パケットスニッフィングの最適なソリューション(シミュレータではなくactualiOSデバイスでのみ動作しますが)私が見つけたのは、rvictlを使用することです。 このブログ投稿 には素晴らしい記事があります。基本的にあなたがすること:

rvictl -s <iphone-uid-from-xcode-organizer>

次に、Wireshark(またはお気に入りのツール)で作成したインターフェイスをスニッフィングし、完了したらインターフェイスをシャットダウンします:

rvictl -x <iphone-uid-from-xcode-organizer>

シミュレータをパケットスニッフィングしたい場合は、ローカルMacへのトラフィックも歩き回る必要がありますが、rvictlは、iOSデバイスからのトラフィックを表示する仮想インターフェイスを作成するためです。 USBポートに接続しました。

注:これはMacでのみ機能します。

44
mpontillo

使用するプラットフォームを指定しなかったため、Macであると仮定します;-)

私はプロキシを使用しています。 SquidManSquid のスタンドアロン実装を使用します

MacでSquidManを起動してから、iPhoneでGeneral/Wifi SettingsにProxy paramsを入力します。

その後、コンソールアプリでsquid-access.logを見てHTTPトラフィックを見ることができます

さらに情報が必要な場合は、tcpdumpに切り替えますが、WireSharkも動作するはずです。

36
Stephan Burlot

Charles Web Debugging Proxy を使用しますが、費用はかかりますが、試用版があります。

IPhone/iPadがMacと同じWifiネットワークを共有している場合、セットアップは非常に簡単です。

  1. MacにCharlesをインストールする
  2. MacのIPアドレスを取得します-Macの「ネットワークユーティリティ」を使用します
  3. IPhone/iPadでWifi設定を開き、「HTTPプロキシ」で手動に変更し、ステップ(2)からIPを入力し、次に8888にポートします(Charlesのデフォルトポート)
  4. Charlesを開き、[プロキシ設定]ダイアログで[Mac OS Xプロキシを有効にする]と[HTTPプロキシを使用する]にチェックが入っていることを確認します
  5. Charles内にトラフィックが表示されるはずです。
  6. HTTPSトラフィックを確認するには、追加の2ステップを実行して Charles Certificate Bundle をダウンロードし、.crtファイルをiPhone/iPadにメールで送信してインストールする必要があります。
  7. [プロキシ設定]ダイアログの[SSL]タブで、ポート443でスニッフィングする特定のhttpsトップレベルドメインを追加します。

MacとiOSデバイスが同じWifiネットワーク上にない場合、システム環境設定の「共有」の下にある「インターネット共有」オプションを使用して、MacをWifiルーターとして設定できます。次に、デバイスをその「Wifi」ネットワークに接続し、上記の手順に従います。

21
joneswah

プロキシを介して実行し、 Wireshark を使用してトラフィックを監視します。

16
Chris Ballance

Mac OS Xの場合

  1. インストール Charles Proxy
  2. Charlesで、[プロキシ]> [プロキシ設定]に移動します。 HTTPプロキシポート(デフォルトでは8888)が表示されます。

Windowsの場合

  1. インストール Fiddler2
  2. [ツール]-> [フィドラーオプション]-> [接続]をクリックし、[リモートコンピューターの接続を許可する]をオンにします

一般的なセットアップ

  1. [設定]> [Wifi]> [iシンボル]> [下部のプロキシ]> [手動に設定]に移動し、サーバーの場合はIPアドレスで作業しているコンピューターを配置し、ポートの場合は8888をそれぞれのデフォルトとして配置しますこれらのアプリケーション

ARPスプーフィング

すべてのネットワークトラフィックをスニッフィングする場合、最終セクションの一般的な注意事項は、 ARP spoofing を使用して、iOSからラップトップ/デスクトップにすべてのトラフィックを転送することです。 ARPスプーフィングには複数のツールがあり、すべての詳細について調査する必要があります。これにより、ルーターがiOSデバイス向けのすべてのデータをラップトップ/デスクトップにルーティングし、このデータをiOSデバイスに(自動的に)転送するため、トラフィックのオンスをすべて見ることができます。

これは最後の手段としてのみお勧めします。

13
abc123

ジェイルブレイクされたiPhone/iPodでは、cydiaリポジトリにある「tcpdump」と「pirni」の両方でトラフィックをキャプチャします。これらのデータの分析は、キャプチャを別のマシンに転送し、wiresharkのようなものを使用して行われます。ただし、これらのツールで進行中のように見える活発な開発を考えると、iPhoneがすぐにすべてを処理する可能性があります。

9
Arty Man

要件が何であるかを正確に知ることなく、iPhoneからパケットが通過するのを見るために私がしたことは次のとおりです。 MacでWiresharkまたはPacket Peeperを実行します。

9
Rog
8
Oleh Kudinov

ここに別の方法があります http://www.tuaw.com/2011/02/21/how-to-inspect-ioss-http-traffic-without-spending-a-dime/

ロジャー・ノーランの回答は見当たりませんでした。上のリンクは別のツールを使用した同じワークフローです。

6
palaniraja

実行したい内容によっては、プロキシ経由で実行することは理想的ではありません。パケットが改ざんされない限り、透過プロキシは正常に機能する可能性があります。

IOS 4.3.xでiPhoneからiPadに転送されるGPSデータを反転させて、Vanillaデータを取得しようとしています。クリーンなネットワークダンプを取得する最良の方法は、「tcpdump」または「pirni」を使用することですすでに提案したように。

テザーデータが必要なこの特定のケースでは、可能な限り透過的である必要があります。これが機能するためには、明らかに携帯電話がJailBrokenである必要があります。

3
Steve Clement

前述のように、MITMのおかげで、プロキシを必要とせずにiPhoneのトラフィックを透過的にインターセプトするMac OS Xで Debookee を試してください。その後、デバイスで使用されるさまざまなプロトコルがリアルタイムで表示されます。

免責事項:私はDebookeeの開発チームの一員です。これは有料のアプリケーションです。試用版では、限られた時間のすべての機能が表示されます。

2
Tom

一般的な解決策は、透過プロキシとして構成されたLinuxボックス(仮想マシン内にある可能性があります)を使用してトラフィックをインターセプトし、wiresharkまたはtcpdumpなどを使用して分析することです。おそらく、MacOSでもこれを行うことができますが、私は試していません。

または、シミュレータでアプリを実行できる場合は、おそらく自分のマシンでトラフィックを監視できます。

1
frankodwyer

Com'on、 フィドラー ?愛はどこだ :)

Fiddlerは、ネットワーク管理者(つまりWireshark)ではなく、開発者向けの非常に人気のあるHTTPデバッガーです。

iOS用に設定するのは非常に簡単なプロセスです 。 HTTPSトラフィックも解読できます!

QA部門がFiddlerを使用して問題のトラブルシューティングを開始した後、モバイルチームはようやく解放されました。フィドラーの前に、人々は誰が責任を負うべきか、モバイルチーム、APIチームのいずれかを知るためにいじくりましたが、それ以上ではありません。

1
Korayem