隧道工具Pingtunnel使用ICMP协议搭建隧道(附搭建环境超详细)

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

当涉及到网络通信时,以下是对IP协议ICMP协议和OSPF协议详细解释: 1. IP协议(Internet Protocol): - IP协议是在网络层中使用的一种协议,它负责将数据包从源主机传输到目标主机。 - IP协议使用IP地址来标识每个主机和路由器,并使用路由表来确定数据包的下一跳路径。 - IP协议提供无连接的、不可靠的数据传输服务,因此它不保证数据包的传输顺序、可靠性和完整性。它采用最佳传输路径,但无法保证数据包是否到达目标主机。 - IPv4和IPv6是两个常用的IP协议版本。IPv4使用32位地址,而IPv6使用128位地址。 2. ICMP协议(Internet Control Message Protocol): - ICMP协议是在网络层中使用的一种协议,用于在IP网络中发送错误消息和控制消息。 - ICMP协议提供了用于网络故障排除、路由器发现、错误报告和其他网络管理功能的工具。 - ICMP消息通常由网络设备(如路由器)生成并发送给源主机或其他相关设备,以通知它们发生的特定事件或错误情况。 - 一些常见的ICMP消息类型包括回显请求和回显应答(用于ping命令)、目的地不可达消息、时消息等。 3. OSPF协议(Open Shortest Path First): - OSPF协议是一种用于内部网关协议(IGP)的动态路由协议,用于在自治系统(AS)内部计算最短路径。 - OSPF协议使用链路状态数据库(LSDB)来存储网络拓扑信息,并使用Dijkstra算法计算最短路径。 - OSPF协议具有快速收敛、支持大规模网络、支持VLSM(可变长度子网掩码)和多路径等特点。 - OSPF协议通过交换Hello消息和LSA(Link State Advertisement)来维护和更新路由信息,并通过洪泛机制实现网络中的链路状态同步。 总结起来,IP协议是用于在网络层传输数据包的协议ICMP协议用于发送错误和控制消息,而OSPF协议是一种动态路由协议,用于计算最短路径和维护路由信息。这些协议在互联网和大规模网络中起着重要的作用,确保数据的传输和网络的正常运行。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值