是否有可用的工具(最好是通常与操作系统一起提供的标准工具)可以让我通过命令行从我的 ubuntu 机器控制我的 windows 机器(即,我只能访问我的 ubuntu 上的命令行)?
编辑:稍微解释一下我的情况:
我有三台计算机;A、B 和 C。
A:我可以访问这个,它运行的是 Ubuntu Linux。
乙:由于我不知道这台计算机的公共 IP 地址,因此我无法访问它。另一方面,A 与 DNS 位于同一个本地网络中,而我做知道这台计算机上的名称(例如,我可以通过远程访问 A 来 ping B(“ping b.company.loc”),但这只会显示当地的B)的IP地址。
C:是我想要用来远程访问B的计算机。
所以我再次问:有谁知道有什么方法可以让我从 C 或 A 访问 B,而无需在 B 上安装任何东西?
答案1
鉴于新的细节,
如果 B 上没有某种服务器可以让你连接,那么你的选择就会非常有限。
您可以从 C 连接到 A,这是一个很好的开始。从那里,您可以使用 nmap 扫描 B 以查找开放端口(用法nmap hostname
:)
如果您打开了端口 22 (ssh)、23 (telnet)、3389 (远程桌面) 或 5900 (VNC),那么您很幸运。您可以使用端口转发将端口从 B 绑定到 A,然后从 C 访问它。
这个 serverfault 线程完成 VNC 的流程。必须将“localhost:5900”更改为其对应的协议(对于 RDP,则为“localhost:3389”),并在相应的程序(对于 RDP,则为 mstsc.exe)中打开。
如果 B 上没有开放用于远程访问的端口,那么你可能运气不佳。如果还有其他服务开放的端口,你仍然可以尝试使用Metasploit来自 Ubuntu 系统。
答案2
您可以安装 Microsoft 提供的 telnet 服务器。您需要转到“添加/删除程序”(XP)或“程序和功能”(vista/7),然后单击“打开或关闭 Windows 功能”。从那里选择 Telnet 服务器。您可能需要 Windows 安装盘。
一旦在 Windows 防火墙中打开端口,您就应该能够从 Ubuntu 系统 telnet 到 Windows 系统。
Telnet 并不安全。我认为它以纯文本形式在网络上发送用户名和密码。如果您想要更安全的东西,您可以使用 SSH 服务器赛格威。