开启Win2000上的Telnet服务的方法

icech在UNIX下Telnet用的好好的,但是在Win2000下的Telnet服务总不能启动服务,开始在“计算机管理”—“服务”中启动Telnet服务,但是使用
telnet icech(这里的icech是我的计算机名)总是没有登陆提示,出错,出错!唉~没办法,找资料。
查来查去还是在几个有关黑客和安全的站点找到了答案,icech汇总一下给大家简单介绍介绍。

为什么我打开的Telnet服务却还是不能用呢?原因是Win2000在系统里自带了Telnet服务,但却使用了NT4时代的身份验证机制NTLM(NT LAN MANAGER)。Win2000默认的Telnet服务器用NTLM身份验证方式登录,而Telnet客户端却无法通过此验证。因此需要在Win2000中将相关身份验证禁止。
解决的方法有两个:
1、修改注册表。
icech建议不十分熟悉注册表的朋友就算了吧,在这里先不做介绍。
2、使用Tlntadmn命令。
这是Telnet服务器管理实用程序,它是用来控制台修改telnet设置的。icech先介绍使用,文章最后再对NTLM和TLNTADMN做详细介绍。
单击“开始”,再单击“运行”,键入tlntadmn.exe,然后单击“确定”(如果不能打开 Telnet 服务器管理实用程序工具,可能需要安装“管理工具”包)。
下面我就不罗嗦了,看具体操作吧:

Microsoft (R) Windows 2000 (TM) (内部版本号 2195)
Telnet Server Admin (Build 5.00.99201.1)

请在下列选项中选择一个:

0) 退出这个应用程序
1) 列出当前用户
2) 结束一个用户的会话 …
3) 显示 / 更改注册表设置 …
4) 开始服务
5) 停止服务

请键入一个选项的号码 [0 – 5] 以选择该选项: 3

请在下列选项中选择一个:

0) 退出这个菜单
1) AllowTrustedDomain
2) AltKeyMapping
3) DefaultDomain
4) DefaultShell
5) LoginScript
6) MaxFailedLogins
7) NTLM
8) TelnetPort
请键入一个选项的号码 [0 – 8] 以选择该选项: 7
NTLM 的当前值 = 2
您确实想更改这个值吗 ? [y/n]y
NTLM [ 当前值 = 2; 可接受的值 0、1 或 2 ] :0
您确实想将 NTLM 设置为 : 0 ? [y/n]y

只有当 Telnet 服务重新开始后设置才会生效

请在下列选项中选择一个:

0) 退出这个菜单
1) AllowTrustedDomain
2) AltKeyMapping
3) DefaultDomain
4) DefaultShell
5) LoginScript
6) MaxFailedLogins
7) NTLM
8) TelnetPort
请键入一个选项的号码 [0 – 8] 以选择该选项: 0

请在下列选项中选择一个:

0) 退出这个应用程序
1) 列出当前用户
2) 结束一个用户的会话 …
3) 显示 / 更改注册表设置 …
4) 开始服务
5) 停止服务

请键入一个选项的号码 [0 – 5] 以选择该选项: 5
停止 Microsoft Telnet 服务 …
Microsoft Telnet 服务成功停止

请在下列选项中选择一个:

0) 退出这个应用程序
1) 列出当前用户
2) 结束一个用户的会话 …
3) 显示 / 更改注册表设置 …
4) 开始服务
5) 停止服务

请键入一个选项的号码 [0 – 5] 以选择该选项: 4
启动 Microsoft Telnet 服务 …
Microsoft Telnet 服务启动成功

请在下列选项中选择一个:

0) 退出这个应用程序
1) 列出当前用户
2) 结束一个用户的会话 …
3) 显示 / 更改注册表设置 …
4) 开始服务
5) 停止服务

请键入一个选项的号码 [0 – 5] 以选择该选项:0

具体的操作就是:3,7,Y,0,Y,0,5,4,0
再次“telnet 计算机名”,怎么样,解决啦?!

