icmp (http) 隧道技术

本文介绍如何通过搭建ICMP与HTTP隧道实现网络访问。具体包括使用ptunnel创建ICMP隧道,使客户机通过服务器转发数据包实现上网;以及利用http隧道技术绕过防火墙限制,实现对特定端口的服务访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实验环境如下:

服务器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端口的数据包)

### ICMP 隧道的工作原理 ICMP (Internet 控制消息协议) 主要用于在网络设备之间传递控制信息和错误报告。由于许多防火墙默认允许 ICMP 流量通过,这使得攻击者可以利用 ICMP 数据包来创建隐蔽通道,即所谓的 ICMP 隧道。 #### 工作机制 ICMP隧道的核心在于封装技术。通常情况下,正常的ICMP数据报只携带少量的信息,如回显请求或应答。但在构建ICMP隧道时,攻击者会将其他类型的网络流量(例如TCP/IP通信)嵌入到ICMP负载中[^1]。当这些被修改过的ICMP数据包到达目标主机后,专门设计的应用程序能够解析并提取原始的数据流,从而实现绕过某些安全措施的目的。 #### 实现细节 为了建立一个有效的ICMP隧道,至少需要两部分组件: - **客户端软件**:负责发送带有隐藏有效载荷的ICMP Echo Request(Type 8),并将接收到的标准Echo Reply中的内容解码还原成实际传输的数据。 - **服务器端应用**:接收来自互联网上的ICMP Echo Requests,并从中抽取真实意图传达的消息;之后再构造相应的响应——通常是标准形式的Echo Replies(Type 0),其中包含了返回给发起者的反馈信息。 这种做法依赖于双方都安装有特定版本的支持该功能的应用层工具。此外,还需要注意的是,在现代网络安全环境中,越来越多的企业级防护系统已经开始加强对异常模式下的ICMP活动监测力度,因此纯粹依靠传统方法实施此类操作的成功率正在逐渐降低[^2]。 ```bash # 这里展示了一个简单的命令行示例,用来测试基本的ICMP连通性, # 并不是真正的ICMP隧道代码。 ping -c 4 example.com ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值