一.wireshark是网络包分析工具。主要作用是尝试捕获网络包, 并尝试显示包的尽可能详细的情况。Wireshark中文版常被网络管理员用来检测网络问题,网络安全工程师用它来检查资讯安全相关问题,开发者使用Wireshark来为新的通讯协定除错,普通使用者使用Wireshark来学习网络协定的相关知识。
二.tcpdump 适用于Linux,其功能与wireshark功能相似,不同之处在于wireshark 有图形化界面,而 tcpdump 则只有命令行。
可以用wireshark 读取tcpdump 生成的pcap文件,用wireshark的图形化界面分析tcpdump 结果数据。
wrieshark:
①tcp
②dns
③源IP地址
⑤ip.host
⑥以百度为例的抓包演示:
首先查看本机的ip地址:192.168.1.4
打开wireshark,选择wlan开始进行捕获
在wireshark输入:ip.addr == 192.168.1.4 and icmp
主机终端:ping www.baidu.com
便可以抓到这个数据包了:
语法:按协议的属性值进行过滤:ip.addr == 10.1.1.1
ip.src != 10.1.2.3 or ip.dst != 10.4.5.6
ip.src == 10.230.0.0/16 显示来自10.230网段的封包。
tcp.port == 25 显示来源或目的TCP端口号为25的封包。
tcp.dstport == 25 显示目的TCP端口号为25的封包。
http.request.method== "POST" 显示post请求方式的http封包。
http.host == "tracker.1ting.com" 显示请求的域名为tracker.1ting.com的http封包。
tcp.flags.syn == 0×02 显示包含TCP SYN标志的封包。
tcpdump:
①查看tcpdump的相关参数,和他的相关使用命令字符。
②指定抓取数据包的数量,此处抓取10个
③查看可抓包的端口
④指定接口
⑤-n :对地址以数字方式显示
⑥-nn:把端口显示成数值
- ⑦以16进制打印出每个包的数据(不包括连接层头部)
-xx:以16进制打印出每个包的数据
-X:输出包头部数据,以16进制和ascii码同步输出(不包括连接层头部)
-XX:输出包头部数据,以16进制和ascii码同步输出
- -v -vv 答应详细输出
- 包保存到指定文件 -w,从指定文件读取包应答到屏幕 -r
常用过滤字段
- 指定过滤主机:查看IP,用host进行过滤
- 源与目的:src和dst
Tcpdump -i eth0 -c 5 -nn src host 172.20.10.4
Tcpdump -i eth0 -c 5 -nn dst host 172.20.10.4
- 协议过滤:
- 抓ping数据包
- 过滤网段
- 协议字段过滤
- 表达式单元之间可以使用操作符”and/or/||/not/!”连接 过滤syn包和fin包