透明代理 fiddler https解析

Life is short , "play" more!
本文来自lihao's Blog,转载请注明。

大家都知道fiddler是可以解析https数据包的。 但如果是透明代理的方式使用fiddler抓包则需要额外做一些设定。

通常设定代理的方法为:
手机或者浏览器(程序客户端), 设定代理地址和端口号(fiddler默认监听 本机地址和8888 端口号)。 这样当手机或者浏览器发起http/https 请求时, 会被fiddler截获。

关于fiddler如何捕捉https并解密, 需要打开Tools -》 Tlerik Fiddler Options -》 Https 标签, 勾选 Capture https connects 和 decrypt https traffic。 通常我们为了方便捕获到一些自签名服务器证书的请求访问, 可以勾选 Ignore server certificate errors。

这时我们就可以截取https 的数据包了。

但我们今天讨论的是透明代理的方式。 即不让用户主动的设定代理服务器地址和端口号。

如何设置透明代理,可以考虑使用iptables 进行nat设定。 首先我们来比对下这2种方式的不同。

 

1)  显式代理模式:   客户端会先通过http协议发送 connects 命令, 握手成功后, 会进行https 协议传输。  所以我们在 fiddler截获的请求中,可以看到Tunnel to 的请求。 双击打开这个请求,可以看到如下的请求和返回内容。

 

 

2) 透明代理模式: 客户端通过网络传输层,被重定向到我们的代理服务器。 即客户端并不知道他的数据包经过代理服务器进行了转发行为, 也就是我们常说的mitm attack. 中间人攻击。 此时代理服务器的管理人员可以看到所有该局域网络的(网络已设定了透明代理, 关于透明代理,大家可以谷歌)http/https 请求。  这个时候https的请求是直接的https 握手, 没有通过connects 命令。 所以, fiddler 会草率的返回一些plaintext 数据,导致握手失败。

我们需要做的是,告诉fiddler 监听一个端口, 客户端的链接都会默认进行https 握手链接。 fiddler book中的介绍如下。

此篇文章已被阅读691 次


发表评论

电子邮件地址不会被公开。 必填项已用*标注