爱意满满的作品展示区。
thisismr2

传输层[TCP 层]拦截和 TLS 解密, 使用 mitmproxy 分析 iOS 和 Android 的 HTTP(S)协议

  •  4
     
  •   thisismr2 ·
    PRO
    ·
    txthinking · Nov 25, 2020 · 8163 views
    This topic created in 2022 days ago, the information mentioned may be changed or developed.

    [继上一个帖子: https://v2ex.com/t/726090 可以分析所有 TCP&UDP 协议]

    这个只能分析 HTTP(S)协议, 也不用在众多协议中过滤了, 原理有异曲同工之处, 对只需要分析 HTTP(S)协议的同学可以关注下.

    传输层拦截和设置系统代理的方式有什么区别

    这里有位此 app 已购买者, 可以看这个帖子的 https://v2ex.com/t/727609 的 10 楼, 11 楼

    另外 ios 使用了 Network Extension(会出现 vpen 标识)并不意味着就是 TCP 层拦截. Network Extension 有网络层 API, 传输层 API, 应用层 API 比如可以只用 Network Extension 设置系统代理. 这就算是[应用层], 本质同设置系统代理一样. 另外如果接管所有流量, 就需要用[网络层 API]处理 IP 包, 再加工成[传输层]的 TCP/UDP 包, 最后再给[应用层] 两种方式,工作量完全不在一别,抓包类 app,良心好的开发者会在介绍了里说明是工作在哪一层

    视频

    同样在我的 youtube 频道录了一个视频

    https://www.youtube.com/watch?v=puES_ayJkEo

    注意

    可以加上--rawtcp 参数, 视频中没有加 $ mitmproxy -m socks5 --rawtcp

    也有一个 mitmweb 命令, 会启动图形界面

    下载地址

    iOS(>=14) https://apps.apple.com/us/app/id1528537342

    Android (>=8) https://play.google.com/store/apps/details?id=com.txthinking.mitmproxy

    兑换码

    兑换码发放: 每 10 楼, 按 1-10 的随机数抽一次奖, 比如 1-10 楼抽一次, 11-20 抽一次, 21-30 抽一次... 抽的结果会在帖子内截图. 用 google 随机数生成器抽. 被抽到的可以选择需要 iOS 或 Android 端其中的一个兑换码

    google 随机数生成器长这个样子 https://i.imgur.com/WLrgWLr.png https://i.loli.net/2020/11/17/OwyukCsVGrUx8Jq.png

    获得兑换码的 Google Play 同学, 烦请给个好评(不强制)

    与人方便, 自己方便

    mitmproxy 的根证书安装的时候是访问 http://mitm.it 这个链接, 而这个链接在他们国外服务器, 所以可能很慢很慢很慢很慢, 多刷下试试 网络是个复杂的东西, 所以针对我写的网络工具, 我都会录视频, 但使用者仍然可能忽略某个细节导致某个步骤遇到小问题, 这时候如果你是已购买者, 我很愿意在 slack 回答你的一些问题, 请不要一气之下就给个差评(你看 iOS 就有个 Leigingban 同学给差评了, 就一句话: 完全不能工作). 另外如果你对 HTTP, HTTPS, TCP, TLS, MITM, mitmproxy, ROOT CA 这些概念不太熟, 也建议三思后再决定下载与否

    https://docs.google.com/forms/d/e/1FAIpQLSdzMwPtDue3QoezXSKfhW88BXp57wkbDXnLaqokJqLeSWP9vQ/viewform

    为了群组的质量, 使用了 slack 和申请机制.

    谢谢大家

    Supplement 1  ·  Nov 25, 2020

    重要!!!

    关于[如何信任根证书], 因为包含设备信息故视频里隐藏了几帧图像, 无论是iOS还是Android信任根证书都需要: 好几步好几步好几步, 点好几个地方点好几个地方点好几个地方. 繁琐的步骤不是我所能左右的 而且http://mitm.it这个是mitmproxy的根证书服务器, 这不是我所能左右的, 访问慢多刷几次多刷几次.

    视频只是一个简单的操作流程, 流程的每一步都可能有很多知识, 每一步操作有问题都会导致不顺畅, 建议对正文提到的任何概念不太了解的话, 还是建议大家花点时间搜索下补充下相关知识

    iOS 仍然是不支持中国大陆区AppStore, 苹果不让, 我发现大概我的软件 https://github.com/txthinking 但凡用到那个技术都不允许中国大陆区上架, 这也不是我所能左右的

    Supplement 2  ·  Nov 25, 2020
    **重要**

    * 如果你是 iOS, 确保你的电脑网络能访问 google dns-over-tls DNS 8.8.8.8 TCP 853 端口 dns.google (怎么测试: https://github.com/ameshkov/dnslookup)
    * 下一版本会改成使用 8.8.8.8 的 UDP 53
    * 如果你是 Android, 确保你的电脑网络能访问 8.8.8.8 的 UDP 53 端口
    Supplement 3  ·  Nov 28, 2020
    关于安装 mimtproxy 根证书时是否会慢的情况解释如下 感谢 @mrchi 同学提出

    两种情况:
    1. 如果手机端提前进行 mitm.it 的 DNS 解析, 然后将 IP 给 mimtproxy, 那么安装证书时会发起远端请求, 因为它在读取数据前是不知道这个 IP 是干嘛的
    2. 如果手机端不进行 DNS 解析, 直接将 mitm.it 给 mimtproxy, 那么安装时就不会发起远端请求
    Supplement 4  ·  Nov 28, 2020
    #136 有个 windows 上使用的经验
    149 replies    2020-12-03 10:59:04 +08:00
    1  2  
    MikeV2EX
        101
    MikeV2EX  
       Nov 26, 2020
    上次没中 还来
    viniedodo
        102
    viniedodo  
       Nov 26, 2020
    再来抽一个
    zzqims9527q
        103
    zzqims9527q  
       Nov 26, 2020 via iPhone
    1
    jeblur
        104
    jeblur  
       Nov 26, 2020
    再来一次
    akafeng
        105
    akafeng  
       Nov 26, 2020
    分母 + 1
    HandSonic
        106
    HandSonic  
       Nov 26, 2020
    来抽一个
    MrWhite
        107
    MrWhite  
       Nov 26, 2020
    @thisismr2 抱歉,才看到哈 邮箱:NTI0MjExOTUyQHFxLmNvbQ== 设备是 iOS 感谢楼主大大
    victory2706
        108
    victory2706  
       Nov 26, 2020 via Android
    分母➕1
    ytang
        109
    ytang  
       Nov 26, 2020
    支持
    thisismr2
        110
    thisismr2  
    OP
    PRO
       Nov 27, 2020
    @mrchi 我抓了下, 好像是个远端服务器请求
    christin
        111
    christin  
       Nov 27, 2020 via iPhone
    求中
    awana
        112
    awana  
       Nov 27, 2020
    分母分母
    thisismr2
        113
    thisismr2  
    OP
    PRO
       Nov 27, 2020
    @sankemao 已发
    @cwyalpha 已发
    MrWhite
        114
    MrWhite  
       Nov 27, 2020
    @thisismr2 😀 1-10 楼 中奖者: #8 @MrWhite 请在这里 base64 贴上你的邮箱, 并告知需要 Android 还是 iOS

    我的这个还没收到哈。。 还能给发吗。
    thisismr2
        115
    thisismr2  
    OP
    PRO
       Nov 27, 2020
    💛 71-80: #74 @zhangchioulin 请在这里 base64 贴上你的邮箱, 并告知需要 Android 还是 iOS. 谢谢
    💛 81-90: #81 @o0OoO0o 请在这里 base64 贴上你的邮箱, 并告知需要 Android 还是 iOS. 谢谢
    💛 91-100: #92 @zhygkx 请在这里 base64 贴上你的邮箱, 并告知需要 Android 还是 iOS. 谢谢
    thisismr2
        116
    thisismr2  
    OP
    PRO
       Nov 27, 2020
    @MrWhite 已发
    thisismr2
        117
    thisismr2  
    OP
    PRO
       Nov 27, 2020   ❤️ 1
    💛 101-120: #102 @viniedodo 请在这里 base64 贴上你的邮箱, 并告知需要 Android 还是 iOS. 谢谢
    54xavier
        118
    54xavier  
       Nov 27, 2020
    上次没中,再来一次 老分母了 YWRtaW5ANTR4YXZpZXIuY24= 美区 ios
    mrchi
        119
    mrchi  
       Nov 27, 2020
    @thisismr2 不是的,可以参考 mitmproxy 的文档 https://docs.mitmproxy.org/stable/concepts-certificates/

    By far the easiest way to install the mitmproxy certificates is to use the built-in certificate installation app.

    The mitmproxy CA cert is located in ~/.mitmproxy after it has been generated at the first start of mitmproxy.

    所以其实证书的安装页面是在本地的,由 mitmproxy 拦截并返回的请求。

    当然 mitm.it 的域名是真实存在的,直接访问会提示:If you can see this, traffic is not passing through mitmproxy. 也就是说,提示你 mitmproxy 代理设置不正确,这个请求没有被拦截。
    viniedodo
        120
    viniedodo  
       Nov 27, 2020
    @thisismr2 dmluaWVkb2RvQGdtYWlsLmNvbQ==
    ios 太幸运了 感谢
    thisismr2
        121
    thisismr2  
    OP
    PRO
       Nov 27, 2020
    💛 111-120: #118 @54xavier 请在这里 base64 贴上你的邮箱, 并告知需要 Android 还是 iOS. 谢谢
    zhangchioulin
        122
    zhangchioulin  
       Nov 27, 2020
    @thisismr2 #115
    太幸运了!我需要 iOS 美区的,谢谢啦。
    邮箱:emhhbmdjaGlvdWxpbkBnbWFpbC5jb20=
    54xavier
        123
    54xavier  
       Nov 27, 2020
    @thisismr2 感谢感谢
    thisismr2
        124
    thisismr2  
    OP
    PRO
       Nov 27, 2020
    @viniedodo 已发
    @54xavier 已发
    liwenqiang1990
        125
    liwenqiang1990  
       Nov 27, 2020
    来试试
    thisismr2
        126
    thisismr2  
    OP
    PRO
       Nov 27, 2020
    @mrchi 对. 我发现两种方式都可以达到目的

    thisismr2
        127
    thisismr2  
    OP
    PRO
       Nov 27, 2020
    Dawnnnnnn
        128
    Dawnnnnnn  
       Nov 27, 2020
    分母
    houzhi
        129
    houzhi  
       Nov 27, 2020
    分子来了
    mrchi
        130
    mrchi  
       Nov 27, 2020
    @thisismr2 没懂你意思。

    如果你现在也认为 mitm.it 是本地返回的请求,那就 append 说明一下吧,不要误导到别人。
    v2long
        131
    v2long  
       Nov 27, 2020
    试试 看看能中不
    o0OoO0o
        132
    o0OoO0o  
       Nov 27, 2020
    @thisismr2 #115 哇,难得第一次抽中奖! anA5Zm9zend4QHJlbGF5LmZpcmVmb3guY29t
    Android 的,多谢!
    zhygkx
        133
    zhygkx  
       Nov 27, 2020
    @thisismr2 #92 开心,emh5Z2t4QDE2My5jb20= Android,多谢
    billzhuang
        134
    billzhuang  
       Nov 27, 2020
    get a try, tks
    cwyalpha
        135
    cwyalpha  
       Nov 28, 2020   ❤️ 1
    不错 试用了下,抓月圆之夜这个游戏,用 ios stream 是抓不到他上传和下载存档的包的,但是用这个可以。
    但是像云闪付这种 ssl pin 的还是搞不定,回头得找个安卓的解决方案
    cwyalpha
        136
    cwyalpha  
       Nov 28, 2020   ❤️ 1
    另外 windows 下用 mitmproxy ui 在 edit options 里选上 rawtcp,模式写 socks5 也可以用。否则 win 下没有 mitmproxy..
    thisismr2
        137
    thisismr2  
    OP
    PRO
       Nov 28, 2020
    @mrchi 已 append
    phpIsNumberOne
        138
    phpIsNumberOne  
       Nov 28, 2020
    抓到的包也是被加密了的,有什么用???
    thisismr2
        139
    thisismr2  
    OP
    PRO
       Nov 28, 2020
    @phpIsNumberOne Man-in-the-middle attack
    thisismr2
        140
    thisismr2  
    OP
    PRO
       Nov 28, 2020
    @o0OoO0o 已发
    @zhygkx 已发

    💛 121-130: #128 @Dawnnnnnn 请在这里 base64 贴上你的邮箱, 并告知需要 Android 还是 iOS. 谢谢
    thisismr2
        141
    thisismr2  
    OP
    PRO
       Nov 28, 2020
    💛 131-140: #134 @billzhuang 请在这里 base64 贴上你的邮箱, 并告知需要 Android 还是 iOS. 谢谢
    billzhuang
        142
    billzhuang  
       Nov 28, 2020
    @thisismr2 emh1YW5nbWluQGdtYWlsLmNvbQ==
    iOS,谢谢你
    thisismr2
        143
    thisismr2  
    OP
    PRO
       Nov 28, 2020
    @billzhuang 已发
    Waterchestnut
        144
    Waterchestnut  
       Nov 29, 2020 via Android
    上次没中,这次再来试试
    houzhi
        145
    houzhi  
       Nov 29, 2020
    再来试试
    xzxzxzxz
        146
    xzxzxzxz  
       Nov 30, 2020
    +1
    Dawnnnnnn
        147
    Dawnnnnnn  
       Dec 1, 2020
    @thisismr2 #128 bTEwNTA1OTY3MDRAZ21haWwuY29t Android 感谢
    thisismr2
        148
    thisismr2  
    OP
    PRO
       Dec 1, 2020
    @Dawnnnnnn 已发
    happyhou
        149
    happyhou  
       Dec 3, 2020
    +1
    1  2  
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3223 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 106ms · UTC 13:17 · PVG 21:17 · LAX 06:17 · JFK 09:17
    ♥ Do have faith in what you're doing.