《网络攻防技术(第2版)》 —3.2.3 Windows系统远程口令猜解

网友投稿 674 2022-05-29

3.2.3 Windows系统远程口令猜解

《网络攻防技术(第2版)》 —3.2.3 Windows系统远程口令猜解

Windows系统提供了两种远程访问的方式,一种是通过IPC(Inter-Process Communication,进程间通信)管道进行远程管理和文件共享,另一种是通过远程终端登录,它们都利用系统的用户名和口令进行远程身份认证。可以针对这两种访问方式进行远程口令猜解。

1.基于IPC的远程口令猜解

IPC是Windows进程间通信的一种方式,是系统的管理机制。Windows系统启动的时候建立默认的命名管道,可以通过验证用户名和密码引用这些管道,进而得到远程命令执行和远程文件操作的权限。如果系统启用文件和打印共享,则所有的逻辑磁盘(c$,d$,e$……)和系统目录Winnt或Windows(admin$)都会处于共享状态。上述机制设计的初衷是为了方便管理员的管理,但攻击者会利用IPC$,访问共享资源,导出用户列表,并进行密码探测,从而获得更高的权限。

在建立IPC连接的时候,连接者可以不输入用户名与密码,这样默认建立的连接称为空连接。空连接不可以进行管理操作,但可以得到目标主机上的用户列表,得到了用户名,就可以针对用户名进行进一步的口令猜解。

远程的IPC连接的文件传输所使用的网络协议是NetBios,139或445端口开启表示应用NetBios协议,如实现对共享文件/打印机的访问,因此IPC连接是需要139或445端口来支持的。

在Windows 7版本以前的系统中,使用如下命令可以和目标主机建立一个合法的IPC连接:

net  use  \\目标主机IP地址\ipc$  "口令"  /user: "用户名"

在Windows系统中,虽然使用空口令建立远程ipc$连接仍然会返回“命令成功完成”,但继续进行操作就会报错,如图3-7所示。

图3-7 IPC连接

攻击者通过程序不断尝试,就可以破解目标系统中的弱口令。在实际入侵过程中,有很多自动化的工具可以帮助攻击者进行口令猜解。为了防范基于IPC的远程猜解攻击,应禁止系统中的IPC$空连接,关闭139、455端口。

2.基于Terminal Service的远程口令猜解

自Windows 2000 Server以来的Windows服务器自带的Terminal Service(终端服务,TS)是基于RDP(Remote Desktop Protocol,远程桌面协议)的远程控制软件,它的速度快、操作方便,也很稳定,是一个很好的远程管理软件,但是因为这个软件功能强大而且只能通过口令保护,所以有很大的安全隐患,一旦入侵者拥有了管理员口令,就能够像操作本机一样操作远程服务器,终端服务默认在3389端口进行监听,它的存在使得攻击者将口令猜解作为一种重要的攻击方式,拥有口令的终端服务器称为3389肉鸡。

TSGrinder是一个用于TS服务的暴力破解工具,它能够通过TS对本地Administrator账户进行字典攻击。TSGrinder使用TS的ActiveX控件来进行攻击。尽管这个ActiveX控件经过特殊的设计可以拒绝对口令方法的脚本访问,但通过C++中的Vtable绑定仍然可以访问ImsTscNonScriptable接口,这允许为该控件编写自定义的接口,于是攻击者就可以对Administrator账户进行口令猜测,直至猜测出口令。图3-8演示了TSGrinder的口令猜解过程,图3-9演示了使用远程桌面登录目标服务器的过程。

图3-8 TSGrinder口令猜解

图3-9 远程桌面登录目标服务器

默认情况下,TSGinder搜索的是管理员的口令,可以用-u开关来指明猜测其他用户名的口令。当TSGrinder用在Windows Vista或Windows 7系统中时,需要把注册键值HKEY_CURRENT_USER\Software\Microsoft\ Windows\Windows Error Reporting\Dont Show UI设置为1,以防止在试用每个口令后系统崩溃。最后,可以使用如下的脚本来尝试credentials.txt文件中的每一个口令,而不是让TSGrinder自己来执行。

C:\>FOR /F %i in (credentials.txt) do echo %i>a&tsgrinder -w a -u Administrator -n 1 192.168.230.244>>out

要防止通过终端服务进行口令猜解,一方面要设置安全性较强的口令,另一方面要经常检查,从而发现口令猜解的尝试。以管理员身份可以进行终端服务登录的日志审核,在管理工具中打开远程控制服务配置(Terminal Service Configration),点击“连接”,右击想配置的RDP服务,选中书签“权限”,点击左下角的“高级”,加入一个Everyone组,这代表所有的用户,然后审核他的“连接”“断开”“注销”和“登录”的情况,这个审核是记录在安全日志中的,可以从“管理工具”→“日志查看器”中查看。如果有对终端服务的大量不成功的登录尝试,则可以认为发生了口令猜解的攻击。

通用安全

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:深度详解企业CRM系统,体验软件快速开发平台
下一篇:Linux系统-Shell脚本基本使用(数组、函数、字符串处理)
相关文章