wireshark

记录了wireshark的一些使用方式,用于学习TCP/IP

Wireshark可以做什么

  • 网络管理员使用Wireshark检测网络问题
  • 网安工程师用Wireshark检查信息安全相关问题
  • 开发者使用Wireshark为新的通信协议调试

Wireshark不可以做什么

  • Wireshark不是入侵侦测软件(Intrusion Detection Software, IDS)。对于网络上的异常流量行为,Wireshark不会产生警示或是任何提示。然而,仔细分析Wireshark截取的数据包能够帮助用户对于网络行为有更清楚的了解。
  • Wireshark不会对网络数据包产生内容的修改 - 它只会反映出当前流通的数据包信息。 Wireshark本身也不会提交数据包至网络上。就是说你只能查看数据包,不能修改或转发。

下载

官网下载,我安装的版本是 Version 3.6.7 (v3.6.7-0-g4a304d7ec222)

抓包示例

  1. 打开wireshark 3.0.4,主界面如下:
  1. 选择菜单栏上捕获——>选项,取消混杂模式,勾选WLAN,开始(你也可以直接双击上图的WLAN开始)

  2. 此时wireshark已经开始工作,查看抓包

  3. 打开cmd窗口,执行ping www.baidu.com

  4. 工作中的wireshark将抓取到相关数据包,在过滤栏设置过滤条件以避免其他无用数据包影响分析,比如:ip.addr == 180.101.49.12 and icmp表示只显示ICPM协议且源主机IP或者目的主机IP为180.101.49.12的数据包。说明:协议名称icmp要小写

数据包详细信息

各行信息分别为:

  • Frame: 物理层的数据帧概况
  • Ethernet II: 数据链路层以太网帧头部信息
  • Internet Protocol Version 4: 互联网层IP包头部信息
  • Transmission Control Protocol: 传输层T的数据段头部信息,如TCP
  • Hypertext Transfer Protocol: 应用层的信息,如HTTP协议

可以与TCP格式对应起来

wireshark过滤器表达式的规则

1、抓包过滤器语法和实例

抓包过滤器类型Type(host、net、port)、方向Dir(src、dst)、协议Proto(ether、ip、tcp、udp、http、icmp、ftp等)、逻辑运算符(&& 与、|| 或、!非)

(1)协议过滤

比较简单,直接在抓包过滤框中直接输入协议名即可。 tcp,只显示TCP协议的数据包列表 http,只查看HTTP协议的数据包列表 icmp,只显示ICMP协议的数据包列表

(2)IP过滤

host 192.168.1.104 src host 192.168.1.104 dst host 192.168.1.104

(3)端口过滤

port 80 src port 80 dst port 80

(4)逻辑运算符&& 与、|| 或、!非

src host 192.168.1.104 && dst port 80 抓取主机地址为192.168.1.80、目的端口为80的数据包 host 192.168.1.104 || host 192.168.1.102 抓取主机为192.168.1.104或者192.168.1.102的数据包 !broadcast 不抓取广播数据包

2、显示过滤器语法和实例

(1)比较操作符

比较操作符有== 等于、!= 不等于、> 大于、< 小于、>= 大于等于、<=小于等于。

(2)协议过滤

比较简单,直接在Filter框中直接输入协议名即可。注意:协议名称需要输入小写。 tcp,只显示TCP协议的数据包列表 http,只查看HTTP协议的数据包列表 icmp,只显示ICMP协议的数据包列表

(3) ip过滤

ip.src ==192.168.1.104 显示源地址为192.168.1.104的数据包列表 ip.dst==192.168.1.104, 显示目标地址为192.168.1.104的数据包列表 ip.addr == 192.168.1.104 显示源IP地址或目标IP地址为192.168.1.104的数据包列表

(4)端口过滤

tcp.port ==80, 显示源主机或者目的主机端口为80的数据包列表。 tcp.srcport == 80, 只显示TCP协议的源主机端口为80的数据包列表。 tcp.dstport == 80,只显示TCP协议的目的主机端口为80的数据包列表。

(5) Http模式过滤

http.request.method==”GET”, 只显示HTTP GET方法的。

(6)逻辑运算符为 and/or/not

过滤多个条件组合时,使用and/or。比如获取IP地址为192.168.1.104的ICMP数据包表达式为ip.addr == 192.168.1.104 and icmp

(7)按照数据包内容过滤。

假设我要以IMCP层中的内容进行过滤,可以单击选中界面中的码流,在下方进行选中数据。右键–>准备过滤器–>选中–>添加条件表达式,如data contains "uestc"

Wireshark分析TCP协议三次握手

TCP三次握手连接建立过程

img

  • 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。
  • 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
  • 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手,客户端与服务器开始传送数据。
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2022 ZHU
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信