------------------------------------------------本文章只解释抓包工具的捕获器和过滤器的说明,以及简单使用,应付日常而已----------------------------------------------------------------

为什么要抓包?何为抓包?

抓包(packet capture)就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全。抓包也经常被用来进行数据截取等。为什么要抓包?因为在处理 IP网络的故障时,经常使用以太网抓包工具来查看和抓取 IP网络上某些 端口或某些网段的数据包,并对这些数据包进行分析,定位问题。

一:WireShark工具:

  Wireshark是一个非常好用的抓包工具,当我们遇到一些和网络相关的问题时,可以通过这个工具进行分析,不过要说明的是,这只是一个工具,用法是非常灵活的。

  1、过滤器的区别

    捕捉过滤器(CaptureFilters):你要抓什么包。需要在开始捕捉前设置。

显示过滤器(DisplayFilters):抓完包之后你要过滤掉不需要的包,查看自己想要的包。

  2、捕捉过滤器的语法:

    语法:  Protocal | Direction | Host(s) | Value | Logical Operations | Other expression

    例子:     tcp    dst    1.1.1.1  80       and         tcp dst 2.2.2.2

  语法说明:

  Protocal(协议):可能的值: ether, fddi, ip, arp, rarp, decnet, lat, sca, moprc, mopdl, tcp and udp. 如果没有特别指明是什么协议,则默认使用所有支持的协议。

  Direction(方向):可能的值: src, dst, src and dst, src or dst。如果没有特别指明来源或目的地,则默认使用 “src or dst” 作为关键字。例如,”host 10.2.2.2″与”src or dst host 10.2.2.2″是一样的。

  Host(s)(主机):可能的值: net, port, host, portrange,如果没有指定此值,则默认使用”host”关键字。例如,”src 10.1.1.1″与”src host 10.1.1.1″相同。

  Value(值):也就是Host(s)里的值。

  Logical Operations(逻辑运算):可能的值:not(!), and(&&), or(||),否(“not”)具有最高的优先级。或(“or”)和与(“and”)具有相同的优先级,运算时从左至右进行。

          例如, “not tcp port 3128 and tcp port 23″与”(not tcp port 3128) and tcp port 23″相同。 “not tcp port 3128 and tcp port 23″与”not (tcp port 3128 and tcp port 23)”不同。

  Other expression(其他表达式):配合Logical Operations 在加一些上面语法中的表达式。

例子:  
tcp dst port 3128  //捕捉目的TCP端口为3128的封包。

ip src host 10.1.1.1  //捕捉来源IP地址为10.1.1.1的封包。

host 10.1.2.3  //捕捉目的或来源IP地址为10.1.2.3的封包。

ether host e0-05-c5-44-b1-3c //捕捉目的或来源MAC地址为e0-05-c5-44-b1-3c的封包。如果你想抓本机与所有外网通讯的数据包时,可以将这里的mac地址换成路由的mac地址即可。

src portrange 2000-2500  //捕捉来源为UDP或TCP,并且端口号在2000至2500范围内的封包。

not imcp  //捕捉除了icmp以外的所有封包。(icmp通常被ping工具使用)

src host 10.7.2.12 and not dst net 10.200.0.0/16 //捕捉来源IP地址为10.7.2.12,但目的地不是10.200.0.0/16的封包。

(src host 10.4.1.12 or src net 10.6.0.0/16) and tcp dst portrange 200-10000 and dst net 10.0.0.0/8  //捕捉来源IP为10.4.1.12或者来源网络为10.6.0.0/16,目的地TCP端口号在200至10000之间,并且目的位于网络 10.0.0.0/8内的所有封包。

src net 192.168.0.0/24  或  src net 192.168.0.0 mask 255.255.255.0  //捕捉源地址为192.168.0.0网络内的所有封包。

     3、显示过滤器的语法:

      语法:Protocol.String1.String2 | Comparison Operator | Value | Logical Operations | Other expression

      例子: ftp. passive. ip == 10.2.3.4 xor icmp.type

    语法说明:

     Protocol(协议):您可以使用大量位于OSI模型第2至7层的协议。点击"Expression..."按钮后,您可以看到它们。如:IP,TCP,DNS,SSH、

    String(子协议):对各种协议以及它们子类的说明。String1,String2(可选项)

    Comparison Operator(比较操作):大于> ,小于<

    Logical Operations(逻辑运算):not(!), and(&&), or(||)。

    Other expression(其他表达式):配合Logical Operations 在加一些上面语法中的表达式。

  

