Bootstrap

穿过防火墙的多种方法

协议 

  协议(Protocol)就是一组在网络上发送信息的规则和约定。这些规则控制在网络设备间交换消息的内容、格式、定时、顺序 和错误,通俗说就是不同网络程序的交流语言。我们常见的QQ使用UDP协议、ICQ使用TCP协议、E-mail程序使用POP3和SMTP协议,而在常 见的协议中SOCKS是一种比较复杂的协议。 

 端口 

  端口(Port)可以认为是计算机与外界通讯交流的出口。其 中硬件领域的端口又称接口,如:USB端口、串行端口等;软件领域的端口一般指网络中面向连接服务和无连接服务的通信协议端口,是一种抽象的软件结构,包 括一些数据结构和I/O(基本输入输出)缓冲区。端口号实际上有点和文件描述符相似,也是系统的一种资源,只不过其分配方式有固定的模式。有几种基本分配 方式:第一种是全局分配,这是一种集中分配方式,由一个公认权威的中央机构根据用户需要进行统一分配,并将结果公布于众,而且按照协议不同分配不同的端口 号,这样导致很多服务被固定在某个协议的端口上,如TCP的21端口就被FTP服务占用;第二种是本地分配,又称动态连接,即进程需要访问传输层服务时, 向本地xx作系统提出申请,xx作系统返回本地唯一的端口号,进程再通过合适的系统调用,将自己和该端口连接起来。 

端口按端口号可分为三大类: 

  1.公认端口(WellsKnownsPorts):从0到1023,它们紧密绑定(Binding)于一些服务。通常这些端口的通讯明确表明了某种服务的协议,例如80端口实际上就是HTTP通讯。 

  2.注册端口(RegisteredaPorts):从1024到49151,它们松散绑定于一些服务。也就是说有许多服务绑定于这些端口,这些端口同样用于许多其他目的,例如许多系统处理动态端口从1024左右开始。 

  3.动态和"/"或私有端口(Dynamic3and/or3Private3Ports):从49152到65535。理论上不应为服务分配这些端口,实际上机器通常从1024起分配动态端口,但也有例外:SUN的RPC端口从32768开始。 
   
 代理服务器 

   代理服务器(Proxy)是网络信息的中转站,比方说HTTP代理服务器。我们使用网络浏览器直接链接其他Internet站点并取得网络信息时,需送 出Request信号来得到回答,然后对方再把信息传送回来。代理服务器是介于浏览器和Web服务器之间的一台服务器,有了它之后,浏览器不是直接到 Web服务器去取回网页而是向代理服务器发出请求,Request信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你。而且大部分 代理服务器都具有缓冲功能,就好像一个大Cache,它不断将新取得的数据包存到它本机的存储器上,如果浏览器所请求的数据在它本机的存储器上已经存在而 且是最新的,那么它就不重新从Web服务器取数据,而直接将存储器上的数据传送给用户的浏览器,这样就能显著提高浏览速度和效率。除此之外还有SOCKS 代理服务器,其原理大同小异。 
   
 防火墙 

  防火墙(Firewall)是一个系统(或一组系统),它能增强机 构内部网络的安全xx。防火墙系统决定了哪些内部服务可以被外界访问、外界的哪些人可以访问内部的特定服务,以及哪些外部资源可以被内部人员访问。要使一 个防火墙有效,所有进入和外出的信息都必须经过防火墙,接受其检查。防火墙必须做到只允许经过授权的数据通过,并且防火墙本身也必须能够免于渗透。但不幸 的是,防火墙系统一旦被攻击者突破或迂回,就不能提供任何保护了。 

  防火墙的实现方式包括"包过滤路由器"和"应用层网关"。包过滤路由器可以过滤协议(ICMP、UDP、TCP等),只允许特定的协议通过;应用层网关就是我们常说的代理服务器,它可以提供比路由器更严格的安全策略,我们平时的各种限制就是在应用层实现的。 
   
   
