小心Windows旧版认证暴露你的系统帐户密码

当你正用浏览器访问网站时,Windows的一个古老漏洞就可能泄露了你电脑的用户名密码、微软登录信息,甚至还有你VPN的账号密码。

多年以前当Windows还在使用单核处理器和256M的RAM的时候,微软的员工想出了单点登录,也就是说你只需要登录一次,就能够访问所有的内部资源,无需再次访问。

当用户使用NTLM验证方式时,操作系统会发送域名、用户名和密码哈希值给对方主机。只有验证不成功时才会出现登录框。但是现在看来,这样的机制是不安全的。因此,微软修复了一些问题,有些修复了一般,还有一些根本没有修复,以至直到今天还能被利用。

这些没有修复的漏洞中其中一个就是系统会把账号登录信息传输给SMB服务器。SMB是一个使用非常广泛的协议,它能够访问网络共享的文件、文件夹、打印机等。

SMB的这个漏洞几乎每年都会提一次,去年的Blackhat US 2015也提过,但好像微软根本不打算修复的样子,安上最新更新的Windows 10仍然存在这个漏洞。

工作原理

当你用标准浏览器(IE或Edge)访问带有SMB资源的链接或者使用含有标准Windows API或者使用IE做HTML渲染的程序(如Outlook),SMB服务器会在你看到登录提示框之前就获取到你的账号密码。

攻击者只需网页或者邮件中添加一个指向SMB资源的链接或者隐藏的图片,你的账号信息就被窃取了。

不过有的时候危害也没这么大,因为黑客可能只能获取到你的用户名,用户名还有可能是某个默认的用户名,至于密码很多人可能还没设定。要想通过那些信息进行进一步的攻击难度很大。

不过如果涉及到企业的域帐号,危害就不同了。首先,从域的名字很容易判断电脑属于哪个公司,然后攻击者可以从hash爆破出密码,之后就可以尝试访问公司内部资源了。

有时候也不一定要爆破密码,如果你事先知道哪个host有NTLM验证的话,只要客户端连接上了你的SMB服务器的话,就可以对认证进行实时的代理。

Windows 8和微软账号

新的Windows版本都和互联网紧密结合,基本上不让你创建本地账号,而是要你创建一个微软账号。没有用微软账号就无法使用OneDrive和Cortana。

基本上这方面的研究都是在Windows 8之前做的,在Blackhat的ppt里面也没怎么提到微软账户。但其实,当使用Windows 8, 8.1和10系统时,传输的不是你本地账号的数据,而是微软账号的登录信息!

原本这个漏洞只能对企业用户产生大的危害,现在还可以用来针对家庭用户了。

新发现

当笔者在测试问题的时候,我发现3个旧的Windows 10与简化的SMB服务器工作正常(Responder, Impacket),但新安装的Windows不行。几天后我发现,NetBIOS和工作站名称得要相同才行。

但如果你连接了系统自带的,有MSCHAPv2认证的VPN连接协议(IPsec, PPTP, L2TP),Windows就不会传输你的账号密码了,而是传输VPN用户名密码hash!!我认为原因可能出在MSCHAPv2上,不过Wi-Fi WPA-Enterprise (PEAP/MSCHAPv2)协议下不行。

如何利用

现在我们知道只要我们试图打开远程SMB服务器上的任何文件或者目录,系统都会自动把账号密码或者VPN的账号密码传输过去。那我们应该如何利用呢?

大部分邮箱的web界面都会过滤file://,但是Yandex邮箱却没有过滤。Yandex是俄罗斯最大的邮箱提供商。这种攻击危害更大,因为它不仅能够把用户名和IP关联起来,还会把邮件也关联起来。

Chrome也支持file://,但是只会在复制粘贴或者直接在地址栏输入时才会生效。Chrome比IE流行很多,因此我们有必要做一些社会工程学来诱骗用户复制粘贴或者手动输入。

我们窃取到的信息可以用作很多用途。很多VPN服务商的管理账号和VPN连接本身的用户名密码是一样的,从IP地址我们在可以判断VPN是哪家供应商的,足够幸运的话我们就可以把别人的VPN拿来用了。

而拿到了微软账号,我们可以爆破hash,然后就可以访问它的OneDrive文件、Outlook邮件、Skype账号了。

如何自保?

