さまざまなiOSアプリケーションのプライバシーについて調査しています。私の主なデータソースは、wiresharkまたは Burp(HTTP/Sプロキシ) です。これは、MiTMでHTTPSトラフィックを復号化するのにかなり成功していますが、私が今注目しているアプリは、XMPP/JabberトラフィックをTLSでカプセル化しているように見えるため、プロキシを経由せず、復号化できません。
汎用プロトコルにとらわれないTLSプロキシとして機能する優れたツールを知っている人はいますか?これにより、iOSデバイスとTLSプロキシとして機能するマシンに証明書をロードして、最終的に暗号化されていないペイロードを表示できますか?
私は stunnel を見てきましたが、これがうまくいくかどうかわかりません。
次の論文を読むとよいでしょう。
これは素晴らしい作品です プライバシーリークを検出するためにiOSアプリケーションの静的分析を実行します 。
彼らは、iOSアプリケーションを分析する静的分析ツールを構築し、アプリが読み取るプライベートデータを検出し、そのプライベートデータをネットワーク経由で送信するかどうか、送信する場合はどこに送信するかを検出します。次に、静的分析ツールをiOSアプリの大規模なコレクションに適用し、ツールが効果的で非常に正確であることを示します。彼らの仕事は、プライベートデータ(アプリが実行されている電話の一意のIDなど)をリークしている多数のアプリを見つけます。
静的分析は、ネットワークトラフィックの調査よりも効果的であり、使用するのも面倒ではないので、現在使用しているアプローチの重要な代替手段です。
全体として、これは見事で革新的な研究であり、注意深く読むことをお勧めします。
AFAIK JabberとXMPPはXMLベースのプロトコルであるため、Burpがそれらを傍受できなかった実際の理由はありません。
問題が発生する可能性があるのは、クライアントアプリ内でプロキシを指定する方法がないことです。
この種のインスタンスでburpを使用してこれまでに行ったことは、プロキシオプションタブの[非プロキシ対応クライアントの非表示プロキシをサポートする]オプションを使用することです。そこでエンドポイントサーバーとポートを指定し、次にクライアントでburp IPアドレスとポートのターゲットサーバーを指定すると、そこから転送されます。
Fiddler2 を使用して試すことができます。これには、iOSデバイスの証明書を生成するオプションがあり、HTTPSトラフィックを傍受および復号化できます。
あなたはettercapで運を試すことができます。これを使用する秘密鍵で構成し、それに付属する証明書をiPhoneの鍵ストアに構成できます。デフォルトで非ポート443トラフィックをピックアップするかどうかはわかりませんが、キーがあれば、TLS接続を復号化できると思います。
BurpのCA証明書をテストするデバイスまたはアプリケーションにエクスポートする限り、非HTTPプロトコルを処理し、SSL接続を復号化するBurpのMiTM拡張機能を作成しました。
DNSサーバーとカスタムpython scirptsも含まれ、リクエストがプロキシを通過するときにリクエストを自動的に変更できます。
http://blog.fusesoftsecurity.com/2016/08/non-http-proxy-for-burpsuite.html
XMPPFrameworkを使用するMITM iOS XMPPアプリ用のツールを作成しました。脱獄したiPhoneが必要です: