当前位置: 首页 > news >正文

内网渗透之icmp隧道传输

原理

# 为什么要建立隧道
在实际的网络中,通常会通过各种边界设备·软/硬件防火墙、入侵检测系统来检查对外连接的情况,如果发现异常,会对通信进行阻断。
​
# 什么是隧道
就是一种绕过端口屏蔽的方式,防火墙两端的数据包通过防火墙所允许的数据包类型或者端口进行封装,然后穿过防火墙,与对方通信,当被封装的数据包到达目的地时,将数据包还原,并将还原后的数据包发送到相应的服务器上
​
#常见的隧道列举如下:
网络层:ipv6隧道 icmp隧道 gre隧道
传输层:TCP隧道 UDP隧道 常规端口转发
应用层:SSH隧道 HTTP隧道 HTTPS隧道 DNS隧道

验证过程

icmp隧道适用情况

当目标主机未开启任何端口,但是可以接受ping,被控主机能够ping通对方时(并且防火墙不会阻拦icmp协议,不会阻挡ping命令在防火墙上通行)

icmp隧道搭建可用工具

icmpsh、 pingtunnel、icmptunnel、powershell icmp

环境配置(以pingtunnel为例)

# 场景举例
web服务器被控,但是vps与web服务器通信时,中间有防火墙拦截。web服务器无法访问数据库服务器,但是可以ping通,现在打算通过web服务器访问数据库服务器的3389端口,并且转发到vps的1080端口上,拓扑图如下所示。
​
1.在web服务器(windows系统)下载pingtunnel以及winpcap(用于编译pingtunnel)
2,web服务器端开启隧道
3,vps(linux系统)下载pingtunnel的tar.gz文件以及libpacap(函数库)
4,web服务器将数据库服务器的3389端口封装在icmp隧道,并且传送到vps的端口,访问vps的端口时就相当于访问数据库服务器的3389端口

  • pingtunnel下载地址

https://www.cs.uit.no/~daniels/PingTunnel/PingTunnel-0.72.tar.gz
  • windows安装pingtunnel

下载tar.gz包之后,打开目录会看到如图下的.c文件,这个文件需要利用winpcap编译

  • 下载winpcap

https://www.winpcap.org/install/bin/WinPcap_4_1_3.exe

  • 将ptunnel右击运行方式为rpcapad.exe,在ptunnel文件位置运行cmd命令

ptunnel.c -x she  //-x 指定隧道连接的验证密码

  • vps执行以下命令,在访问vps的1080端口时,会把数据库服务器的3389端口的数据封装在icmp隧道里,以web服务器为跳板进行传送

ptunnel -p vps的ip地址 -lp 1080 -da 数据库服务器ip -dp 3389 -x she //she为隧道密码,要和被控机器的隧道密码一致 -lp:指定要监听的本地tcp端口
-da:指定目标主机的ip地址
-dp:指定被控机器的tcp端口

出现以上截屏说明隧道建立成功,接下来连接这台主机的1080端口,即可访问数据库服务器的3389端口。

gost工具使用

工具安装
linux版
  • 下载地址

https://dl.google.com/go/go1.23.0.linux-amd64.tar.gz
  • 解压文件

tar -xzf go1.23.0.linux-amd64.tar.gz
  • 来到目录gost/gost-master/cmd/gost,执行go build进行编译生成可执行文件

windows版
  • 下载链接

https://codeload.github.com/go-gost/gost/zip/refs/heads/master
  • 编译gost

来到下载的文件目录 \gost\gost-master\cmd\gost
在上面的目录位置运行cmd命令,并且执行go build编译

  • 编译后会生成一个gost.exe文件

隧道搭建
  • 服务器端

./gost -L relay+icmp://:0

  • 客户端

gost.exe -L :8080 -F "relay+icmp://server_ip:12345?keepalive=true&ttl=10s"

相关文章:

内网渗透之icmp隧道传输

原理 # 为什么要建立隧道 在实际的网络中,通常会通过各种边界设备软/硬件防火墙、入侵检测系统来检查对外连接的情况,如果发现异常,会对通信进行阻断。 ​ # 什么是隧道 就是一种绕过端口屏蔽的方式,防火墙两端的数据包通过防火墙…...