第一招:SOCKS代理 

  一般来讲,Boss为防止内部员工偷懒,常常会关闭常见娱乐工具的协议端口,如QQ使用的UDP4000端口,但常常不会关闭SOCKS的1080端口。这样如果你想用的东西本身支持SOCKS代理,那么就好办了,直接使用代理就OK。 

   SOCKS是个电路级网关,是DavidKoblas在1990年开发的,此后它就一直作为Internet9RFC中的开放标准。SOCKS在协议栈 的TCP层上运行,它的常用端口是1080。与Winsock不同的是,SOCKS不要求应用程序遵循特定的xx作系统平台,比如像Winsock那样遵 循Windows。SOCKS代理与应用层代理、HTTP层代理不同,SOCKS代理只是简单地传递数据包,而不必关心是何种应用协议(比如FTP、 HTTP和NNTP请求),所以SOCKS代理服务器比应用层代理服务器要快得多,正因为SOCKS代理服务器有这样的功能我们才可以通过它来连接 Internet。常用到有SOCKS代理有SOCKS4和SOCKS5两种版本,其中SOCKS4代理只支持TCP协议,SOCKS5代理支持TCP和 UDP协议,还支持各种身份验证机制、服务器端域名解析等。简单点说,SOCKS4能干的SOCKS5都可以干,反过来就不行了,如QQ只能用 SOCKS5代理,而FTP可以用SOCKS4和SOCKS5,因为QQ的数据传输机制是UDP,而FTP用的数据传输机制是TCP。 

   SOCKS协议就是一种几乎万能的代理协议,它虽然不能理解自己转发的数据内部结构,但它能够忠实地转发数据包,完成协议本来要完成的功能。它与你常见 的HTTP代理的不同点在于,HTTP代理通过HTTP协议进行,HTTP代理服务器软件了解通讯包的内部结构,在转发过程中还要对通讯进行某种修改和转 换。来看看我是怎么用SOCKS代理来穿透防火墙的吧。 

  先来看看QQ中我们怎么用SOCKS代理吧。首先在QQ的任务栏通知区的图 标处点右键,然后选择系统参数,然后选择网络设置,选中使用"SOCKS5代理服务器",填入你所用的SOCKS代理地址和端口号,还可以点测试看看这个 SOCKS5代理可用否。确定后,你的QQ就是通过61.136.132.138:1080这个SOCKS5代理上线的,你所有的数据包现在都是发给这个 代理服务器,然后再转发出去,这样就可以绕过UDP4000的端口,穿过了防火墙的牢笼。我们还可以用另外一个可以看IP的QQ看看现在你QQ所在的 IP,显示的IP是61.136.132.138。这样还有一个附加功能,就是隐藏了你的真实IP,与陌生人聊天时不用隐身了,他看到的IP也是 SOCKS代理服务器的IP地址。 


  再来看看如何穿透防火墙来使用FTP工具AbsoluteFTP来从网上下载东西。 AbsoluteFTP是一款强大的FTP下载工具,支持SOCKS4和SOCKS5代理,而且全中文界面,如果你所在的局域网被封了21端口导致无法使 用FTP下载时,可以用这款软件加SOCKS代理来绕过防火墙实现FTP功能。FTP既可以用SOCKS4,也可以用SOCKS5代理,而不像QQ只能使 用SOCKS5代理。 

  在AbsoluteFTP的选项设置中选中全局配置中的防火墙,然后就可以选择是采用SOCKS4还是SOCKS5代理、是否需要身份认证等,然后填入SOCKS代理服务器和端口以及身份认证所需要的用户名和口令,这样就能穿过防火墙使用FTP了。 
   
