如何让程序绕过防火墙

一般方法,想绕过防火墙是不可能的,不过,我前几天在一个安全论坛看到有说一些新的  
  木马技术是如何来瞒过防火墙的。我找找先。原文如下:(节选)  
  一、关端口  
        祸从口出,同样,端口也是木马的最大漏洞,经过大家的不断宣传,现在连一个刚刚上网  
        没有多久的“菜鸟”也知道用NETSTAT查看端口,木马的端口越做越高,越做越象系统端  
        口,被发现的概率却越来越大。但是端口是木马的生命之源,没有端口木马是无法和外界  
        进行通讯的,更不要说进行远程控制了。为了解决这个矛盾,木马们深入研究了Richard   Stevens  
        的TCP/IP协议详解,决定:放弃原来他们赖以生存的端口,转而进入地下。放弃了端口后  
        木马怎么和控制端联络呢?对于这个问题,不同的木马采用了不同的方法,大致分为以下  
        两种方法:寄生、潜伏。  
        1、   寄生就是找一个已经打开的端口,寄生其上,平时只是监听,遇到特殊的指令就进行  
        解释执行;因为木马实际上是寄生在已有的系统服务之上的,因此,你在扫描或查看系统  
        端口的时候是没有任何异常的。据我所知,在98下进行这样的操作是比较简单的,但是对  
        于Win2000   相对要麻烦得多。由于作者对这种技术没有很深的研究,在这里就不赘述了,  
        感兴趣的朋友可以去http://www.ahjmw.gov.cn/cit/或者西祠胡同的WinSock版查看相关  
        的资料。  
        2、   潜伏是说使用IP协议族中的其它协议而非TCP/UDP来进行通讯,从而瞒过Netstat和  
        端口扫描软件。一种比较常见的潜伏手段是使用ICMP协议,ICMP(Internet控制报文)  
        是IP协议的附属协议,它是由内核或进程直接处理而不需要通过端口,一个最常见的  
        ICMP协议就是Ping,它利用了ICMP的回显请求和回显应答报文。一个普通的ICMP木马会  
        监听ICMP报文,当出现特殊的报文时(比如特殊大小的包、特殊的报文结构等)它会打  
        开TCP端口等待控制端的连接,这种木马在没有激活时是不可见的,但是一旦连接上了  
        控制端就和普通木马一样,本地可以看到状态为Established的链接(如果端口的最大连  
        接数设为1,在远程使用Connect方法进行端口扫描还是没有办法发现的);而一个真正  
        意义上的ICMP木马则会严格地使用ICMP协议来进行数据和控制命令的传递(数据放在ICMP  
        的报文中),在整个过程中,它都是不可见的。(除非使用嗅探软件分析网络流量)  
        3、   除了寄生和潜伏之外,木马还有其他更好的方法进行隐藏,比如直接针对网卡或Modem  
        进行底层的编程,这涉及到更高的编程技巧。  
    ......(中间是和这个问题无关的,所以省去)          
             
  四、防火墙攻防战  
        现在,在个人防火墙如此之流行的今天,也许有人会说:我装个防火墙,不管你用什么  
        木马,在我系统上搞什么,防火墙设了只出不进,反正你没法连进来。同样,对于局域  
        网内的机器,原先的木马也不能有效的进行控制(难道指望网关会给你做NAT么?)但是,  
        城墙从来就挡不住木马:在古希腊的特洛伊战争中,人们是推倒了城墙来恭迎木马的,  
        而在这个互联网的时代,木马仍然以其隐蔽性和欺诈性使得防火墙被从内部攻破。其中  
        反弹端口型的木马非常清晰的体现了这一思路。    
        反弹端口型木马分析了防火墙的特性后发现:防火墙对于连入的链接往往会进行非常严格  
        的过滤,但是对于连出的链接却疏于防范。于是,与一般的木马相反,反弹端口型木马的  
        服务端(被控制端)使用主动端口,客户端(控制端)使用被动端口,木马定时监测控制  
        端的存在,发现控制端上线立即弹出端口主动连结控制端打开的主动端口,为了隐蔽起见,  
        控制端的被动端口一般开在80,这样,即使用户使用端口扫描软件检查自己的端口,发现  
        的也是类似   TCP UserIP:1026 ControllerIP:80   ESTABLISHED的情况,稍微疏忽一点你  
        就会以为是自己在浏览网页。(防火墙也会这么认为的,我想大概没有哪个防火墙会不给  
        用户向外连接80端口吧,嘿嘿)看到这里,有人会问:那服务端怎么能知道控制端的IP地  
        址呢?难道控制端只能使用固定的IP地址?哈哈,那不是自己找死么?一查就查到了。实  
      际上,这种反弹端口的木马常常会采用固定IP的第三方存储设备来进行IP地址的传递。举  
      一个简单的例子:事先约定好一个个人主页的空间,在其中放置一个文本文件,木马每分  
      钟去GET一次这个文件,如果文件内容为空,就什么都不做,如果有内容就按照文本文件  
      中的数据计算出控制端的IP和端口,反弹一个TCP链接回去,这样每次控制者上线只需要  
      FTP一个INI文件就可以告诉木马自己的位置,为了保险起见,这个IP地址甚至可以经过  
      一定的加密,除了服务和控制端,其他的人就算拿到了也没有任何的意义。对于一些能够  
      分析报文、过滤TCP/UDP的防火墙,反弹端口型木马同样有办法对付,简单的来说,控制  
      端使用80端口的木马完全可以真的使用HTTP协议,将传送的数据包含在HTTP的报文中,  
      难道防火墙真的精明到可以分辨通过HTTP协议传送的究竟是网页还是控制命令和数据?  
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值