【C++ 第十五章】map 和 set 的封装(封装红黑树)

1. map 和 set 的介绍 ⭐map 与 set 分别是STL中的两种序列式容器; 它们是一种树形数据结构的容器,且其的底层构造为一棵红黑树; 而在上一篇文章中提到,其实红黑树本身就是一棵二叉搜索树,是基于二叉搜索树的性质对其增加了平衡的属性来提高其综合性能 ⭐当然也…...

LIN通讯

目录 1 PLinApi.h 2 TLINFrameEntry 结构体 3 自定义函数getTLINFrameEntry 4 TLINScheduleSlot 结构体 5 自定义函数 getTLINScheduleSlot 6 自定义LIN_SetScheduleInit函数 7 自定义 LIN_StartSchedule 8 发送函数 9 线程接收函数 1 PLinApi.h 这是官方头文件 ///…...

zabbix常见架构及组件

Zabbix作为一个开源的、功能全面的监控解决方案,广泛应用于各类组织中,以实现对网络、服务器、云服务及应用程序性能的全方位监控。部署架构灵活性高,可支持从小型单一服务器环境到大型分布式系统的多种场景。基本架构通常包括监控端&#xf…...

plsql表格怎么显示中文 plsql如何导入表格数据

在Oracle数据库开发中,PL/SQL Developer是一款广泛使用的集成开发环境(IDE),它提供了丰富的功能来帮助开发人员高效地进行数据库开发和管理。在使用PL/SQL Developer时,许多用户会遇到表格显示中文的问题,以…...

chromedriver下载地址大全(包括124.*后)以及替换exe后仍显示版本不匹配的问题

Chrome for Testing availability CNPM Binaries Mirror 若已经更新了系统环境变量里的chromdriver路径下的exe,仍显示版本不匹配: 则在cmd界面输入 chromedriver 会跳出version verison与刚刚下载好的exe不匹配,则再输入: w…...

拦截器实现 Mybatis Plus 打印含参数的 SQL 语句

1.实现拦截器 package com.sample.common.interceptor;import com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor; import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.executor.Executor; import org.apache.ibatis.mapping.BoundSql; import or…...

Oracle Subprogram即Oracle子程序

Oracle Subprogram,即Oracle子程序,是Oracle数据库中存储的过程(Procedures)和函数(Functions)的统称。这些子程序是存储在数据库中的PL/SQL代码块,用于执行特定的任务或操作。下面详细介绍Orac…...

自然语言处理实战项目30-基于RoBERTa模型的高精度的评论文本分类实战,详细代码复现可直接运行

大家好,我是微学AI,今天给大家介绍一下自然语言处理实战项目30-基于RoBERTa模型的高精度的评论文本分类实战,详细代码复现可直接运行。RoBERTa模型是由 Facebook AI Research 和 FAIR 的研究人员提出的一种改进版的 BERT 模型。RoBERTa 通过采用更大的训练数据集、动态掩码机…...

RK3588J正式发布Ubuntu桌面系统,丝滑又便捷!