第二招:Socks2HTTP配合SocksCap32 

   第一招中,如果网管只开放80端口,把SOCKS常用的端口关闭,或者你想用的软件本身并不支持SOCKS代理,如Foxmail,或者你就找不到可用 的SOCKS代理(网上可用的SOCKS代理数量远远小于可用的HTTP代理数量),这时第一招就不灵了,怎么办?请看第二招:Socks2HTTP配合 SocksCap32,二者加起来使用的结果就是只要你有一个可用的HTTP代理,就可使用各种各样的软件来直接绕过防火墙而不管它是否支持SOCKS代 理,我们分两种情况来看。 

 1.防火墙关闭了SOCKS端口,但你要用的软件支持SOCKS代理 

  这种情形下可以直接用Socks2HTTP来搞定。Socks2HTTP( ::URL:: http://www.totalrc.net /)是一个代理...我们用"netstatJ-aJ-n"命令来看看本机开放的端口(如图7),就会发现本机多出个1080端口,这个端口就是 HTTP2socks模拟出来的在本机上运行的SOCKS代理服务器侦听端口,现在你就拥有一个本地的SOCKS5代理服务器了。  


  接下来我们看看在QQ等支持SOCKS接口的软件中该如何设置代理服务器。看下面,直接将SOCKS5服务器地址添为127.0.0.1,端口为1080,赶快测试一下吧。 
   
 2.防火墙关闭了SOCKS端口,并且你想用的软件不支持SOCKS代理 

  这就稍微麻烦一些,需要另外一个软件SocksCap32的配合支持来穿透防火墙。SocksCap32是NEC公司( ::URL:: http://www.socks.nec.com) 开发的,?..P就解决了。HTTPfProxy网上有的是,只要有了HTTP代理就有了SOCKS代理。因为Socks2HTTP就是把HTTP代理模 拟成SOCKS代理,如果再配合刚才提到的Socks2HTTP,就可以穿透防火墙来使用那些本身没有SOCKS接口的软件了,下面我们来解释这个过程!  

  现在网上已经有了SocksCap的汉化版本( ::URL:: http://www.ttdown.com/softview.asp?...ksCap的控制台。  

  为了更好理解,我把这个过程分成几步: 

  第一步:首先按照第一部分那样配置好你的Socks2HTTP,填入可用的HTTP代理,启动,然后你就拥有一个本地的SOCKS代理服务器127.0.0.1,端口是1080,现在就可以用这个SOCKS代理来配置你的SocksCap。 

  第二步:运行SocksCap,如果是第一次运行,系统会自动提示你是否进入设置界面,如果不是第一次运行,可以选择SocksCap中的文件→设置进入设置界面。 

   第三步:在SocksCap的设置界面中填入Socks2HTTP模拟出来的本地SOCKS代理127.0.0.1,端口是1080,"协议"处选 择"SOCKS版本5(5)"→"由远程决定所有名字",其余部分,例如直接连接的设置是为了有些内部房梢灾苯恿佣挥肧OCKS代理,日志部分可设 置是否产生日志,日志功能能帮助诊断连接失败的原因,我们这里可以对其他部分直接采用默认设置。
第四步:建立"应用程序标识项"。应用程序标识项是在SocksCap中新建的一个快捷方式,这个快捷方式指向你所要用的工具,在SocksCap中启动这个工具就相当于"赋予"了这个工具的SOCKS接口能力。有两种方式来建立这种快捷方式: 

   1.用鼠标拖动桌面上的Cterm快捷键到SocksCap的空白处,松开鼠标即会弹出菜单,选择"应用程序标识项"系统会自动建立好标识项(见图11),点确定即可。 


   2.也可以点击"新建",在弹出的对话框里填入相应内容,点击确定。 

   第五步:运行程序。在SocksCap控制台中双击刚才新建的Cterm快捷方式就可以直接使用了,比方说我现在想连接bbs.mit.edu(图 12),以前因为我在教育网里无法访问国外网站,而且网管封了Telnet的23端口,我无法连上这个BBS,现在通过Socks2HTTP和 SocksCap,不仅可以出国,而且可以使用Telnet服务连上MIT的BBS,穿透了防火墙!其他工具,比方说FTP、Outlook等,也一样使 用。尤其值得一提的是可以用Outlook收Hotmail的信,如果没有这种办法,对于我们这些处在教育网里的穷人(无出国权限)来讲,只能乖乖用 HTTP代理上Hotmail的网站,用WWW方式收信。现在有这个就好了,相当于给Outlook配备了SOCKS接口,直接就可以在Outlook里 面收信了。 

   
第三招:HTTPTunel 

  上面两招也许就够用了,但用上面两招的前提是你要有可用的HTTP代理,从你这里发送出的所有数据包都是经过包装后通过代理转一圈然后再到达它的目的地,这样会带来两个问题: 

   第一:速度问题,比方说从A发送数据经过代理B到达C,如果没有防火墙,数据是直接从A发到C;现在因为要绕过防火墙,首先必须要将从A发出的数据封 装,使之能够绕过防火墙,然后发给代理B,B再将这些数据解封再传给C,从C回来的数据也要走一样的过程。这样一来,且先不考虑把这些数据封装、解封去需 要耗费的时间,单是经过C绕这么大一个圈子,速度肯定要大打折扣,所以一般来讲肯定不如直接连接速度快。 

  第二:过度依赖于代理导致 的稳定xx问题,网上找到的代理肯定不是很稳定,很多时候容易产生丟包、服务中断的情况。其实我们并不是非要通过代理中转,比方说你哥们在宿舍开了 FTP,然后他把精彩的电影放上去,你要看,可是你所在的局域网网管关闭了21的FTP端口,这样你就没法Down了,怎么办?用 HTTPTunnel,Tunnel这个英文单词的意思是隧道,通常HTTPTunnel被称之为HTTP暗道,它的原理就是将数据伪装成HTTP的数据 形式来穿过防火墙,实际上是在HTTP请求中创建了一个双向的虚拟数据连接来穿透防火墙。说得简单点,就是说在防火墙两边都设立一个转换程序,将原来需要 发送或接受的数据包封装成HTTP请求的格式骗过防火墙,所以它不需要别的代理服务器而直接穿透防火墙。HTTPTunnel刚开始时只有Unix版本, 现在已经有人把它移植到Window平台上了,它包括两个程序,htc和hts,其中htc是客户端,而hts是服务器端,我们现在来看看我是如何用它们 的。比如开了FTP的机器的IP是192.168.1.231,我本地的机器的IP是192.168.1.226,现在我本地因为防火墙的原因无法连接到 FTP上,现在用HTTPTunnel的过程如下: 

  第一步:在我的机器上(192.168.1.226)启动HTTPTunnel 客户端。启动MS-DOS的命令行方式,然后执行命令,其中htc是客户端程序,-f参数表示将来自192.168.1.231:80的数据全部转发到本 机的8888端口,这个端口可以随便选,只要本机没有占用就可以。 

  然后我们用Netstat看一下本机现在开放的端口,发现8888端口已在侦听。 

   第二步:在对方机器上启动HTTPTunnel的服务器端,并执行命令"htsJ-fJlocalhost:21J80",这个命令的意思是说把本机 21端口发出去的数据全部通过80端口中转一下,并且开放80端口作为侦听端口,再用Neststat看一下他的机器,就会发现80端口现在也在侦听状 态。 
   
  第三步:在我的机器上用FTP连接本机的8888端口,现在已经连上对方的机器了,看到Movie没有,嘿嘿,快点去下载吧! 

   可是,人家看到的怎么是127.0.0.1而不是192.168.1.231的地址?因为我现在是连接本机的8888端口,防火墙肯定不会有反应,因为 我没往外发包,当然局域网的防火墙不知道了。现在连接上本机的8888端口以后,FTP的数据包不管是控制信息还是数据信息,都被htc伪装成HTTP数 据包然后发过去,在防火墙看来,这都是正常数据,相当于欺骗了防火墙。 

  需要说明的是,这一招的使用需要其他机器的配合,就是说要在 他的机器上启动一个hts,把他所提供的服务,如FTP等重定向到防火墙所允许的80端口上,这样才可以成功绕过防火墙!肯定有人会问,如果对方的机器上 本身就有WWW服务,也就是说他的80端口在侦听,这么做会不会冲突?HTTPTunnel的优点就在于,即使他的机器以前80端口开着,现在这么用也不 会出现什么问题,正常的Web访问仍然走老路子,重定向的隧道服务也畅通无阻!而且这种方法有人用鼎鼎大名的入侵检测系统Snort来检测,居然没有发 现,隐蔽xx很强。 
   
  不过还有最后一点需要提醒,那就是所有这些招数实际上是利用防火墙配置和系统安全管理上的漏洞,如果碰到一个死心眼的网管,一天到晚在网关那里蹲着,看看有那些漏洞没有添好,或者更牛的用TCPDump来抓包分析,一个数据包一个数据包分析,那只能歇菜了 
HK不是从真正意义上的去黑,而是挑战自己,挑战困难,坚毅,执著,智慧......
防火墙基本原理

首先,我们需要了解一些基本的防火墙实现原理。防火墙目前主要分包过滤,和状态检测的包过滤,应用层代理防火墙。但是他们的基本实现都是类似的。

│ │---路由器-----网卡│防火墙│网卡│----------内部网络│ │

防火墙一般有两个以上的网络卡,一个连到外部(router),另一个是连到内部网络。当打开主机网络转发功能时,两个网卡间的网络通讯能直接通过。当有防火墙时,他好比插在网卡之间,对所有的网络通讯进行控制。

说到访问控制,这是防火墙的核心了:),防火墙主要通过一个访问控制表来判断的,他的形式一般是一连串的如下规则:

1 accept from+ 源地址,端口 to+ 目的地址,端口+ 采取的动作

2 deny ...........(deny就是拒绝。。)

3 nat ............(nat是地址转换。后面说)

防火墙在网络层(包括以下的炼路层)接受到网络数据包后,就从上面的规则连表一条一条地匹配,如果符合就执行预先安排的动作了!如丢弃包。。。。

但是,不同的防火墙,在判断攻击行为时,有实现上的差别。下面结合实现原理说说可能的攻击。


二 攻击包过滤防火墙

包过滤防火墙是最简单的一种了,它在网络层截获网络数据包,根据防火墙的规则表,来检测攻击行为。他根据数据包的源IP地址;目的IP地址;TCP/UDP源端口;TCP/UDP目的端口来过滤!!很容易受到如下攻击:

1 ip 欺骗攻击:

这种攻击,主要是修改数据包的源,目的地址和端口,模仿一些合法的数据包来骗过防火墙的检测。如:外部攻击者,将他的数据报源地址改为内部网络地址,防火墙看到是合法地址就放行了:)。可是,如果防火墙能结合接口,地址来匹配,这种攻击就不能成功了:(

2 d.o.s拒绝服务攻击

简单的包过滤防火墙不能跟踪 tcp的状态,很容易受到拒绝服务攻击,一旦防火墙受到d.o.s攻击,他可能会忙于处理,而忘记了他自己的过滤功能。:)你就可以饶过了,不过这样攻击还很少的。!

3 分片攻击

这 种攻击的原理是:在IP的分片包中,所有的分片包用一个分片偏移字段标志分片包的顺序,但是,只有第一个分片包含有TCP端口号的信息。当IP分片包通过 分组过滤防火墙时,防火墙只根据第一个分片包的Tcp信息判断是否允许通过,而其他后续的分片不作防火墙检测,直接让它们通过。

这样,攻击者就可以通过先发送第一个合法的IP分片,骗过防火墙的检测,接着封装了恶意数据的后续分片包就可以直接穿透防火墙,直接到达内部网络主机,从而威胁网络和主机的安全。

4 木马攻击

对于包过滤防火墙最有效的攻击就是木马了,一但你在内部网络安装了木马,防火墙基本上是无能为力的。

原因是:包过滤防火墙一般只过滤低端口(1-1024),而高端口他不可能过滤的(因为,一些服务要用到高端口,因此防火墙不能关闭高端口的),所以很多的木马都在高端口打开等待,如冰河,subseven等。。。

但是木马攻击的前提是必须先上传,运行木马,对于简单的包过滤防火墙来说,是容易做的。这里不写这个了。大概就是利用内部网络主机开放的服务漏洞。

早期的防火墙都是这种简单的包过滤型的,到现在已很少了,不过也有。现在的包过滤采用的是状态检测技术,下面谈谈状态检测的包过滤防火墙。

三 攻击状态检测的包过滤

状态检测技术最早是checkpoint提出的,在国内的许多防火墙都声称实现了状态检测技术。

可是:)很多是没有实现的。到底什么是状态检测?

