Linux安全网 - Linux操作系统_Linux 命令_Linux教程_Linux黑客

会员投稿 投稿指南 本期推荐:
搜索:
您的位置: Linux安全网 > Linux命令 > 网络通讯 > » 正文

linux tcpdump命令参数及用法详解--linux下抓包网络分析(3)

来源: 未知 分享至:
  src or dst port ftp-data 此为比上一个相对简的结构,src or dst表示源或目标,ftp-data为id,表示ftp协议中数据传输端口,故整体表示源或目标端口ftp-data的数据包即匹配。
 
  如果在一个primitive中没有dir词,此默认为src or dst. 如 host foo则表示源或目标主机为foo的数据包都匹配。
 
  proto 此种词是用来匹配某种特定协议的,这些词包括:ether, fddi, tr, wlan, ip, ip6, arp, rarp, decnet,tcp和udp。其实这些词经常用来匹配某种协议,是使用率最高的一组词了。
 
  上面三种qualitifer和id name或number组成一个primitive通常是下面这种方式的:
 
  proto dir type id(number) ,即primitive=proto dir type (id | number)
 
  如:
 
  tcp src port 80
 
  ip dst host 192.168.1.1
 
  如果出现type的话,一定会出现id或num
 
  如果出现dir,那么也会出现type,如果不出现,默认为host
 
  而proto可单独出现,如 tcpdump 'tcp'
 
  通过上面介绍的三种qualitifer,我们很快就可以写出一个primitive,下面我就只用一个primitive作为expression匹配数据包。
 
  (1)匹配ether包
 
  匹配特定mac地址的数据包。
 
  tcpdump 'ether src 00:19:21:1D:75:E6'
 
  匹配源mac为00:19:21:1D:75:E6的数据包其中src可改为dst, src or dst来匹改变条件
 
  匹配ether广播包。ether广播包的特征是mac全1.故如下即可匹配:
 
  tcpdump 'ether dst ff:ff:ff:ff:ff:ff'
 
  ylin@ylin:~$ sudo tcpdump -c 1 'ether dst ff:ff:ff:ff:ff:ff'
 
  tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
 
  listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
 
  10:47:57.784099 arp who-has 192.168.240.77 tell 192.168.240.189
 
  在此,只匹配1个包就退出了。第一个是arp请求包,arp请求包的是采用广播的方式发送的,被匹配那是当之无愧的。
 
  匹配ether组播包,ether的组播包的特征是mac的最高位为1,其它位用来表示组播组编号,如果你想匹配其的多播组,知道它的组MAC地址即可。如
 
  tcpdump 'ether dst <Mac_Adrress>' Mac_Address表示地址,填上适当的即可。如果想匹配所有的ether多播数据包,那么暂时请放下,下面会继续为你讲解更高级的应用。
 
  (2)匹配arp包
 
