Wireshark
一.基本的抓包原理
1.主机环境:直接抓包本机网卡进出的流量
2.集线器:
由于集线器属于物理层设备,所以可以抓到从集线器发来的所有网络的包
3.交换机:
端口镜像:交换机属于物理层设备,根据其mac地址表进行通信。所以在通信时PC2和PC3的流量流不到PC1。但是可以通过端口镜像,将交换机相关端口的流量复制一份到PC1.一般在企业级环境会用这种模式。
ARP欺骗:通过攻击软件cain或abel进行ARP欺骗,从而获得其他主机的流量
MAC泛洪:通过发送大量的mac地址从而达到刷新mac表的目的
二.显示设置:
-
列设置:将某一具体信息放置在列表上。如将Time to live 放置在列表上
-
时间设置:可以通过视图界面对时间格式进行修改
-
名字解析:
wireshark内置了基本的名字解析库可以将mac地址,ip地址,端口号等转换成名字,方便记忆,默认开启mac地址解析。(开启IP地址和端口解析可以加大可读性,但也会出现解读错误并消耗大量资源的情况)
-
手动开启IP地址和端口解析:Capture——options
三.过滤器设置
1. 抓包过滤器:用于决定将什么样的信息记录在捕捉结果中。
语法说明(BPF语法):
-
类型Type:host,net,port
注:一般认为host为默认类型 -
方向Dir:src,dst
注:如果没有明确方向,则默认src dst 方向都有 -
协议Proto: ip,tcp,udp,http,ftp
注:如果没有明确协议类型则默认抓捕所有支持的协议 -
逻辑运算符:&& ! ||
举例说明: - src host 192.168.1.1 && dst port 80 抓取源地址为192.168.1.1,目的端口为80的流量
- host 192.168.1.1|| 192.168.1.2 抓取192.168.1.1或192.168.1.2的流量
- !broadcast 不要抓取广播包
2.显示过滤器:对捕捉到的数据包依据协议或包的内容进行过滤
注意:当网络中的流量不是很大的时候直接用显示过滤器即可
语法说明:
比较操作符:
-
等于 ==
-
不等于!=
-
大于:>
-
小于:<
-
大于等于:>=
-
小于等于:<=
逻辑操作符: -
两个条件同时满足:and
-
其中一个条件满足:or
-
有且只有一个条件被满足:xor
-
没有条件满足:not
IP地址:ip.addr ,ip.src,ip.dst
端口过滤:tcp.port, tcp.dstport, tcp.srcport
实验演示:
过滤IP地址:
- ip.addr == 192.168.1.1
- ip.src == 192.168.1.1
- ip.dst ==192.168.1.1
- ip.src == 192.168.1.1 and ip.dst == 192.168.1.2
端口过滤:
- tcp.port == 80
- tcp.srcport == 80
- tcp.dstport == 80
过滤协议:
- arp
- tcp
- not http
- not udp
综合案例:
- ip.src == 192.168.1.1 and tcp.dstport == 80
- ip.addr == 192.168.1.1 and udp.port ==4000
四.常用功能
1.数据流追踪
将tcp,udp ,ssl 等数据进行重组并完整的显现出来
例如HTTP流为:
2.专家信息说明
可以对数据包中的特定状态进行警告说明,大多时候用于分析错误包的问题以及所对应的IP。
如果网络中的error和warning太多则说明网络不够稳定
3.统计摘要说明
对抓取的数据进行全局统计
当设置过滤器时还可以显示过滤包所占所有包的比重:
4.协议分层统计
统计通信流量中不同协议所占用的百分比,通过这个工具可以对全网的流量有一个直观的了解
可以很直观的观察到各种协议所占的百分比,可以通过某些协议所占比例异常判断相应的问题。
如当ARP,DNS,DHCP这类协议所占比例过大时有可能遭到了泛洪攻击。
5.网络会话
统计通信会话之间接受和发送的数据包和字节数,可以找出网络中会话所占用的带宽。
注意:该功能与以上统计的不同之处在于该功能统计到了具体的会话上,可以直观的观察每一个会话的相关信息,并可以对其进行流追踪。
而对于网络节点统计,则是一IP为单位,网络对话是以对话为单位
网络节点:
网络会话与网络节点一般会一起使用.