10.4. 攻破防火墙

未匹配的标注

攻破防火墙

当然,任何一种防护解决方案都不应单打独斗,而防火墙则是另一种网络的保护装置。防火墙是不同信任级别区域之间的屏障,它选择性地允许流量通过,同时丢弃其他所有信息。在其最简单的形式和实现中,防火墙是可信网络和不可信网络之间的屏障,实际上会复杂得多。

在建筑领域中,防火墙是指建筑物区域之间不可燃的屏障,可防止火灾在建筑物中蔓延。通常可在建筑物中的区域之间找到防火墙,如家庭住宅的车库与其余部分之间。

在技术业务中,防火墙执行的功能并没有太大的不同。与在建筑物中的防火墙非常类似,网络防火墙可以作为网络之间或计算机之间的屏障。防火墙阻止或限制主机之间的连接,限制系统间的相互暴露。没有防火墙,系统将处于易受攻击的状态,从而可能使攻击者对系统造成极大的伤害。

防火墙有两种主要形式:硬件和软件。本书将在稍后详细讨论这两种形式,但这两种形式均提供了某些设置过滤器以控制信息通过的能力,以阻止有害的流量破坏系统。

防火墙只不过是置于网络入口或必经之路上的一组规则和程序。与Internet的主要连接等网络关口可作为部署该屏障的理想位置,因为进出网络的流量必须流经此处。

可以将防火墙描述为用于分离所谓的“信任区域”。很显然,该描述意味着有两个个同的网络或区域,各区域有着不同的信任级别。在这种情况下,防火墙充当了网络之间的一条非常重要的分界线,为流量设置边界。

以下是一些需要注意的防火墙相关事项。

  • 防火墙的配置由公司自身安全策略所指派,并应及时更改,以适应公司的目标及持线的Internet威胁:
  • 防火墙通常配置为仅允许特定类型的流量流入,例如电子邮件协议、web协议或远程访问协议:
  • 在选定的情况下,防火墙还可以作为一种电话监听形式,用于识別拔号,接入网络的尝试;
  • 防火墙中配置了处理流量的规则。有用于进入网络和流出网络流量的规则,完全也存在同样的流量允许通过一个方向而不允许通过另一个方向的可能:
  • 对于通过防火墙的流量,防火墙还将充当路由器,帮助引导网络之间各类流量的路径选择;
  • 防火墙可以根据多种标准过滤流量,标准包括目的地、水源、协议、内容或应用程序;
  • 在带有恶意特征流量试图通过防火墙时,可以配置一个警报,提醒系统管理员或其他相关人员。

防火墙配置

并非所有防火墙的设置都相同,不同的设置取决于每种不同情况的需求及要求。以下每种方法都有一些特有功能,即使其他方法提供同类功能,方式也不尽相同。

堡垒主机(Bastion Host)

堡垒主机是指流量经由其进出网络之处。虽然有个花哨的名字,但堡垒主机实际上是一个计算机系统,其上承载的仅供执行其定义的角色——在这种情况下,其角色是保护资源免受攻击。该类型主机有两个接口:一个连接到不可信网络,而另一个连接到可信网络。

屏蔽式子网(Screened Subnet)

该类型的设置使用具有三个嵌入式接口的单一防火墙。三个接口分别连接到互联网、非军事区(DMZ)(稍后将介绍)和内部网本身。这种设置的显著优点是,每个区域都连接到其自己的接口,因此区域间彼此分离。这样做具有防止一个区域被攻陷后影响其他区域的优点。

多宿主防火墙(Multihomed Firewall)

多宿主防火墙是一种由承担实际物理防火墙功能的单体硬件构成的防火墙,但具有连接到多个网络的三个以上网络接口。

非军事区(DMZ)

DMZ是组织中公开和私有网络之间的一个级冲区。实际上,DMZ不仅用作缓沖区,而且还用于管理公司希望公开开放,但不允许其直接访问公司内部网络的服务。
DMZ通过应用防火墙构建,将防火墙的三个或以上的网络接口分配给特定角色,如内部可信网络、DMZ网络和外部不可信网络(即Internet)。

防火墙的类型

