文章目录
一、介绍
抓包(packet capture)就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全。抓包也经常被用来进行数据截取等。
抓包工具是拦截查看网络数据包内容的软件。主流的有windows和MacOS平台是wireshark、sniffer、httpwatch、iptool等,Linux平台是TCPdump。
作用:拿到数据以后,我们就可以做以下一些事情:
- 分析数据传输协议。
- 定位网络协议的问题。
- 从数据包中获取想要的信息。
- 将截取到的数据包进行修改,伪造,重发。
(1)Frame: 物理层的数据帧概况
(2)Ethernet II: 数据链路层以太网帧头部信息
(3)Internet Protocol Version 4: 互联网层IP包头部信息
(4)Transmission Control Protocol: 传输层T的数据段头部信息,此处是TCP
(5)Hypertext Transfer Protocol: 应用层的信息,此处是HTTP协议
二、Wireshark过滤器:
(1)抓包过滤器
用于在抓取数据包前设置
(2)显示过滤器
用于在抓取数据包后设置过滤条件

三、分析TCP三次握手:
(1)TCP三次握手连接建立过程
- Step1:客户端发送一个SYN=1,ACK=0标志的数据包给服务端,请求进行连接,这是第一次握手;
- Step2:服务端收到请求并且允许连接的话,就会发送一个SYN=1,ACK=1标志的数据包给发送端,告诉它,可以通讯了,并且让客户端发送一个确认数据包,这是第二次握手;
- Step3:服务端发送一个SYN=0,ACK=1的数据包给客户端端,告诉它连接已被确认,这就是第三次握手。TCP连接建立,开始通讯。
四、Tcpdump抓包命令
bash
ifconfig -a 查看接口
tcpdump -i 接口 需要抓取的网络接口
-c 数量 指定抓取包的数量
-s0 抓取包长度不受限制
-v 或者-vv 显示完整协议指令过程
-e 显示链路层头部
-w 文件 存储到指定的文件,保存的这个文件一般用wireshark打开
-x 用十六进制字码列出数据包资料
-n 不把主机的网络地址转换成名字
src 地址 指定源地址
dst 地址 指定目的地址
例: tcpdump -i sync -e -vv -c 10 -w mysync_10p.cap
抓取 sync接口 10个包 保存在mysync_10p.cap文件,显示链路层头部显示完整协议