附录说明1:NTLM认证方式的介绍(此部分摘自refdom的文章《WIN2K的Telnet服务Hacking》)

以下配置将使用 NTLM 作为身份验证机制:
Windows 2000 Professional 客户端向 Windows NT 4.0 的域控制器验证身份。
Windows NT 4.0 Workstation 客户端向 Windows 2000 域控制器验证身份。
Windows NT 4.0 Workstation 客户端向 Windows NT 4.0 域控制器验证身份。
Windows NT 4.0 域中的用户向 Windows 2000 域验证身份。
另外,NTLM 是为没有加入到域中的计算机(如单机服务器和工作站)提供的身份验证协议。

NTLM身份认证过程是:
1、客户端首先在本地加密自己的密码成为密码散列
2、客户端向服务器发送自己的帐号,这个帐号是没有经过加密的,明文直接传输。
3、服务器产生一个16位的随机数字发送给客户端,作为一个 challenge
4、客户端再用加密后的密码散列来加密这个 challenge ,然后把这个返回给服务器。作为 response 。
5、服务器把用 7、域控制器比较两次加密的 challenge ,如果一样,那么认证成功。

附录说明2:Tlntadmn.exe的详细说明(此部分摘自win2000帮助文件)

下表列出了 Telnet 服务器管理实用程序的选项。
0、退出此应用程序——结束 Telnet 服务器管理实用程序会话。
1、列出当前用户——给出当前用户列表,包括用户名称、域、远程计算机、会话 ID、和日志时间。
2、终止用户会话——终止所选用户的会话。
3、显示/更改注册表设置——提供可以更改的注册表设置列表。查看下表。
4、启动服务器——启动 Telnet 服务器。
5、停止服务器——停止 Telnet 服务器。

下表列出了可以更改的Telnet 服务器注册表设置。
0、退出此菜单——退出该菜单并返回到最初的 Telnet 服务器管理实用程序选项中。默认值:N/A
1、AllowTrustedDomain——
0: 不允许域用户访问(只允许本地用户)。
1: 允许域用户从具有信任关系的域访问。
默认值:1
2、AltKeyMapping——允许 ALT 键的功能(只能用于 VT100)。
0: Ctrl-A 被视为 Ctrl-A。
1: Ctrl-A 被视为 Alt。
默认值:1
3、DefaultDomain Defaultdomain——可以对与该计算机具有信任关系的任何域设置。如果 AllowTrustedDomain 设为 1,并且要本地域为默认域,请将值设为“.”。
默认值:Null
4、DefaultShell——显示 shell 安装的路径位置。
默认值:%systemroot%System32Cmd.exe /q /k
5、LogonScript——显示 Telnet 服务器登录脚本的路径位置。管理员可以将服务器特定的登录脚本设成对每个用户执行特定操作。
默认值:%systemroot%System32login.cmd
6、MaxFailedLogins——在连接终止之前显示尝试登录失败的最大次数。
默认值:3
7、NTLM——身份验证选项。
0: 不使用 NTLM 身份验证。对连接到或从其他操作系统连接很有用。
1: 先尝试 NTLM 身份验证。如果失败,再使用用户名和密码。如果要在运行 Windows NT 或 Windows 2000 的计算机和运行其他操作系统的计算机之间建立连接,非常有用。
2: 只使用 NTLM 身份验证。如果要在运行 Windows NT 或 Windows 2000 的计算机之间建立连接,非常有用。
默认值:2
8 TelnetPort——显示 telnet 服务器侦听 telnet 请求的端口。
默认值:23

以上基本上就是我两个小时所了解的Win2000下Telnet的一些操作,有很多问题我不懂,希望大家多多批评指正。我的Email:icech@163.net,网站:http://weste.net/(西部电子)。
户名、给客户端的challenge 、客户端返回的 response 这三个东西,发送域控制器
6、域控制器用这个用户名在 SAM密码管理库中找到这个用户的密码散列,然后使用这个密码散列来加密 challenge。

评论关闭。