《红蓝攻防对抗实战》十一.内网穿透之利用SSH协议进行隧道穿透
利用DNS协议进行隧道穿透
- 一.前言
- 二.前文推荐
- 三. 利用SSH协议进行隧道穿透
- 1.SSH隧道-本地端口转发
- 2.SSH隧道-远程端口转发
- 3.SSH隧道-动态端口转发
- 四.本篇总结
一.前言
SSH(Secure Shell)协议是一种加密的网络传输协议,它可以在不安全的网络中提供安全的远程登录和文件传输服务。SSH协议使用加密技术来保护数据的机密性和完整性,使得网络传输数据的安全性得到了保障。除了提供安全的远程登录服务外,SSH协议还可以用于隧道穿透,即将一种网络协议的流量通过SSH连接传输,以绕过防火墙或其他网络限制。
二.前文推荐
《红蓝攻防对抗实战》一. 隧道穿透技术详解
《红蓝攻防对抗实战》二.内网探测协议出网之TCP/UDP协议探测出网
《红蓝攻防对抗实战》三.内网探测协议出网之HTTP/HTTPS协议探测出网
《红蓝攻防对抗实战》四.内网探测协议出网之ICMP协议探测出网
《红蓝攻防对抗实战》五.内网探测协议出网之DNS协议探测出网
《红蓝攻防对抗实战》六.常规反弹之利用NC在windows系统执行反弹shell
《红蓝攻防对抗实战》七.常规反弹之利用NC在Linux系统执行反弹shell
《红蓝攻防对抗实战》八.利用OpenSSL对反弹shell流量进行加密
《红蓝攻防对抗实战》九.内网穿透之利用GRE协议进行隧道穿透
《红蓝攻防对抗实战》十.内网穿透之利用DNS协议进行隧道穿透
三. 利用SSH协议进行隧道穿透
在实际环境中,绝大部分的Linux或Unix服务器和网络设备都支持SSH协议,内网中主机设备及边界防火墙都会允许SSH协议通过,我们通常会使用SSH命令来连接远程机器,但是SSH功能不止于此,它还可以用来做流量转发,将TCP端口的数据流量通过SSH进行转发,并且传输过程中数据是加密的,这也意味着可以利用SSH搭建隧道突破防火墙的限制,所以当面对其他协议方式无法利用时,可以尝试使用SSH进行穿透,本次实验环境如图1-1所示,实验环境表如表1-1所示。
主机类型 | IP配置 |
---|---|
攻击机 | 192.168.0.2 |
Web服务器 | 192.168.0.3,192.168.52.2 |
靶机 | 192.168.52.3 |
假设攻击机与Web服务器彼此之间都可以进行直接通信,但是攻击机与靶机之间不能直接进行通信,我们可以通过建立SSH隧道转发的方式将攻击机连接上内部的靶机,在这里我们将会通过ssh的方式进行转发连接,ssh常用命令参数如表1-2所示。
参数 | 说明 |
---|---|
-C | 压缩传输,提高传输速度 |
-f | 将SSH传输转入后台执行,不占用当前的 Shell |
-N | 建立静默连接(建立了连接,但是看不到具体会话) |
-g | 允许远程主机连接本地用于转发的端口 |
-L | 本地端口转发 |
-R | 远程端口转发 |
-D | 动态转发(SOCKS 代理) |
-R | 远程端口转发 |
-P | 指定 SSH端口 |
1.SSH隧道-本地端口转发
在实验前需要满足的条件是确保目标服务器的22端口开放,同时还需要获取到对方的ssh账号密码,当满足上述条件后,通过攻击机连接Web服务器,因Web服务器可以与靶机通过192.168.52.0/24这个网段进行通信,通过-L参数指定靶机3389端口转发到攻击机的8888端口,在攻击机执行ssh -L 8888:192.168.52.3:3389 root@192.168.0.3 -p 22连接命令,执行中需要输入Web服务器的密码,成功连接后,在攻击机上使用ifconfig命令测试是否为Web服务器的ip地址,如图1-2所示,证明ssh隧道成功。
当上述步骤执行后,使用rdesktop命令连接本地8888端口即可访问到靶机的3389端口的rdp服务。如图1-3所示。
2.SSH隧道-远程端口转发
使用ssh远程连接的方式和本地连接的方式有些类似,需要我们在Web服务器上使用ssh命令反向连接攻击机,获取到Web服务器权限后,在Web服务器执行ssh -R 8888:192.168.52.3:3389 root@192.168.0.2 -p 22命令,进行远程端口转发。其中-R参数表示远程连接,主要的作用是将靶机的3389端口转发到攻击机的8888端口上,执行完上述命令以后,在命令提示符窗口中输入攻击机的密码,即可成功连接到,在web服务器上使用ifconfig查看是否为攻击机IP,如图1-4所示。
接下来在攻击机使用rdesktop命令连接本地8888端口,执行rdesktop 127.0.0.1:8888命令,连接成功如图1-5 所示。
3.SSH隧道-动态端口转发
1)ssh动态端口转发就是建立起一个ssh加密的SOCKS 4/5代理隧道,任何支持SOCKS 4/5协议的程序都可以通过它进行代理访问,在攻击机上执行ssh -D 8888 root@192.168.0.3命令建立SOCKS代理通道,这里需要输入Web服务器的密码,输入密码后,执行成功,如图1-6所示。
2)在攻击机中修改 proxychains4.conf配置文件,并在其底部添加一行socks5 127.0.0.1 8888参数来完成proxychains代理配置,如图1-7所示。
3)当配置完proxychains代理后,即可在攻击机执行proxychains rdesktop 192.168.52.3命令来连接靶机,通过所建立的socks协议隧道连接靶机,如图1-8所示。
四.本篇总结
随着隧道技术的不断更新迭代,越来越多的攻击者利用隧道技术攻击企业内网中,在本篇文章中介绍了如何利用SSH协议进行隧道穿透的方法,包括本地端口转发、远程端口转发和动态端口转发。其中,本地端口转发是将目标服务器的指定端口转发到攻击机的指定端口,远程端口转发是将攻击机的指定端口转发到目标服务器的指定端口,动态端口转发则是建立一个SSH加密的SOCKS 4/5代理隧道,任何支持SOCKS 4/5协议的程序都可以通过它进行代理访问。
相关文章:

