抓包技术鉴赏
抓包在网络安全中的低位举足轻重,本文将介绍常见的抓包技术。
抓包分为应用层和数据链路层。
常见工具如下:
应用层: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等,但没有劫持改包的功能。