深入解读防火墙-解读防火墙记录(7)

发表于:2007-06-23来源:作者:点击数: 标签:
解读防火墙记录 TCP和UDP能承载数据,但ICMP仅包含控制信息。因此,ICMP信息不能真正用于入侵其它机器...... 二.ICMP TCP和UDP能承载数据,但ICMP仅包含控制信息。因此,ICMP信息不能真正用于入侵其它机器。Hacker们使用ICMP通常是为了扫描 网络 ,发动DoS

   
  解读防火墙记录
    TCP和UDP能承载数据,但ICMP仅包含控制信息。因此,ICMP信息不能真正用于入侵其它机器......

  二.ICMP

  TCP和UDP能承载数据,但ICMP仅包含控制信息。因此,ICMP信息不能真正用于入侵其它机器。Hacker们使用ICMP通常是为了扫描网络,发动DoS攻击,重定向网络交通。(这个观点似乎不正确,可参考shotgun关于木马的文章,译者注)

  一些防火墙将ICMP类型错误标记成端口。要记住,ICMP不象TCP或UDP有端口,但它确实含有两个域:类型(type)和代码(code)。而且这些域的作用和端口也完全不同,也许正因为有两个域所以防火墙常错误地标记了他们。更多关于ICMP的知识请参考Infosec Lexicon entry on ICMP。
   关于ICMP类型/代码的含义的官方说明请参阅http://www.isi.edu/in-notes/iana/assignments/icmp-parameters。该文献描述官方含义,而本文描述Hacker的企图,详见下文。

  类型 代码 名称 含义
   0 * Echo replay 对ping的回应
   3 * Destination Unreachable 主机或路由器返回信息:一些包未达到目的地
   0 Net Unreachable 路由器配置错误或错误指定IP地址
   1 Host Unreachable 最后一个路由器无法与主机进行ARP通讯
   3 Port unreachable 服务器告诉客户端其试图联系的端口无进程侦听
   4 Fragmentation Needed but DF set 重要:如果你在防火墙丢弃记录中发现这些包,你应该让他们通过否则你的客户端将发现TCP连接莫名其妙地断开
   4 * Source Quench Inte.net阻塞
   5 * Redirect 有人试图重定向你的默认路由器,可能Hacker试图对你进行“man-in-middle”的攻击,使你的机器通过他们的机器路由。
   8 * Echo Request ping
   9 * Router Advertisement hacker可能通过重定向你的默认的路由器DoS攻击你的Win9x 或Solaris。邻近的Hacker也可以发动man-in-the-middle的攻击
   10 * Time Exceeded In Transit 因为超时包未达到目的地
   0 TTL Exceeded 因为路由循环或由于运行traceroute,路由器将包丢弃
   1 Fragment reassembly timeout 由于没有收到所有片断,主机将包丢弃
   11 * Parameter Problem 发生某种不正常,可能遇到了攻击

  (一) type=0 (Echo reply)

  发送者在回应由你的地址发送的ping,可能是由于以下原因:

  有人在ping那个人:防火墙后面有人在ping目标。

  自动ping:许多程序为了不同目的使用ping,如测试联系对象是否在线,或测定反应时间。很可能是使用了类似VitalSign‘s Net.Medic的软件,它会发送不同大小的ping包以确定连接速度。

  诱骗ping扫描:有人在利用你的IP地址进行ping扫描,所以你看到回应。

  转变通讯信道:很多网络阻挡进入的ping(type=8),但是允许ping回应(type=0)。因此,Hacker已经开始利用ping回应穿透防火墙。例如,针对internet站点的DdoS攻击,其命令可能被嵌入ping回应中,然后洪水般的回应将发向这些站点而其它Internet连接将被忽略。

  (二) Type=3 (Destination Unreachable)

  在无法到达的包中含有的代码(code)很重要记住这可以用于击败“SYN洪水攻击”。即如果正在和你通讯的主机受到“SYN洪水攻击”,只要你禁止ping(type=3)进入,你就无法连接该主机。

  有些情况下,你会收到来自你从未听说的主机的ping(type=3)包,这通常意味着“诱骗扫描”。攻击者使用很多源地址向目标发送一个伪造的包,其中有一个是真正的地址。Hacker的理论是:受害者不会费力从许多假地址中搜寻真正的地址。

  解决这个问题的最好办法是:检查你看到的模式是否与“诱骗扫描”一致。比如,在ICMP包中的TCP或UDP头部分寻找交互的端口。

  1) Type = 3, Code = 0 (Destination Net Unreachable)

  无路由器或主机:即一个路由器对主机或客户说,:“我根本不知道在网络中如何路由!包括你正连接的主机”。这意味着不是客户选错了IP地址就是某处的路由表配置错误。记住,当你把自己UNIX机器上的路由表搞乱后你就会看到“无路由器或主机”的信息。这常发生在配置点对点连接的时候。

  2) Type = 3, Code = 3 (Destination Port Unreachable)

  这是当客户端试图连击一个并不存在的UDP端口时服务器发送的包。例如,如果你向161端口发送SNMP包,但机器并不支持SNMP服务,你就会收到ICMP Destination Port Unreachable包。

  解码的方案

  解决这个问题的第一件事是:检查包中的端口。你可能需要一个嗅探器,因为防火墙通常不会记录这种信息。这种方法基于ICMP原始包头包含IP和UDP头。以下是复制的一个ICMP unreachable包:

  00 00 BA 5E BA 11 00 60 97 07 C0 FF 08 00 45 00
   00 38 6F DF 00 00 80 01 B4 12 0A 00 01 0B 0A 00
   01 C9 03 03 C2 D2 00 00 00 00 45 00 00 47 07 F0
   00 00 80 11 1B E3 0A 00 01 C9 0A 00 01 0B 08 A7
   79 19 00 33 B8 36

  其中字节03 03是ICMP的类型和代码。最后8个字节是原始UDP头,解码如下:

  08A7 UDP源端口 port=2215,可能是临时分配的,并不是很重要。
   7919 UDP目标端口 port=31001,很重要,可能原来用户想连接31001端口的服务。
   0033 UDP长度 length=51,这是原始UDP数据的长度,可能很重要。
   B836 UDP校验和 checksum=0xB836,可能不重要。

  你为什么会看到这些?

  “诱骗UDP扫描”:有人在扫描向你发送ICMP的机器。他们伪造源地址,其中之一是你的IP地址。他们实际上伪造了许多不同的源地址使受害者无法确定谁是攻击者。如果你在短时间内收到大量来自同一地址的这种包,很有可能是上述情况。检查UDP源端口,它总在变化的话,很可能是Scenario。

原文转自:http://www.ltesting.net