【问题标题】:No internet connection in Android after using Mitmproxy使用 Mitmproxy 后,Android 中没有互联网连接
【发布时间】:2019-09-18 13:16:54
【问题描述】:

我已将安卓手机(三星 Galaxy S8)配置为使用代理。我可以连接到 mitm.it。我还可以看到 Mitmproxy 捕获的一些请求。

但是,当我尝试在 Google 中搜索任何内容时,我没有互联网连接。

关于发生了什么以及如何解决它的任何提示?

【问题讨论】:

    标签: proxy mitmproxy


    【解决方案1】:

    Android 7.1 及更高版本do not longer allow the use of custom certificates manually added by the user,但如果您的手机具有超级用户访问权限,则可以通过 ADB 使其工作。

    Android 将其系统证书存储在/system/etc/security/cacerts/ 中。如果您查看您的设备,您会看到证书具有散列名称,例如。 “a1234b0d.0”。要拦截应用流量,您需要找出证书的哈希

    openssl x509 -inform PEM -subject_hash_old -in mitmproxy-ca-cert.pem | head -1
    

    然后相应地重命名您的证书

    mv mitmproxy-ca-cert.pem <your_hash_value_in_here_without_carets>.0
    

    最后将其移至设备系统证书所在的位置。但是,为此,您需要先重新挂载系统目录才能获得写入权限

    adb shell su -c "mount -o rw,remount,rw /system"
    adb push your_certificate /sdcard/your_certificate
    adb shell su -c "mv /sdcard/your_certificate /system/etc/security/cacerts/your_certificate"
    adb shell su -c "chmod 644 /system/etc/security/cacerts/your_certificate"
    adb reboot
    

    如果这不起作用,我记得(但不是来源)阅读有关 Android Nougat 的信息也没有关于 2 年以上过期的证书。 mitmproxy 创建的证书应该没问题。不过,Burpsuite 或 Fiddler 对我不起作用。

    【讨论】:

    • 我刚刚在 Android 10 上尝试过这个,它没有考虑到我来自 mitmproxy 的证书在未来的 2.5 年到期。我能够使用 HTTP Toolkit 来实现类似的目标(尽管我知道可以创建自己的根证书并让 mitmproxy 使用它,但我不想遇到麻烦)。
    【解决方案2】:

    Google Apps 使用 certificate pinning,因此它可以检测到您下载到手机的“假”http://mitm.it/cert/pem

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-07
      • 2011-06-21
      • 1970-01-01
      • 2013-02-23
      • 1970-01-01
      • 2018-12-31
      相关资源
      最近更新 更多