WIN2K的Telnet服务 Hacking

/ns/cn/jc/data/20020818040033.htm

WIN2K的Telnet服务 Hacking


作者:refdom
Email:refdom@263.net
Home Page: www.opengram.com

Windows 2000 是默认安装了 Telnet 服务的,但是并没有默认启动。很多人在问得到administrator帐号后怎么远程
启动TELNET,怎么运行ncx.exe 后门等等,以方便远程执行各种命令。方法很多。
很多人使用小榕的流光工具,上传一个NCX,开99端口,利用任务计划服务AT 来启动NCX,这里还需要查询远程服务
器的时间,根据时间来执行AT的程序运行时间,如果不是使用AT,那么需要先打开AT服务。但是 NCX使用起来不是很方便
,显示不好,如果要使用微软自己的Telnet ,那么需要先上传NTLM.exe,运行NTLM.exe来修改微软Telnet服务的NTLM认
证方式,总的说来,非常麻烦。

既然在windows 2000下,微软自己有TELNET服务,那么就利用起来嘛。如果我们得到administrator 帐号,对
windows2000来说,还有什么能够拦得住呢。

如果能够直接启动Telnet 服务,遇到得第一大问题就是身份验证了。它默认是按照 NTLM方式进行身份认证的,因
此虽然可以Telnet过去,但是,NTLM认证一下子就失败了,也就退出了Telnet ,还没等到输入帐号密码呢。这里应该
认识认识NTLM认证方式。

以下配置将使用 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、服务器把用户名、给客户端的challenge 、客户端返回的 response 这三个东西,发送域控制器
6、域控制器用这个用户名在 SAM密码管理库中找到这个用户的密码散列,然后使用这个密码散列来加密 challenge。
7、域控制器比较两次加密的 challenge ,如果一样,那么认证成功。

根据NTLM认证过程,我们能够得到一个比较简单的方法来使用微软自己的Telnet 服务。但是它并不是默认运行的,所
以首先需要远程把它启动起来(使用AT啊)。然后根据NTLM身份认证的特点,把本地的帐号和密码修改成服务器上的
帐号和密码,然后重新启动,用修改的帐号和密码登录,然后再连接服务器的Telnet。这样经过NTLM认证,就能够成
功了。不过这个方法,虽然简单,但是显得太笨了,还要修改密码重新启动。

要得到更自由和方便的办法,我们需要熟悉 Telnet 服务器的配置情况。

在注册表中的这个位置是关于Telnet Server的相关配置
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\TelnetServer\1.0

比如下面这些项值:

键LoginScript:显示 Telnet 服务器登录脚本的路径位置。默认的位置就是“%systemroot%\System32\login.cmd”,
当然,可以把脚本内容改写了,这样登录进Telnet的欢迎屏幕就不一样,

键AllowTrustedDomain:是否允许域用户访问,默认值是1,允许信任域用户访问。可以修改为下面这些值:
0: 不允许域用户访问(只允许本地用户)。
1: 允许域用户从具有信任关系的域访问。

键DefaultDomain:可以对与该计算机具有信任关系的任何域设置。如果 AllowTrustedDomain 设为 1,并且要本地
域为默认域,请将值设为“.”。默认就是"."

键DefaultShell:shell 的路径位置。默认是: %systemroot%\System32\Cmd.exe /q /k ,修改吧,可以玩人。

键MaxFailedLogins:在连接终止之前显示尝试登录失败的最大次数。默认是3。

键NTLM:NTLM身份验证选项。默认是2。可以有下面这些值:
0: 不使用 NTLM 身份验证。
1: 先尝试 NTLM 身份验证。如果失败,再使用用户名和密码。
2: 只使用 NTLM 身份验证。

键TelnetPort:显示 telnet 服务器侦听 telnet 请求的端口。默认是:23,当然,你可以更改为一个其他的端口,
这样别人可能就不知道是不是开了telnet服务了。这个项也能让我们利用Telnet 服务器更自由了。

在Telnet服务器配置这些参数中,可以使用tlntadmn.exe命令来进行非常方便的配置,配置后需要重新启动Telnet
服务。

根据上面这些关于Telnet 服务的配置,我写了两个小工具 OpenTelnet.exe 和 ResumeTelnet.exe 。这两个工
具中,OpenTelnet.exe是用来启动远程服务器的Telnet的,Resumetelnet.exe是用来把修改了的配置都返回到默认配
置上去,关闭Telnet服务等(删除足迹嘛)。两个工具配合起来使用。

使用这两个程序,你必须先获得管理员密码和帐号,同时服务器开放IPC$共享。只能对WIN2K(XP)使用,NT,没测
试过。

Opentelnet.exe的用法:
OpenTelnet.exe \\server <帐号> <密码> <NTLM认证方式> <Telnet端口>

比如下面的:(命令意思是连接192.168.1.2,帐号administrator,密码123456 ,0表示不使用NTLM认证方式,
Telnet的端口是90)

C:\>OpenTelnet.exe \\192.168.1.2 administrator 123456 0 90
当程序运行后得到:
BINGLE!!!Yeah!!
Telnet Port is 90. You can try:"telnet ip 90", to connect the server!
Disconnecting server...Successfully!

就说明Telnet服务启动成功,并且使用的端口是90。这样,我们就能够得到一个开90端口的Windows 2000
Telnet服务器。

Telnet 192.168.1.2 90
就可以登录上去了,而且不使用 NTLM认证方式。

ResumeTelnet.exe,是用来恢复Telnet配置的,并关闭Telnet服务器,它的用法是:
ResumeTelnet.exe \\ip <帐号> <密码>

例如:
C:\>ResumeTelnet.exe \\192.168.21.2 administrator 123456
如果程序运行后显示:
BINGLE!!!
The config of remote telnet server is resumed!
Disconnecting server...Successfully!
就说明服务器端Telnet 的配置又返回到原来的状态中了。

Windows 2000有很多好的功能,非常方便哦!