场景说明:
A主机和B主机在同一个园区网,A主机可以出公网,B主机不可以出公网。渗透工程师已经拿下A主机控制权。

一、如何在外网访问到B主机

方案:ssh本地端口映射
背景:当我们拿下A主机之后想和B主机通信,可以选择直接在A主机上进行操作,但这样会留下相关日志,增加了被发现的风险。此时可以通过ssh隧道直接在本机与B主机进行通信,既方便又不会留下痕迹。
工作原理:与A主机建立SSH隧道,并在本地侦听一个空闲端口,并将之映射至B主机指定端口即可。此时访问本地侦听的端口,流量实质将导入B主机指定端口,从而实现安全的访问B主机。

隧道建立命令: ssh -fNg -L 7001:172.20.163.135:22 root@172.20.163.136 -p 22
-L: 本地端口转发
-f: 后台运行进程
-N: 不执行登录shell
-g: 复用访问时作为网管,支持多主机访问本地侦听端口(即:如果不加此选项则7001端口只在127.0.0.1接口上侦听,加上此选项则7001端口在0.0.0.0接口上侦听)
7001: 在本地开启侦听的端口
172.20.163.135:22 : B主机及要连的端口
172.20.163.136: A主机

结果验证:ssh root@127.0.0.1 -p 7001 ====>此时将直接连到B主机的22端口

二、拿下B主机后如何让B主机出公网

背景:拿下B主机后想让B和公网主机C通信,怎么办?
方案: ssh远程端口映射
工作原理:与A主机建立SSH隧道,并在A主机侦听一个空闲端口,将此端口映射至C主机指定端口即可。此时B主机访问A主机侦听的端口,流量实质将导入C主机指定端口,从而实现B主机连接公网上任何一台主机。

隧道建立命令: ssh -fNg -R 7001:202.2.20.2:80 root@172.20.163.136 -p 22
-R: 远程端口转发
-f: 后台运行进程
-N: 不执行登录shell
-g: 复用访问时作为网管,支持多主机访问本地侦听端口(即:如果不加此选项则7001端口只在127.0.0.1接口上侦听,加上此选项则7001端口在0.0.0.0接口上侦听)(注意:不知道为什么远程端口转发时加参数g和没加一个样)
7001: 在A主机开启侦听的端口
172.20.163.135:22 : C主机及要连的端口
172.20.163.136: A主机

结果验证:ssh root@127.0.0.1 -p 7001 ====>此时将直接连到C主机的22端口

三、以上隧道只能建立点到点的隧道,如何建立点到多的隧道             =====> 亦是最简单的fanqiang方法(国外网络看成是远程内网)

背景:想建立一条隧道就可以访问远程内网里一片设备
方案:ssh动态端口映射
工作原理:与A主机建立SSH隧道,并在本地侦听一个空闲端口。此时公网主机设置socks代理为渗透者IP及其侦听的端口,流量实质将通过此端口流向远程内网任意地址。A主机将自动判断过来的流量该去哪。

隧道建立命令: ssh -fNg -D 7001 root@172.20.163.136 -p 22
-D: 动态端口转发
7001: 本地启动的socks代理端口

结果验证: 设置代理后浏览器访问'http://内网主机',即可访问其内部系统

