0x00 前言
ICMP隧道简单实用,是一个比较特殊的协议。在一般的通信协议里,如果两台设备要进行通信,肯定需要开放端口,而在ICMP协议下就不需要。最常见的ping命令就是利用的ICMP协议,攻击者可以利用命令行得到比回复更多的ICMP请求。在通常情况下,每个ping命令都有相应的回复与请求。
在一些网络环境中,如果攻击者使用各类上层隧道(例如:HTTP隧道、DNS隧道、常规正/反向端口转发等)进行的操作都失败了,常常会通过ping命令访问远程计算机,尝试建立ICMP隧道,将TCP/UDP数据封装到ICMP的ping数据包中,
从而穿过防火墙(防火墙一般不会屏蔽ping的数据包),实现不受限制的访问访问。
工具介绍http://freshmeat.sourceforge.net/projects/ptunnel/
PingTunnel是一款常用的ICMP隧道工具,可以跨平台使用,为了避免隧道被滥用,还可以为隧道设置密码。
pingtunnel工具是基于网络层面ICMP协议的内网穿透工具,但是,普遍大部分的教程,我们做内网端口转发时,目标服务器时linux服务器,所以,我们剑走偏锋,使用windows系统作为目标服务器,
Pingtunnel基础命令:
-x :指定ICMP隧道连接的验证密码
-lp:指定要监听的本地TCP端口
-da:指定要转发的目标机器的IP地址
-dp:指定要转发的目标机器的TCP端口
-p:指定ICMP隧道连一段的IP地址
配置说明
192.168.200.10(仅主机)
192.168.200.20 (仅主机)
192.168.100.34(NAT)、192.168.200.34(仅主机)
192.168.100.7(NAT)
192.168.200.X 模拟公网地址,192.168.100.X模拟内网地址。Web服务器(linux
)模拟企业对外提供Web服务的机器,该机器可以通内网,同时向公网提供服务。内网存在一台Windows机器(window 7),Web服务器可以与该机器连接。现在我们获取到了Web服务器的权限,想用ICMP搭建通往内网的隧道,连接内网Windows 7的3389端口。
目标:以192.168.200.20作为攻击机,linux
作为目标服务器,使用Pingtunnel工具将192.168.100.7的3389端口已linux
为ICMP隧道传输到我们的192.168.200.20攻击机的2333端口
0x01 环境要求
在安装PingTunnel前,我们必须先要安装它的运行环境,否则安装失败
在安装依赖环境之前,建议先把源换成国内源
https://developer.aliyun.com/mirror/
(1)、对192.168.200.20和linux都这样安装pingtunnel:
PingTunnel的安装
#安装libpcap的依赖环境
apt-get install byacc
apt-get install flex bison
#安装libpcap依赖库
wget http://www.tcpdump.org/release/libpcap-1.9.0.tar.gz
tar -xzvf libpcap-1.9.0.tar.gz
cd libpcap-1.9.0
./configure
make && make install
#安装PingTunnel
wget http://www.cs.uit.no/~daniels/PingTunnel/PingTunnel-0.72.tar.gz
tar -xzvf PingTunnel-0.72.tar.gz
cd PingTunnel
make && make install
注:部分出错原因:
安装make:
yum -y install gcc automake autoconf libtool make
运行环境配置好后,来安装PingTunnel
git clone http://freshmeat.sourceforge.net/projects/ptunnel/
cd ./Pingtunnel
make && make install
后再来编译PingTunnel
0x02 打通隧道
、在Webserver的操作
#启动pingtunnel
ptunnel
#或(-x为隧道指定连接密码)
ptunnel -x qidao
-p 指定ICMP隧道另一端的IP
-lp:指定本地监听的端口
-da:指定要转发的目标机器的IP
-dp:指定要转发的目标机器的端口
-x:指定连接密码
3、连接测试(在192.168.200.20上启动)
ptunnel -p 192.168.200.34 -lp 2333 -da 192.168.100.7 -dp 3389 -x qidao
如果内网机器是linux的话,把3389换成22就好了
.
ptunnel -p 192.168.200.34 -lp 2333 -da 192.168.100.7 -dp 22 -x qidao
-p 指定ICMP隧道另一端的IP
-lp:指定本地监听的端口
-da:指定要转发的目标机器的IP
-dp:指定要转发的目标机器的端口
-x:指定连接密码
成功连接
3
最后总结一下,
(1)在安装pingtunnel之前,一定一定tm先安装它的运行环境,不然pingtunnel是运行不了的
(2)pingtunnel其实也可以在window环境中运行,但是有有人可能会问,pingtunnel都没有exe文件,怎么才能运行啊,这个楼主也试了其他办法,能在window环境运行了,但是就是不能打通隧道,这也是我一直把web服务器用linux系统来做。
如果有其他大佬web服务器用window系统打通隧道的话,
麻烦说下QWQ,万飞感谢
参考文章
https://www.cnblogs.com/appear001/p/13282873.html
https://blog.csdn.net/markecheng/article/details/110352161