实验环境如下:
服务器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, daniels@cs.uit.no - 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, daniels@cs.uit.no - 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端口的数据包)