在本文中,我们展示了一种新的攻击方法破解Windows的SSO(Single Sign On)特性,影响了Windows的所有版本包括最新的win10 微软的SMB(Server Message Block)协议,内网攻击SMB技术已经出现很久了,这种新型的攻击延伸到了外网。

这项技术被广泛认为是首个涉及win10和其浏览器Spartan的攻击。

0×01 背景介绍
SMB按理说应该是在内网中相当可信的网络协议,它是内网渗透测试的一部分,经常被假设攻击来自外网,然而并不是这样。本文首次探求了外网发起攻击的可能性,这自然就需要一个可靠通杀各版本window浏览器的利用代码,进一步展望此类攻击,穿过浏览器延伸到用户,并利用已有的影响修改顽固的网络配置。

0×02 SMB的小历史
SMB协议是一个网络文件共享协议,基于NetBIOS,TCP/IP和IPX/SPX 。最初由IBM在1984年设计,如今在网络中随处可见。我们只专注于微软实行的协议——有很多复杂且特殊的扩展默认在自Window NT 4.0开始的所有版本。如果说之前的版本主要用NetBIOS,从Window2000 SMB开始默认用UDP 137/138端口,TCP137/139,TCP 445端口(Direct SMB)

0×03 认证概览

SMB是一个跨平台的协议,Windows和Unix系统都支持。既然SMB3.0协议允许WIndows域间文件共享,这就需要一个认证算法。最初是基于LM和NTLM哈希认证,这些函数都非常的危险。我们主要来看NTLMv2认证,NTLMv2 是一个身份验证协议,该协议基于一个用于确定所提供凭据的真实性的质询/响应机制。
最初的关于SMB安全的研究来自Cult of the Dead Cow 由Sir Dystic 在Lantancon 会议展示,漏洞编号为CVE-2008-4037 。然而此研究只关注了NetBIOS协议,无关互联网线路,完整的利用代码将其质询/响应机制转播到第三方服务器。

从那以后各种此类攻击相继发生,利用SMB转到UDP和TCP,还有基于https
网关接受NTLM的认证攻击。Metasploit 攻击框架如今有相当多的关于SMB协议的攻击列表。
有趣的是实行开放的SMB连接还要感谢其他的网络服务,例如SQL Servers。此类攻击为安全界提供了新的攻击策略和方向。
最后,SMB和其他的复杂的网络协议一样因其众所周知的bugs和溢出而漏洞百出。因为SMB的分析大部分在内核级别,值得注意的是远程系统解决方案之前已经实现了,在CVSS有最多10的评分。

0×04 French Kiss attack
French Kiss attack是已存在LAN攻击的扩展,就是工作在互联网下。从描述实验环境的建立开始,包括从公网IP网址SMB共享上装载SMB镜像。
1、目标机器是win7 64位,和win10 预览版 (blackhat时win10只有预览版) 两个默认浏览器是Internet Explorer 10 和Spartan 。
另外的服务器在EC2上运行Linux 还安装了一个Samba服务器。
2、默认浏览器用户认证设置
两个浏览器上的用户认证设置为默认即可。正如微软文档上所说,它们设置浏览器希望自动记录本地的网络共享,但是当试图链接互联网上的远程文件共享服务器时需要提供凭证。
3、接近SMB
假设没有明确的SMB信息,我们简单的用浏览器载入一个网页,这个网页包含image 标签,URL有file://前缀 暗示着远程文件包含。我们另外打开抓包软件监听目标host的网络活动。

BlackHat议题: SMB不只是共享你的文件

当浏览器载入样本html文件时,远程的Linux Samba 共享没有实行,Windows也没有管用户要凭证。乍一看好像IE从未尝试过链接远程的SMB共享。
抓包提示了更多信息,如果图片没有显示,很可能是正在从网络远程共享上下载,且提供了window的登录凭证。
sniffer抓包的细节,在本地网络上,IE明文传输了用户名和一个window登录密码的NTLMv2 hash 。

BlackHat议题: SMB不只是共享你的文件

4、(Epic)显式并行指令计算 single sign on 设计缺陷
这个漏洞的触发很是不起眼,实在是不应该的失误,这在Windows上是非常严重的漏洞。坦白讲,不仅French Kiss 攻击没有特殊的利用代码(就几行html代码),而且SSO的失败在于IE默默发送登录凭证,甚至涉及活动目录网络。如果机器连接到了一个域,那对于大多数的相关用户不是一件好事。这个漏洞触发可用在至今所有版本的windows,IE浏览器上。
5、破解hash
French Kiss 攻击需要攻击者抓取Windows SSO 的用户名和NTMLv2的hash密码。作者用了五个GPU卡的设备,每秒尝试24亿个hash,对于范围[a-z A-Z!@#$%&]内的八位字符最多需要2天五小时,
6、强化配置:SMB数据包签名
自从Windows NT4.0的Service Pack 3 和Windows 2000 开始 SMB支持在每个数据包签名以确保没有在传输中被篡改。这个选项因为性能原因默认禁用(微软官方文档提及此安全选项将使性能下降10%到15%)
然而,French Kiss 攻击无视数据包签名,微软确实防止了替换SMB连接,但是当连接到互联网时,凭证依然会作为认证的一部分被发出,数据包签名并没有提供额外的安全性。

0×05 Menage a Trois 第三方攻击
第二种SMB利用途径是在攻击者控制的SMB服务器和受害者客户端之间替换连接为第三方接受NTLMv2认证的机器并且受害者网络的一部分(因为需要接收那些合法的凭证)。最初Cult of the Dead Cow 执行在NetBIOS/UDP上的利用代码已经被扩展到了LAN协议。事实上,从攻击者展示的攻击方案看来,所有的利用代码都可以不经过任何更改利用在IP上。
假设攻击者可以在公网IP上发现一个远程的SMB共享和一部分受害者。这些足够了,典型的SMB替换允许攻击者在目标SMB服务器上执行任意远程命令。还要感谢PsExec,其最强大的功能之一是在远程系统和远程支持工具(如 IpConfig)中启动交互式命令提示窗口,以便显示无法通过其他方式显示的有关远程系统的信息。

贴个百科 PsExec
这种方式因为明显的安全原因看起来很罕见,但是以此延伸出替换https的SMB(https连接一个基于NTML认证的交换机)已经广泛存在了。在黑暗谷歌Shodan上搜索可以搜到上千个这样的服务器,还好多都是中国的。

BlackHat议题: SMB不只是共享你的文件

我们想将存在的替换攻击扩展到终端服务器上,以此完全的模拟远程用户。事实上,Windows从Windows Server 2008开始就允许以https使用终端服务器(感谢TS Web Access)。因为核心认证机制还是基于NTLMv2,攻击者完全可能在网上创建一个傀儡SMB共享然后将连接都转到受害者内网上的TS Web Access并且获得完整的远程桌面权限。

0×06 其他触发方式

如果说浏览器是此类攻击的明显目标,任何Windows客户端接受文件file://或者//前缀都很危险。作者也还成功在Outlook中触发了漏洞。
Cylance团队之前发布了一个软件漏洞的列表和这个议题很像,包括Adobe Reader 和Apple Software Update(iTunes),IE浏览器,Windows Media Player,还有两款常用IDE pycharm 和PHPStorm,居然还有JDK 8u。
freebuf也曾经有过报道
Cylance官方的链接

0×07 如何防护
微软官方公开的文档建议网络管理者外围冻结SMB传输,关闭公开的SMB包端口137/138/139/445。
这是一个好的措施,但是在移动桌面的时代不再有效,如果员工把笔记本带回家外网办公,同样会在以上两种攻击方法中沦陷。
除外围防火墙之外,我们还提倡用户基于强大的Windows防火墙(至少是Windows XP SP2)通过强制过滤端口(137/138/139/445)和阻拦任何通过上述端口的IP包,然后有一个公网IP作为目标host,我们提供一个更坚固的保护。
杜绝弱口令,密码至少超过9位,提升密码复杂度可以抵御French Kiss 攻击但是对SMB替换没用。
最后,打开SMB数据包签名可以缓解SMB替换,但是因为新的SMB连接之后只终止一次发到互联网的用户凭证,所以它不能完全防御以上任何一种攻击。

总结
我们详细讲述了SMB扩展攻击允许窃取凭证和来自网络的用户伪造,因为实际上内网部分Windows设备都是以IE为默认浏览器,明显是活动目录网络的一部分,漏洞的重要性不言而喻。
参考文档链接   密码: tep5

*本文作者:月尽西楼,本文属FreeBuf原创奖励计划,未经许可禁止转载。

源链接

Hacking more

...