盒子
盒子
文章目录
  1. ssh参数说明
  2. 在 Linux 上设置反向 SSH 隧道
  3. VPS做转发
  4. 参考链接:

ssh端口转发

ssh端口转发在渗透测试中是一个非常好用,可实现将本地端口转发到远程端口,或者本地端口到本地端口,总之很多姿势,之前在乌云drops上经常看别人提到这个,一直没有去亲自实战。终于有一天,我们需要将内网的机器映射到外网,通常这个时候我都会选择路由器端口转发,但是,不幸的是我们的光猫不是桥接模式。。。总之就是不能映射出去,于是我想到了使用ssh端口映射。

这种方法肯定不是长久之计,我们也没打算长久映射,下面开始说方法

ssh参数说明

首先将下文可能用到的参数说明如下:

1
2
3
4
5
6
7
-f    要求 ssh 在执行命令前退至后台. 它用于当 ssh 准备询问口令或密语, 但是用户希望它在后台进行. 该选项隐含了 -n 选项. 在远端机器上启动
-N 不执行远程命令. 用于转发端口.
-C 要求进行数据压缩 (包括 stdin, stdout, stderr 以及转发 X11TCP/IP 连接 的数据).压缩算法和 gzip(1) 的一样, 协议第一版中,压缩级别 “level” 用CompressionLevel 选项控制. 压缩技术在 modem 线路或其他慢速连接上很有用, 但是在高速网络上反而 可能降低速度.可以在配置文件中对每个主机单独设定这个参数.
-g 允许远端主机连接本地转发的端口
-q 安静模式. 消除所有的警告和诊断信息
-T 禁止分配伪终端
-n 把 stdin 重定向到 /dev/null (实际上防止从 stdin 读取数据). ssh 在后台运行时一定会用到这个选项. 它的常用技巧是远程运行 X11 程序.

在 Linux 上设置反向 SSH 隧道

在内网机器上,运行如下命令,其中1.1.1.1为VPS的IP,运行后需要输入relayserver_user的密码

1
ssh -fN -R 10022:localhost:22 relayserver_user@1.1.1.1

然后在VPS上查看10022端口,端口开放说明成功了

1
2
sudo netstat -nap | grep 10022
# tcp 0 0 127.0.0.1:10022 0.0.0.0:* LISTEN 8493/sshd

然后可以在VPS上运行命令:

1
ssh -p 10022 homeserver_user@localhost

即可连接内网的机器,同样的道理,我们把22端口换成80端口,即可将80端口映射到VPS上,在VPS上可以使用curl进行测试。

VPS做转发

我们需要的不仅仅是自己登陆VPS可以操作内网的机器,我们需要的是任意一台主机访问我VPS上的指定端口,然后可以转发到内网,姿势如下:

1
ssh -qTfnN -R :8888:127.0.0.1:80 root@1.1.1.1 -o GatewayPorts=yes

参考链接: