icmp tunnel
icmp tunnel
icmptunnel 是一种在 ICMP 回显请求和响应 (ping) 数据包中隧道传输 IP 流量的工具,可以帮助我们在严格的网络环境下传输payload。
1 | git clone https://github.com/jamesbarlow/icmptunnel.git |
该工具仅适用于Linux,首先需要禁用客户端和服务器上的ICMP响应,防止响应ping数据。
1 | echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all |
在服务器端,启动icmptunnel服务,并为隧道接口分配一个IP地址。
1 | # ./icmptunnel –s |
在客户端,将 icmptunnel 指向服务器,并分配一个 IP 地址。
1 | # ./icmptunnel <server> |
此时,拥有了一个通过 ICMP数据包传输的点对点隧道。服务器端是10.0.0.1,客户端是10.0.0.2。在客户端,尝试通过 SSH 连接到服务器:
1 | ssh root@10.0.0.1 |
将远程服务器用作SOCKS代理:
1 | ssh -D 8080 -N root@10.0.0.1 |
然后将本地浏览器的代理设置为8080端口
限制
在 Linux和Windows 上,用户模式程序需要提升权限才能与原始套接字交互,需要在隧道两端的主机均拥有root 或本地管理员权限。
参考
- Post title:icmp tunnel
- Post author:ssooking
- Create time:2020-11-12 10:50:00
- Post link:https://ssooking.github.io/2020/11/icmp-tunnel/
- Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.