arp包用于IP到Mac址转换的一种协议,包括arp请求和arp答应两种报文,arp请求报文是ether广播方式发送出去的,也即 arp请求报文的mac地址是全1,因此用ether dst FF;FF;FF;FF;FF;FF可以匹配arp请求报文,但不能匹配答应报文。因此要匹配arp的通信过程,则只有使用arp来指定协议。
 
  tcpdump 'arp' 即可匹配网络上arp报文。
 
  ylin@ylin:~$ arping -c 4 192.168.240.1>/dev/null& sudo tcpdump -p 'arp'
 
  [1] 9293
 
  WARNING: interface is ignored: Operation not permitted
 
  tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
 
  listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
 
 11:09:25.042479 arp who-has 192.168.240.1 (00:03:d2:20:04:28 (oui Unknown)) tell ylin.local
 
  11:09:25.042702 arp reply 192.168.240.1 is-at 00:03:d2:20:04:28 (oui Unknown)
 
  11:09:26.050452 arp who-has 192.168.240.1 (00:03:d2:20:04:28 (oui Unknown)) tell ylin.local
 
  11:09:26.050765 arp reply 192.168.240.1 is-at 00:03:d2:20:04:28 (oui Unknown)
 
  11:09:27.058459 arp who-has 192.168.240.1 (00:03:d2:20:04:28 (oui Unknown)) tell ylin.local
 
  11:09:27.058701 arp reply 192.168.240.1 is-at 00:03:d2:20:04:28 (oui Unknown)
 
  11:09:33.646514 arp who-has ylin.local tell 192.168.240.1
 
  11:09:33.646532 arp reply ylin.local is-at 00:19:21:1d:75:e6 (oui Unknown)
 
  本例中使用arping -c 4 192.168.240.1产生arp请求和接收答应报文,而tcpdump -p 'arp'匹配出来了。此处-p选项是使网络工作于正常模式(非混杂模式),这样是方便查看匹配结果。
 
  (3)匹配IP包
 
  众所周知,IP协议是TCP/IP协议中最重要的协议之一,正是因为它才能把Internet互联起来,它可谓功不可没,下面分析匹配IP包的表达式。
 
  对IP进行匹配
 
  tcpdump 'ip src 192.168.240.69'
 
  ylin@ylin:~$ sudo tcpdump -c 3 'ip src 192.168.240.69'
 
  tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
 
  listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
 
  11:20:00.973605 IP ylin.local.51486 > walnut.crossbeamsys.com.ssh: S 2706301341:2706301341(0) win 5840 <mss 1460,sackOK,timestamp 1687608 0,nop,wscale 5>
 
  11:20:00.974328 IP ylin.local.32849 > 192.168.200.150.domain: 5858+ PTR? 20.200.168.192.in-addr.arpa. (45)
 
  11:20:01.243490 IP ylin.local.51486 > walnut.crossbeamsys.com.ssh: . ack 2762262674 win 183 <nop,nop,timestamp 1687676 4155416897>
 
  IP广播组播数据包匹配:只需指明广播或组播地址即可
 
  tcpdump 'ip dst 240.168.240.255'
 
  ylin@ylin:~$ sudo tcpdump 'ip dst 192.168.240.255'
 
  tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
 
  listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
 
  11:25:29.690658 IP dd.local > 192.168.240.255: ICMP echo request, id 10022, seq 1, length 64
 
  11:25:30.694989 IP dd.local > 192.168.240.255: ICMP echo request, id 10022, seq 2, length 64
 
  11:25:31.697954 IP dd.local > 192.168.240.255: ICMP echo request, id 10022, seq 3, length 64
 
  11:25:32.697970 IP dd.local > 192.168.240.255: ICMP echo request, id 10022, seq 4, length 64
 
  11:25:33.697970 IP dd.local > 192.168.240.255: ICMP echo request, id 10022, seq 5, length 64
 
  11:25:34.697982 IP dd.local > 192.168.240.255: ICMP echo request, id 10022, seq 6, length 64
 
  此处匹配的是ICMP的广播包,要产生此包,只需要同一个局域网的另一台主机运行ping -b 192.168.240.255即可,当然还可产生组播包,由于没有适合的软件进行模拟产生,在此不举例子。
 
  (4)匹配TCP数据包
 
  TCP同样是TCP/IP协议栈里面最为重要的协议之一,它提供了端到端的可靠数据流,同时很多应用层协议都是把TCP作为底层的通信协议,因为TCP的匹配是非常重要的。
 
  如果想匹配HTTP的通信数据,那只需指定匹配端口为80的条件即可
 
  tcpdump 'tcp dst port 80'
 
  ylin@ylin:~$ wget http://www.baidu.com 2>1 1 >/dev/null & sudo tcpdump -c 5 'tcp port 80'
 
  [1] 10762
 
  tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
 
  listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
 
  12:02:47.549056 IP xd-22-43-a8.bta.net.cn.www > ylin.local.47945: S 1202130469:1202130469(0) ack 1132882351 win 2896 <mss 1460,sackOK,timestamp 3497190920 2329221,nop,wscale 2>
 
  12:02:47.549085 IP ylin.local.47945 > xd-22-43-a8.bta.net.cn.www: . ack 1 win 183 <nop,nop,timestamp 2329258 3497190920>
 
  12:02:47.549226 IP ylin.local.47945 > xd-22-43-a8.bta.net.cn.www: P 1:102(101) ack 1 win 183 <nop,nop,timestamp 2329258 3497190920>
 
  12:02:47.688978 IP xd-22-43-a8.bta.net.cn.www > ylin.local.47945: . ack 102 win 698 <nop,nop,timestamp 3497190956 2329258>
 
  12:02:47.693897 IP xd-22-43-a8.bta.net.cn.www > ylin.local.47945: . 1:1409(1408) ack 102 win 724 <nop,nop,timestamp 3497190957 2329258>
 
  (5)匹配udp数据包
 
  udp是一种无连接的非可靠的用户数据报,因此udp的主要特征同样是端口,用如下方法可以匹配某一端口
 
  tcpdump 'upd port 53' 查看DNS的数据包
 
  ylin@ylin:~$ ping -c 1 www.baidu.com > /dev/null& sudo tcpdump -p udp port 53
 
  [1] 11424
 
  tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
 
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
 
  12:28:09.221950 IP ylin.local.32853 > 192.168.200.150.domain: 63228+ PTR? 43.22.108.202.in-addr.arpa. (44)

Tags: tcpdump命令 tcpdump详解 li tcpdump
分享至:
最新图文资讯
1 2 3 4 5 6
验证码:点击我更换图片 理智评论文明上网,拒绝恶意谩骂 用户名:
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 发展历史