本文主要介绍瑞芯微RK3588J的Ubuntu系统桌面演示,开发环境如下: U-Boot:U-Boot-2017.09 Kernel:Linux-5.10.160 Ubuntu:Ubuntu20.04.6 LinuxSDK: rk3588-linux5.10-sdk-[版本号] (基于rk3…...

基于GPT-SoVITS的API实现批量克隆声音

目标是将每一段声音通过GPT-SoVITS的API的API进行克隆,因为拼在一起的整个片段处理会造成内存或者缓存溢出。 将目录下的音频文件生成到指定目录下,然后再进行拼接。 通过AI工具箱生成的数据文件是这样的结构,temp目录下是没个片段生成的部分,connect_是正常拼接的音频文件…...

详解华为项目管理,附华为高级项目管理内训材料

(一)华为在项目管理中通过有效的沟通、灵活的组织结构、坚持不懈的努力、细致的管理和科学的考核体系,实现了持续的创新和发展。通过引进先进的管理模式,强调以客户需求为导向,华为不仅优化了技术管理和项目研发流程&a…...

Perl(Practical Extraction and Reporting Language)脚本

Perl(Practical Extraction and Reporting Language)是一种非常灵活的脚本语言,主要用于文本处理、系统管理以及快速原型开发等领域。Perl 脚本可以用来执行一系列任务,包括文件操作、网络通信、数据处理等。 下面是一些关于编写…...

单例模式详细

文章目录 单例模式介绍八种方式1、饿汉式(静态常量)2、饿汉式(静态代码块)3、懒汉式(线程不安全)4、懒汉式(线程安全,同步方法)5、懒汉式(线程不安全&#xf…...

Unity3D 自定义窗口

Unity3D 自定义窗口的实现。 自定义窗口 Unity3D 可以通过编写代码,扩展编辑器的菜单栏和窗口。 简单的功能可以直接一个菜单按钮实现,复杂的功能就需要绘制一个窗口展示更多的信息。 编辑器扩展的脚本,需要放在 Editor 文件夹中。 菜单栏…...

dubbo:dubbo整合nacos实现服务注册中心、配置中心(二)

文章目录 0. 引言1. nacos简介及安装2. 注册中心实现3. 配置中心实现4. 源码5. 总结 0. 引言 之前我们讲解的是dubbozookeeper体系来实现微服务框架,但相对zookeeper很多企业在使用nacos, 并且nacos和dubbo都是阿里出品,所以具备一些天生的契合性&#…...

个人博客指路

Pudding 个人博客 比较懒,直接 github page 了,没国内代理加速。 欢迎大佬们,踩一踩 没做留言,觉得很鸡肋。有问题可以在本文底下评论、或者直接邮件...

【STM32 HAL】多串口printf重定向

【STM32 HAL】多串口printf重定向 前言单串口printf重定向原理实现CubeMX配置Keil5配置 多串口printf重定向 前言 在近期项目中,作者需要 STM32 同时向上位机和手机发送数据,传统的 printf 重定向只能输出到一个串口。本文介绍如何实现 printf 同时输出…...

帆软报表,达梦数据库驱动上传失败

1、按照正常操作新建数据库连接,上传准备好的达梦驱动时,提示如图一需要修改SystemConfig.driverUpload为true才可以。 2、FineDB存储了数据决策系统中除平台属性配置以外的所有信息。详情请参见: FineDB 数据库简介。 3、因此管理员可通过…...

CSS选择器的优先级是如何确定的?有哪些方法可以提高选择器的效率?

CSS选择器的优先级是如何确定的? CSS选择器的优先级决定了当多个选择器同时应用于一个元素时,哪个选择器将最终生效。CSS选择器的优先级由多个因素决定,主要包括以下几个方面: 特殊性(Specificity) 特殊性…...

【MySQL】基础入门(第二篇)

1.MySQL基本数据类型 数值类型 MySQL 支持所有标准 SQL 数值数据类型。 这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL 和 NUMERIC),以及近似数值数据类型(FLOAT、REAL 和 DOUBLE PRECISION)。 关键字INT是INTEGER的同义词,关键字DEC是D…...

勇闯机器学习(第二关-数据集使用)

以下内容,皆为原创,重在无私分享高质量知识,制作实属不易,请点点关注。 好戏开场了~~~(这关涉及到了加载数据集的代码,下一关,教你们安装机器学习库) 一.数据集 这一关的目标 知道数据集被分为训练集和测…...

数据库学习(进阶)

数据库学习(进阶) Mysql结构:连接层:服务层(核心层):存储引擎层:系统文件层: 存储引擎(概述):存储引擎特点:InnoDB存储引擎:(为并发条…...

redis的数据结构——跳表(Skiplist)

跳表(Skiplist)是一种用于有序数据存储的高效数据结构,它在Redis中用于实现有序集合(Sorted Set,zset)的底层存储。当有序集合中的数据较多时,Redis会选择使用跳表来存储元素,以便在保持数据有序的同时提供高效的插入、删除、查找操作。 跳表的基本结构 跳表是一种多…...

Docker服务迁移

1 备份当前服务器上的 Docker 数据 1.1 停止 Docker 服务 为了确保数据一致性,在备份之前先停止 Docker 服务: sudo systemctl stop docker1.2 备份 Docker 数据 Docker 的数据通常位于 /var/lib/docker 目录。你可以使用 tar 命令将该目录压缩成一个…...

机器学习:逻辑回归实现下采样和过采样

1、概述 逻辑回归本身是一种分类算法,它并不涉及下采样或过采样操作。然而,在处理不平衡数据集时,这些技术经常被用来改善模型的性能。下采样和过采样是两种常用的处理不平衡数据集的方法。 2、下采样 1、概念 下采样是通过减少数量较多的类…...

React原理之Fiber双缓冲

前置文章: React原理之 React 整体架构解读React原理之整体渲染流程React原理之Fiber详解 -----读懂这一篇需要对 React 整体架构和渲染流程有大致的概念 😊----- 在前面的文章中,简单介绍了 Fiber 架构,也了解了 Fiber 节点的…...

机器学习笔记三-检测异常值

检测异常值是数据预处理中非常重要的一步,因为异常值可能会影响模型的训练效果,甚至导致错误的结论。以下是几种常见的检测异常值的方法: 1. 箱线图(Box Plot): 箱线图是一种简单的统计图形,可…...

如何评估Redis的性能

导语 Redis是一款高性能的内存数据库,被广泛用于缓存、持久化、消息队列等各种场景。为了确保Redis的高性能运行,评估Redis的性能是非常重要的。本文将介绍如何评估Redis的性能,并从问题解决的角度探讨如何优化Redis的性能。 1. 性能评估指…...

RabbitMQ发布订阅模式Publish/Subscribe详解

订阅模式Publish/Subscribe 基于API的方式1.使用AmqpAdmin定制消息发送组件2.消息发送者发送消息3.消息消费者接收消息 基于配置类的方式基于注解的方式总结 SpringBoot整合RabbitMQ中间件实现消息服务,主要围绕3个部分的工作进行展开:定制中间件、消息发…...

小电影网站怎么做的/电商培训视频教程

论文:Group Sampling for Scale Invariant Face Detection 论文链接:http://openaccess.thecvf.com/content_CVPR_2019/papers/Ming_Group_Sampling_for_Scale_Invariant_Face_Detection_CVPR_2019_paper.pdf 这篇是发表在CVPR2019的关于人脸检测的文章…...

天津网站制作专业/北京关键词优化服务

1、Java序列化与反序列化是什么? Java序列化是指把Java对象转换为字节序列的过程,而Java反序列化是指把字节序列恢复为Java对象的过程: 序列化:对象序列化的最主要的用处就是在传递和保存对象的时候,保证对象的完整性…...

新公司网站建设流程/电子商务推广方式

依赖包安装 # 安装 myjs-common 包 npm install myjs-common1.0.0格式器表达式 YEAR_FORMAT: 年格式化-yyyyMONTH_FORMAT: 月格式化-yyyy-MMDATE_FORMAT: 日期格式化-yyyy-MM-ddHOUR_FORMAT: 时格式化-yyyy-MM-dd HHMINUTE_FORM…...

网站建设与维护考试卷/首页排名优化公司

既上一篇文章之后又看到一篇文章关于教育的,当今日新月异的生活,给我们带来高质的生活的同时也引发了我们深刻的思考。 今天,即使你幽居偏远山沟,通过视频,也可以面对面地和海外朋友对话交流;你要学金融&am…...

淡水网站建设哪家便宜/seo教程免费分享

网上胡说八道,众说风云,感觉这篇还算靠谱点。 原文链接:http://blog.csdn.net/dog250/article/details/51809566 为什么大家看到这个以后总是会往MSS,TSO上联系呢?也许第一个解释这个的人是个高手,而且以MS…...

seo案例网站建设哪家好/网推接单平台

嵌入式Linux基础教程(第2版)基本信息原书名:Embedded Linux Primer:A Practical Real-World Approach, Second Edition 原出版社: Pearson Education 作者: (美)Christopher Hallinan [作译者介绍] 译者: 周鹏 丛书名:…...