计算机技術文摘

Telnet服务攻防新手上路(摘)

因为使用Telnet服务进行远程控制更加隐蔽,对系统的资源消耗也非常小,所以对于网络安全来讲Telnet服务是一个非常危险的服务。

在系统中用户其实也可以手动地更改NTLM验证的设置,在“Telnet服务管理器”中就提供了修改NTLM验证的选项。用户可以在“程序→控制面板→管理工具”中找到“Telnet服务管理”选项,单击就可以打开。或者用在命令行窗口下键入“tlntadmn.exe”也可以打开“Telnet服务管理器”。用户可以看到“Telnet服务管理器”是以命令行的方式出现的。选择当中的选项3“显示/ 更改注册表设置” (图4),用户可以看到会出现一个选项的列表,总共有八个选项。

图4

大家可以发现,选项7是针对NTLM验证的,它的默认值是“2”,其中还有两个值可以选择,分别是“0”和“1”。“0”的意思是不使用 NTLM 身份验证;“1”则表示先尝试 NTLM 身份验证,如果失败,再使用用户名和密码;“2”的意思是只使用 NTLM 身份验证。

如果把NTLM的值改为“0”或者“1”,在Telnet连接的时候,我们都可以顺利地通过NTLM验证。所以接下来的步骤,选择列表中的“(7)NTML”,并且选择“Y”更改默认值,最后把NTLM验证的值改为“0”或者“1”即可(图5)。从图5中可以看到“Telnet服务管理器”提示,只有当Telnet服务重新启动之后配置才能够生效。用户可以在命令行窗口下键入“net stop telnet”和“net start telnet”即可重新启动Telnet服务。

图5

接下来远程用户就可以使用“telnet IP”连接到Telnet服务器上了,虽然没有了NTLM验证的限制,但是访问用户必须键入Telnet服务器的管理员组用户名和密码方能访问到。当访问到时,用户就可以执行Windows SHELL命令来管理远程主机了。

全面封锁Telnet服务

知道了黑客利用Telnet服务的手法,那么针对Telnet服务的防御办法自然也就有了。根据黑客利用Telnet服务的思路,笔者总结了防御Telnet服务四种方法。

1.管理好用户的密码

最简单的方法,管理好本机系统当中的用户名和密码,如果用户名和密码无法被黑客取得,那么黑客将很难利用到Telnet服务。

2.修改服务端口

从前面的内容中大家可以了解到Telnet服务使用的是系统的23端口,如果我们修改了Telnet服务的默认端口,无疑隐藏了Telnet服务的入口点,给系统带来了一定的安全保障。修改方法非常简单,首先打开“Telnet服务管理器”,同样选择当中的选项3“显示/ 更改注册表设置”,打开Telnet服务管理列表,选择当中的选项8“TelnetPort”,选择“Y”更改Telnet服务的默认端口23,把Telnet服务的端口改为1024或1024以上的端口,确定即可。接着重新启动Telnet服务,配置即可生效。以后用户只要键入“telnet IP 1024”即可访问到Telnet服务器。

3.禁用Telnet服务

大家知道要想使用Telnet服务必须开启Telnet服务,假如黑客利用缓冲溢出或者其它方法拿到了用户的CmdShell,那么他只要在中CmdShell下键入“net start telnet”即可启动Telnet服务,并且可以利用Telnet服务作为用户系统中的后门使用。有什么办法才能够阻止黑客开启Telnet服务呢?其实办法非常简单,禁用Telnet服务即可实现。用户打开“控制面板→管理工具→服务”在当中找到Telnet服务选项,双击就可以进入“Telnet服务属性”对话框,在“启动类型”中选择“已禁用”,单击“确定”按钮即可。

4.终极Telnet服务防御

禁用服务并不是防御Telnet服务的终极办法,针对这一限制,黑客专门有一些第三方工具,只要拿到了远程主机的CmdShell,他只须上传该工具到远程主机并运行它就可以突破禁用服务这一限制,开启Telnet服务。

所以针对这个问题,笔者最后给大家介绍一种最完美的防御方法。

首先打开“Telnet服务管理器”,同样选择选项3“显示 / 更改注册表设置”,进入Telnet服务管理列表,大家可以看到其中的选项4 DefaultShell”,前面我们已经介绍过这个选项的具体含义,“显示Telnet服务所对应的程序。默认值是: %Systemroot%/System32/Cmd.exe /q
/k”,这个含义的具体意思是什么呢?为什么当我们通过Telnet验证的时候能够取得远程主机的命令控制权限呢?

因为我们可以看到Telnet服务对应的默认程序是“%Systemroot%/System32/Cmd.exe /q /k”也就是系统根目录WinNT(或Windows)下System32目录下的Cmd.exe,我们都知道Cmd.exe是系统中的命令行窗口,那么当远程用户通过了Telnet验证的话,远程系统就会把自己的Cmd.exe调给远程用户使用,这就是为什么使用Telnet能够拿到远程主机命令控制权限的最根本原因。

讲到这里似乎防御方法也出来了,其实思路很简单,我们把Telnet服务所对应的默认程序改为一个未知的程序,这样即使黑客知道了远程主机的管理员用户和密码,突破了NTLM验证对方仍然无法拿到对主机的命令控制权,因为Telnet服务对应的默认程序已经不再是Cmd.exe。有了好思路我们就来具体使用这个方法。

选择Telnet服务管理列表中的选项4“DefaultShell”,就会提示我们是否更改Telnet服务的默认设置,选择“Y”,并且把Telnet服务对应的默认程序改为一个未知的文件,如:%SystemRoot%/system32/xiewei.exe,我的系统中根目录下根本不存在xiewei.exe文件,设置好之后重新启动服务。

设置好之后,我们来看一下它的效果。假如现在黑客知道这台系统的管理员用户Administrator,密码为12345,并且这台系统开启了Telnet服务,NTLM验证也被突破,那么使用“Telnet
IP”连接到这台系统,这时会提示键入远程系统的用户名和密码,证明已经通过了NTLM验证,在正确地输入用户名密码之后,系统仍然提示“失去了跟主机的连接”。

通过对这种方法,用户可以全面禁止系统中的Telnet服务

posted on 2005-09-27 20:53 计算机技术博客 阅读(282) 评论(0)  编辑 收藏 引用

公告

http://www.nuanbb.com

导航

常用链接

随笔分类(255)

常用链接