ssh隧道的妙用的更多相关文章

  1. SSH隧道应用, 突破网络限制

    文/怡文圣美 这篇文章可以帮你解决下面三个问题: 不能直连服务器, 要先登陆跳板机, 造成客户端工具无法连接服务器. 服务器没有公网IP, 且只允许公司IP访问, 要在家里操作要先远程桌面到工作机再登 ...

  2. ssh隧道(端口转发)

    本地转发: ssh -Nf -L [bind_address:]port:host:hostport sshServer -Nf 后台运行 -L 本地转发 [bind_address] 绑定本地地址, ...

  3. 通过 SSH 隧道方式图形化连接 AIX 服务器

    跳转到主要内容 登录 (或注册) 中文 [userid] IBM ID: 密码: 保持登录. 单击提交则表示您同意developerWorks 的条款和条件. 查看条款和条件. 需要一个 IBM ID ...

  4. ssh隧道技术

    大家都知道SSH是一种安全的传输协议,用在连接服务器上比较多.不过其实除了这个功能,它的隧道转发功能更是吸引人.下面是个人根据自己的需求以及在网上查找的资料配合自己的实际操作所得到的一些心得. SSH ...

  5. 【转】三种不同类型的ssh隧道

    转自:http://blog.creke.net/722.html 大家都知道SSH是一种安全的传输协议,用在连接服务器上比较多.不过其实除了这个功能,它的隧道转发功能更是吸引人.下面是个人根据自己的 ...

  6. SSH隧道技术----端口转发,socket代理

    原文的原始出处不详,本文也是在复制引用了某篇转载,并做了必要的整理与编辑. 本文的受众 如果你遇到了以下问题,那么你应该阅读这篇文章 我听说过这种技术,我对它很感兴趣 我想在家里访问我在公司的机器(写 ...

  7. 公司内网Debian Server上的openvpnserver搭建并通过SSH隧道转发到广域网

    因为戴维营公司在长沙的学员,研发人员和北京的研发人员须要协同研发,故须要让北京的兄弟们增加到长沙办公室的内网,訪问版本号 管理server,于是採用在内网server上搭建一个OpenVPN服务,并把 ...

  8. ssh隧道

    最近有需求使用ssh隧道,顺便研究了下,以下记录一下大概说明 ssh隧道顾名思义在可以通过ssh连接的server之间建立加密隧道,常用于突破网络限制 常用三种端口转发模式:本地端口转发,远程端口转发 ...

  9. 配置SSH隧道访问Ubuntu服务器上的MongoDB

    为了数据安全,在MongoDB的配置文件里,一般会把默认的27017端口port改为自定义的端口号,然后把允许访问的IP设为127.0.0.1(即主机本身).但是这样就会在开发的过程查看数据时带来麻烦 ...

随机推荐

  1. win7启动时怎么自动进入桌面

    1.按Win+R组合键,打开“运行”对话框.(Win是键盘下方左右两边的两个印有微软标志的键) 2.Windows XP/2003/2008/2008R2输入"control userpas ...

  2. rsync简介与rsync+inotify配置实时同步数据

    rsync简介 rsync是linux系统下的数据镜像备份工具.使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH.rsync主机同步. rsync特性 rsync ...

  3. Nginx的rewrite应用

    Rewrite主要的功能是实现URL重写,Nginx 的 Rewrite 规则采用 PCRE Perl 兼容正则表达式的语法进行规则匹配,如相使用 Nginx 的 Rewrite 功能,在编译 Ngi ...

  4. LOJ-10103(求删去割点后最多的连通分量)

    题目链接:传送门 思路: (1)这道题的图可能不连通,所以需要多次Tarjan: (2)设置cut[i]=x数组表示第i个节点被删除后右多少个子图(这个只是在一个图中),如果是根节点就要-1,因为根节 ...

  5. Jetbrain Pycharm Theme

    https://github.com/ChrisRM/material-theme-jetbrains

  6. EF6学习笔记(四) 弹性连接及命令拦截调试

    EF6学习笔记总目录:ASP.NET MVC5 及 EF6 学习笔记 - (目录整理) 本章原文地址:Connection Resiliency and Command Interception 原文 ...

  7. js-实时获取键值码

    <script> document.onkeydown=function(event){ console.log(event.keyCode)    //在控制台打印 } </scr ...

  8. Centos7部署Kubernetes集群

    目录贴:Kubernetes学习系列 1.环境介绍及准备: 1.1 物理机操作系统 物理机操作系统采用Centos7.3 64位,细节如下. [root@localhost ~]# uname -a ...

  9. Presto + Superset 数据仓库及BI

    基于Presto和superset搭建数据分析平台. Presto可以作为数据仓库,能够连接多种数据库和NoSql,同时查询性能很高: Superset提供了Presto连接,方便数据可视化和dash ...

  10. 选项卡--原生js

    比较基础的一个特效,毕业设计要做一些记录,就把这些都记下来吧,万一用到的时候忘了呢 function changeTab() { let navs = document.getElementsByTa ...