wireshark的使用
一、协议
1. TCP/IP协议簇
- 网络接口层(没有特定的协议) PPPOE(拨号协议)属于物理层
- 物理层
- 数据链路层
- 网络层:IP(V4/V6) ARP(地址解析协议) RARP ICMP(Internet控制报文协议) IGMP
- 传输层:TCP(传输控制协议) UDP(用户数据报协议)
- 应用层:都是基于传输层协议的端口,总共端口0~65535 0~1023 HTTP--tcp80 HTTPS---tcp443
- DHCP
- DNS
- HTTP
- HTTPS
- FTP
- DMTP
- POP3
- IMAP
二、流量抓取工具(wireshark)
1. 网卡
- wires hark是对主机网卡上的数据流量进行抓取
-
网卡模式
- 混杂模式:不管目的是否是自己,都接受
- 非混杂模式:默认情况下,主机的网卡处于此模式,不会接受目的非自己的数据
2. 过滤器
-
捕获过滤器:在抓包前进行过滤(只抓某些类型的包或者不抓某些类型的包)
- 语法
- 类型:host net port
- 方向:src dst
- 协议:ether ip tcp udp http ftp
- 逻辑运算符:&&与 ||或 !非
- 举例
- 抓取源IP为192.168.18.14并且目标端口为80的报文
src host 192.168.18.14 && dst port 80
- 抓取IP为192.168.18.14或者IP地址192.168.18.1
host 192.168.18.14 || host 192.168.18.1
- 不抓取广播包
! broadcast
- 抓取源IP为192.168.18.14或者源192.168.18.0/24,目的TCP端口号在200到10000之间,并且目的位于129.0.0.0/8
(src host 192.168.18.14 ||src net 192.168.18.0/24 )&& (dst portrange 200-10000 && dst net 129.0.0.0/8)
-
显示过滤器:抓包前后都可以进行过滤,但是不会影响抓取的包(会抓取所有的包,只不过再查看的时候只显示某些包)
- 语法
- 比较操作符:==(eq) !=(不等于) >(大于、gt) <(小于、lt) >= (大于等于ge) <=(小于等于le)
- 逻辑操作符:and(&&)与,or(||)或,not
- ip地址过滤:ip.addr ip.src ip.dst
- 端口过滤:tcp.port udp.port tcp.dstport tcp.flag.syn tcp.flag.ack
- 协议过滤:arp ip icmp udp tcp http
- 举例
- 显示源IP等于192.168.18.14并且TCP端口为443
ip.src==192.16.18.14 and tcp.port==443
- 显示源不为192.168.18.14或者目的不为202.98.96.68的
ip.src!=192.168.18.14 or ip.dst!=202.98.96.68
3. 案例
- 开启wireshark抓包,抓取所有报文,然后去访问一个HTTP的网站
- 过滤DNS的报文,找到对应的域名解析报文
- 根据DNS返回的IP地址,找到主机与服务器的TCP交互过程
- 找到客户机请求服务器的HTTP报文,追踪HTTP流情况