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

抓包(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(简单网络管理协议;)

网络安全学习路线

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

同时每个成长路线对应的板块都有配套的视频提供:

需要网络安全学习路线和视频教程的可以在评论区留言哦~

最后
  • 如果你确实想自学的话,我可以把我自己整理收藏的这些教程分享给你,里面不仅有web安全,还有渗透测试等等内容,包含电子书、面试题、pdf文档、视频以及相关的课件笔记,我都已经学过了,都可以免费分享给大家!

给小伙伴们的意见是想清楚,自学网络安全没有捷径,相比而言系统的网络安全是最节省成本的方式,因为能够帮你节省大量的时间和精力成本。坚持住,既然已经走到这条路上,虽然前途看似困难重重,只要咬牙坚持,最终会收到你想要的效果。

黑客工具&SRC技术文档&PDF书籍&web安全等(可分享)

结语

网络安全产业就像一个江湖,各色人等聚集。相对于欧美国家基础扎实(懂加密、会防护、能挖洞、擅工程)的众多名门正派,我国的人才更多的属于旁门左道(很多白帽子可能会不服气),因此在未来的人才培养和建设上,需要调整结构,鼓励更多的人去做“正向”的、结合“业务”与“数据”、“自动化”的“体系、建设”,才能解人才之渴,真正的为社会全面互联网化提供安全保障。

特别声明:
此教程为纯技术分享!本教程的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本教程的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失

更多推荐