突破TCP-IP过滤/防火墙进入内网(icmp篇)
2006-07-21 11:12:27 来源:WEB开发网本文示例源代码或素材下载
一、现状
随着Internet网络的普及,各个中大型公司均建立了自己的局域网络,并与Internet相连接,而公司内部人员上网的限制也逐渐成为一个大家关心的话题。目前最为流行的网络工具大多是基于IP协议的,而其中最主要的两个协议就是TCP和UDP协议。HTTP,FTP等上层协议均是建立在TCP协议之上了,而DNS,ICQ,TFTP等则是建立在UDP协议之上的。往往我们会遇到这样情况:公司禁止了UDP协议(很大一部分的网络通讯软件都是建立在UDP协议之上的),而仅开通了TCP协议。这样,我们就可以通过TCP协议来为我们转发UDP数据报,具体实现原理可以参看eyas的《突破TCP-IP过滤/防火墙进入内网》,里面详细讨论了如何实现TCP与UDP数据报之间的相互转发,在此就不多说了。现在进入正题,如何实现利用ICMP数据报突破网关的限制?
二、ICMP转发数据报原理
ICMP协议(Internet Control Messages Protocol, 网际控制报文协议)是一种多功能的协议,在网络上有很多用处,比如ICMP扫描,拒绝服务(DOS)攻击,隧道攻击,以及我们最常用到的PING程序。而现在就利用ICMP协议来为我们转送UPD/TCP数据(假设本机被禁止了UPD或TCP协议)。大家知道一般的防火墙都是过滤了来自外部主机的回送请求(Echo Request)报文,也就是我们平时说的PING数据报,但为了让内部主机能够探测外部主机的当前状态,防火墙大都不会过滤回送应答(Echo Reply)数据报,而且ICMP报文可以在广域网上传送,这样我们就可以利用它来突破网关的种种限制。由于本地主机被禁止了UDP/TCP协议,但在网关上却没有被禁止,我们就可以先将UDP/TCP数据报以ICMP的形式发送到网关,然后网关再将它解码,构造成UDP/TCP数据报发送到我们的目的服务器;同样,服务器发送来的UDP/TCP数据报被网关所接收,网关将其解码后,以ICMP的形式发送到本地主机,本机再解码构包后发送到客户端程序,这样就实现了对网关限制的突破,一次发送/接收共需要两次解包和构包。本文主要针对使用ICMP协议来转发 UDP数据报的功能,并以OICQ为背景,至于利用ICMP协议来突破TCP的限制,也大同小异。
- ››TCP超时/丢失重传
- ››iphone图片拉伸的几种方法
- ››iphone正则表达式的简单使用
- ››iPhone开发Unresolved Symbols CAKeyframeAnimati...
- ››IPhone开发-“此证书是由未知颁发机构签名”解决方...
- ››IPhone开发-整合私钥和证书,生成.p12文件
- ››iPhone应用开发-UIPickerView选取器详解
- ››iphone 获取屏幕的宽度和高度
- ››iPhone读取工程包中的二进制文件
- ››iPhone新手机 不挂YouTube APP
- ››iPhone 获取指定格式的时间和日期
- ››IPad使用UIModalPresentationFormSheet时隐藏键盘...
更多精彩
赞助商链接