Kali Linux 抓包工具:Tcpdump 使用教程(3)

Kali Linux自带Wireshark,但一般的Linux系统是不带的,需要自行下载,并且过程略复杂;

而纯字符界面的Linux系统无法使用Wireshark;

但是,所有Linux系统都会安装TCPDUMP:一种基于命令行的抓包工具。

 

注意:Tcpdump默认只抓68字节,能够获得基本信息,但无法做到完整分析;

 

一、Tcpdump 开始抓包

-i 参数:eth0网卡,-s 0 表示抓取全部,-w a.cap 表示把抓到的内容放在a.cap文件中

随意打开一个网站,然后Ctrl+c结束,发现抓了370个包

root@kali:/# tcpdump -i eth0 -s 0 -w a.cap

Tcpdump 开始抓包

 

二、Tcpdump 总览信息

接下来我们看看抓取的包:

总览信息:

root@kali:/# tcpdump -r a.cap 

tcpdump -r a.cap

 

三、Tcpdump 详细查看

这里的-A 意思是以ASCII码解析

root@kali:/# tcpdump -A -r a.cap 

tcpdump 以ASCII码解析

 

还可以用十六进制的方式查看(-X):

root@kali:/# tcpdump -X -r a.cap 

tcpdump 用十六进制的方式查看

 

四、Tcpdump 过滤器

刚才是抓取所有的包,类似Wireshark,TCPDUMP也有过滤器:

比如我这里只抓80端口的数据包:

root@kali:/# tcpdump -i eth0 -s 0 tcp port 80

tcpdump只抓80端口的数据包

 

五、Tcpdump 显示筛选器

除了抓包筛选器,还可以显示筛选(抓到之后筛选自己需要的数据包)

 

第一种方法:通过Linux系统手动筛选

-n 的意思是不解析域名,awk分隔开只看其中的某一列,sort -u 去重

root@kali:/# tcpdump -n -r a.cap | awk '{print $3}' sort -u

tcpdump Linux系统手动筛选

 

第二种方法:用TCPDUMP的方法

这里我只抓取来源是222.199.191.32的数据包;

root@kali:/# tcpdump -n src host 222.199.191.32 -r a.cap

tcpdump 只抓取来源是222.199.191.32的数据包

 

不止来源,这里设置只抓目的IP为:222.199.191.32的数据包;

root@kali:/# tcpdump -n dst host 222.199.191.32 -r a.cap

tcpdump 只抓目的IP为:222.199.191.32的数据包

 

再比如:只抓域名解析数据包:

root@kali:/# tcpdump -n udp port 53 -r a.cap

tcpdump 只抓域名解析数据包

 

这些是基础筛选,还有高级筛选:

 

TCP包头结构如下,8个位为一个字节,每一行为四个字节,一共是32个位

源端口占了前面的16个位,两个字节;目的端口一样;第四行第三列是标签位

0                  1                    2                   3

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|          Source Port          |     Destination Port          |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|                        Sequence Number                        |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|                      Acknowledgment Nuber                     |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|  Date  |      |C|E|U|A|P|R|A|F|                               |

| Offset |  Res.|W|C|R|C|S|S|Y|I|         Windwos               |

|        |      |R|E|G|K|H|T|N|N|                               |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|            Checksum           |     Urgent Pointer            |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|                      Options               |     Padding      |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|                                data                           |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

 

根据这张图,我需要查ACK和PSH标志位,是第14个字节第00110000(24)位

这样写即可:

root@kali:/# tcpdump -A -n 'tcp[13]=24' -r a.cap

试试:tcpdump 查ACK和PSH标志位

头像
  • ¥ 99.0元
  • 市场价:99.0元
  • ¥ 159.0元
  • 市场价:499.0元
  • ¥ 49.9元
  • 市场价:99.9元
  • ¥ 999元
  • 市场价:4999元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: