传输层[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 和申请机制.

谢谢大家

5556 次点击
所在节点    分享创造
149 条回复
o0OoO0o
2020-11-25 20:54:50 +08:00
感谢
Maskeney
2020-11-25 21:11:19 +08:00
试试
FaiChou
2020-11-25 21:18:05 +08:00
```swift
let sessionConfig = URLSessionConfiguration.default
sessionConfig.connectionProxyDictionary = [AnyHashable : Any]() // 主要是这一行
let session = URLSession.init(configuration: sessionConfig, delegate: nil, delegateQueue: OperationQueue.current)
// 网络请求
```

楼主提到的「一行代码」可以 bypass 系统代理, 是上面这几行吗?
1314258
2020-11-25 21:33:41 +08:00
关键在于 vpn 。
sankemao
2020-11-25 22:10:29 +08:00
@thisismr2 #72 竟然中了,感谢 MjEwOTgwMDU5QHFxLmNvbQ== iOS 设备
enjolife
2020-11-25 22:18:39 +08:00
分母+1
MrMario
2020-11-25 22:24:01 +08:00
mrchi
2020-11-25 22:48:00 +08:00
mitmproxy 的根证书安装的时候是访问 http://mitm.it 这个链接, 而这个链接在他们国外服务器, 所以可能很慢很慢很慢很慢, 多刷下试试
-----
这个不对吧,http://mitm.it 是 mitmproxy 代理直接拦截返回响应的
test008u7
2020-11-25 23:53:36 +08:00
分子
cwyalpha
2020-11-26 06:55:41 +08:00
@thisismr2 Y3d5YWxwaGFAZm94bWFpbC5jb20= ios 版 谢谢楼主
cat9life
2020-11-26 07:06:46 +08:00
双向绑定证书的能用吗 一直没有好的方案
zhygkx
2020-11-26 07:59:22 +08:00
看看运气
eluotao
2020-11-26 08:30:50 +08:00
用迅雷 sdk 如何抓到下载地址
dzdh
2020-11-26 08:59:32 +08:00
ssl pinning 是怎么搞的
dudukee
2020-11-26 09:12:57 +08:00
请问对于 android 不信任用户 CA 证书的情况,可以抓到吗?
dudukee
2020-11-26 09:16:45 +08:00
#95 仔细看了下介绍,需要 root 后安装到 system CA store 。
sangmong
2020-11-26 09:26:35 +08:00
分母
latteczy
2020-11-26 09:50:37 +08:00
分母一下
sapphires
2020-11-26 10:03:18 +08:00
分母+1
free9fw
2020-11-26 10:09:54 +08:00
+1

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

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

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

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

© 2021 V2EX