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

2020-11-25 10:11:41 +08:00
 thisismr2

[继上一个帖子: 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 和申请机制.

谢谢大家

5561 次点击
所在节点    分享创造
149 条回复
MikeV2EX
2020-11-26 10:11:26 +08:00
上次没中 还来
viniedodo
2020-11-26 10:13:08 +08:00
再来抽一个
zzqims9527q
2020-11-26 11:04:00 +08:00
1
jeblur
2020-11-26 13:24:56 +08:00
再来一次
chinafeng
2020-11-26 13:46:13 +08:00
分母 + 1
HandSonic
2020-11-26 16:18:24 +08:00
来抽一个
MrWhite
2020-11-26 17:01:19 +08:00
@thisismr2 抱歉,才看到哈 邮箱:NTI0MjExOTUyQHFxLmNvbQ== 设备是 iOS 感谢楼主大大
victory2706
2020-11-26 18:29:10 +08:00
分母➕1
ytang
2020-11-26 21:40:47 +08:00
支持
thisismr2
2020-11-27 00:35:57 +08:00
@mrchi 我抓了下, 好像是个远端服务器请求
christin
2020-11-27 08:41:36 +08:00
求中
awana
2020-11-27 09:39:18 +08:00
分母分母
thisismr2
2020-11-27 09:45:36 +08:00
@sankemao 已发
@cwyalpha 已发
MrWhite
2020-11-27 09:54:11 +08:00
@thisismr2 😀 1-10 楼 中奖者: #8 @MrWhite 请在这里 base64 贴上你的邮箱, 并告知需要 Android 还是 iOS

我的这个还没收到哈。。 还能给发吗。
thisismr2
2020-11-27 09:56:33 +08:00
💛 71-80: #74 @zhangchioulin 请在这里 base64 贴上你的邮箱, 并告知需要 Android 还是 iOS. 谢谢
💛 81-90: #81 @o0OoO0o 请在这里 base64 贴上你的邮箱, 并告知需要 Android 还是 iOS. 谢谢
💛 91-100: #92 @zhygkx 请在这里 base64 贴上你的邮箱, 并告知需要 Android 还是 iOS. 谢谢
thisismr2
2020-11-27 09:57:45 +08:00
@MrWhite 已发
thisismr2
2020-11-27 10:02:32 +08:00
💛 101-120: #102 @viniedodo 请在这里 base64 贴上你的邮箱, 并告知需要 Android 还是 iOS. 谢谢
54xavier
2020-11-27 10:06:57 +08:00
上次没中,再来一次 老分母了 YWRtaW5ANTR4YXZpZXIuY24= 美区 ios
mrchi
2020-11-27 10:14:53 +08:00
@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
2020-11-27 10:18:25 +08:00
@thisismr2 dmluaWVkb2RvQGdtYWlsLmNvbQ==
ios 太幸运了 感谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/728980

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX