利用Ptunnel建立ICMP隧道实现联通校园网免流
在学校也待了一年多了,关于上网认证的漏洞我自己也挖了不少。但是我通常都是不公开的,毕竟留着可以自己用嘛。我只会把一些通用型的漏洞写到博客里来,就比如之前我在大一时用udp 53,67,68这些端口来绕过认证一样。而这个想法我在上学期就想过了,但最近这几天终于做出来了。
在讲利用过程之前还是先分析原理和方法。
同样需要一台有公网ip的vps,我特别推荐阿里云的学生机,很便宜才9.5元一个月,最近出了个轻量应用服务器,用5m的带宽而且价格还没变。链接在点这里
使用工具:Ptunnel,Proxifier
什么是ICMP 协议?
ICMP是(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。ICMP协议是一种面向无连接的协议,用于传输出错报告控制信息
我们在网络中经常会使用到ICMP协议,比如我们经常使用的用于检查网络通不通的Ping命令(Linux和Windows中均有),这个“Ping”的过程实际上就是ICMP协议工作的过程。还有其他的网络命令如跟踪路由的Tracert命令也是基于ICMP协议的。
服务器端搭建过程
ICMP隧道工具 ptunnel
在一些网络环境中,如果不经过认证,TCP和UDP数据包都会被拦截。如果用户可以ping通远程计算机,就可以尝试建立ICMP隧道,将TCP数据通过该隧道发送,实现不受限的网络访问。Kali Linux提供了一款ICMP隧道专用工具ptunnel。用户需要在受限制网络之外,预先启动该工具建立代理服务器。再以客户端模式运行该工具,就可以建立ICMP隧道。为了避免该隧道被滥用,用户还可以为隧道设置使用密码。
ptunnel的GitHub地址 :传送门 可自行研究源码,分析原理。
安装需要的依赖包并编译 Ptunnel
wget http://www.cs.uit.no/~daniels/PingTunnel/PingTunnel-0.72.tar.gz
yum install libpcap libpcap-devel flex bison -y
tar xvf PingTunnel-0.72.tar.gz
cd PingTunnel
make && make install
现在直接运行 ptunnel 啥参数也不用加 ,开启ptunnel隧道监听。
建议将ptunnel用 screen 或 nohub 命令放入后台。
因为我们是通过建立ICMP隧道来实现上网,所以就必须VPS上开启SOCKS5代理服务,使得内网可以直接通过代理访问外网。
配置SS5(SOCKS5)代理服务器
从官网下载源码
wget https://nchc.dl.sourceforge.net/project/ss5/ss5/3.8.9-8/ss5-3.8.9-8.tar.gz
yum -y install gcc automake make
yum -y install pam-devel openldap-devel cyrus-sasl-devel openssl-devel
tar xvf ss5-3.8.9-8.tar.gz
cd ss5-3.8.9-8
./configure && make && make install
修改认证方式vim /etc/opt/ss5/ss5.conf
,查找取消下面两行注释,去掉前面的#即可。
默认是:无用户密码认证。
不过我在搭建的过程中为了方便就暂时没有设用户密码认证。
如果想要使用 username/password
用户认证方法,需要将上面两行修改成下面这样:
auth 0.0.0.0/0 – u
permit u 0.0.0.0/0 – 0.0.0.0/0 – – –
添加用户名及密码vim /etc/opt/ss5/ss5.passwd
,每行一个用户+密码(之间用空格)
zgao1 12345
zgao2 56789
修改ss5启动的参数,自定义代理端口 /etc/sysconfig/ss5
(如果不设置,默认是1080)
此文件ss5启动时会主动加载,将 #SS5_OPTS=” -u root” 取消注释,修改成下面这样
SS5_OPTS=” -u root -b 0.0.0.0:10808″
不过这个10808这个端口可以自己随便设。因为原理就是将ICMP隧道的流量转发到这个端口拿给ss5来处理。
给bash文件增加可执行权限 /etc/rc.d/init.d/ss5
chmod 755 /etc/rc.d/init.d/ss5
服务器端的操作就基本over了。
开始启动 ss5。
systemctl start ss5
查看端口,刚启动应该什么都看不到。
netstat -an | grep 10808
客户端搭建过程
链接:https://pan.baidu.com/s/1ynC8e4C5KBn-mWX-GLUOOQ 提取码:n3wi
下载后解压打开,先安装Proxifier。
Proxifier介绍
Proxifier是一款功能非常强大的socks5客户端,可以让不支持通过代理服务器工作的网络程序能通过HTTPS或SOCKS代理或代理链。支持 64位系统,支持Xp,Vista,Win7,MAC OS ,支持socks4,socks5,http代理协议,支持TCP,UDP协议,可以指定端口,指定IP,指定域名,指定程序等运行模式,兼容性非常好,和之前介绍的SocksCap属于同类软件,不过SocksCap已经很久没更新了。有许多网络应用程序不支持通过代理服务器工作,Proxifier 解决了这些问题和所有限制,让您有机会不受任何限制使用你喜爱的软件。此外,它让你获得了额外的网络安全控制,创建代理隧道,并添加使用更多网络功能的权力。
说简单一点就是让本地的流量经过socks5代理,再进行ICMP隧道封装。
给大家说个在当前目录下快速打开cmd的小技巧。
接下来在cmd下打开该目录开启ptunnel并输入参数。
此时看到有流量在走就说明基本成功了。同时服务器端也可观察到连接信息。
可以百度ip看外网ip是否为自己vps的ip,如果是则说明已经成功了。
用wireshark进行流量分析会看到一大堆的ICMP数据包,其实就是封装了ICMP报文后的流量。
整个过程基本上就是这样了。如果大家在搭建过程中遇到了什么问题都欢迎和我探讨哦!
赞赏微信赞赏支付宝赞赏
2条评论