《红蓝攻防对抗实战》九.内网穿透之利用GRE协议进行隧道穿透

前文推荐:

《红蓝攻防对抗实战》一. 隧道穿透技术详解
《红蓝攻防对抗实战》二.内网探测协议出网之TCP/UDP协议探测出网
《红蓝攻防对抗实战》三.内网探测协议出网之HTTP/HTTPS协议探测出网
《红蓝攻防对抗实战》四.内网探测协议出网之ICMP协议探测出网
《红蓝攻防对抗实战》五.内网探测协议出网之DNS协议探测出网
《红蓝攻防对抗实战》六.常规反弹之利用NC在windows系统执行反弹shell
《红蓝攻防对抗实战》七.常规反弹之利用NC在Linux系统执行反弹shell
《红蓝攻防对抗实战》八.利用OpenSSL对反弹shell流量进行加密

《红蓝攻防对抗实战》九.内网穿透之利用GRE协议进行隧道穿透

一.利用GRE协议进行隧道穿透

GRE协议是一种应用较为广泛的路由封装协议,用于将一种网络层协议PDU封装于任一种网络层协议PDU中,就像将一个盒子放在另一个盒子中一样。GRE是在网络上建立直接点对点连接的一种方法,目的是简化单独网络之间的连接。该协议经常被用来构造GRE隧道来穿越各种三层网络。下面讲一下如何利用GRE协议进行隧道穿透。

实验环境如图1-1所示,假设在内网信息收集中发现存活主机,通过漏洞获取到其主机的控制权限,并探测到其开放GRE协议,我们可以通过搭建GRE隧道的方式来进行内网穿透,具体实验环境如表1-1所示。

图1-1 GRE协议实验拓扑图

表1-1 GRE协议隧道穿透实验环境表

主机类型 外网IP 内网IP GRE隧道IP
VPS服务器 47.94.168.41 192.168.0.128 192.168.5.1
Linux受控主机 123.56.14.177 172.16.0.1 192.168.5.2

1)首先我们需要对VPS服务器和受控主机分别执行modprobe ip_gre命令来加载ip_gre模块,执行完毕后,我们再执行lsmod | grep gre命令确认是否已加载GRE协议模块,实验操作命令如图1-2所示。

图1-2 加载ip_gre模块

2)当上述ip_gre模块加载成功后,我们在VPS服务器中执行ip tunnel add tun1 mode gre remote 123.56.14.177 local 192.168.0.128命令来创建名为tun1的GRE隧道,之后通过执行ip link set tun1 up mtu 1400命令启动名为tun1的GRE隧道,此时已设定数据包最大的传输为1400字节,实验操作执行命令如图1-3所示。

图1-3 创建启动GRE隧道tun1

3)通过在VPS服务器中执行ip addr add 192.168.5.1 peer 192.168.5.2 dev tun1命令为VPS服务器创建配置双方互联IP地址,其中本端GRE隧道互联IP地址为192.168.5.1,对端GRE隧道互联IP地址为192.168.5.2,随后执行route add -net 172.16.0.0/18 dev tun1命令来创建一条到达Linux受控主机所属网段172.16.0.0/18的路由,最后通过执行echo 1 > /proc/sys/net/ipv4/ip_forward命令来开启路由转发功能,相关操作执行命令如图1-4所示。

图1-4 VPS侧GRE隧道配置操作执行命令

4)此时通过route -n命令来查看路由信息,如图1-5所示,可以到看到已配置的路由规则。

图1-5 VPS服务器侧GRE隧道路由信息

5)接下来我们执行类似操作,为Linux受控主机创建名为tun2的GRE隧道,之后通过执行ip link set tun2 up mtu 1400命令,启动名为tun2的GRE隧道,相关执行操作命令如图1-6所示。

图1-6 创建启动GRE隧道tun2

  1. 同理,我们也需要在Linux受控主机侧执行ip addr add 192.168.5.2 peer 192.168.5.1 dev tun2命令来配置双方互联IP地址,其中本端GRE隧道互联IP地址为 192.168.5.2,对端GRE隧道互联IP地址为192.168.5.1,并执行route add -net 192.168.0.0/24 dev tun2命令来创建一条到达VPS攻击服务器所属网段192.168.0.0/24的路由,最后通过执行echo 1 > /proc/sys/net/ipv4/ip_forward命令来开启路由转发功能,相关操作执行命令如图1-7所示。

图1-7 Linux受控主机侧GRE隧道配置操作执行命令

7)通过在Linux受控主机中执行route -n命令来查看路由信息,如下图1-8所示,可以到看到已配置的路由规则。

图1-8 Linux受控主机侧GRE隧道路由信息

8)当完成以上配置后进行验证,在VPS服务器中对Linux受控主机的GRE隧道IP执行Ping操作,反过来在Gre2中进行相同验证操作。验证成功,证明GER隧道成功,如图1-9所示。

图1-9 GRE隧道连接测试成功

相关推荐
戒不掉的伤怀25 分钟前
【Navicat 连接MySQL时出现错误1251:客户端不支持服务器请求的身份验证协议;请考虑升级MySQL客户端】
服务器·数据库·mysql
超喜欢下雨天26 分钟前
服务器安装 ros2时遇到底层库依赖冲突的问题
linux·运维·服务器·ros2
搬码临时工32 分钟前
小企业如何搭建本地私有云服务器,并设置内部网络地址提供互联网访问
运维·服务器
old-six-programmer1 小时前
NAT 类型及 P2P 穿透
服务器·网络协议·webrtc·p2p·nat
GLAB-Mary1 小时前
OSPF虚拟链路术语一览:快速掌握网络路由
网络·智能路由器
tan77º1 小时前
【Linux网络编程】网络基础
linux·服务器·网络
风口上的吱吱鼠1 小时前
Armbian 25.5.1 Noble Gnome 开启远程桌面功能
服务器·ubuntu·armbian
缘友一世1 小时前
网安系列【4】之OWASP与OWASP Top 10:Web安全入门指南
安全·web安全
18你磊哥1 小时前
Windows 本地安装部署 Apache Druid
运维·debian
IT成长日记2 小时前
【Docker基础】Docker数据卷管理:docker volume inspect及其参数详解
运维·docker·容器·volume·inspect