别以为你不用IE不打开file://就安全了。你还是有可能会不小心运行某个不安全的程序。程序可能没有权限直接获取你的密码,但是它可以用标准函数如URLDownloadToFile()发送请求到远程服务器,你的账号可能就这样被盗了。

要想修复问题,我们可以新建一个reg文件,内容如下:

Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0]"RestrictReceivingNTLMTraffic"=dword:00000002"RestrictSendingNTLMTraffic"=dword:00000002

另一种方法是用防火墙把所有的SMB流量都禁掉。只需要把所有445 TCP端口的流量都禁掉,除了一下这些目标IP段:

192.168.0.0/16 169.254.0.0/16 172.16.0.0/12 10.0.0.0/8 fd00::/8 fe80::/10

有些ISP已经帮你把他们屏蔽掉了。

结语

作者已经把NTLM hash泄露检测加入到了WITCH?网站里了。小编使用IE浏览器确实发现了我的用户名:

大家也可以用IE或者Edge打开,看看你的账号密码有没有泄露?网站会尝试抓取你的密码并用一个小字典尝试爆破。连个VPN再访问成功几率更高哦

有些VPN服务商已经知道了这个问题,他们通过屏蔽445端口,或者在客户端软件屏蔽解决了这一问题。

很遗憾,大部分流行的爆破软件都不能破解NTLMv2哈希。Hashcat会跳过一些,John The Ripper with OpenCL也是,哪怕把密码都放在字典里了还是无法破解。oclHashCat, Hashcat 3.0和John The Ripper的non-OpenCL版本可以破解。

更多内容点击阅读原文可见!

*参考来源:Medium,FB小编Sphinx编译,未经许可禁止转载

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2016-08-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏区块链

20种功能强大的跨平台渗透测试工具

什么是渗透测试?用来测试软件是否存在例如安全方面的漏洞,如果已经存在,会不会被入侵。 渗透测试流程: 1、列出软件或系统潜在的安全漏洞。 2、根据漏洞的严重性进...

2437
来自专栏安恒信息

Cisco 多个安全漏洞预警

安全公告 2018年3月28日,Cisco官方发布了Cisco IOS和IOS XE软件存在多个远程代码执行漏洞的安全公告,其中严重的主要有3个: Smart ...

3167
来自专栏FreeBuf

如何用HERCULES绕过杀软

HERCULES是一个由Go语言开发的可以绕过防病毒软件的可定制的有效载荷生成器,只需简单的设置,就可以生成用于Metasploit的免杀payload,经测试...

2906
来自专栏技术点滴

告别S! S! H! 秒杀终端工具——FastLogin快捷登录安装步骤功能测试卸载功能介绍

题记:自从接触到“跳板机”的概念后,一直就被烦不胜烦的机器名,ip地址,用户名,密码折腾的死去活来,心说能有个小精灵随时帮我输入那些重复的登录信息就好了。我见过...

1131
来自专栏c#开发者

企业库推广

企业库推广  阿新 1. 概述 可重用的程序块库,用于解决共性的企业级开发过程中所面临的挑战 l 较低风险(经过实践验证的、精准的) l 降低成本(可充用) ...

36313
来自专栏FreeBuf

Metasploitable2使用指南

Metasploitable 2 Metasploitable2 虚拟系统是一个特别制作的ubuntu操作系统,本身设计作为安全工具测试和演示常见漏洞攻击。版...

5269
来自专栏张善友的专栏

使用Hystrix提高系统可用性

今天稍微复杂点的互联网应用,服务端基本都是分布式的,大量的服务支撑起整个系统,服务之间也难免有大量的依赖关系,依赖都是通过网络连接起来。 ? (图片来源:htt...

2135
来自专栏zhisheng

HBase 集群监控

为什么需要监控? 为了保证系统的稳定性,可靠性,可运维性。 掌控集群的核心性能指标,了解集群的性能表现。 集群出现问题时及时报警,便于运维同学及时修复问题。 集...

6068
来自专栏FreeBuf

渗透测试:内网DNS投毒技术劫持会话

本文仅供渗透测试技术学习及教学用途,禁止非法使用 最近一段时间一直在研究内网中嗅探的一些方法,各种方式的尝试,才找到一个比较靠谱的一种方式。dns投毒与中间人。...

3106
来自专栏杂烩

SSM项目搭建之MyBatis 原

    MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了goog...

762

扫码关注云+社区

领取腾讯云代金券