并非所有的防火墙都一样。你必须了解各种类型的防火墙,并理解各种防火墙的工作原理

包过滤防火墙(Packet Filtering Firewall)

这是最基本的防火墙类型,工作于OsI模型的第3层。在许至情况下,此类防火墙直接内置到路由器或类似设备中。这种路由器具有简单和速度快的优点,但缺点是它们不对经过的信息进行任何深入的分析。这种类型的防火墙比较数据包的源和目的地址、协议和端口之类属性。如果数据包属性与定义的规则不匹配,则最终会丢弃该数据包。

电路层防火墙/网关(Circuit-Level Firewall/ Gateway)

任何属于此类的防火墙都工作于会话层。此类防火墙能够检测系统之间的会话是否有效。该类型防火墙的缺点是它们通常不过滤单个数据包。

应用层防火墙(Application-Level Firewall)

该类别的防火墙严密检查流量并分析应用程序信息,以判定是否传输数据包。该类防火墙的一个常见子类是基于代理的解决方案,在请求传输数据包时要求验证。此外,内容缓存代理可通过缓存经常访问的信息,而不需要再次向服务器请求相同的1旧数据,优化性能。

有状态的多层检测防火墙(Stateful Muitilayer Inspection Firewalls)

此类防火墙通过组合其他三种防火墙的功能进行运作。它们在网络层过滤数据包,以确定会话数据包是否合法一这意味着如果在网络内部建立一个连接,该连接应从不受信任的网络返回应答——并且防火墙在应用层上评估数据包的内容。通过有状态的包过滤,克服了由于包过滤防火墙仅检查数据包的报头就允许数据包通过的缺陷。

了解目标

现在将使用之前学过的一项技能:端口扫描(有关详细信息,请参阅第6章“扫描和枚举”)。使用端口扫描,可以更清楚地了解防火墙,判断哪些端口是开放的,还有可能根据获取的信息确定防火墙的品牌和型号。一些供应商默认将某些端口开放,作为识别防火墙技术存在的一种方法,用于帮助审计,或者吓阻一名发现了开放端口的潜在攻击者。

当然,只有一个开放的端口是不够的,还必须使用第6章中提到的其他技能:banner抓取。如果发现防火墙开启了 异常端口,并对其进行研究(以确保它们不是其他不了解的工作),请尝试抓取一个banner并查看收到的信息。

防火墙上“蹈火”

知道防火墙品牌只是攻击的一部分,理解其配置是差别很大的另一回事。可以通过称为“蹈火”(firewalking)的过程获得这些规则的配置。“蹈火”是测试和识别特定防火墙规则和配置的过程。该过程使用一系列探测、扫描和数据包处理等步骤,逐一判断防火墙对其的反应。在完成该过程后,可以获得相当准确的防火墙配置。

要对防火墙执行 “蹈火,探测,需要以下三个组件。

瞄准主机(Targeting Host)

瞄淮主机是目标网络之外的系统,数据包从瞄准主机发送到目的主机,以获得有关目标网络的更多信息

网关主机

网关主机是日标网络上连按到ihntemet的系统,数据包到达目标网络的路径须通过该系统。

目标主机

目标主机是目标网络上数据包的目的系统。它通常是承载防火墙应用程序或角色的系统。
在完成了 “蹈火〞之后,如果幸运的话,应该可以得到相当多有关防火墙如何运作的信息
可以使用在第6章中讨论的工具之一,nmap,执行 “蹈火”行动。nmap恰好包括一个同样名为firewalk的脚本。那么该过程如何工作?
要确定给定网关上的规则,扫描仪将一个探针数据包发送给网关后面的测试点,并将探针的生存时间(TTL)设置为比网关高1。如果探针由网关转发,则可预期接收到由网关的下一跳路由器处发出的ICMP_ TIME EXCEEDED应答,或者如果测试点直接连接到网关时,则可以收到由度量自身发出的该应答;否则,探针将超时。
该脚本以等于目标距离的TTL开始发送数据包。如果探针发送超时,则将TTL值减1并重新发送。如果获得ICMP_ TIME EXCEEDED回复,则扫描结束。
脚本将探测所有使用no-reply过滤的TCP和UDP端口。对于UDP扫描而言,如果许多端口被靠近扫描仪的网关阻塞,则扫描过程可能相当慢。