例子: 
snmp || dns || icmp //显示SNMP或DNS或ICMP封包。

ip.addr == 10.1.1.1  //显示来源或目的IP地址为10.1.1.1的封包。

ip.src != 10.1.2.3 or ip.dst != 10.4.5.6  //显示来源不为10.1.2.3或者目的不为10.4.5.6的封包。 换句话说,显示来源IP除了10.1.2.3之外或目的IP除了10.4.5.6之外的任意IP的封包。

ip.src != 10.1.2.3 and ip.dst != 10.4.5.6  //显示来源不为10.1.2.3并且目的IP不为10.4.5.6的封包。换句话说,显示的封包将会为: 来源IP:除了10.1.2.3以外任意;同时须满足,目的IP:除了10.4.5.6以外任意封包。

tcp.port == 25  //显示来源或目的TCP端口号为25的封包。  tcp.dstport == 25  //显示目的TCP端口号为25的封包。  tcp.flags  //显示包含TCP标志的封包。

tcp.flags.syn == 0×02  //显示包含TCP SYN标志的封包。  如果过滤器的语法是正确的,表达式的背景呈绿色。如果呈红色,说明表达式有误。

二、TCPDUMP命令: 

  tcpdump 是一个运行在命令行下的嗅探工具。它允许用户拦截和显示发送或收到过网络连接到该计算机的TCP/IP和其他数据包。

   tcpdump采用命令行方式,它的命令格式为:   

      tcpdump [-aAdDefhIJKlLnNOpqRStuUvxX] [ -B size ] [ -c count ] [ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ] [ -i interface ] [ -j tstamptype ] [ -M secret ] [ -Q|-P in|out|inout ] [ -r file ]

            [ -s snaplen ] [ -T type ] [ -w file ] [ -W filecount ] [ -y datalinktype ] [ -z command ] [ -Z user ] [ expression ]

1. tcpdump的选项介绍   

  -a 将网络地址和广播地址转变成名字;
  -d 将匹配信息包的代码以人们能够理解的汇编格式给出;
  -dd 将匹配信息包的代码以c语言程序段的格式给出;
  -ddd 将匹配信息包的代码以十进制的形式给出;
  -e 在输出行打印出数据链路层的头部信息;
  -f 将外部的Internet地址以数字的形式打印出来;
  -l 使标准输出变为缓冲行形式;
  -n 不把网络地址转换成名字;
  -t 在输出的每一行不打印时间戳;
  -v 输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息;
  -vv 输出详细的报文信息;
  -c 在收到指定的包的数目后,tcpdump就会停止;
  -F 从指定的文件中读取表达式,忽略其它的表达式;
  -i 指定监听的网络接口;
  -r 从指定的文件中读取包(这些包一般通过-w选项产生);
  -w 直接将包写入文件中,并不分析和打印出来;
  -T 将监听到的包直接解释为指定的类型的报文,常见的类型有rpc (远程过程调用)和snmp(简单网络管理协议;)

 

