作为一名渗透测试人员,我想做的第一件事是获取一个内部网络的系统访问权限。为了达到这个目的,其中一种方法是对NetBIOS-NS或它的前身LLMNR广播消息做出应答,告诉请求主机我们的攻击者主机就是它们想要连接的主机。
那么NetBIOS-NS和LLMNR是什么呢?
NetBIOS和LLMNR都是在DNS失败时用于识别一个网络中的主机的服务。
当一个网络上的主机不能通过DNS解析主机名的IP地址时,LLMNR和NetBIOS就会向网络发送广播消息询问网络上所有主机这个主机名是否是它们最初请求的。
作为一个攻击者,我们所要做的就是倾听这些请求,然后做出应答,告诉请求主机(受害者)它们正在寻找的是我们的攻击者机器,并获取它们的连接请求。
攻击方法
Metasploit有两个模块是我喜欢用的,我经常用来捕捉受害者机器请求连接时发送的凭证:
auxiliary/server/capture/http_ntlm
auxiliary/server/capture/smb
这两个模块在我们的攻击者机器上设置监听服务来对SMB和HTTP 做出应答,从而获取NTLM / LM哈希表。
我们需要做的是请求受害者机器的这些连接,并引导它们到我们的攻击者机器上来,然后我们就可以捕获这些包含NTLM / LM哈希表的请求。
这可以通过Metasploit的下面两个模块来实现:
auxiliary/spoof/llmnr/llmnr_response
auxiliary/spoof/nbns/nbns_response
我建议你深入了解这些模块的选项,并理解每一个的功能和使用方法,这在本文中并未涉及。
在下面的图1中,你会注意到我有两个虚拟机。左边的虚拟机是我的攻击者机器,运行Metasploit框架。右边的Windows7虚拟机是受害者的机器。这些虚拟机都运行在本地网络上,所以在虚拟机网络内它们是逻辑上相邻的。
在攻击者机器上的Metasploit框架内我已经做了以下设置:
所有四个模块都已经设置和配置为侦听或响应传入的广播消息,我可以用我的受害者主机Windows7虚拟机来模拟一台主机试图访问网络资源。
图1:获取哈希表
补救措施
NetBIOS-NS和LLMNR:
应该注意的是,考虑到足够的密码强度,这种形式的攻击不一定会获得访问权限。因此Rapid7建议,第一步是确保所有账户都配置了强密码,然后考虑在所有Windows主机上禁用NetBIOS和LLMNR协议。
禁用这些协议将限制黑客用来执行一个恶意攻击或捕获Windows身份验证流量的能力。
对于XP主机或者更老的机器,可以在每个Windows主机的网络适配器属性中禁用NetBIOS。对于Windows 7以上的机器,可以通过组策略来禁用LLMNR协议。
最后,在部署生产环境之前,确保安全配置标准都已经正确应用到了所有桌面系统中。如果桌面系统不存在安全配置标准,那么,请为它们创建。
Metasploit并不是唯一拥有这个功能的工具。
SpiderLabs的开源工具responder.py是另一个可以利用NetBIOS-NS和LLMNR中这个漏洞的工具。
Wesley McGrew的工具nbnspoof.py是一个古老的对NetBIOS-NS进行欺骗/施毒的学校工具。
捕获NTLM / LM哈希表是试图访问网络的比较重要的第一步。我在这篇文章中列出的Metasploit的两个辅助服务模块都有一个设置,该设置可以将捕获的哈希表写成Cain & Able或John the Ripper的格式,从而更容易地对捕获的哈希表进行进一步的破解。
还没有评论,来说两句吧...