web-dev-qa-db-ja.com

MitM Android Javaアプリケーション

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を取得できますか?

2
Sebastian B.

では、どのようにして証明書のピン留めを無視するJavaを取得できますか?

証明書/公開キーのピン留めを回避するには、アプリケーション固有の信頼マネージャーでピン留めが行われるため、通常はアプリケーション自体に変更を加える必要があります。つまり、システム全体のCAストアに信頼できるCAを追加するだけでは機能しません。

これを行う方法の最近の説明については、 コインのAndroidアプリケーション でSSLピン留めを無効にする.

4
Steffen Ullrich

1年後にそれを考え出した:apktoolを使用してAndroidアプリをsmaliコードに逆コンパイルし、smaliコードに固定されている証明書を削除しました。apktoolを使用して再コンパイルし、mitmできました!

今日、これを説明するチュートリアルがたくさんあります。

例: https://itunsecurity.wordpress.com/2016/12/25/vulnhub-flickii-a-different-approach-walkthrough-part1/

1
Sebastian B.