编者按:远程终端服务是微软Windows Server系列中的一大特色,由于其简洁、维护及使用方便等特点深受广大用户及其黑客的喜爱,而远程终端服务往往运行在一些有重要程序的服务器上;如果由于远程终端服务的配置和管理不当,往往会带来巨大的经济损失。
本文对主要对Windows远程终端服务及其相关安全技术进行了分析和讨论,最后给出了一些可供参考的安全设置方法,对使用远程终端的用户具有一定的安全参考价值。
一、 远程终端服务技术介绍
Windows 2003 Server中的Windows Terminal Services(WTS)又称为远程终端服务(Remote Terminal Services)或者俗称为3389,是在Windows NT中最先使用的一种终端,在Windows 20030 Professional版本中不可以安装,在 Windows 2003 Server或以上版本才可以安装这个服务,其默认服务端口为3389,在Windows XP系统中称为“远程桌面(Remote Desktop)”[1]。
远程终端服务是Windows 2003 Server中的一项重要服务,主要通过远程桌面连接来对服务器进行管理或者运行应用程序,其功能类似于远程管理软件,由于远程终端服务使用简单、方便,不产生交互式登陆,而且可以在后台操作,因此在各行各业都有大量的应用,深受用户喜爱。
远程终端服务在很多大型系统中使用得越来越广泛,正是由于远程终端服务在Windows Server 2000以及Windows 2003 Server中开启非常简单方便,一般情况都不需要重新安装,只需要运行几行DOS命令即可开启,且由于使用终端不受IP地址的限制,只要拥有用户账号及其对应的用户口令,就可以正常登录,因此对Windows 2000 Server来讲远程使用终端服务即开启了方便之门,也开启了网络安全的安全隐患之门,而且目前还有针对Windows 2000 Server及其以上版本的远程终端服务攻击的软件,一旦攻击成功,对于运行重要程序的服务器将会带来不可估量的经济损失,下面对远程终端服务以及相关安全技术进行分析。
二、 远程终端开启技术
1. 远程终端服务开启步骤
在Windows 2000 Server中,有许多开启远程终端服务方法,归纳起来对于远程终端的开启主要通过以下步骤来进行:
(1) 查看“Terminal Services”是否开启。可以通过服务器中的“服务管理”以及通过DOS命令下的“net start”来查看。如果在服务管理器中“Terminal Services”的状态为“启动”,则表示“Terminal Services”开启成功;而在DOS命令下使用“net start”的结果中如果出现了“Terminal Services”则表示开启了远程终端服务。
(2)启动Windows Terminal Services服务。
(2) 使用“远程桌面连接”(RDP)连接远程终端,如果使用RDP连接远程终端成功,则表示远程终端服务开启成功。
2. 一些常见开启远程终端服务的方法
(1)使用rots.vbs脚本[2]
Rots.vbs是由网名为“灰色轨迹zzzevazzz”写的一个VBS脚本,该脚本通过系统中自带的cscript.exe应用程序来执行,使用该脚本可以开启终端服务以及修改终端服务端口,其使用格式为:
cscript.exe rots.vbs ip user userpass port /r或cscript.exe rots.vbs ip user userpass port /fr
(2)使用bat命令
通过记事本建立一个bat文件,在其中分别输入以下内容:
echo [Components] > c:\sql
echo TSEnable = on >>sql
c:\sqlsysocmgr /i:c:\winnt\inf\sysoc.inf /u:c:\sql /q
然后运行该批处理命令,重新启动计算机后,远程终端服务开启成功,该方法不能更改终端服务的端口。
(3)导入一个reg文件到需要开启终端服务的机器中[3]
该方法主要是修改远程终端服务的端口及其相关设置,通过生成一个以reg为后缀的文件,将该文件导入到需要开启终端服务的计算机上。该方法比较隐蔽,通过服务管理器以及“net start”命令均不会发现终端服务已经启动。Reg文件内容如下:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\netcache]
"Enabled"="0"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"ShutdownWithoutLogon"="0"
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer]
"EnableAdminTSRemote"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]
"TSEnabled"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TermDD]
"Start"=dword:00000002
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TermService]
"Start"=dword:00000002
[HKEY_USERS\.DEFAULT\Keyboard Layout\Toggle]
"Hotkey"="1"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp]
"PortNumber"=dword:00000D3D
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp]
"PortNumber"=dword:00000D3D
(4)使用SQL注入软件启动3389服务
在Domain3.5以及网名为教主的HDSI2.0 SQL等注入工具中均提供了开启3389终端服务功能,使用该类软件来开启3389的前提条件是运行Web服务的服务器必须存在SQL注入漏洞,而且数据库用户的权限较大,在SQL Server 2000中数据库用户必须为sa。
(5)使用其它软件开启3389
在网上其它一些流行软件其开启原理跟前面类似,只是使用不同的编程语言进行实现。
[1] [2] 下一页