《Linux-tcpdump命令详解.docx》由会员分享,可在线阅读,更多相关《Linux-tcpdump命令详解.docx(46页珍藏版)》请在优知文库上搜索。
1、1.inuxtcpdump吩咐洋解1皿2好用吩咐实例3输出信息含义3链路头3TCP数据包3UDP数据包3SMBClFS解码3AFS恳求和【川应3KIPAPPIoTaIk协议3IP数据包破裂3时间一4吩咐运用4tcpdump的简洁选项介绍4tcpdump条件表达式5附录ICpdUinP的衣达元简介用简洁的话来定义tcpdump.就是:dumpthetrafficonanetwork.依据运用者的定义对网络上的数据包进行截获的包分析工具。tcpdump可以将网络中传送的数据包的“头”完全截获下来供应分析。它支持针对网络层、协议、主机、网络或端口的过滤,并供应and、or、not等逻辑语句来帮助你去
2、掉无用的信息。好用吩咐实例默认启动一股状况卜.,干脆启动tcpdump将监觇第一个网络接口上全部流过的数据包。监视指定网络接口的数据包tcpdump-iethl假如不指定网卡,默认tcpdump只会监视第个网络接口,般是eth,下面的例子都没有指定网络接口。监视指定主机的数据包打印全部进入或离开sundown的数据包.tcpdmphostsundown也可以指定ip,例如截获全部210.27.48.1的主机收到的和发出的全部的数据包JTHJhelios与hoi或者与ace之间通信的数据包tcpdumphostheIioSand(hotorace)截荻主机210.27.48.1和主机210.27
3、.48.2或210.27.48.3的通信tcpdumphost210.27.48.1and(210.27.48.2or210.27.48.3)打印ace与任何其他主机之间通信的IP数据包,但不包括与helios之间的数据包.tcpdumpiphostaccandnothelios假如想要获得主机21027.48.1除了和主机210.27.48.2之外全部主机通信的ip包,运用吩咐:截获主机hostname发送的全部数据tcpdump-iethsrchosthostname监视全部送到主机hostname的数据包tcpdmp-iethdsthosthostname监视指定主机和端口的数据包假如想
4、要获得主机210.27.48.1接收或发出的telnet包,运用如下吩咐对本机的UdP123端口进行监视123为ntp的服务端口tcpdmpudpport123监视指定网络的数据包打印本地主机与Berkeley网络上的主机之间的全部通信数据包(nt:UCb-ether,此处可理解为Berkeley网络的网络地址,此表达式最原始的含义可表达为:打印网络地址为UCbether的全部数据包)Icpdunij)netUCb-eIher打印全部通过网关SnUP的ftp数据包(留意,表达式被单引号括起来了,这可以防止shell对其中的括号进行钳误会析)IcpdumpgatewaySnUPand(portf
5、tporftp-data)打印全部源地址或目标地址是本地主机的IP数据包(假如本地网络通过网关连到了另网络,则另网络并不能算作本地网络(nt:此句翻译曲折,需补充)Iocalnel实际运用时要我正替换成本地网络的名字)tcpdumpipandnotnetIocalnet监视指定悔议的数据包打印TCP会话中的的起先和结束数据包,并且数据包的源或目的不是本地网络上的主机(nt:IoCalnet,实际运用时要.真正替换成本地网络的名字)tcpdumptcptcpflags&(tep-syntep-fin)!=0andnotsrcanddstnetIocalnot打印全部源或目的端口是80,网络层协议
6、为IPw1,并且含有数据,而不是SYN,FIN以及ACK-Only等不含数据的数据包.(ipv6的版本的表达式可做练习)tcpdu11pIcpport80and(ip2:2-(ip00xf)2)!=0),(nt:可理解为,ip2:2表示整个ip数据包的长度,(ip0&0xD21表示ip数据包包头的长度(ip0K0xf代表包中的IH1.域,而此域的单位为32bit,要换算成字节数须要乘以即左移2.(tcp12&0xf0)4表示tcp头的长度,此域的单位也是32bit,换钵成比特数为(tcp12fcxf)4)2,即(tcp12ftxf)2).(ip2:2-(ip0ft0xf)2)!=0表示:整个i
7、p数据包的长度减去ip头的长度,再诚去tcp头的长度不为0,这就意味若,ip数据包中的确是有数据.对于ip,6版本只需考虑ipv6头中的Payload1.ength与,tcp头的长度的差值,并且其中表达方式ip需换成ip6口.)打印长度超过576字节,并且网关地址是snap的IP数据包Icpdumpgatewaysnupandip2:2576打印全部IP层广播或多播的数据包,但不是物理以太网层的广播或多播数据报tcpdump,etherOAl=Oandip16j=224打印除echorequest或者echoreply类型以外的ICMP数据包(比如,须要打印全部非Ping程序产生的数据包时可用
8、到此表达式.(nt:echoreqest,与,echoreply这两种类型的ICMP数据包通常由Ping程序产生)tcpdumpicnpicmptype!=ic11p-echoandicnpicmptype!=icmp-echorcply,tcpdp与ViresharkWireshark(以前是etherea1)是WindOWS下特别简洁易用的抓包工具.但在1.inux下很难找到一个好用的图形化抓包工具。还好有TCPdUmp。我们可以用TCPdUInP+Kireshark的完备组合实现:在1.inUX里抓包,然后在WindoWS里分析包。(1)tcp:ipicmparprarp和tcp、Udp
9、、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型(2)-iethl:只抓经过接口ethl的包(3)-t:不显示时间戳(4)-SO;抓取数据包时默认抓取长度为68字节。加上-SO后可以抓到完整的数据包(5)-C100:只抓取100个数据包(6)dstport!22:不抓取目标端口是22的数据包(8)-W./target,cap:保存成CaP文件,便利用ethereal(即wireshark)分析运用tcpdu11p抓取HTTP包tcpdump-XvvcnnSs0-iethtcp20:2=0x4745ortcp20:2=0x48540x4745为GET前两个字母GE”,0x485
10、4为H11P前两个字母FT。ICPdUmP对截获的数据并没有进行彻底解码,数据包内的大部分内容是运用十六进制的形式干脆打印输出的。明显这不利于分析网络故障,通常的解决方法是先运用带-W参数的tcpdump截获数据并保存到文件中,然后再运用其他程序(如WireShark)进行解码分析.当然也应当定义过漉规则,以避开捕获的数据包填满整个硬就,输出信息含义首先我们留意一下,基本上ICPdUmP总的的输出格式为:系统时间来源主机.端口目标主机.端口数据包参数tcpdump的输出格式与协议有关.以下筒要描述了大部分常用的格式及相关例子.链路层头对于FDDl网络,-e使tcpdump打印出指定数据包的fr
11、amecontrol域,源和目的地址,以及包的长度.(fram。control域限制对包中其他域的解析).一般的包(比如那些Ipdatagrams)都是带有async(异步标记)的数据包,并且有取值0到7的优先级;比如async4就代表此包为异步数据包,并且优先级别为4.通常认为,这些包们会内含个1.1.C包(逻辑徙路限制包);这时,假如此包不是一个ISOdatagram或所谓的SNAP包,其1.1.C头部将会被打印(nt:应当是指此包内含的1.1.C包的包头).对TTokCnRing网络(令牌环网络。使tcpdump打印出指定数据包的,framecontrol和accesscontrol,以
12、及源和目的地址,外加包的长度.与FDDl网络类似,此数据包通常内含1.1.C数据包.不管是否有-e,选项.对于此网络上的source-routed类型数据包(nt:意洋为:源地址被追踪的数据包,具体含义未知,需补充),其包的源路由信息总会被打印.对于802.11网络(W1.AN,即wirelesslocalareanetwork),-e,使tcpdu11p打印出指定数据包的framecontrol域,包头中包含的全部地址,以及包的长度.与FDDl网络类似,此数据包通常内含UX数据包.(留意:以下的描述会假设你熟识S1.IP压缩算法(nt:S1.lP为SeriaI1.ineInternetPro
13、tocol.),这个算法可以在RFCTl44中找到相关的蛛丝马迹.)对于S1.Ip网络(nl:S1.IPIinks,可理解为一个网络,即通过串行线路建立的连接,而一个简洁的连接也可看成一个网络),数据包的directionindicator(方向指示标记)(I表示入,0衣示出),类型以及压缩信息将会被打印.包类型会被首先打印.类型分为ip,UtCP以及CtCP(nt:未知,需补充).对TiP包,连接信息将不被打印(nl:SUp连接上,ip包的连接信息可能无用或没有定义.reconfirm),对于TCP数据包,连接标识紧接着类型表示被打印,假如此包被压缩,其被编码过的头部将被打印.此时对于特殊的
14、压缩包,会如下显示:*Sn或者*S+n,其中n代表包的(依次号或(依次号和应答号)增加或削减的数目(ntirt:S,SA拗口,需再译).对于非特殊的乐缩包,0个或更多的变更将会被打印.变更被打印时格式如下:标记+/-/=n包数据的长度压缩的头部长度.其中标记可以取以下值:U(代表紧急指针),W(指镶冲窗口),A(应答),S(序列号),1(包ID),而增量表达=n表示被给予新的依,+/-表示增加或削减.比如,以下显示了对个外发压缩TCP数据包的打印,这个数据包隐含个连接标识(ConneCtiOnidentifier):应答号增加了6,依次号增加了49,包ID号增加了6;包数据长度为3字节(OCl
15、eCD,压缩头部为6字节.(nt:如此看来这应当不是一个特殊的压缩数据包).ARP/RARP数据包tcpdump对ArpZrarp包的输出信息中会包含恳求类型及该恳求对应的参数.显示格式简洁明白.以卜是从主机rtsg到主机CSam的riotin(远程登录)过程起先阶段的数据包样例:arpWhO-hascs11tellrlsgarpreplycsamis-atCSM第行表示:rtsg发送了个arp数据包(nt:向全网段发送,arp数据包)以询问csam的以太网地址CSanI(nl:可从下文看出来,是CSam)以她自己的以太网地址做了回应(在这个例子中,以太网地址以大写的名字标识,而intemet地址(即ip地址)以全部的小写名字标识).假如运用tcpdump-n,可