恶意黑客发封电子邮件就能诱使你的Windows系统到远程服务器上验证身份——交出系统口令散列值。不信?试试就知道!
如果还没采用比大多数安全专家建议的长得多的口令,那你最好注意了:只需要一封电子邮件,嵌入里面的链接就可以促使你的系统向远程服务器发起身份验证,作为验证尝试的系统口令散列值就是远程服务器的囊中之物了。相信我,破解散列加密没那么难的。
自动化集成Windows身份验证是很有必要的单点登录(SSO)功能,尤其是对本地资源和受信服务器而言。该功能可使用户在登录公司环境中不同服务器时省去重复的登录凭证提交操作。当前主流浏览器绝大多数都不同程度地支持这一功能。
1990年代末,恶意黑客滥用该功能捕获用户的Windows身份验证凭证。他们向用户发送电子邮件,诱使用户点击其中链接(或促使其电子邮件客户端秘密响应内嵌不可见单像素Web信标),然后用户的计算机就会悄悄连接上流氓服务器了。只要Windows集成身份验证功能开启(通常都开启的),用户的计算机便会向流氓远程Web服务器发送用户的企业登录凭证。
事实上,发送出去的是用户的局域网管理器(LM)或 Windows NT LM 网络身份验证挑战响应,从中可以计算出用户的LM或NT散列值。
微软后来禁用了用户用Windows身份验证凭证向局域网外服务器的默认发送,在 IE 4 或 IE 5 时启用了该新的默认发送功能。如今,你可以打开IE高级设置(互联网选项->高级->启用集成Windows身份验证),勾选或取消该功能。很多人都认为这样就阻止了上述攻击。
但事实往往打脸,如今仍有很多方法可以诱使Windows(及其他支持Windows集成身份验证的软件程序,比如谷歌Chrome)向远程服务器发送NTLM网络身份验证挑战。最起码,以 file:////<serverhostaddress>/<anyfilename> 的格式嵌入一条链接即可,例如:file:////contoso.com/index.html。
将上述例子中的 contoso.com 替换成有效远程服务器域名,浏览器就会尝试通过 TCP 445 端口上的NTLMv2连接(默认)向远程服务器发起SMB/NetBIOS验证。如果开启NetBIOS监听,该监听进程会以有效SMB/NetBIOS挑战响应NTLMv2连接,服务器便会获得客户端的NTLMv2挑战响应,进而从中计算出用户的NT散列值。剩下的就是破解该散列或者执行重放攻击的事儿了。
除非禁止 TCP 445 端口出站流量,否则无论IE中Windows集成身份验证设置是否勾选,结果都是一样的——用户NT散列值被获取。
只要点击内嵌的 file://// 链接,用户的NTLM响应挑战确实会被发送至远程服务器。这一攻击适用于:
远程攻击者将会获得你的主机名、域名和NTLMv2挑战响应,且大多数企业环境中都有效。这可真是个不幸的消息。
网络安全分析师 Rob Tompkins 对很多软件进行了电邮链接盗口令的尝试。他发现,即便封锁了企业网络的 TCP 445 端口以阻止恶意SMB/NetBIOS出站连接,只要某移动设备没在本地防火墙中封禁该端口,当该设备离开企业网络,其NTLM挑战响应也会成功传输到远程服务器上。这是个很重要的发现,Rob还找了个AlienVault规则/特征码来识别此类攻击。
首先,下个基于Python的Responder程序。Responder是个超有用的工具,可以用来观察基于网络的口令散列盗窃。该工具具备自动“中毒”LLMNR(微软Windows本地名称解析协议)、NetBIOS和多播DNS(mDNS)的能力,可以当做流氓服务器使用(Web、NetBIOS、SQL、FTP和LDAP)。网上有很多视频教人如何使用Responder中毒和捕获NTLM挑战响应。
如果不想自己花时间设置Responder,可以下载个 Kali Linux,然后如下操作:
在Windows机器上:
想要破解散列值,回到Linux机器上:
用黑客工具验证各种漏洞还挺有意思。当然,最主要的是学到了点击电子邮件中的链接可能会惹出大麻烦,从而在现实生活中不再犯蠢。
微软2017年11月的补丁:
https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/ADV170014
Responder地址:
https://github.com/SpiderLabs/Responder
Kali Linux 地址:
为什么可以通过电子邮件捕获口令散列?
可能的解决方案
安装微软补丁
采用强口令并封禁未授权身份验证端口
如何测试该漏洞
本文来源:安全牛
发表评论: