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

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

  •  4
     
  •   thisismr2 ·
    PRO
    ·
    txthinking · Nov 25, 2020 · 9277 views
    This topic created in 2168 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
    MikeV2EX
    Nov 26, 2020
    101
    上次没中 还来
    viniedodo
    viniedodo
    Nov 26, 2020
    102
    再来抽一个
    zzqims9527q
    zzqims9527q
    Nov 26, 2020 via iPhone
    103
    1
    jeblur
    jeblur
    Nov 26, 2020
    104
    再来一次
    akafeng
    akafeng
    Nov 26, 2020
    105
    分母 + 1
    HandSonic
    HandSonic
    Nov 26, 2020
    106
    来抽一个
    MrWhite
    MrWhite
    Nov 26, 2020
    107
    @thisismr2 抱歉,才看到哈 邮箱:NTI0MjExOTUyQHFxLmNvbQ== 设备是 iOS 感谢楼主大大
    victory2706
    victory2706
    Nov 26, 2020 via Android
    108
    分母➕1
    ytang
    ytang
    Nov 26, 2020
    109
    支持
    thisismr2
    thisismr2
    OP
    PRO
    Nov 27, 2020
    110
    @mrchi 我抓了下, 好像是个远端服务器请求
    christin
    christin
    Nov 27, 2020 via iPhone
    111
    求中
    awana
    awana
    Nov 27, 2020
    112
    分母分母
    thisismr2
    thisismr2
    OP
    PRO
    Nov 27, 2020
    113
    @sankemao 已发
    @cwyalpha 已发
    MrWhite
    MrWhite
    Nov 27, 2020
    114
    @thisismr2 😀 1-10 楼 中奖者: #8 @MrWhite 请在这里 base64 贴上你的邮箱, 并告知需要 Android 还是 iOS

    我的这个还没收到哈。。 还能给发吗。
    thisismr2
    thisismr2
    OP
    PRO
    Nov 27, 2020
    115
    💛 71-80: #74 @zhangchioulin 请在这里 base64 贴上你的邮箱, 并告知需要 Android 还是 iOS. 谢谢
    💛 81-90: #81 @o0OoO0o 请在这里 base64 贴上你的邮箱, 并告知需要 Android 还是 iOS. 谢谢
    💛 91-100: #92 @zhygkx 请在这里 base64 贴上你的邮箱, 并告知需要 Android 还是 iOS. 谢谢
    thisismr2
    thisismr2
    OP
    PRO
    Nov 27, 2020
    116
    @MrWhite 已发
    thisismr2
    thisismr2
    OP
    PRO
    Nov 27, 2020❤️1
    117
    💛 101-120: #102 @viniedodo 请在这里 base64 贴上你的邮箱, 并告知需要 Android 还是 iOS. 谢谢
    54xavier
    54xavier
    Nov 27, 2020
    118
    上次没中,再来一次 老分母了 YWRtaW5ANTR4YXZpZXIuY24= 美区 ios
    mrchi
    mrchi
    Nov 27, 2020
    119
    @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
    viniedodo
    Nov 27, 2020
    120
    @thisismr2 dmluaWVkb2RvQGdtYWlsLmNvbQ==
    ios 太幸运了 感谢
    thisismr2
    thisismr2
    OP
    PRO
    Nov 27, 2020
    121
    💛 111-120: #118 @54xavier 请在这里 base64 贴上你的邮箱, 并告知需要 Android 还是 iOS. 谢谢
    zhangchioulin
    zhangchioulin
    Nov 27, 2020
    122
    @thisismr2 #115
    太幸运了!我需要 iOS 美区的,谢谢啦。
    邮箱:emhhbmdjaGlvdWxpbkBnbWFpbC5jb20=
    54xavier
    54xavier
    Nov 27, 2020
    123
    @thisismr2 感谢感谢
    thisismr2
    thisismr2
    OP
    PRO
    Nov 27, 2020
    124
    @viniedodo 已发
    @54xavier 已发
    liwenqiang1990
    liwenqiang1990
    Nov 27, 2020
    125
    来试试
    thisismr2
    thisismr2
    OP
    PRO
    Nov 27, 2020
    126
    @mrchi 对. 我发现两种方式都可以达到目的

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

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

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