抓包在网络安全中的低位举足轻重,本文将介绍常见的抓包技术。

抓包分为应用层数据链路层

常见工具如下:

应用层:Burpsuite、mitmproxy、Proxifier
数据链路层:Wireshark、Tcpdump

1、应用层

应用层的抓包工具,其原理本质上都是中间人攻击(Man-in-the-middle attack,MITM),即需要客户端在本地安装证书,然后由抓包工具开一个代理端口,通常是HTTP类型的代理,然后由抓包工具代替客户端与目标服务器进行TLS握手,这通常会改变TLS的握手指纹。

Burpsuite提供的是HTTP代理接口,但实际上只能够处理HTTP、HTTPS、WSS等能够解析的流量,并不支持转发不能够解析的流量,例如TLS in TLS类型的流量,即Burpsuite能够解密第一层TLS,但是由于数据还有第二层TLS加密,数据在burpsuite看来并不认识,所以不会转发。

mitmproxy相较于Burpsuite,不仅提供了HTTP代理接口,还提供了Socks5代理接口,而且它能转发自己并不认识的流量,即用mitmproxy能够观察到TLS in TLS流量的里层TLS握手流量。但其至今还不支持UDP代理[1]。

2、数据链路层

数据链路层的抓包工具,本质上是捕获某个网卡上的字节流,然后解析出相应的信息。这些数据就是网络通信中,传输在各个路由器上的流量,通常用作被动流量分析。

Wireshark能够抓到链路层及以上的所有数据包,包括TCP、UDP等,但没有劫持改包的功能。

References

[1] https://github.com/mitmproxy/mitmproxy/issues/6272

标签: 抓包

添加新评论