HackPluto's Blog

SSH代理与端口转发

字数统计: 1.3k阅读时长: 4 min
2019/08/01 Share

木马配置与科来的使用

实验环境:
宿主机 win7 IP 172.20.10.8
靶机 winXP IP 172.20.10.6
远控软件 PCshare

首先使用PCshare生成木马,放置在winXP中

在win7上需要关闭防火墙和安全服务,因为PCshare采用反弹shell,需要连接宿主机

在winXP上点击木马,返回win7,发现肉鸡上线,开始远程控制

使用科来软件来抓包

SSH端口转发

SSH 会自动加密和解密所有 SSH 客户端与服务端之间的网络数据。但是,SSH 还同时提供了一个非常有用的功能,这就是端口转发。它能够将其他 TCP 端口的网络数据通过 SSH 链接来转发,并且自动提供了相应的加密及解密服务。这一过程有时也被叫做“隧道”。而与此同时,如果防火墙限制了一些网络端口的使用,但是允许 SSH 的连接,那么也是能够通过将 TCP 端口转发来使用 SSH 进行通讯。总的来说 SSH 端口转发能够提供两大功能:
1.加密 SSH Client 端至 SSH Server 端之间的通讯数据。
2.突破防火墙的限制完成一些之前无法建立的 TCP 连接。

SSH本地转发

如果一台机器上一个服务只允许本机访问,那么我们想远程访问的话就需要在机器上开启本地的端口转发,所谓本地端口转发,就是将发送到本地端口的请求,转发到目标端口。这样,就可以通过访问本地端口,来访问目标端口的服务。命令就是

1
ssh -L <local host><local port>:<remote host>:<remote port> <SSH hostname>

首先在物理机上输入下面的命令,连接Linux虚拟机

连接成功后,访问本机的2000端口

数据流将会是下面这个样子:

访问web服务器数据发送到本机的 2000 端口上,而本机的 SSH Client 会将 2000 端口收到的数据加密并转发到 LdapServertHost 的 SSH Server 上。
SSH Server 会解密收到的数据并将之转发到监听的 80 端口上,最后再将从 webServer 返回的数据原路返回以完成整个流程。
我们可以看到,这整个流程应用并没有直接连接 web 服务器,而是连接到了本地的一个监听端口,但是 SSH 端口转发完成了剩下的所有事情,加密,转发,解密,通讯。

SSH远程转发

所谓远程端口转发,就是将发送到远程端口的请求,转发到目标端口。这样,就可以通过访问远程端口,来访问目标端口的服务。使用-R属性,就可以指定需要转发的端口,语法是这样的:

1
ssh -R <local port>:<remote host>:<remote port> <SSH hostname>

首先在Ubuntu上SSH连接远程的一台机器,并使用如下命令

这条命令的含义就是,将远程的2000端口的流量转发到本机的80端口,这样的效果就是,我在远程的机器上访问自己的2000端口就可以达到访问了Ubuntu 80
端口的效果

SSH正向代理

正向连接就是client连上server,然后把server能访问的机器地址和端口镜像到client的端口上。
比如A不能直接访问C,但是B可以访问A和C,就可以A先去SSH连接B,然后目标IP和端口写成C的就好了

exp:

1
ssh -L 8080:C的IP:80 test@B的IP

SSH翻墙

SSH翻墙的话需要用到动态的转发,命令是

1
ssh -D 本地端口 username@remote-host

上述命令中-D表示动态绑定,本地端口表示本地SOCKS代理的侦听端口,可以改成别的,后面的 username@remote-host就是你登录远程服务器的用户名和主机,这样隧道就打通了。

SSH反向代理

反向连接就是client连上server,然后把client能访问的机器地址和端口镜像到server的端口上。
比如你的客户端在内网,在外网是无法直接访问到的,这时用反向连接打通一条隧道,就可以从外网通过这条隧道进来了。
命令就是之前的远程端口转发。
如果你想让外网所有的能访问8.8.8.8的IP都能访问192.168.1.3的http服务,那么可以执行:

1
ssh -R 8.8.8.8:8080:192.168.1.3:80 test@8.8.8.8

也就是说,ssh到8.8.8.8上,然后把本地局域网内192.168.1.3的80端口映射到8.8.8.8的8080端口上,这样外网任何一台可以访问8.8.8.8的机器都可以通过8080端口访问到内网192.168.1.3机器的80端口了。
还可以参考上面的远程端口转发的例子。

CATALOG
  1. 1. 木马配置与科来的使用
  2. 2. SSH端口转发
    1. 2.1. SSH本地转发
    2. 2.2. SSH远程转发
  3. 3. SSH正向代理
    1. 3.1. SSH翻墙
  4. 4. SSH反向代理