您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 抓包工具介绍20111015
抓包工具介绍1WiresharkWireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark可支持windows和linux平台,界面简洁、大方,功能强大、实用,是目前全世界使用最广泛的网络分组分析软件之一。网络管理员能用Wireshark来检测网络问题,网络安全工程师使用Wireshark来检查信息安全相关问题,开发者可以用Wireshark来为新的通信协议除错,普通用户更用Wireshark来学习网络协议的相关知识。所以掌握使用Wireshark,能为我们定位故障、排除问题起到事半功倍的效果。1.1Wireshark抓包流程介绍1.1.1指定接口:选择左上角指定接口列表图标,在接口列表图标中选中需要抓包的接口:表中所列出的每一项对应为系统中的某一块具体的物理网卡,start、options、details分别表示开始抓包、参数设定、接口具体信息。1.1.2设定参数:在接口界面选择options:该界面可以设定过滤参数,呈现参数等;过滤参数可指定需要抓包的主机地址、端口、协议类型等。上图表示只抓源或目标端口80并且是60.191.109.197主机相关的包,并且实时呈现,自动滚屏,不做端口、主机名称和MAC地址的名称解析。1.1.3开始抓包:设定好参数后,就可以开始抓包了:程序主界面会实时的呈现当前抓到的包,呈现的列可以通过参数设置。键表示停止。第二个窗格表示选中的包的具体分析出来的内容,协议分析可以进一步指定协议分析。第三级窗格表示选中包对应的二进制内容。1.1.4结果过滤:抓包结果可以通过指定过滤器设置;该过滤参数表达式语法和之前的过滤语法有所区别,不过功能更加强大,可指定源IP,目标端口等。也可以右键选择follow具体某一路流查看报文交互过程:1.1.5分组分析:在获取到需要的报文后,右键选择“decodeas…”可指定链路层、网络层、传输层的各种协议栈对具体的报文进行分析。1.2封包分析Follow具体的某一路流后,会弹出去掉IP头后的报文,如果是TCP的明文传输,就会显示出具体的内容,否则就会显示出二进制对应的ASCII码。继续对该路码流decode,以RTP为例,会按照RTP协议栈解析UDP的报文内容,正确的解析会呈现出,RTP头各字段对应的值:1.3流量分析如果进一步对某一路流进行分析,根据协议栈所以定义的内容,可得出此次交互所有的传输质量和内容大小等,也可对具体的报文做进一步处理,如保存报文内容等。上图统计了此次RTP交互的丢包率、负载类型、源标识、目标地址和源地址等信息。更进一步的分析内容:1.4故障分析通过查看分析报文,可以发现网络中存在的问题,和服务端、客户端连接故障等。1.5使用实例如要在抓获的所有网络包中,筛选出RTP包,并对其进行丢包率的分析,可现在decodeas中选择network标签,先选出所有UDP的包,然后在transport标签中选择RTP,然后点选Telephony--RT--ShowAllStream,通过点选显示窗口中某一地址发过来的包,可以列出改地址所发RTP包的流量状况。2Tcpdump截取网络上的数据流Tcpdump可以打印出在某个网络接口上,匹配指定正则表达式的报文。Tcpdump也可以通过-w选项把截取到的网络数据保存到指定的文件,同样也能通过-r参数读取和分析指定文件中的数据流。作为互联网上经典的的系统管理员必备工具,tcpdump以其强大的功能,灵活的截取策略,成为每个系统管理员分析网络,排查问题等所必备的东东之一。2.1快速抓包Tcpdump需要通过-i参数指定接口,可以通过ifconfig–a查看当前系统所有接口。如果不指定该参数,则默认为截取eth0上的网络数据数据。另:如需要抓取本机到本机的包,在linux系统下请用-ilo选项。直接运行tcpdump,表示抓取eth0上所有的数据。每行代表一个截取到的数据报。呈现的信息包括:包到达时间、协议类型、源/目标地址信息、传输协议类型、报文长度、总包数等信息。如需要完整的协议解析,可采用–v模式抓包2.2正则表达式tcpdump利用表达式作为过滤报文的条件,如果一个报文满足表达式的条件,则这个报文将会被捕获。如果没有给出任何条件,则网络上所有的信息包将会被截获。在表达式中一般如下几种类型的关键字,一种是关于类型的关键字,主要包括host,net,port,例如host210.27.48.2,指明210.27.48.2是一台主机,net202.0.0.0指明202.0.0.0是一个网络地址,port23指明端口号是23。如果没有指定类型,缺省的类型是host.第二种是确定传输方向的关键字,主要包括src,dst,dstorsrc,dstandsrc,这些关键字指明了传输的方向。举例说明,src210.27.48.2,指明ip包中源地址是210.27.48.2,dstnet202.0.0.0指明目的网络地址是202.0.0.0。如果没有指明方向关键字,则缺省是srcordst关键字。第三种是协议的关键字,主要包括fddi,ip,arp,rarp,tcp,udp等类型。Fddi指明是在FDDI(分布式光纤数据接口网络)上的特定的网络协议,实际上它是ether的别名,fddi和ether具有类似的源地址和目的地址,所以可以将fddi协议包当作ether的包进行处理和分析。其他的几个关键字就是指明了监听的包的协议内容。除了这三种类型的关键字之外,其他重要的关键字如下:gateway,broadcast,less,greater,还有三种逻辑运算,取非运算是'not''!',与运算是'and','&&';或运算是'or','||';(1)想要截获所有210.27.48.1的主机收到的和发出的所有的数据包:#tcpdumphost210.27.48.1(2)想要截获主机210.27.48.1和主机210.27.48.2或210.27.48.3的通信,使用命令:(在命令行中适用括号时,一定要#tcpdumphost210.27.48.1and\(210.27.48.2or210.27.48.3\)(3)如果想要获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包,使用命令:#tcpdumpiphost210.27.48.1and!210.27.48.2(4)如果想要获取主机210.27.48.1接收或发出的telnet包,使用如下命令:#tcpdumptcpport23host210.27.48.1(5)日常用例:tcpdump-ibond0des42.18.187.61andport34592–s2000–wabc.cap抓取从bond0网卡上发往目的地址42.18.187.61的34592端口的包,允许单个包最大字节为2000,并写入abc.cap的抓包文档中tcpdump-ieth2udpandsrc10.119.255.53–c10000–wabc.cap–v抓取从eth2口接收到的从10.119.255.53发来的udp包,数量为10000个,写入abc.cap的抓包文档中,且实时显示抓包数量。
本文标题:抓包工具介绍20111015
链接地址:https://www.777doc.com/doc-2369985 .html