如何用wireshark分析通过ssh tunnel的https数据

有时候,因为网络隔离的原因,我们无法直接访问web站点,而需要通过如ssh tunnel的方式去访问。

例如在Linux下可以直接在终端运行

ssh -L 9043:localhost:9043 username@remotehost

在windows下则可以在putty中设置ssl tunnels,此时我们可以看到本机127.0.0.1上有端口监听。


我们可以在浏览器中直接通过 https://localhost 访问到 https://remotehost的内容。

但是这个时候如果你需要用wireshark去抓取网络数据作分析,你会发现你抓到的是22端口的SSH数据,而不是443端口的HTTPS数据,因而无法分析web站点的HTTP连接问题。


那要怎样才能抓到HTTP协议的数据呢?其实我们在浏览器访问的是localhost,所以需要抓的是loopback(127.0.0.1)这个网卡的数据,而不是系统默认网卡。在Linux下是eth0,在windows下是Local Area Connection。

这时候又碰到另一个问题了,wireshark在windows下抓不了127.0.0.1的包,怎么办?可以参考wireshark官网的这个介绍

https://wiki.wireshark.org/CaptureSetup/Loopback

这篇文章介绍了多种方法,简单起见,我选择了RawCap。详细介绍可以参考点击打开链接,下载页面在此

RawCap使用很简单,下载后无需安装,直接用administrator运行cmd然后切换到RawCap所在目录,直接运行RawCap即可。

如下,直接运行RawCap.exe,选择Lookback接口,输入输出文件名。


此处有个小插曲,我运行RawCap之后访问https://localhost,但是发现抓不到任何数据包,只有通过https://127.0.0.1访问时才能正常抓取数据包,具体为何我也没有深究。

在Linux下则很简单,可以直接用tcpdump抓取loopback的数据包。"-i lo"表示loopback接口。

tcpdump -i lo -w tcpdump.pcap

抓取到的数据保存到文件,然后就可以用wireshark打开分析了,如图


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值