基础
Wireshark两种模式
混杂模式:
接受所有经过网卡的所有数据包
普通模式:
只接受发给本机的包
抓包效果
ip.addr == 183.2.172.42 and icmp
ip.addr == 183.232.231.172 and icmp 表示只显示 ICPM 协议且主机 IP为183.232.231.172 的数据包。说明:icmp要小写。

其中internet control message protocol:为icmp协议特有,其他协议有其他显示,如tcp协议------Transnission Control Protocol
具体数据(tcp):

过滤规则:
直接输入过滤协议:tcp、http、icmp等

主机过滤:
源地址IP:ip.src == 192.168.1.1
目的地址:ip.dst == 192.168.1.1
过滤子网:ip.addr == 192.168.1.0/24
过滤指定ip:ip.addr == 192.168.1.0

端口过滤:
源端口过滤:tcp.srcport == 80
目的端口过滤:tcp.dstport == 443
端口过滤:tcp.port == 80
注:协议可更改

http模式过滤:
只显示http get 方法:http.request.method=="GET"(post也行)

逻辑运算符:
查看两个ip地址:ip.addr == 192.168.1.1 and ip.addr == 192.168.1.2
查看ip地址并且是icmp数据包的:ip.addr == 192.168.1.1 and icmp


此外还有:
或其中一个:or
除此之外:not

按照数据包进行过滤:
由icmp演示
如果想筛选数据包中包含abcd内容的数据流关键词为contains,完整的表达式为
data contains "abc"
具体步骤如下演示


常见过滤需求:
数据链路层:
筛选源mac地址:eth.src == 04:f9:38:ad:13:26
筛选目的mac:eth.dst == 04:f9:38:ad:13:26

网络层:
筛选网段的数据:ip contains "192.168.1"
注:这是基于网络地址分类的,如a类就是第一位,b类就是第二位
传输层:
筛选12345端口和80端口之间的数据包:tcp.port == 12345 && tcp.port == 80
筛选12345端口到80端口的数据包:tcp.srcport == 12345 && tcp.dstport ==80
应用层:
http.request表示请求头中的第一行(GET index.jsp HTTP/1.1)http.response表示响应头中的第一行(http/1.1 200 OK),其他头部都用http.header_name形式
筛选url中包含.php的http数据包:http.request.uri contains".php"
筛选内容包含username的http数据包:http contains"username"

实战
服务器被黑上不了网,可以ping通网关,不能上网
TTL:数据报文的生存周期
默认linux操作系统值:64,每经过一个路由节点,TTL值减1。TTL值为0时,说明目标地址不可达并返回:Time to live exceedede
作用:防止数据包,无限制在公网中转发
修改linux中ttl的值为1:echo "1" > /proc/sys/net/ipv4/ip_default_ttl
当出现time-to-live exceeded就说明ttl可能出现了问题
