|
IPC$ 的概念
只有在WINDOWS 2000的新概念,在Windows 98系统下是没有的。微软的定义是:IPC$
共享用于通过使用命名管道在网络程序之间通信的客户机与服务器之间的临时连接。它主要用于远程管理网络服务器。
最容易理解的概念,它是WINDOWS
2000主机之间通信的基础,可以想象但不是很贴切的理解是两个主机间通信的链路,而我们所有获取到的信息,都是通过这条线路传递给我们的。通过这条管道,我们可以获取到对方的用户列表、共享资源列表等。
一、IPC和空连接
我们使用最直接的方式来与一台Win2K的主机建立空连接: net use
\\192.168.1.100\IPC$ "" /user:""

以上我们和一台Win2K的主机建立了空连接,看似net use
\\192.168.1.100\IPC$ ""
/user:""命令中我们使用了空的用户名来与一台主机建立了连接,这样我们才可以在连接状态下获取对方的一些信息,从而进一步猜测和入侵这台主机,所以与对方连接是有必要的,而此处使用的是看似无须用户名和密码验证的连接。
空连接的原理我们解释一下,实际上只是Win2k使用用户ANONYMOUS LOGON
让我们连接(并非“空”连接,只是看似)。这样我们与这台主机相连上面我们解释过空连接建立后,我们就可以进一步获取这台主机上的信息了。
下面我们使用工具netletmein来获取目标主机的用户列表:

进一步的可以查看有没有弱口令用户:

以上没有能够使用newletmein得到弱口令(此处newletmein只检测空口令和用户名密码相同的弱口令)用户。
二、寻找可以建立空连接的主机 并 收集用户列表。
一台一台主机的手动测试任务十分繁重,其实在不借助其他工具的前提下我们直接可以使用 for
命令来自己建立一个自动脚本,来自动帮助我们发现这些主机,例如: for /L %x IN (1,1,255) DO net use
\\192.168.1.%x\IPC$ "" /user:""

也可以遍历主机的用户列表,for /L %x IN (1,1,255) DO
newletmein \\192.168.1.%x -all -d:

三、暴力破解用户口令
由于newletmein只猜测简单弱口令,如果没有用户符合空口令和同名密码,我们可以使用其它的字典软件,虽然这种办法并不十分可取,但是不妨在停步不前的时候试验一下。
首先我们看看字典生成工具,诸如此类的软件很多,我们只是试验性的用一种简单的字典生成工具:brbook

字典生成后我们使用SMBCrack来进行暴力破解。SMBCrack是小榕为流光5开发的测试原型,和以往的SMB(共享)暴力破解工具不同,没有采用系统的API,而是使用了SMB的协议。Windows
2000可以在同一个会话内进行多次密码试探。这个版本在扫描windows 2000的密码时,速度大约是流光的4-5倍。

当我们知道了Administrator的口令后,你也就获取到系统的控制权了。
四、防御IPC空连接漏洞的方法
从刚才的原理上,大家应该已经发现应该从两方面着手解决:
一:弱口令,不够复杂的口令和弱口令很容易让管理员失去系统控制权,所以好的口令起码可以对类似猜测和穷举起到一定作用。
二:IPC空连接被建立后,会被黑客枚举用户列表和信息,对此以往有一些管理员认为删除掉IPC$这个连接可以防止,其实不需要如此复杂(因为需要在注册表中停止IPC的共享、而系统默认会在每次系统启动后自动开启IPC$),最有效的办法其实应该在[本地安全策略]中,选择[不允许枚举SAM帐号和共享](见下图),以上两点做到,也就解决了IPC的空连结漏洞。


返回页首
|