Android研究目的のアプリケーション(壊れるように設計されています))をMitMしようとしています。
Burpを攻撃プロキシとして使用していて、すでにBurp CA証明書をエクスポートして、Android CAストアにインポートしています。
また、証明書のピン留めを解除することを約束する3つの異なるツール(Android-SSLTrustKillerなど)も試しました。
ただし、Burpをプロキシとして設定するたびに、アプリはlogcatで次のエラーをスローします。
09-14 20:18:07.446: W/System.err(2478): javax.net.ssl.SSLHandshakeException:
checkServerTrusted: Expected public key: 30820122300d06092a864886f70d0......
Java "Environment"が他のAndroid OS。とは異なる証明書設定を使用していると思います。
私はすでにブラウザーまたはGoogleマップをうまくデコードできます。
では、どのようにして証明書のピン留めを無視するJavaを取得できますか?
では、どのようにして証明書のピン留めを無視するJavaを取得できますか?
証明書/公開キーのピン留めを回避するには、アプリケーション固有の信頼マネージャーでピン留めが行われるため、通常はアプリケーション自体に変更を加える必要があります。つまり、システム全体のCAストアに信頼できるCAを追加するだけでは機能しません。
これを行う方法の最近の説明については、 コインのAndroidアプリケーション でSSLピン留めを無効にする.
1年後にそれを考え出した:apktoolを使用してAndroidアプリをsmaliコードに逆コンパイルし、smaliコードに固定されている証明書を削除しました。apktoolを使用して再コンパイルし、mitmできました!
今日、これを説明するチュートリアルがたくさんあります。