运维之网络安全抓包—— WireShark 和 tcpdump的更多相关文章

  1. 网络抓包wireshark(转)

    转自 网络抓包wireshark   抓包应该是每个技术人员掌握的基础知识,无论是技术支持运维人员或者是研发,多少都会遇到要抓包的情况,用过的抓包工具有fiddle.wireshark,作为一个不是经 ...

  2. 网络抓包wireshark

    抓包应该是每个技术人员掌握的基础知识,无论是技术支持运维人员或者是研发,多少都会遇到要抓包的情况,用过的抓包工具有fiddle.wireshark,作为一个不是经常要抓包的人员,学会用Wireshar ...

  3. 网络抓包wireshark(转)

    下载地址:https://www.wireshark.org/download/win64/   抓包应该是每个技术人员掌握的基础知识,无论是技术支持运维人员或者是研发,多少都会遇到要抓包的情况,用过 ...

  4. 网络抓包--Wireshark

    Wireshark 是一款非常棒的Unix和Windows上的开源网络协议分析器.它可以实时检测网络通讯数据,也可以检测其抓取的网络通讯数据快照文件.可以通过图形界面浏览这些数据,可以查看网络通讯数据 ...

  5. 笔记-网络-抓包-wireshark

    笔记-网络-抓包-wireshark 1.      开始 环境:win8笔记本,无线网 1.1.    无线网卡设置 因为需抓捕无线网卡上的数据包,需要进行一项设置,如捕获有线网卡,无需设置. 打开 ...

  6. 运维工程师必会工具(Nmap和TCPdump)

    1.NMap工具 主要功能:探测主机是否在线.扫描主机开放端口和嗅探网络服务,用于网络探测和安全扫描. NMap支持很多扫描技术,例如:UDP.TCPconnect().TCPSYN(半开扫描).ft ...

  7. Android常用抓包工具之TcpDump

    ➠更多技术干货请戳:听云博客 做为一个测试人员,工作中经常会用到数据抓包工具来进行数据分析和验证,下面就简单介绍一下工作中常用的抓包工具. TcpDump抓包 Tcpdump是一个用于截取网络分组,并 ...

  8. Linux抓包工具:tcpdump

    tcpdump 是一个命令行实用工具,允许你抓取和分析经过系统的流量数据包.它通常被用作于网络故障分析工具以及安全工具. tcpdump 是一款强大的工具,支持多种选项和过滤规则,适用场景十分广泛.由 ...

  9. 抓包工具:tcpdump抓包命令详解

    抓包工具:tcpdump抓包命令详解 简介: tcpdump全称:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以 ...

随机推荐

  1. xamarin开发UWP元素的初始化设置顺序

    在开发xamarin的UWP平台不可避免的遇到一下坑,现记录下来,希望对后面踩坑有帮助. 一.listview的分组问题:当我们使用listview的IsGroupingEnabled=true时,如 ...

  2. SqlHelper中IN集合场景下的参数处理

    我手头有个古老的项目,持久层用的是古老的ADO.net.前两天去昆明旅游,其中的一个景点是云南民族村,通过导游介绍知道了一个古老的民族——基诺族,“基”在这个族内代表舅舅,“基诺”意为“跟在舅舅后边” ...

  3. linux tree 命令

    使用cmder确实是方便了很多,想看命令帮助信息: $ help tree 以图形显示驱动器或路径的文件夹结构. TREE [drive:][path] [/F] [/A] /F 显示每个文件夹中文件 ...

  4. 挑子学习笔记:对数似然距离(Log-Likelihood Distance)

    转载请标明出处:http://www.cnblogs.com/tiaozistudy/p/log-likelihood_distance.html 本文是“挑子”在学习对数似然距离过程中的笔记摘录,文 ...

  5. 【项目记录】-液化气配送app android版

    15年底参与过甲方呼叫中心平台开发.液化气配送app android版要求1个月开发完成.开发此项目以前我只有过一周android的开发经验.(与甲方签署过保密协议,遵循职业道德有些敏感信息不能写.) ...

  6. ORA-01034:ORACLE not available问题的解决方法

    同时在自己电脑上装了oracle客户端和服务器,上次还能用呢,这次突然用不了. [oracle@R39i oracle]$ sqlplus scott/tiger SQL*Plus: Release ...

  7. css随笔记

    使用伪类写边框部分三角 右上角三角形 border-top:6px solid #c1ddf7 border-left:6px solid transparent 右下角三角形 border-bott ...

  8. 深入理解脚本化CSS系列第二篇——查询计算样式

    × 目录 [1]getComputedStyle [2]注意事项 [3]currentStyle[4]IE 前面的话 元素的渲染结果是多个CSS样式博弈后的最终结果,这也是CSS中的C(cascade ...

  9. react入门(3)

    在第一篇文章里我们介绍了jsx.组件.css写法  点击查看react入门(1) 第二篇文章里我们介绍了事件.this.props.children.props....other.map循环  点击查 ...

  10. C# 一段绘图代码 在form_load事件不能显示图

    今天无意将一段绘图代码 写在form_load事件了,结果不能显示绘图.(代码:Graphics g = this.CreateGraphics();Pen pen = new Pen(Color.R ...