对于渗透测试,我可以访问运行旧版 Windows 的计算机的 shell,我想将端口 4450 转发到 127.0.0.1:445,因为防火墙在外部阻止了 445。
我陷入以下困境:
plink -L 4450:127.0.0.1:445 SSH-Server
根据我找到的文档,我必须指定一个 SSH 服务器。但我找到的所有文档都只使用同一网络中的 SSH 服务器。将其转发到本地主机端口,这无济于事。
我是否必须在该机器上安装 SSH 服务器或者还有其他方法吗?
答案1
如果你在 Windows 系统上有 ssh 客户端,和你可以建立到你控制的系统上的 SSH 出站,然后你可以使用远程端口转发,即使用选项-R
。这实际上与相反-L
,它在远程(连接到)上设置一个侦听器,并通过您正在连接的系统转发回来。
因此,在 Windows 系统上运行 ssh/putty/plink 或-R 4450:127.0.0.1:445
同等程序,然后登录到您控制的 sshd。然后您可以在该系统上连接到 127.0.0.1:4450。
根据你的“shell 访问”的性质,其他选项可能包括运行socat
或netcat
跨越它,例如:
socat -ddd SYSTEM:"ssh somewhere 'socat TCP4-LISTEN:4450 STDIO'" TCP:127.0.0.1:445
请注意,这只能让您返回一个连接,socat
每一侧都需要该连接。
答案2
要以这种方式绕过防火墙,您需要一个位于防火墙后面的 SSH 服务器。
您是否使用 Metasploit 获取了 shell?如果您使用 Meterpreter 负载,它能够设置端口转发。
http://www.offensive-security.com/metasploit-unleashed/Portfwd