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

news2024/11/18 22:52:53

前文推荐:

《红蓝攻防对抗实战》一. 隧道穿透技术详解
《红蓝攻防对抗实战》二.内网探测协议出网之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内网IPGRE隧道IP
VPS服务器47.94.168.41192.168.0.128192.168.5.1
Linux受控主机123.56.14.177172.16.0.1192.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

6) 同理,我们也需要在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隧道连接测试成功

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1196394.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AI:86-基于深度学习的人体姿态估计与运动分析

🚀 本文选自专栏:人工智能领域200例教程专栏 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带有在本地跑过的代码,详细讲解供大家学习,希望可以帮到大家。欢迎订阅支持,正在不断更新中,…

数据结构线性表——带头双向循环链表

前言:小伙伴们好久不见啦,上篇文章我们一起学习了数据结构线性表其一的单链表,了解了单链表的不少好处,但是不可能有完美的数据结构,就算是单链表,也会有很多缺点。 那么今天这篇文章,我们就来…

全网最细,Apipost接口自动化测试-关联配置,老鸟带你上高速...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 在接口自动化测试…

Arduino到底适不适合做产品

文章目录 一、Arduino性能很低,不如树莓派等开发板,所以不要用Arduino做开发二、Arduino程序效率很低,所以不要用Arduino做开发三、Arduino只能开发玩具,不能做产品四、Arduino开发板成本太高,不适合做产品总结个人见解…

iPhone或在2024开放第三方应用商店。

iPhone或开放第三方应用商店,可以说这是一个老生常谈的话题。对于像是iOS这样封闭的系统来说,此前传出苹果可能开放侧载消息的时候,又有谁能信,谁会信? 如果是按照苹果自身的意愿,这种事情自然是不可能发生…

【LeetCode笔试题】88.合并两个有序数组

问题描述 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。 注意:最终,合…

王学岗visibility改变后调用onLayout()

自定义控件的时候发现了一个bug。 Button位移动画执行结束后我设置了一个不相关的TextView的可见性由gone变为visible.令人郁闷的是,只要我注释的地方放开。动画执行结束后button都会重新绘制在位移动画开始的位置。注释掉这段代码就正常。 经过分析后得知 View的Vi…

python OrderedDict类(有序字典)

嗨喽~大家好呀,这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 创建有序字典 import collectionsdic collections.OrderedDict() dic[k1] v1 dic[k2] v2 dic[k3] v3 print(dic)#输出:OrderedDict([(k1, v1), (…

Vatee万腾科技决策力的未来展望:开创数字化创新的新高度

随着科技不断演进,Vatee万腾的科技决策力在数字化创新领域展现出了强大的潜力和前瞻性。 Vatee万腾的科技决策力被视为数字化创新的引擎,为未来创新注入了新的动力。通过深刻的市场洞察和科学决策,Vatee万腾致力于推动数字化创新走向新的高度…

图论11-欧拉回路与欧拉路径+Hierholzer算法实现

文章目录 1 欧拉回路的概念2 欧拉回路的算法实现3 Hierholzer算法详解4 Hierholzer算法实现4.1 修改Graph,增加API4.2 Graph.java4.3 联通分量类4.4 欧拉回路类 1 欧拉回路的概念 2 欧拉回路的算法实现 private boolean hasEulerLoop(){CC cc new CC(G);if(cc.cou…

可视化 | 3D文字球状标签云

文章目录 📚改编点📚final 改编自echarts 3d词云(指向滑动、拖动、缩放、点击、自转 ) 📚改编点 背景透明:background:rgb(0,0,0,0);不用链接,用span,重点span标class"star&q…

2023年成为优秀自动化测试工程师的 7 个步骤!

“测试自动化测试工程师可以将你从充满代码的世界中拯救出来。”企业完全同意这一说法,这就是您在自动化测试行业中看到大量就业机会的原因。我在 Quora 上收到了很多与自动化测试中的职业选择相关的答案请求,以及人们如何在有或没有手动测试经验的情况下…

Pytorch从零开始实战09

Pytorch从零开始实战——YOLOv5-Backbone模块实现 本系列来源于365天深度学习训练营 原作者K同学 文章目录 Pytorch从零开始实战——YOLOv5-Backbone模块实现环境准备数据集模型选择开始训练可视化模型预测总结 环境准备 本文基于Jupyter notebook,使用Python3.…

PyBind11五分钟入门【Python/C++调用】

从 Python 调用 C 基本上有两种方法:使用 PyBind11 C 库生成 Python 模块,或使用 cytpes Python 包访问已编译的共享库。 使用 PyBind11 我们可以更轻松地共享许多数据类型,而使用 ctypes 是一种低级 C 风格的解决方案。 在线工具推荐&#x…

synchronized的原理和Callable接口

目录 ♫synchronized原理 ♪锁升级 ♪锁优化 ♫Callable接口 ♫synchronized原理 我们知道synchronized锁可以控制多个线程对共享资源的访问,两个线程针对同一变量访问就会产生阻塞等待。而synchronized锁并不是一成不变的,它会根据情况进行一次升级。…

MySQL---存储过程

存储过程的相关概念 是一组为了完成特定功能的sql语句的集合,类似于函数 写好了一个存储过程之后,我们可以像函数一样随时调用sql的集合。 复杂的,需要很多sql语句联合执行完成的任务 存储过程再执行上比sql语句的执行速度更快&#xff0c…

CS224W5.2——Relational and Iterative Classification

本节中,我们介绍用于节点分类的关系分类器和迭代分类。 从关系分类器开始,我们展示了如何基于邻居的标签迭代更新节点标签的概率。然后讨论迭代分类,通过根据邻居的标签及其特征预测节点标签来改进集体分类。 文章目录 1. 框架2. 关系分类3.…

基于SpringBoot的SSMP整合案例(开启日志与分页查询条件查询功能实现)

开启事务 导入Mybatis-Plus框架后,我们可以使用Mybatis-Plus自带的事务,只需要在配置文件中配置即可 使用配置方式开启日志,设置日志输出方式为标准输出mybatis-plus:global-config:db-config:table-prefix: tb_id-type: autoconfiguration:…

【黑客】最适合小白的学习顺序

一、黑客是什么 原是指热心于计算机技术,水平高超的电脑专家,尤其是程序设计人员。但后来,黑客一词已被用于泛指那些专门利用电脑网络搞破坏或者恶作剧的家伙。 二、学习黑客技术的原因 其实,网络信息空间安全已经成为海陆空之…

Python基础教程:类--继承和方法的重写

嗨喽,大家好呀~这里是爱看美女的茜茜呐 什么是继承 继承就是让类与类之间产生父子关系,子类可以拥有父类的静态属性和方法 继承就是可以获取到另一个类中的静态属性和普通方法(并非所有成员) 在python中,新建的类可…