网络抓包工具Wireshark与tcpdump介绍


文章目录

  • 1.网络协议介绍
  • 2.Wireshark工具介绍
    • 2.1 Wireshark的使用
  • 3.tcpdump工具介绍
    • 3.1 tcpdump的使用
    • 3.2 tcpdump的源码与编译
【网络抓包工具Wireshark与tcpdump介绍】
1.网络协议介绍 在互联网的世界中,网络协议将所有的设备接入到一个网络,才有了我们的信息共享,大数据时代。
开放式系统互联通信参考模型(Open System Interconnection Reference Model,缩写为 OSI),简称为OSI模型(OSI model),一种概念模型,由国际标准化组织提出,一个试图使各种计算机在世界范围内互连为网络的标准框架
DoD模型是OSI模型(开放系统互连参考模型)两者的设计和概念相似,且对应的功能也相似。DoD模型相当于一个OSI模型的精简版
网络抓包工具Wireshark与tcpdump介绍
文章图片

如何学习网络协议,在通信协议的调试中,绕不开使用抓包工具进行分析报文;常用的抓包工具有Windows下的Wireshark工具、Linux下的tcpdump工具。
在此我们采用Window实体机加Linux虚拟机进行抓包分析ping协议,可使用同样的方法来分析其他协议;
2.Wireshark工具介绍 Wireshark的安装网上介绍很多,在此不做介绍;
Wireshark的界面比较简单,使用也比较简单,选择对应的网卡便可以进行网络报文抓取;
网络抓包工具Wireshark与tcpdump介绍
文章图片

2.1 Wireshark的使用 使用ping协议在实体机ping虚拟机,此为从windows下抓包的情况,选择对应的网卡即可以开启抓包,上方可以进行条件筛选,比如本次筛选目的与源ip地址。
实体机IP:192.168.153.1
Linux虚拟机IP:192.168.153.130
网络抓包工具Wireshark与tcpdump介绍
文章图片

选取对应的报文在wireshark中会显示对应的解析情况,可以清晰的看见,ping是基于ICMP协议进行实现。
网络抓包工具Wireshark与tcpdump介绍
文章图片

3.tcpdump工具介绍 tcpdump可以抓取为pcap文件,使用wireshwk打开分析,与windows下的分析类似;
tcpdump --help tcpdump version 4.9.3 libpcap version 1.7.4 OpenSSL 1.0.2g1 Mar 2016 Usage: tcpdump [-aAbdDefhHIJKlLnNOpqStuUvxX#] [ -B size ] [ -c count ] [ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ] [ -i interface ] [ -j tstamptype ] [ -M secret ] [ --number ] [ -Q in|out|inout ] [ -r file ] [ -s snaplen ] [ --time-stamp-precision precision ] [ --immediate-mode ] [ -T type ] [ --version ] [ -V file ] [ -w file ] [ -W filecount ] [ -y datalinktype ] [ -z postrotate-command ] [ -Z user ] [ expression ]

3.1 tcpdump的使用 tcpdump为linux下的抓包工具,linux平台很难找到合适到可视化抓包工具,tcpdump+Wireshark很好的解决了这个问题,使用tcpdump抓取pcap文件,使用Wireshark工具进行分析。
抓取指定网卡的报文至指定文件,指令如下:
tcpdump -i eth0 -w tcpdump.pcap
会生成tcpdump.pcap文件,使用wireshark进行打开,分析与windows下的抓包类似
网络抓包工具Wireshark与tcpdump介绍
文章图片

3.2 tcpdump的源码与编译 一般情况下,针对嵌入式设备,因为资源紧张,可能不会内嵌tcpdump工具,因此需要我们自行编译tcpdump工具。tcpdump为开源库,下载地址https://www.tcpdump.org/,可以使用交叉编译编译指定平台。
//tcpdump目录 libpcap-1.8.1libpcap-1.8.1.tar.gztcpdump-4.99.1tcpdump-4.99.1.tar.gz

使用交叉编译链aarch64-none-linux-gnu-gcc
1.编译libpcap
cd libpcap-1.8.1 ./configure --prefix=$PWD/output --host=aarch64-none-linux-gnu --with-pcap=linux make make install

生成文件在output目录下
2.编译tcpdump
cd tcpdump-4.99.1 ./configure --host=aarch64-none-linux-gnu --with-pcap=linux make

生成文件在本目录下tcpdump执行文件,可以在ARM64平台执行,分析方法是类似的。
//readelf -a tcpdump |less ELF Header: Magic:7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 Class:ELF64 Data:2's complement, little endian Version:1 (current) OS/ABI:UNIX - System V ABI Version:0 Type:EXEC (Executable file) Machine:AArch64 Version:0x1 Entry point address:0x404400 Start of program headers:64 (bytes into file) Start of section headers:6985056 (bytes into file) Flags:0x0 Size of this header:64 (bytes) Size of program headers:56 (bytes) Number of program headers:9 Size of section headers:64 (bytes) Number of section headers:37 Section header string table index: 36

    推荐阅读