一句话,状态检测就是从tcp连接的建立到终止都跟踪检测的技术。

原先的包过滤,是拿一个一个单独的数据包来匹配规则的。可是我们知道,同一个tcp连接,他的数据包是前后关联的,先是syn包,-》数据包=》fin包。数据包的前后序列号是相关的。

如果割裂这些关系,单独的过滤数据包,很容易被精心够造的攻击数据包欺骗!!!如nmap的攻击扫描,就有利用syn包,fin包,reset包来探测防火墙后面的网络。!

相 反,一个完全的状态检测防火墙,他在发起连接就判断,如果符合规则,就在内存登记了这个连接的状态信息(地址,port,选项。。),后续的属于同一个连 接的数据包,就不需要在检测了。直接通过。而一些精心够造的攻击数据包由于没有在内存登记相应的状态信息,都被丢弃了。这样这些攻击数据包,就不能饶过防 火墙了。

说状态检测必须提到动态规则技术。在状态检测里,采用动态规则技术,原先高端口的问题就可以解决了。实现原理是:平时,防火 墙可以过滤内部网络的所有端口(1-65535),外部攻击者难于发现入侵的切入点,可是为了不影响正常的服务,防火墙一但检测到服务必须开放高端口时, 如(ftp协议,irc等),防火墙在内存就可以动态地天加一条规则打开相关的高端口。等服务完成后,这条规则就又被防火墙删除。这样,既保障了安全,又 不影响正常服务,速度也快。!

