Linux下抓包工具tcpdump应用详解
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)
学会写primitive后,expression就是小菜一碟了,由一个或多个primitive组成,并且逻辑连接符组成即可: tcpdump ‘host 192.168.240.91 && icmp[icmptype] = icmp-echo’ tcpdump ‘host 192.168.1.100 && vrrp’ tcpdump ''ether src 00:00:00:00:00:02 && ether[0] & 1 !=0'' 让你随心所欲地使用tcpdump,将不用再从复杂的输出中去挑报文了! 如此,我们可以写出更复杂的表达式来匹配报文,如IP或TCP中的报文id,IP是中的分段标志,ICMP中类型和代码等.
|
||
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |