暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

查询 Windows 远程桌面端口

生有可恋 2024-02-05
317

内网防火墙禁用了默认 Windows 远程桌面的 3389 端口,这迫使所有 Windows 服务器都修改了默认端口。虽然安全性上得到了加强,但也为管理增加了麻烦。

因为服务器的端口修改都是分头进行的,只有责任工程师知道。就算知道服务器的用户名和密码,在不知道远程桌面端口的情况下也只能通过批量扫描端口来确认。这个操作与黑客入侵时的路径是一致的,自己人增加了复杂度,黑客也同样麻烦。

另一种访问系统桌面的方式是使用超融合自带的虚拟终端,它能跳过网络直接访问服务器的原始桌面。相当于是给虚拟机接了显示器,通过本地登录的方式访问系统桌面。

出于资产梳理的需要,还是要再次查询 Windows 系统的远程桌面端口。此时是在系统内部进行查询,可以通过命令行查询:

    C:\> reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" v PortNumber

    此时查到的是一个16进制数,需要转成10进制。可以使用 python 交互模式进行转换,相当于使用计算器了:

    最终显示远程桌面的端口为 65000 ,以上步骤稍微显得多了一点。我们直接在 Python 中查询注册表并打印远程桌面端口:

      import winreg


      def read_registry_key(hive, subkey, value_name):
      try:
      # 打开注册表键
      with winreg.OpenKey(hive, subkey) as key:
      # 读取键的值
      value, _ = winreg.QueryValueEx(key, value_name)
      return value
      except FileNotFoundError:
      print(f"指定的注册表键 '{subkey}' 未找到。")
      except Exception as e:
      print(f"发生错误: {e}")


      # 示例用法
      # HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
      hive = winreg.HKEY_LOCAL_MACHINE # 可以使用其他根键,如 HKEY_CURRENT_USER
      subkey = r"SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" # 替换为您要查询的注册表路径
      value_name = "PortNumber" # 替换为您要查询的值的名称


      result = read_registry_key(hive, subkey, value_name)


      if result is not None:
      print(f"远程桌面的端口: {result}")
      else:
      print(f"未找到注册表键 '{subkey}' 中的值 '{value_name}'。")


      input()

      为了能在服务器中单独使用,可以将其用 pyinstaller 打包成 EXE 文件,这样就可以直接双击查询了:

      查端口的问题解决了,如果要修改远程桌面端口怎么做?

      可以使用注册表的导入功能修改注册表,将以下文件保存为 p3389.reg

        Windows Registry Editor Version 5.00


        [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp]
        "PortNumber"=dword:00000d3d

        使用 notepad 编辑,保存时选择保存类型为所有文件,文件名后缀为 reg

        保存编码选:ANSI

        如果是早期的 Windows,notepad 是不能选编码的,默认就是 ANSI 编码。

        双击导入即可:

        如果格式错误会报以下错:

        注意文件第一行不要留空行,不然会报错。

        导入成功后会提示:

        如果需要修改端口,比如把 3389 改为其它端口。可以使用计算器进行进制转换,或者在 python 解析器中进行进制转换:

        查询到16进制后,将上述注册表文件中的端口修改成对应端口即可。修改远程桌面端口需要重启服务器才能生效。

        全文完。

        如果转发本文,文末务必注明:“转自微信公众号:生有可恋”。

        文章转载自生有可恋,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

        评论