一般来说,完全实现了状态检测技术防火墙,智能性都比较高,一些扫描攻击还能自动的反应,因此,攻击者要很小心才不会被发现。

但是,也有不少的攻击手段对付这种防火墙的。

1 协议隧道攻击

协议隧道的攻击思想类似与VPN的实现原理,攻击者将一些恶意的攻击数据包隐藏在一些协议分组的头部,从而穿透防火墙系统对内部网络进行攻击。

例 如,许多简单地允许ICMP回射请求、ICMP回射应答和UDP分组通过的防火墙就容易受到ICMP和UDP协议隧道的攻击。Loki和lokid(攻击 的客户端和服务端)是实施这种攻击的有效的工具。在实际攻击中,攻击者首先必须设法在内部网络的一个系统上安装上lokid服务端,而后攻击者就可以通过 loki客户端将希望远程执行的攻击命令(对应IP分组)嵌入在ICMP或UDP包头部,再发送给内部网络服务端lokid,由它执行其中的命令,并以同 样的方式返回结果。由

于许多防火墙允许ICMP和UDP分组自由出入,因此攻击者的恶意数据就能附带在正常的分组,绕过防火墙的认证,顺利地到达攻击目标主机下面的命令是用于启动lokid服务器程序:

lokid-p–I–vl

