web-dev-qa-db-ja.com

Burp + Genymotion:エミュレーターのアプリからのすべてのトラフィックがBurp経由でプロキシされるわけではありません

Burp + Genymotionを次のように設定しました: https://linuxsuperuser.com/configure-burp-suite-proxy-genymotion/ Android仕事用アプリ。

Genymotion(Android 6.0.0、API 23)Wifi設定は次のとおりです。

プロキシ:10.0.3.2、ポート:8080、およびPortswigger CA証明書が正しくインストールされています。

Burp(v1.7.21)設定:127.0.0.1:8080の「ループバックのみ」をリッスンするプロキシリスナー

私のマシンはWindows 10 Pro(1703)デスクトップPCです。

この設定は、ブラウザやアプリ、httpsからのほとんどすべてのトラフィックをインターセプトするように機能します。

しかし、どういうわけかいくつかのアプリはまだげっぷの周りにいくつかのトラフィックをトンネリングすることに成功しています。

そのトラフィックを傍受する方法はありますか?

ありがとうございました

1
Martin Fürholz

考えられるケースは3つあります。

  1. Androidアプリケーションは、httpリクエストに別のプロキシを設定しているため、システムプロキシとburpsuiteをバイパスしています。
  2. Androidプロキシ設定を無視して宛先に直接接続するようにhttpハンドラーを設定するアプリケーション.
  3. アプリケーションは非httpプロトコルを使用しています。

1または2 の場合は、wiresharkまたはリバースエンジニアリングの手法を使用して、アプリケーションが対話しているドメインを見つける必要があります(xxx.comやyyy.orgなど)。
次に、adb Shellを使用して/ etc/hostsを変更する必要があります。げっぷが10.0.3.2でリッスンしていると仮定して、次の行を追加します/ etc/hosts:

10.0.3.2 xxx.com  
10.0.3.2 yyy.org

/ etc/hostsを変更できるようにするには、システムパーティションを「rw」として再マウントする必要がある場合があります。

mount -o rw,remount,rw /system

次に、burpプロキシの下で、ポート80と443でリッスンするように設定します。次に、これらの各リスナーの設定の下で、「 invisible proxy 」オプションを有効にします。アプリケーションからhttp/httpsトラフィックが送信される場合は、げっぷでそれらを見る/傍受することができます。

デバイスにアプリケーションのドメイン名をバーズスイートのアドレスに解決させています。デバイスのDNSを、すべてのリクエストに対してburpのアドレスを返す制御されたサーバーに変更することもできます。アプリケーションがドメイン名ではなくIPアドレスに直接接続する場合、このソリューションは不十分です。アプリケーションが非HTTPプロトコルを使用している場合、burpsuiteはトラフィックをキャッチできません。

1
Silverfox

それらのアプリが Certificate Pinning を使用していると思います。これらのアプリは独自の証明書を期待しているため、Burpの証明書を拒否しています。 Burpは接続をMITMするために独自の証明書を必要とするため、接続への復号化に失敗します。 Burp Suiteの[Alerts]タブをチェックして、失敗した接続を確認できます。

次の2つのオプションがあります。

  • Portswiggerは Burp Suite Mobile Assistant をリリースしました。しかし、それはIOS 8および9で機能します。これはあなたにとって良くないことです。それはページ上で言っています:

    選択したアプリでSSL証明書のピン留めを回避しようとする可能性があり、Burp SuiteがHTTPS接続を切断し、すべてのトラフィックを傍受、検査、変更できるようにします。 (iOS 8および9でサポートされています)。

  • 上記と同様のアプリであるSSLUnpinning_Xposedアプリ(2つ以上のリンクを投稿するのに十分な評判がなく、Googleで名前を検索するだけです)を使用できます。 Android=デバイスでのみ機能しますが、ルート化されたデバイスとXposedフレームワークのインストールが必要です。エミュレータにXposedフレームワークをインストールすることはできませんでしたが、とにかく試すことができます。このアプリは保証しません一部のアプリはSSLUnpinning_Xposedアプリが正しく機能しないように予防策を講じているため、機能します。

  • 最後に、アプリをリバースエンジニアリングし、アプリがBurpの証明書を受け入れるように証明書ピン留めロジックを変更できます。この方法は動作することが保証されていますが、実行するのは困難です。アプリが難読化されている場合、証明書のピン留めロジックを見つけるためにSmaliコードを読んで理解する必要があるかもしれません。 MITMバンキングアプリを使用している場合、他の方法ではほとんどの場合機能しないため、このオプションをお勧めします。このトピックに関するインターネット上の素晴らしい記事があります。たとえば、グーグルAndroid for fun and profitで証明書のピン留めをバイパスし、最初のリンクをクリックすることができます。

0
zapuya-akgq701