firewalk脚本参数列表

firewalk.max-probed-ports 每种协议探测的最大端口数量。将该值设置为-1以扫描所有过滤的端口。

firewalk.max-retries 允许的最大重传次数。

firewalk.recv-timeout 数据包捕获循环的持续时间(以毫秒为单位)。

frewalk.max-active-probes 最大并行活跃探针数量。

firewalk.probe-timeout 探针有效期(以毫秒为单位)。

使用示例

nmap --script=firevalk --traceroute<主机>

nmap --script=firewalk --traceroute --script-firewalk.max-retries=1 <主机>

nmap --script-firewalk --traceroute --script-args-firewalk.probe- timeout=400ms <主机>

nmap --script-firewalk --traceroute --script-args=firewalk.max-probed-ports=7 <主机>

那么,在获得防火墙如何设置和有何防御措施的相关信息后,应如何攻击该设备?以下是几种可有助于对付该设备的攻击。

网络钓鱼

这种类型的攻击使用电子邮件,以使客户端在不知不觉中泄露密码,或诱使他们点击可下载和安装恶意软件的链接。下一点功夫,攻击者即可构建一个看似非常可信的电子邮件,可以诱使受害者点击下载某些内容的链接,或强行让受害者跳转到怂恿他们透露自己信息的网站。防火墙无法抵御网络钓鱼攻击,因为此类攻击通过电子邮件传播,并诱导用户自行泄露信息。

暴露的服务器

暴露在互联网上的web服务器、邮件服务器和应用程序服务器可能易于被黑客入侵和攻击。虽然实际上这似乎显而易见,但仍能见到这种将服务器部署在未受某种级别的防火墙或其他技术保护的位置上的情况时有发生。理想情况下,需要连接到Internet或面向internet的服务器应放置在夹在两个防火墙之间的边界网络中。

暴露的客户端
漫游客户端如笔记本电脑、 平板电脑和手机等,意味着一个可能有效用作网络入口点的机会目标。攻击者可以渗透保护薄弱的客户端设备,然后使用该设备渗透网络,从而实现直接攻击防火墙更好的攻击效果。考虑到普通用户可能不会采取最佳的防御手段或做法保护他们的系统,从而导致弱化的安全势态和可能被利用的潜在漏洞。如果这些客户没有得到充分的保护,或者用户自身判别能力较差,下载了恶意文件或受恶意代码侵蚀的软件,那么防火墙就几乎无防御性可言。

防火墙漏洞

防火墙本质上是软件,和所有的软件一样,它们也可能有缺陷和漏洞。多年来,软件中发现了许多看似简单的漏洞,它们导致了巨大的安全问题。利用蹈火技术、端口扫描和漏洞扫描,通过研究和努力,有可能发现一些缺陷。如果条件成熟,你也可能会发现可以利用的漏洞。

复杂性

无论硬件还是软件,防火墙都是一种复杂而精细的技术。需要大量的培训和经验,才能充分理解如何设置通常基于硬件或软件的防火墙,使之配置正确、运行良好。确保达到理想安全性的最佳方法是让与这些设备相关的操作人员获得经验和培训,并确保对系统执行审计,以保证防火墙配置得当。

网络安全周界(Network Security Perimeter)

某些网络可能具有从商业网络到其他网络的未受保护的路径。恶意或无知的用户可能会安装一个未授权接入点,使入侵者能够轻易地绕过防火墙,通过后门进入网络。

网络摆渡(Sneakernet)

携带CD、U盘甚至笔记本电脑,通过物理边界和网络安全边界(传递信息)可能会将工业网络暴露于恶意代码之上。这些攻击可能是由对企业不满或者是缺乏训练或遭受欺骗的内部人士所造成的。

拒绝服务

在某些情况下,可能能够使用一次强力的传统拒绝服务攻击压制防火墙。在这种情况下,有可能会击垮设备并导致其失效,从而允许流量通过。

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~