文ring04h[EST]
在渗透测试过程中,经常遇到如下情形,内部网络主机通过路由器或者安全设备做了访问控制,无法通过互联网直接访问本地开放的服务,Windows方面,国内通常选择Lcx.exe来进行端口转发,在应用方面大多数人也会选择reDuh来进行端口转发,而*nix却很少人用系统自带的ssh、iptables自身来处理此类问题。
由于时间有限,本文只详细的介绍sshtunnel方面的知识,iptables的有空在加上。
SSH的三个端口转发命令:
ssh-C-f-N-g-Llisten_port:DST_Host:DST_portuser@Tunnel_Host
ssh-C-f-N-g-Rlisten_port:DST_Host:DST_portuser@Tunnel_Host
ssh-C-f-N-g-Dlisten_portuser@Tunnel_Host
-fForkintobackgroundafterauthentication.
后台认证用户/密码,通常和-N连用,不用登录到远程主机。
-pportConnecttothisport.Servermustbeonthesameport.
被登录的ssd服务器的sshd服务端口。
-Lport:host:hostport
将本地机(客户机)的某个端口转发到远端指定机器的指定端口.工作原理是这样的,本地机器上分配了一个socket侦听port端口,一旦这个端口上有了连接,该连接就经过安全通道转发出去,同时远程主机和host的hostport端口建立连接.可以在配置文件中指定端口的转发.只有root才能转发特权端口.IPv6地址用另一种格式说明:port/host/hostport
-Rport:host:hostport
将远程主机(服务器)的某个端口转发到本地端指定机器的指定端口.工作原理是这样的,远程主机上分配了一个socket侦听port端口,一旦这个端口上有了连接,该连接就经过安全通道转向出去,同时本地主机和host的hostport端口建立连接.可以在配置文件中指定端口的转发.只有用root登录远程主机才能转发特权端口.IPv6地址用另一种格式说明:port/host/hostport
-Dport
指定一个本地机器“动态的’’应用程序端口转发.工作原理是这样的,本地机器上分配了一个socket侦听port端口,一旦这个端口上有了连接,该连接就经过安全通道转发出去,根据应用程序的协议可以判断出远程主机将和哪里连接.目前支持SOCKS4协议,将充当SOCKS4服务器.只有root才能转发特权端口.可以在配置文件中指定动态端口的转发.
-CEnablecompression.
压缩数据传输。
-NDonotexecuteashellorcommand.
不执行脚本或命令,通常与-f连用。
-gAllowremotehoststoconnecttoforwardedports.
在-L/-R/-D参数中,允许远程主机连接到建立的转发的端口,如果不加这个参数,只允许本地主机建立连接。注:这个参数我在实践中似乎始终不起作用)
如果想要了解更多关于SSH的细节,可以manssh,或参照ssh的DOC.
*
* |