点击蓝字 关注我们
日期:2023-04-10 作者:Corl7 介绍:使用 SSH
进行内网穿透。
0x00 前言
在打内网时,通常会使用代理软件进行代理内网流量,而使用SSH
也可以进行代理流量,本文主要介绍SSH
端口转发的三种方式以及利用SSH
进行三层网络穿透。
0x01 SSH隧道介绍
SSH
隧道是一种通过加密的SSH
连接传输任意网络数据的方法。它可以用来为任何应用程序添加加密通道,也可以用它来实现VPN
和跨防火墙访问局域网的服务。SSH
是一个通过不受信任的网络进行安全远程登录和文件传输的标准。
通过SSH
隧道传输TCP/IP
数据,它还提供了一种使用端口转发保护任何给定应用程序数据流量的方法。采用了这种方法后,应用程序的数据流量都会走SSH
的加密连接,从而不会被窃听或拦截。对于本身不支持加密的应用程序来说,使用SSH
隧道可以很方便地添加网络安全性。使用SSH
进行端口转发有三种方式包括动态转发、本地转发、远程转发。
SSH 使用参数
SSH
使用参数如下所示:
└─$ ssh
usage: ssh [
-46
AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface]
[
] [-c cipher_spec] [-D [bind_address:]port]
[
] [-e escape_char] [-F configfile] [-I pkcs11]
[
] [-J [user@]host[:port]] [-L address]
[
] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]
[
] [-R address] [-S ctl_path] [-W host:port]
[
]] destination [command [argument ...]]
SSH
隧道用到的参数及介绍如下所示:
-C:压缩传输,提高传输速度
-f:将ssh传输转入后台执行,不占用当前的Shell
-N:建立静默连接(建立了连接,但是看不到具体会话)
-g:允许远程主机连接本地用于转发的端口
-L:本地端口转发
-R:远程端口转发
-D:动态转发(socks代理)
-P:指定ssh端口
0x02 本地转发
SSH
进程的本地端口映射可以将本地的某个端口转发到远端指定机器的指定端口,将在本地监听一个端口,所有的访问端口数据都会通过SSH
隧道传输到远端对应端口。
2.1 网络环境
攻击机Kali
可以访问内网边界服务器,但无法访问内网 Web
服务器,网络拓扑如下所示。
2.2 利用方法
在攻击机Kali
(172.20.10.5
)上执行如下命令:以内网边界服务器(172.20.10.4
)为跳板,将内网Web
服务器(10.10.10.2
)的22
端口,转发到攻击机Kali
(172.20.10.5
)的222
端口。
ssh
-CfNg
-L
222
:10.10.10.2
:22
root
@
172
.
20
.
10
.
4
在攻击机Kali
(172.20.10.5
)上使用SSH
连接本地的222
端口,即可登录到内网Web
服务器(10.10.10.2
)上。
ssh
root
@
127
.
0
.
0
.
1
-p
222
0x03 远程转发
在远程主机上监听一个端口,所有远程主机指定的数据都会通过SSH
隧道传输到本地主机的对应端口,远程转发相当于反向代理。
3.1 网络环境
内网边界服务器器双卡并且出网,能够访问到攻击机Kali
,内网Web
服务器不出网,网络拓扑如下所示。
3.2 利用方法
在内网边界服务器(172.20.10.4
)上执行以下命令:以内网边界服务器(172.20.10.4
)为跳板,将攻击机Kali
(172.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
在Kali
攻击机(172.20.10.5
)执行以下命令:使用SSH
命令连接本地的222
端口即可登录到内网Web
服务器(10.10.10.2
)上。
ssh
root
@
127
.
0
.
0
.
1
-p
222
0x04 动态转发
本地和远程端口转发都限定了目标服务器以及目标服务器的端口,而动态端口转发,攻击机把内网边界作为自己的代理,不限定目标服务器及其端口。
4.1 网络环境
内网边界服务器双网卡并且出网,内网Web
服务器不出网,并且搭建了Weblogic
,网络拓扑如下所示。
4.2 利用方法
在攻击机Kali
(172.20.10.5
)上执行以下命令:建立一个socks5
代理。
ssh
-CfNg
-D
6666
root
@
172
.
20
.
10
.
4
接下来配置代理工具,添加socks5
代理。
sudo
vim /etc/proxychains.conf
使用proxychains
代理firefox
。
proxychains
firefox
在浏览器中访问内网Web
服务器10.10.10.2
的7001
端口,可成功访问到搭建的Weblogic
。
0x05 实现三层网络穿透
5.1 网络环境
内网边界服务器双网卡,可以访问到攻击机Kali
,内网Web
服务器双网卡不出网,办公用户单网卡不出网,并且存在永恒之蓝漏洞,网络拓扑如下图所示:
5.2 利用方法
在内网边界服务器(172.20.10.4
)上执行以下命令:
ssh
-CfNg
-R
222
:10.10.10.2
:22
root
@
172
.
20
.
10
.
5
在攻击机Kali
(172.20.10.5
)上执行以下命令:
ssh
-CfNg
-D
0
.0
.0
.0
:2222
root
@
127
.
0
.
0
.
1
-p
222
接下来配置代理工具,添加socks5
代理。
sudo
vim /etc/proxychains.conf
使用proxychains
代理msf
。
使用ms17_010_eternalblue
模块打办公用户的永恒之蓝漏洞。
成功获取到会话,拿下了办公用户的电脑。
0x06 总结
使用SSH
进行端口转发总的来算还算非常方便,不需要像其它代理一样需要往服务器传文件,但是缺点是需要知道服务器的账号和密码,拿不到服务器密码就没有办法进行端口转发。当你在内网中无法利用其他协议转发代理内网流量时,可以考虑尝试使用SSH
协议。
免责声明:本文仅供安全研究与讨论之用,严禁用于非法用途,违者后果自负。
原文始发于微信公众号(宸极实验室):『杂项』使用 SSH 实现三层网络穿透
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论