i. 术语
ACL
访问控制列表。一组强制实施的安全策略。在本文中的访问控制列表专用于网络策略。
路由器/网关
指设置转发IP数据流的多网络接口主机。可能有或可能没有数据包过滤ACL来阻止某些网络通信。
入站通信
用于描述来自网络外部、目标为网络内部的网络通信。
出站通信流
用于描述来自网络内部、目标为网络外部的网络通信。
防火墙
指设置转发IP数据流、多网络接口、且使用了数据包过滤ACL来处理网络通信的主机。
ii. 例子注释
在本文中举了几个traceroute的输出例子。聪明的读者会发现其中的IP地址是在RFC 1918 [1]中列出的不可路由(non-routable)内部网络地址。为了避免不必要的麻烦,本文将在实际测试中使用的IP地址用这类内部网络地址替换了。
--------------------------------------------------------------------------------
I. 简介
本文将介绍一种名为”Firewalking”的技术。这种技术能用于获取被防火墙保护的远端网络的资料。本文的主旨是说明这种技术给网络带来的风险。本文面向的对象是熟悉网络结构体系和TCP/IP数据包结构的高级读者。
网管论坛bbs_bitsCN_com
Firewalking使用类似于路由跟踪(traceroute-like)的IP数据包分析方法,来测定一个特殊的数据包是否能够从攻击者的主机传送到位于数据包过滤设备后的目标主机。这种技术能够用于探测网关上打开(‘open’)或允许通过(‘pass through’)的端口。更进一步地,它能够测定带有各种控制信息的数据包是否能通过给定网关。另外,通过这种技术,一个攻击者能够探测位于数据包过滤设备后的路由器。要理解这种技术的工作原理,首先需要明白路由跟踪(traceroute)是如何工作的。本文也提供关于路由跟踪(traceroute)的简介。
II. 路由跟踪(Traceroute)
路由跟踪(Traceroute) [2] 是一个网络调试工具,用于分析或找出到达特定目标主机的路由中的所有主机。Traceroute的基本工作原理是发送UDP或ICMP echo数据包到目标主机,同时在每轮(缺省是三个数据包)成功的探测后将IP包头中的TTL(Time To Live,生存期)域递增1。如果路由跟踪使用UDP数据包,则目标端口在每个数据包中都递增1。
IP数据包头的TTL域用于限制数据包在网络中传输的生存期,其值在每台路由器转发数据包前减1。如果TTL为0或更小,则路由器会向源主机回送一个ICMP错误消息(time to live exceeded in transit)数据包。这样源主机就能够知道数据包在哪台路由器上过期。通过将TTL从开始时设置为1,且依次递增1,并监视ICMP响应信息来获得主机间的所有路由器(这里假设数据包均未被过滤或丢失)。为了确保能够从最终的目标主机获得正确的响应(ICMP port unreachable或ICMP echo reply),traceroute或者使用极少被其它程序使用的高端UDP端口,或者使用ping数据包。
网管u家u.bitsCN.com
III. 路由信息
在明白了traceroute(路由跟踪)的基本工作原理后,现在来研究如何利用它来获取特定网络的信息。本节将列举使用路由跟踪技术来侦测网络的两种不同的方法。注意,其中的例子是特别“定制”的。;-)
· 使用不同协议
第一种情况假定网络被一台防火墙保护着,防火墙的规则阻止除ping和ping响应(ICMP类型8和0)外所有的入站通信。我们使用普通的traceroute程序来探测位于过滤器后的主机。图1使用了UDP数据包,而图二使用了ICMP数据包。注意到在第二种探测下我们能够探测到位于防火墙后的主机。
backend:~>traceroute 10.0.0.10
traceroute to 10.0.0.10 (10.0.0.10), 30 hops max, 40 byte packets
1 10.0.0.1 (10.0.0.1) 0.540 ms 0.394 ms 0.397 ms
2 10.0.0.2 (10.0.0.2) 2.455 ms 2.479 ms 2.512 ms
3 10.0.0.3 (10.0.0.3) 4.812 ms 4.780 ms 4.747 ms
4 10.0.0.4 (10.0.0.4) 5.010 ms 4.903 ms 4.980 ms
5 10.0.0.5 (10.0.0.5) 5.520 ms 5.809 ms 6.061 ms
6 10.0.0.6 (10.0.0.6) 9.584 ms 21.754 ms 20.530 ms
7 10.0.0.7 (10.0.0.7) 89.889 ms 79.719 ms 85.918 ms
中国网管联盟bitsCN.com 8 10.0.0.8 (10.0.0.8) 92.605 ms 80.361 ms 94.336 ms
9 * * *
10 * * *
图 一
backend:~>traceroute –I 10.0.0.10
traceroute to 10.0.0.10 (10.0.0.10), 30 hops max, 40 byte packets
1 10.0.0.1 (10.0.0.1) 0.540 ms 0.394 ms 0.397 ms
2 10.0.0.2 (10.0.0.2) 2.455 ms 2.479 ms 2.512 ms
3 10.0.0.3 (10.0.0.3) 4.812 ms 4.780 ms 4.747 ms
4 10.0.0.4 (10.0.0.4) 5.010 ms 4.903 ms 4.980 ms
5 10.0.0.5 (10.0.0.5) 5.520 ms 5.809 ms 6.061 ms
6 10.0.0.6 (10.0.0.6) 9.584 ms 21.754 ms 20.530 ms
7 10.0.0.7 (10.0.0.7) 89.889 ms 79.719 ms 85.918 ms
8 10.0.0.8 (10.0.0.8) 92.605 ms 80.361 ms 94.336 ms
9 10.0.0.9 (10.0.0.9) 94.127 ms 81.764 ms 96.476 ms
10 10.0.0.10 (10.0.0.10) 96.012 ms 98.224 ms 99.312 ms
图 二
· 初始端口种子
第二种情况假定一种更常见的被防火墙保护的网络例子,防火墙的规则是阻止除UDP端口53(DNS-域名服务)外的所有入站通信。
网管网www_bitscn_com
backend:~>traceroute 10.0.0.10
traceroute to 10.0.0.10 (10.0.0.10), 30 hops max, 40 byte packets
1 10.0.0.1 (10.0.0.1) 0.540 ms 0.394 ms 0.397 ms
2 10.0.0.2 (10.0.0.2) 2.455 ms 2.479 ms 2.512 ms
3 10.0.0.3 (10.0.0.3) 4.812 ms 4.780 ms 4.747 ms
4 10.0.0.4 (10.0.0.4) 5.010 ms 4.903 ms 4.980 ms
5 10.0.0.5 (10.0.0.5) 5.520 ms 5.809 ms 6.061 ms
6 10.0.0.6 (10.0.0.6) 9.584 ms 21.754 ms 20.530 ms
7 10.0.0.7 (10.0.0.7) 89.889 ms 79.719 ms 85.918 ms
8 10.0.0.8 (10.0.0.8) 92.605 ms 80.361 ms 94.336 ms
9 * * *
10 * * *
图 三