《红蓝攻防对抗实战》十一.内网穿透之利用SSH协议进行隧道穿透
利用DNS协议进行隧道穿透 一.前言二.前文推荐三. 利用SSH协议进行隧道穿透1.SSH隧道-本地端口转发2.SSH隧道-远程端口转发3.SSH隧道-动态端口转发 四.本篇总结 一.前言 SSH(Secure Shell)协议是一种加密的网络传输协议,它可以在不安全的网络…...

工商银行卡安全码怎么看
工商银行的安全码,作为一项至关重要的安全措施,旨在保护用户的银行账户和交易安全。为了查看工商银行的安全码用户需要按照以下步骤操作: 首先,用户需要使用电脑或手机访问工商银行的网上银行平台。在平台首页,用户需要…...

经典的测试开发面试题
1、你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决? 首先,将问题提交到缺陷管理库进行备案。 然后,要获取判断的依据和标准: 根绝需求说明书,产品说明、设计文档等&…...

win11下安装odoo17(conda python11)
win11下安装odoo17 odoo17发行了,据说,UI做了很大改进,今天有空,体验一下 打开官方仓库: https://github.com/odoo/odoo 默认的版本已经变成17了 打开odoo/odoo/init.py,发现对python版本的要求也提高了…...

HDMI之编码篇
概述 HDMI 2.0b(含)以下版本,采用3个Channel方式输出。传输又分为3三种周期,视频数据,数据岛以及控制周期。视频传输采用8/10编码。数据岛采用4/10编码(TERC4)。控制周期采用2/10。编码都拓展成了10bits。 上图中,Pixel component(e.g.B)->D[7:0]表示视频数据周期…...

关于DataLoader是否shuffle在VOC2007语义分割数据集上引发的问题
问题描述: 在训练过程中,训练集和验证集实时得到的F1分数相差很大,如下图: 这个问题之前从未遇到过,后来经过不断的排查,发现是因为验证集的数据加载器中shuffle设置的为False,而训练集设置的为…...

在以TAB为首地址的字存储区中存放有N个无符号数,试统计低3位全为1的数的个数(个数设为≤9),并显示。
;默认认采用ML6.11汇编程序 DATAS SEGMENT;此处输入数据段代码TAB DW -7,7,15,20,21N($-TAB)/2;G DW 0 DATAS ENDS STACKS SEGMENT;此处处输入堆栈段代码; DB 200 DUP(0) STACKS ENDS CODES SEGMENTASSUME CS:CODES,DS: DATAS, SS:STACKS START:MOV AX, DATASMOV DS,AX;此处输入…...
python的输入input()和输出print(),及经验用法
python的输入和输出有什么用呢 各位,举个例子,在web应用当中,很多的用于与用户进行交互的输入输出大都是交给web前端的,尤其是交给javascript来完成,不仅简单、方便,而且能够减轻数据在服务器端与客户端之…...
Docker实现挂载的N种方式
目录 docker挂载实现挂载的方式绑定挂载数据卷(Volume)挂载DockerFile 定义数据卷临时文件系统(tmpfs)挂载挂载 docker挂载 默认情况下,在Docker容器内创建的所有文件都只能在容器内部使用。容器删除后,数…...
【使用python写一段代码将pdf文件转换为word文件】
突然有一个需求 就是将一份老板发的PDF文件,转换为Word文档,发现要么收费,要么就是有水印,更有甚者需要将转换收费(美其名曰就是需要开会员),那能惯着他吗 开整! 1.使用python写一段…...