loki客户程序则如下启动:

loki–d172.29.11.191(攻击目标主机)-p–I–v1–t3

这样,lokid和loki就联合提供了一个穿透防火墙系统访问目标系统的一个后门。

2 利用FTP-pasv绕过防火墙认证的攻击

FTP- pasv攻击是针对防火墙实施入侵的重要手段之一。目前很多防火墙不能过滤这种攻击手段。如CheckPoint的Firewall-1,在监视FTP服 务器发送给客户端的包的过程中,它在每个包中寻找"227"这个字符串。如果发现这种包,将从中提取目标地址和端口,并对目标地址加以验证,通过后,将允 许建立到该地址的TCP连接。

攻击者通过这个特性,可以设法连接受防火墙保护的服务器和服务。详细的描述可见:http://www.checkpoint.com/techsupport/alerts/pasvftp.html。

3 反弹木马攻击

反弹木马是对付这种防火墙的最有效的方法。攻击者在内部网络的反弹木马定时地连接外部攻击者控制的主机,由于连接是从内部发起的,防火墙(任何的防火墙)都认为是一个合法的连接,因此基本上防火墙的盲区就是这里了。防火墙不能区分木马的连接和合法的连接。

但是这种攻击的局限是:必须首先安装这个木马!!!所有的木马的第一步都是关键!!!

四 攻击代理

代理是运行在应用层的防火墙,他实质是启动两个连接,一个是客户到代理,另一个是代理到目的服务器。

实现上比较简单,和前面的一样也是根据规则过滤。由于运行在应用层速度比较慢/1

攻击代理的方法很多。

