Firewalk使用类似traceroute的技术来分析IP包的响应,从而测定网关的访问控制列表和绘制网络图的工具。Firewalk使用类似于路由跟踪(traceroute-like)的IP数据包分析方法,来测定一个特殊的数据包是否能够从攻击者的主机传送到位于数据包过滤设备后的目标主机。这种技术能够用于探测网关上打开(‘open’)或允许通过(‘pass through’)的端口。更进一步地,它能够测定带有各种控制信息的数据包是否能通过给定网关。要理解这种技术的工作原理,首先理解路由跟踪(traceroute)是如何工作的。
下载链接:http://down.51cto.com/data/149274
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数据包。
traceroute(路由跟踪)工作在IP层(网络层),其上的任何传输协议(UDP、TCP和ICMP)均能被使用。Traceroute的这个特性使得其能利用任何位于IP层上层的协议。如果我们试图探测位于防火墙后的主机,而到达该防火墙的数据包被ACL所禁止,则该数据包会(在大多数情况下)被丢弃。通过这种探测,我们能够确定该路由上的最后一台网关(如防火墙)。如果我们再使用其它不同类型的traceroute探测,并得到正常响应时,说明了两点:
1)该防火墙允许这种类型的网络通信通过;
2)探测到位于该防火墙后的一台主机。如果以这些结果为依据,我们会知道防火墙的过滤规则是基于通信类型的。这就是firewalk的基本原理。
Firewalk是一种利用上述技术的网络审核工具,也就是说它是一个高级的traceroute工具。2002年10月,这个一流的工具在原来的基础上进行了重新开发。
Firewalk的探测工作包括了两个阶段:一个是网络探测阶段,另一个是扫描阶段。最初,为了得到正确的IP TTL值,我们需要得到到达网关的跳数(hop)。通过依次递增数据包的TTL值(即traceroute的工作原理),向目标主机连接发送这些探测包。一旦得到了到达网关的跳数,将进入下一阶段:实际的扫描。这些扫描是很简单的,Firewalk向目标主机发送带有超时设置的TCP或UDP数据包。如果能够在传输超时前监听到响应,则可以认为该端口是打开的,否则就是关闭的。
二、下载软件。
首先在软件的主页下载源代码。http://www.packetfactory.net/firewalk/dist/firewalk-1.0.tar.gz 和运行Firewalk所需的相关软件。
1. libnet :http://www.packetfactory.net/libnet/dist/libnet.tar.gz
2. Libpcap :http://www.tcpdump.org/release/libpcap-0.7.1.tar.gz
3. Libdnet :http://ftp.netsw.org/system/libs/network/libdnet/libdnet-1.4.tar.gz
三、安装软件。
1、 以根权限登陆Linux
#gunzip firewalk-1.0.tar.gz#tar vxf firewalk-1.0.tar#cd firewalk-1.0
2、然后将三个辅助软件拷贝到Firewalk文件夹中编译。这里以libdnet-1.4.tar.gz 为例其他两个软件: libnet.tar.、gzlibpcp-0.7.1.tar.gz安装过程相同。
#gunzip libdnet-1.4.tar.gz#tar vxf libdnet-1.4.tar#cd libdnet-1.4#./configure#make#make install
3、三个辅助软件安装后退回Firewalk目录:
#./configure#make#make install
最后需要说明的是一定要先安装编译三个辅助软件,最后编译Firewalk。
四、运行软件
Firewalk的格式是 Firewalk 5.0 [gateway ACL scanner]
总结:Firewalk是一个网关审计工具。目前版本的Firewalk只是处理了数据包头,而没有填入任何数据段内容。后续版本将能够模拟各种服务和数据通信,甚至随机化探测扫描的次序和次数,其隐蔽性和功能将更强。
2003年nmap-hackers邮件列表中发起了最佳安全工具的评选活动,1854个用户参与了此次活动,每个用户最多可以选择8个最佳工具,这次评选出的最佳安全工具为75个(结果在http://www.insecure.org/ )。这次评选出来的75个最佳安全工具在网络安全领域都是一些很有代表性的软件。Firwalk也在其中排名34位,是网管员应当掌握的安全工具。
参考文章:http://www.packetfactory.net/projects/firewalk/firewalk-final.pdf