人工智能基础——图像认知与OpenCV
人工智能的学习之路非常漫长,不少人因为学习路线不对或者学习内容不够专业而举步难行。不过别担心,我为大家整理了一份600多G的学习资源,基本上涵盖了人工智能学习的所有内容。点击下方链接,0元进群领取学习资源,让你的学习之路更加顺畅!记得…...

docker-compose安装es以及ik分词同义词插件
目录 1 前言 2 集成利器Docker 2.1 Docker环境安装 2.1.1 环境检查 2.1.2 在线安装 2.1.3 离线安装 2.2 Docker-Compose的安装 2.2.1 概念简介 2.2.2 安装步骤 2.2.2.1 二进制文件安装 2.2.2.2 离线安装 2.2.2.3 yum安装 3 一键安装ES及Kibana 3.1 yml文件的编写…...

【matlab】KMeans KMeans++实现手写数字聚类
目录 matlab代码kmeans matlab代码kmeans MNIST DATABASE下载网址: http://yann.lecun.com/exdb/mnist/ 聚类 将物理或抽象对象的集合分成由类似特征组成的多个类的过程称为聚类(clustering)。 对于给定N个n维向量x1,…,xN∈Rn,聚类的目标…...

从系统层到应用层,vivo 已在安全生态层
你每隔多久就会使用一次手机?调研结果也许会让你大吃一惊。 权威报告数据显示,2022年,24.9%的受访者每日使用手机时长超过10小时,其中3.8%的受访者“机不离手”,每日使用时长超过15小时。而真正让手机化身为时间吞金兽…...

微信公众号历史文章采集教程思路
大家好,我是淘小白! 今天来说下微信公众号历史记录文章采集的教程和思路,希望能够帮助的到大家~ 1、历史消息入口 现在新版本的微信已经找不到历史记录的入口了,需要对这个入口进行拼接,方法如下: 随便…...
大模型应用--prompt工程实践
在使用大模型进行prompt 训练时,自己做的相关笔记。 本文以openai<1.0版为例。 1.调用大模型 定义调用openai大模型的函数 get_completion() def get_completion(prompt, model"gpt-3.5-turbo"):messages [{"role": "user", …...

新零售时代,传统便利店如何转型?
在零售批发业,如何降低各环节成本、提高业务运转效率、更科学地了解客户服务客户,是每家企业在激烈竞争中需要思考的课题。 对零售批发企业来说,这些问题或许由来已久: (1)如何对各岗位的员工进行科学的考…...

openEuler 系统使用 Docker Compose 容器化部署 Redis Cluster 集群
openEuler 系统使用 Docker Compose 容器化部署 Redis Cluster 集群 Redis 的多种模式Redis-Alone 单机模式Redis 单机模式的优缺点 Redis 高可用集群模式Redis-Master/Slaver 主从模式Redis-Master/Slaver 哨兵模式哨兵模式监控的原理Redis 节点主客观下线标记Redis 节点主客观…...

C# ZXing 二维码,条形码生成与识别
C# ZXing 二维码条形码生成识别 安装ZXing使用ZXing生成条形码生成二维码生成带Logo的二维码识别二维码、条形码 安装ZXing NuGet搜索ZXing安装ZXing.Net包 使用ZXing using ZXing; using ZXing.Common; using ZXing.QrCode; using ZXing.QrCode.Internal; 生成条形码 //…...
[vim]Python编写插件学习笔记1 - 开始
0 环境 Windows 11 22H2gVim82 (D:/ProgramFiles/Vim)Python311 (D:/ProgramFiles/Python311)Vundle v0.10.2 1 Vim 支持 Python gVim82 默认配置中,使用的是 Python3.8。 但我的环境安装的是 Python3.11,且不是安装在默认路径下。虽然添加了 PATH 环…...

XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...

基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...
Element Plus 表单(el-form)中关于正整数输入的校验规则
目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入(联动)2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...

20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...
掌握 HTTP 请求:理解 cURL GET 语法
cURL 是一个强大的命令行工具,用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中,cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...
学习一下用鸿蒙DevEco Studio HarmonyOS5实现百度地图
在鸿蒙(HarmonyOS5)中集成百度地图,可以通过以下步骤和技术方案实现。结合鸿蒙的分布式能力和百度地图的API,可以构建跨设备的定位、导航和地图展示功能。 1. 鸿蒙环境准备 开发工具:下载安装 De…...