实验环境如下:
服务器IP:61.183.254.254
客户机IP:192.168.1.105
Http代理服务器:202.103.24.68 端口:8080
现象:
客户机可以ping得通外网服务器,但是却无法上网,出口过滤tcp和udp。
目的:
客户机可以正常上网。
服务器:
C:\>ptunnel.exe -v 4 -c "\Device\NPF_{B393AFAB-A4B1-4B5A-8B99-704237989D7A}" [inf]: Enable pcap Mode using device: \Device\NPF_{B393AFAB-A4B1-4B5A-8B99-704237989D7A} [inf]: Starting ptunnel v 0.62. [inf]: (c) 2004-2005 Daniel Stoedle, [email protected] - Windows Port by michu / www.neophob.com [inf]: HINT: start ptunnel with "-h" parameter to view help and Windows WinPcap devices [inf]: Forwarding incoming ping packets over TCP. [dbg]: Starting ping proxy.. [dbg]: Creating icmp datagram socket.. [inf]: Initializing pcap. [vbs]: Network: 61.183.254.0 [vbs]: Netmask: 255.255.255.0 [inf]: Ping proxy is listening in privileged mode. [vbs]: Ignored incoming packet.
C:\>ptunnel.exe -p 61.183.254.254 -lp 808 -da 202.103.24.68 -dp 8080 -v 4 [inf]: Starting ptunnel v 0.62. [inf]: (c) 2004-2005 Daniel Stoedle, [email protected] - Windows Port by michu / www.neophob.com [inf]: HINT: start ptunnel with "-h" parameter to view help and Windows WinPcap devices [inf]: Relaying packets from incoming TCP streams. [dbg]: Starting forwarder.. [vbs]: Proxy IP address: 61.183.254.254
这个时候,客户机的808端口会开放,设置客户机IE的代理服务器为本机的808端口。访问外部网页即可完成实验。
注意:
这个时候你抓包,会发现客户机发出的数据包都是icmp都是发给服务器的,本质是要服务器帮忙转发了。
icmp隧道代码+win32二进制程序下载:
http://www.neophob.com/files/ptun-rel1.zip
另外还有一个是http加密隧道技术。帖子:
http://neophob.com/2006/10/gnu-httptunnel-v33-windows-binaries/
示例:
我想telnet服务器(192.168.44.223)的23端口,命令如下:
1.在服务器(肉鸡)命令下运行hts.exe -F 127.0.0.1:23 9999 (也可以hts.exe -F 192
.168.44.223:23 9999)
2.在自己机上(客户端)运行htc.exe -F 1234 192.168.44.223:9999
3.另外开cmd窗口,telnet 127.0.0.1 1234
原理:
用户连接本地机的1234端口,htc将它封装到http协议里,发送到服务器的9999端口,
在服务器上,hts将从9999端口接收到的数据解包,再发往服务器本地的23端口,建立
了一条http数据通道,这样利用了http隧道技术突破了防火墙的限制(因为防火
墙一般都不会阻止http端口的数据包)