经过前面包车型地铁学习,tcpdump的用法相信应该都精通了,今日我们来学学对tcpdump输出内容的上学和询问。大家以率先个示范进行教学如下所示:

为了深化理解IP协议和一部分DoS攻击手段大家有必要看看以下内容,大概对您通晓这些定义有所帮忙.先来探望IP碎片是什么发生的呢。

转载:http://blog.csdn.net/zhangliangzi/article/details/52554439

转载:http://blog.csdn.net/zhangliangzi/article/details/52554439

IP协议包分析

[root@localhost ~]# tcpdump -i ens5f1 -nn -X 'port 22' -c 1
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens5f1, link-type EN10MB (Ethernet), capture size 262144 bytes
22:34:11.334916 IP 192.168.8.8.22 > 112.64.61.186.37035: Flags [P.], seq 3341229570:3341229782, ack 1999159071, win 31152, length 212
    0x0000:  4510 00fc 7e99 4000 4006 44a8 c0a8 0808  E...~.@.@.D.....
    0x0010:  7040 3dba 0016 90ab c727 1e02 7728 bf1f  p@=......'..w(..
    0x0020:  5018 79b0 7799 0000 0000 00b0 823d 4cf1  P.y.w........=L.
    0x0030:  1108 58fc 3686 2bd2 5220 fe37 85ab 74cc  ..X.6.+.R..7..t.
    0x0040:  bfb1 8831 7d1c 3b57 52ae aa91 28a2 67d8  ...1}.;WR...(.g.
    0x0050:  08fb a257 7fc8 7186 39dc d266 3d32 cce8  ...W..q.9..f=2..
    0x0060:  3eb7 130b a7d3 833b 59c9 bdf8 2141 6863  >......;Y...!Ahc
    0x0070:  7cae 25ff 459e c94a a635 7098 6925 db48  |.%.E..J.5p.i%.H
    0x0080:  a9b0 32ab 5393 737f cf8c f2ed b47a 7d8b  ..2.S.s......z}.
    0x0090:  346c 39df 3ecc d2b0 e0ad 5104 272d 6513  4l9.>.....Q.'-e.
    0x00a0:  4b8d 5ee6 6c7d 9477 e40b 8637 996a bb5a  K.^.l}.w...7.j.Z
    0x00b0:  471a 2ac4 3335 266d 0485 2e52 b2c2 f6e8  G.*.35&m...R....
    0x00c0:  0549 5ae0 9c7b ad45 da0a eef2 1ccb b2ac  .IZ..{.E........
    0x00d0:  a4a2 0a96 cc5f 238c 9570 0d15 984e 6f58  ....._#..p...NoX
    0x00e0:  d8ff 8034 1165 cf44 02e4 ed6b 631e 2548  ...4.e.D...kc.%H
    0x00f0:  56fd 4c8a 664c e5ee d845 2e50            V.L.fL...E.P
1 packet captured
1 packet received by filter
0 packets dropped by kernel

 



第一行

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens5f1, link-type EN10MB (Ethernet), capture size 262144 bytes

这边仅仅是提示如果想得到和查看更详细的指令能够品尝添加的参数。

      一.IP碎片是怎么着发生的

一、IP 首部

澳门金沙国际 1

IP 首部

  • ① 、第三个4字节(相当于首先行):

    • (1)版本号(Version),贰位;用于标识IP协议版本,IPv4是0100,IPv6是0110,也等于二进制的4和6。
    • (2)首省长度(Internet Header
      Length),4人;用于标识首部的尺寸,单位为4字节,所以首省长度最大值为:(2^4 –
      1) * 4 = 60字节,但一般只援引使用20字节的定位长度。
    • (3)服务类型(Type Of
      Service),陆人;用于标识IP包的优先级,但现在从不选用。
    • (4)总省长度(Total
      Length),拾几位;标识IP数据报的总院长度,最大为:2^16 -1 =
      65535字节。
  • 贰 、第③个四字节:

    • (1)标识(Identification),十陆人;用于标识IP数据报,假诺因为数量链路层帧数据段长度限制(也正是MTU,援助的最大传输单元),IP数据报须求开展分片发送,则各样分片的IP数据报标识都是一模一样的。
    • (2)标志(Flag),二人,但最近唯有4人有含义;最低位为MF,MF=1代表背后还有分片的数据报,MF=0代表当前数量报已是最终的数据报。次没有为DF,DF=1代表无法分片,DF=0代表能够分片。
    • (3)片偏移(Fragment
      Offset),1三个人;代表有个别分片在原本数据中的相对地方。
  • 叁 、第⑤个四字节:

    • (1)生存时间(TTL),伍位;此前代表IP数据报最大的活着时间,今后标识IP数据报能够透过的路由器数。
    • (2)协议(Protocol),五个人;代表上层传输层协议的档次,1意味ICMP,2意味I奇霉素P,6意味TCP,17表示UDP。
    • (3)校验和(Header
      Checksum),二十位;用于评释数据完整性,总括格局为,首先将官和校官验和地点零,然后将每15人二进制反码求和即为校验和,最终写入校验和职分。
  • ④ 、第多少个四字节:源IP地址

  • 伍 、第五个四字节:目标IP地址


一、IP 首部

澳门金沙国际 2

IP 首部

  • ① 、第一个4字节(也便是首先行):

    • (1)版本号(Version),三位;用于标识IP协议版本,IPv4是0100,IPv6是0110,也正是二进制的4和6。
    • (2)首省长度(Internet Header
      Length),四位;用于标识首部的长短,单位为4字节,所以首院长度最大值为:(2^4 –
      1) * 4 = 60字节,但貌似只援引应用20字节的定点长度。
    • UDP首部详解,IP碎片原理。(3)服务类型(Type Of
      Service),伍人;用于标识IP包的优先级,但今后从未使用。
    • (4)总司长度(Total
      Length),25位;标识IP数据报的总厅长度,最大为:2^16 -1 =
      65535字节。
  • 二 、第①个四字节:

    • (1)标识(Identification),十八个人;用于标识IP数据报,倘使因为数量链路层帧数据段长度限制(也正是MTU,帮衬的最大传输单元),IP数据报需求开始展览分片发送,则每种分片的IP数据报标识都以均等的。
    • (2)标志(Flag),四人,但眼下唯有三人有含义;最低位为MF,MF=1代表背后还有分片的数据报,MF=0代表当前数据报已是最终的数据报。次没有为DF,DF=1代表不能分片,DF=0代表可以分片。
    • (3)片偏移(Fragment
      Offset),1三人;代表有些分片在原来数据中的相对地点。
  • 叁 、第九个四字节:

    • (1)生存时间(TTL),8个人;在此从前代表IP数据报最大的活着时间,今后标识IP数据报能够经过的路由器数。
    • (2)协议(Protocol),陆位;代表上层传输层协议的花色,1意味着ICMP,2意味着I卡那霉素P,6意味着TCP,17意味着UDP。
    • (3)校验和(Header
      Checksum),拾伍人;用于注解数据完整性,计算方法为,首先将官和校官验和岗位零,然后将每23人二进制反码求和即为校验和,最终写入校验和职位。
  • 肆 、第七个四字节:源IP地址

  • ⑤ 、第6个四字节:指标IP地址


第二行

listening on ens5f1, link-type EN10MB (Ethernet), capture size 262144 bytes

tcpdump监听的互连网设施接口和链路层类型(以太网)要抓包的大大小小限制

     
链路层具有最大传输单元MTU这些特点,它界定了数据帧的最大尺寸,分裂的网络项目都有2个上限值。以太网的MTU是1500,你能够用
netstat -i
命令查看这几个值。假使IP层有数量包要传,而且数据包的尺寸当先了MTU,那么IP层就要对数码包实行分片(fragmentation)操作,使每一片的长度都低于或等于MTU。我们只要要传输多个UDP数据包,以太网的MTU为1500字节,一般IP首部为20字节,UDP首部为8字节,数据的净荷(payload)部分留住是1500-20-8=1472字节。假若数额部分超过1472字节,就会合世分片现象。 
      IP首部包蕴了分片和整合所需的新闻: 

二、TCP 首部

澳门金沙国际 3

TCP 首部

  • 1、第一个4字节:
    • (1)源端口,1三个人;发送数据的源进度端口
    • (2)目标端口,拾伍个人;接收数据的进度端口
  • 贰 、第③个4字节与第十个4字节
    • (1)序号,33人;代表当前TCP数据段第5个字节占全数字节流的相对地点;
    • (2)确认号,三拾陆位;代表接收端希望接受的数量序号,为上次接受到数据报的序号+1,当ACK标志位为1时才生效。
  • 3、第四个4字节:
    • (1)数据偏移,2个人;实际代表TCP首司长度,最大为60字节。
    • (2)6个标志位,每一个标志位一个人;
      SYN,为同步标志,用于数据同步;
      ACK,为确认序号,ACK=1时肯定号才有效;
      FIN,为了却序号,用于发送端建议断开连接;
      U奥迪Q7G,为殷切序号,UEvoqueG=1是等不及指针有效;
      PSH,提示接收方马上将数据交到给应用层,而不是伺机缓冲区满;
      奥德赛ST,重置连接。
    • (3)窗口值,十三人;标识接收方可接受的数量字节数。详解可参照:http://www.cnblogs.com/woaiyy/p/3554182.html
  • 4、第五个4字节
    • (1)校验和,十三个人;用于检验数据完整性。
    • (2)急迫指针,拾陆个人;只有当UMuranoG标识位为1时,急迫指针才有效。殷切指针的值与序号的相加值为迫切数据的终极二个字节位置。用于发送火急数据。

二、TCP 首部

澳门金沙国际 4

TCP 首部

  • 1、第一个4字节:
    • (1)源端口,1陆位;发送数据的源进度端口
    • (2)指标端口,十五个人;接收数据的过程端口
  • ② 、第四个4字节与第伍个4字节
    • (1)序号,叁14位;代表当前TCP数据段第②个字节占全部字节流的相对地方;
    • (2)确认号,33人;代表接收端希望接受的多寡序号,为上次接受到数据报的序号+1,当ACK标志位为1时才生效。
  • 3、第四个4字节:
    • (1)数据偏移,二位;实际代表TCP首省长度,最大为60字节。
    • (2)五个标志位,每一种标志位1人;
      SYN,为一起标志,用于数据同步;
      ACK,为确认序号,ACK=1时承认号才有效;
      FIN,为终结序号,用于发送端提议断开连接;
      UEvoqueG,为紧迫序号,U汉兰达G=1是70000火急指针有效;
      PSH,提示接收方立时将数据交到给应用层,而不是伺机缓冲区满;
      奇骏ST,重置连接。
    • (3)窗口值,十几位;标识接收方可接受的多寡字节数。详解可参照:http://www.cnblogs.com/woaiyy/p/3554182.html
  • 4、第五个4字节
    • (1)校验和,15位;用于检验数据完整性。
    • (2)紧迫指针,21人;只有当UTiguanG标识位为1时,热切指针才有效。火急指针的值与序号的相加值为迫切数据的最终二个字节地方。用于发送急切数据。

第三行

22:34:11.334916 IP 192.168.8.8.22 > 112.64.61.186.37035: Flags [P.], seq 3341229570:3341229782, ack 1999159071, win 31152, length 212
  • 22:34:11.334916 :抓包的时刻
  • IP : 抓取的数据包位于互连网层,即IP包
  • 192.168.8.8.22:抓取包的源IP地址和端口
  • > :数据的传输方向
  • 112.64.61.186.37035:抓取的包目标地IP和端口
  • Flags和后边内容:建立一遍握手音信

      | Identification |R|DF|MF| Fragment Offset | 
      |<-16>|<3>|<-13>|
      参数解释:
     
Identification:发送端发送的IP数据包标识字段都以贰个唯一值,该值在分片时被复制到各种片中。 
      Highlander:保留未用。
      DF:Dont Fragment,“不分片”位,如若将这一比特置1
,IP层将不对数据报开始展览分片。 
      MF:More
Fragment,“愈来愈多的分片”,除了最终一片外,其余各类组成数据报的片都要把该比特置为1。 
      Fragment
Offset:该片偏移原始数据包起来处的任务。偏移的字节数是该值乘以8。 
     
了然了分片,也剖析了IP头的一些新闻,让我们看看IP碎片是何等使用在网络攻击上的。

三、UDP 首部

澳门金沙国际 5

UDP 首部

  • 端口号:用来代表发送和收受进度。由于 I P层已经把I P数据报分配给T C
    P或U D P(依照I P首部中钻探字段值),由此T C P端口号由T C
    P来查阅,而 U D P端口号由UDP来查看。T C
    P端口号与UDP端口号是互相独立的。

  • 长度:UDP长度字段指的是UDP首部和UDP数据的字节长度。该字段的最小值为
    8字节(发送一份0字节的UDP数据报是 O K)。

  • 考查和:UDP检验和是1个端到端的检验和。它由发送端计算,然后由接收端验证。其目标是为着发现UDP首部和数据在发送端到接收端之间时有产生的任何改变。

三、UDP 首部

澳门金沙国际 6

UDP 首部

  • 端口号:用来表示发送和收受进程。由于 I P层已经把I P数据报分配给T C
    P或U D P(依照I P首部中协商字段值),由此T C P端口号由T C
    P来查看,而 U D P端口号由UDP来查阅。T C
    P端口号与UDP端口号是相互独立的。

  • 长度:UDP长度字段指的是UDP首部和UDP数据的字节长度。该字段的最小值为
    8字节(发送一份0字节的UDP数据报是 O K)。

  • 查验和:UDP检验和是3个端到端的检验和。它由发送端总计,然后由接收端验证。其目标是为了发现UDP首部和数码在殡葬端到接收端之间爆发的此外变动。

第4~16行

    0x0000:  4510 00fc 7e99 4000 4006 44a8 c0a8 0808  E...~.@.@.D.....
    0x0010:  7040 3dba 0016 90ab c727 1e02 7728 bf1f  p@=......'..w(..
    0x0020:  5018 79b0 7799 0000 0000 00b0 823d 4cf1  P.y.w........=L.
    0x0030:  1108 58fc 3686 2bd2 5220 fe37 85ab 74cc  ..X.6.+.R..7..t.
    0x0040:  bfb1 8831 7d1c 3b57 52ae aa91 28a2 67d8  ...1}.;WR...(.g.
    0x0050:  08fb a257 7fc8 7186 39dc d266 3d32 cce8  ...W..q.9..f=2..
    0x0060:  3eb7 130b a7d3 833b 59c9 bdf8 2141 6863  >......;Y...!Ahc
    0x0070:  7cae 25ff 459e c94a a635 7098 6925 db48  |.%.E..J.5p.i%.H
    0x0080:  a9b0 32ab 5393 737f cf8c f2ed b47a 7d8b  ..2.S.s......z}.
    0x0090:  346c 39df 3ecc d2b0 e0ad 5104 272d 6513  4l9.>.....Q.'-e.
    0x00a0:  4b8d 5ee6 6c7d 9477 e40b 8637 996a bb5a  K.^.l}.w...7.j.Z
    0x00b0:  471a 2ac4 3335 266d 0485 2e52 b2c2 f6e8  G.*.35&m...R....
    0x00c0:  0549 5ae0 9c7b ad45 da0a eef2 1ccb b2ac  .IZ..{.E........
    0x00d0:  a4a2 0a96 cc5f 238c 9570 0d15 984e 6f58  ....._#..p...NoX
    0x00e0:  d8ff 8034 1165 cf44 02e4 ed6b 631e 2548  ...4.e.D...kc.%H
    0x00f0:  56fd 4c8a 664c e5ee d845 2e50            V.L.fL...E.P

上述这一个是IP包的始末,左边是16进制,右边是ASCII部分。假诺想见见那些现实的多寡则必要查阅前一期中TCP数据报的格式。

  • 4510
    4:IP版本,此处代表为IPv4
    澳门金沙国际 ,5:代表首司长度,此处代表为20B
    10:代表协商的服务类型
  • 00fc
    意味着数据总市长度,00FC:代表总委员长度为252B
  • 7e99
    意味着标识,要是IP包的深浅超过了多少链路层的MTU限制,就须要对IP包实行拆分,此时即将用这么些域来表示什么包在拆分前是一模一样组的。此处的标识域为0x7e99
  • 4
    再持续回转眼睛,就是2位标志位,用来决定IP抓分后再度组建用,最低位为MF(More
    Fragment),中间位为DF(Don’t Fragment)不可能分片
  • MF=1:表示前面还有分片
  • MF=0:表示那早已是多少分片中的最终三个
  • DF=0:允许分片
  • 000:片偏移量,此次没有拆分包,所以全为0
  • 40:TTL(Time To
    Life),数据包在网络中的寿命。此处为0x40,进制为64,表示只要中间超越了那个路由节点,则认为指标不可达,中间路由器将拓展吐弃处理。
  • 06:指上一层协商项目,此处为0x06,能够观望协议编号为6,代表为TCP协议。
  • 44a8:表示IP首部校验和,此处为0x44a8
  • c0a8 0808:IP源地址,此处为192.168.8.8
  • 7040 3dba:IP目标地方:此处为:112.64.60.186
    到此,数据呼和浩特部已经全体分解到位。

 

UDP商业事务包分析

    我们先来抓取三个UDP包,如下所示:

[root@localhost ~]# tcpdump -i ens5f1 -nn -X 'udp' -c 1
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens5f1, link-type EN10MB (Ethernet), capture size 262144 bytes
18:18:12.499924 IP 192.168.8.101.137 > 192.168.8.255.137: NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST
    0x0000:  4500 004e 31ab 0000 8011 763f c0a8 0865  E..N1.....v?...e
    0x0010:  c0a8 08ff 0089 0089 003a 1277 ddc1 0110  .........:.w....
    0x0020:  0001 0000 0000 0000 2046 4b46 4545 4643  .........FKFEEFC
    0x0030:  4e44 4344 4144 4244 4744 4144 4944 4144  NDCDADBDGDADIDAD
    0x0040:  4245 4945 4645 4841 4100 0020 0001       BEIEFEHAA.....
1 packet captured
1 packet received by filter
0 packets dropped by kernel

相对于IP包来讲,UDP的包要不难很多,其首部总共就九个字节。而UDP位于传输层,自然后面也增多了IP包相关的头顶。

  • 0089:源端口为0x0089即:137
  • 0089:指标端口为0x0089即:137
  • 003a:UDP包的总厅长度,即58字节,去掉首部的8字节后,真正得以用来传输的唯有50字节。
  • 1277:UDP校验和。为0x1277

正文同步在微信订阅号上透露,如各位小伙伴们喜欢本人的稿子,也能够关心自个儿的微信订阅号:woaitest,或扫描上边包车型地铁二维码添加关心:
澳门金沙国际 7

      二. IP碎片攻击

     
IP首部有七个字节表示全体IP数据包的尺寸,所以IP数据包最长只可以为0xFFFF,便是65535字节。如果有意发送总长度超越65535
的IP碎片,一些老的系统基本在拍卖的时候就会见世难题,导致崩溃恐怕拒绝服务。其余,固然分片之间偏移量经过仔细组织,一些连串就不恐怕处理,导致死机。所以说,漏洞的导火线是出在整合算法上。上边大家种种解析部分有名的零碎攻击程序,来打听怎么人为创制IP碎片来抨击系统。

 

      1. 攻击方式之ping o death

      ping o
death是选拔ICMP协议的一种碎片攻击。攻击者发送贰个尺寸超越65535的Echo
Request数据包,目的主机在组成分片的时候会招致事先分配的65535字节缓冲区溢出,系统平日会崩溃或挂起。ping不正是发送ICMP
Echo
Request数据包的啊?让我们品尝攻击一下吗!不管IP和ICMP首县长度了,数据长度反便是不少,就65535呢,发送叁个包:

      # ping -c 1 -s 65535 192.168.0.1 
      Error: packet size 65535 is too large. Maximum is 65507 
      一般的话,Linux自带的ping是不允许大家做那几个坏事的。
     
65507是它总结好的:65535-20-8=65507。Win2K下的ping更抠门,数据只同意65500大小。所以你必须找其余的先后来发包,然则当前新本子的操作系统已经解决那一个毛病了,所以你如故继续往下阅读本文吧。

 

      2. 攻击情势之jolt2

     
jolt2.c是在3个死循环中不停的发送一个ICMP/UDP的IP碎片,能够使Windows系统的机械死锁。笔者测试了没打SP的Windows 3000,CPU利用率会应声回涨到百分百,鼠标不也许活动。

      大家用Snort分别抓取采取ICMP和UDP共同商议发送的数据包。 
      发送的ICMP包: 
      01/07-15:33:26.974096 192.168.0.9 -> 192.168.0.1 
      ICMP TTL:255 TOS:0x0 ID:1109 IpLen:20 DgmLen:29 
      Frag Offset: 0x1FFE Frag Size: 0x9 
      08 00 00 00 00 00 00 00 00 ……… 
      发送的UDP包: 
      01/10-14:21:00.298282 192.168.0.9 -> 192.168.0.1 
      UDP TTL:255 TOS:0x0 ID:1109 IpLen:20 DgmLen:29 
      Frag Offset: 0x1FFE Frag Size: 0x9 
      04 D3 04 D2 00 09 00 00 61 ……..a

     从地点的结果能够看来:

     分片标志位MF=0,表达是终极一个分片。
     偏移量为0x1FFE,总计重组后的长短为 (0x1FFE * 8) + 29 = 65549 >
65535,溢出。
     IP包的ID为1109,能够用作IDS检查和测试的五个特色。
     ICMP包:
     类型为8、代码为0,是Echo Request;
    
校验和为0x0000,程序尚未估测计算校验,所以确切的说那一个ICMP包是专断的。
     UDP包:
     指标端口由用户在指令参数中钦定;
     源端口是指标端口和1235展开OPRADO的结果;
     校验和为0x0000,和ICMP的一样,没有测算,非法的UDP。
     净荷部分唯有七个字符a。
    
jolt2.c应当能够伪造源IP地址,但是源程序中并不曾把用户准备伪装的IP地址赋值给src_addr,不明了小编是或不是故意的。
    
jolt2的震慑相当的大,通过不停的出殡这么些偏移量极大的数据包,不仅死锁未打补丁的Windows系统,同时也大大增加了网络流量。曾经有人使用jolt2模拟互联网流量,测试IDS在高负载流量下的攻击检查和测试频率,正是选取这么些特点。
     
     三. 如何堵住IP碎片攻击

     Windows系统请打上最新的ServicePack,最近的Linux内核已经不受影响。借使或然,在互联网边界上禁止碎片包通过,也许用iptables限制每秒通过碎片包的数据。借使防火墙有结合碎片的效果,请保管自己的算法没不经常,不然被DoS就会潜移默化总体互联网。Win2K系统中,自定义IP安全策略,设置“碎片检查”。

     在许多路由上也有” IP 碎片(Fragment)
攻击防御”的装置,互连网范围在150台左右,建议IP碎片值设置在:三千包/秒,在海蜘蛛路由上测试过,如果IP碎片值设置过小有点私服游戏网站打不开。

相关文章