一、wireshark
Wireshark是一款图形界面的网络嗅探器,支持多种平台,是网络流量分析的利器。2.4.0版,可以到官网下载:www.wireshark.org/
推荐书:《Wireshark网络分析就是这么简单》
二、网络分析
1、只抓包头
在进行网络分析时往往只需要知道两个节点是不是能够联通,具体的传输信息并不重要,所以抓包的时候可以设置只抓包头,这样就大大减少了数据包的大小,有利于数据分析。
设置方法:Capture(捕获)–>Options(选项)–>Snaplen(Snap长度)。
将这个值设置200以下就可以抓到所有网络层次的头信息了。
另外也可以直接点击任务栏里的快捷键,快速设置
2、只抓必要的包
我们可以设置抓包的filter,只抓一些感兴趣的包。
设置方法:Capture(捕获)–>Options(选项)–>Capture Filter(捕获过滤器)
在输入框里输入规则,然后点击开始即可,比如输入
dst host 220.181.111.188(捕获目标主机为220.181.111.188的数据包)
220.181.111.188是ping www.baidu.com 的ip地址,不同地理位置ping的ip可能不一样,然后浏览器访问百度就可以看到我们想要的捕获结果。
3、过滤
使用过滤规则进行数据包筛选是Wireshark最强大的功能之一,如果知道问题发生的具体协议就可以以协议名称过滤。使用协议过滤时要注意协议之间的依赖性,比如NFS共享挂载失败,问题可能发生在挂载所用的mount协议,也可能发生在mount之前的portmap协议。
然后就是IP+端口的方式,一个比较简单的方法就是可以在感兴趣的数据包上右键然后点击“追踪流”,就可以看到与这对ip和端口的全部通信。
也可以在相应的包上右键–>Apply as Filter(作为过滤器应用)–>Selected(选中),Wireshark就可以自动生成相应的过滤规则。这里给出一些常用的规则。
3.1、过滤IP:
IP源地址:ip.src ==192.168.1.1
IP目的地址:ip.dst== 192.168.1.1
IP地址(包括源和目的):ip.addr== 192.168.1.1
3.2、过滤端口:
TCP端口:tcp.port==80
TCP目的端口:tcp.dstport == 80
TCP源端口:tcp.srcport == 80
UDP端口:udp.port eq 15000
TCP 1-80之间的端口:tcp.port >= 1 and tcp.port <= 80
3.3、过滤协议:
http、tcp、udp、arp、icmp、http、smtp、ftp、dns 等。
3.4、过滤MAC地址:
源MAC地址:eth.src==A0:00:00:04:C5:84
目的MAC地址:eth.dst==A0:00:00:04:C5:84
MAC地址(包括源和目的):eth.addr==A0:00:00:04:C5:84
3.5、过滤包长度:
整个UDP数据包:udp.length==20
TCP数据包中的IP数据包:tcp.len>=20
3.6、HTTP模式过滤:
请求方法为GET:http.request.method==“GET”
请求方法为POST:http.request.method==“POST”
指定URI:http.request.uri==“/img/logo-edu.gif”
请求或相应中包含特定内容:http contains “FLAG”
4、自动分析
Wireshark有强大的统计分析功能,可以帮助分析人员快速统计出一些基本信息。比如点击Analyze(分析)–>Expert InfoComposite(专家信息),就可以看到数据包的中的一些不同级别的信息统计,包含重传次数、链接建立次数、网络错误等,在分析网络性能时这个功能很有作用。
单击Statistics(统计)–>TCPStream Graph(TCP流图形),可以生成一些统计图表,比如下图表示171到192的数据传输过程,水平线表示短暂的停止过程。
此外还可以统计分层信息、网络会话列表、网络端点列表、ip地址统计列表、应用层数据包信息等
5、搜索
按“Ctrl+F”Wireshark也可以进行关键字搜索,选择“分组详情”后才可以搜索数据包中的内容,这样的搜索可以在CTF中也许会有意外收获。