这里就以wingate为例,简单说说了。(太累了)

WinGate是目前应用非常广泛的一种Windows95/NT代理防火墙软件,内部用户可以通过一台安装有WinGate的主机访问外部网络,但是它也存在着几个安全脆弱点。

黑客经常利用这些安全漏洞获得WinGate的非授权Web、Socks和Telnet的访问,从而伪装成WinGate主机的身份对下一个攻击目标发动攻击。因此,这种攻击非常难于被跟踪和记录。

导致WinGate安全漏洞的原因大多数是管理员没有根据网络的实际情况对WinGate代理防火墙软件进行合理的设置,只是简单地从缺省设置安装完毕后就让软件运行,这就给攻击者可乘之机。

1 非授权Web访问

某 些WinGate版本(如运行在NT系统下的2.1d版本)在误配置情况下,允许外部主机完全匿名地访问因特网。因此,外部攻击者就可以利用 WinGate主机来对Web服务器发动各种Web攻击( 如CGI的漏洞攻击等),同时由于Web攻击的所有报文都是从80号Tcp端口穿过的,因此,很难追踪到攻击者的来源。

检测

检测WinGate主机是否有这种安全漏洞的方法如下:

1) 以一个不会被过滤掉的连接(譬如说拨号连接)连接到因特网上。

2) 把浏览器的代理服务器地址指向待测试的WinGate主机。

如果浏览器能访问到因特网,则WinGate主机存在着非授权Web访问漏洞。


2 非授权Socks访问

在WinGate的缺省配置中,Socks代理(1080号Tcp端口)同样是存在安全漏洞。与打开的Web代理(80号Tcp端口)一样,外部攻击者可以利用Socks代理访问因特网。


防范

要防止攻击WinGate的这个安全脆弱点,管理员可以限制特定服务的捆绑。在多宿主(multi homed)系统上,执行以下步骤以限定如何提供代理服务。

1选择Socks或WWWProxyServer属性。

2选择Bindings标签。

3按下ConnectionsWillBeAcceptedOnTheFollowingInterfaceOnly按钮,并指定本WinGate服务器的内部接口。

非授权Telnet访问

它是WinGate最具威胁的安全漏洞。通过连接到一个误配置的WinGate服务器的Telnet服务,攻击者可以使用别人的主机隐藏自己的踪迹,随意地发动攻击。

检测

检测WinGate主机是否有这种安全漏洞的方法如下:

1使用telnet尝试连接到一台WinGate服务器。

[root@happy/tmp]#telnet172.29.11.191

Trying172.29.11.191….

Connectedto172.29.11.191.

Escapecharacteris‘^]’.

Wingate>10.50.21.5


2如果接受到如上的响应文本,那就输入待连接到的网站。


3如果看到了该新系统的登录提示符,那么该服务器是脆弱的。

Connectedtohost10.50.21.5…Connected

SunOS5.6

Login:

对策

防止这种安全脆弱点的方法和防止非授权Socks访问的方法类似。在WinGate中简单地限制特定服务的捆绑就可以解决这个问题。一般来说,在多宿主(multihomed)系统管理员可以通过执行以下步骤来完成:

1选择TelnetSever属性。

2选择Bindings标签。

3按下ConnectionsWillBeAcceptedOnTheFollowingInterfaceOnly按钮,并指定本WinGate服务器的内部接口。


五 后话

有防火墙的攻击不单是上面的一点,我有什么写的不对的,大家指正。

一直以来,黑客都在研究攻击防火墙的技术和手段,攻击的手法和技术越来越智能化和多样化。但是就黑客攻击防火墙的过程上看,大概可以分为三类攻击。

第一类攻击防火墙的方法是探测在目标网络上安装的是何种防火墙系统并且找出此防火墙系统允许哪些服务。我们叫它为对防火墙的探测攻击。

第二类攻击防火墙的方法是采取地址欺骗、TCP序号攻击等手法绕过防火墙的认证机制,从而 对防火墙和内部网络破坏。

第三类攻击防火墙的方法是寻找、利用防火墙系统实现和设计上的安全漏洞,从而有针对性地发动攻击。这种攻击难度比较大,可是破坏性很大。
;