前言
从Windows10 v1903/Windows Server v1903开始,微软在协议SMB3.1.1中开启了对数据压缩传输的支持,但是由于SMB没有正确处理压缩的数据包,在客户端/服务端解压数据的时候,没有对COMPRESSIN_TRANSFORM_HEADE结构进行安全校验,导致后续代码发生一连串整形溢出、越界读写等漏洞,SMB远程代码执行漏洞(CVE-2020-0796),该漏洞主要是因为在最新的Windows 10系统中,处理SMB3.1.1协议的压缩消息时,对头部数据没有做任何安全检查,从而引发内存破坏漏洞,黑客利用此漏洞,可无须任何权限的情况下,即可实现远程内核代码执行,此漏洞被公布后不久,国外安全研究人员,利用此漏洞开发出了本地提权利用程序。
样本信息
捕获一例在野的利用SMBGhost本地提权的攻击样本,样本在2020年5月21号使用了无效的数字签名信息,如下所示:
该数字签名的详细信息,如下所示:
详细分析
对样本进行详细分析,使用GlobalAlloc函数分配内存空间,然后解密出第一层的ShellCode代码并执行,如下所示:
解密出来的第一层ShellCode代码,如下所示:
第一层ShellCode代码调用VirtualAlloc分配内存空间,如下所示:
再解密出第二层ShellCode代码,如下所示:
执行第二层ShellCode代码,然后在分配内存空间,解密出SMBGhost本地提权核心代码,如下所示:
然后进行内存替换,执行解密出来的SMBGhost本地提权核心代码,如下所示:
跳转执行到SMBGhost本地提权程序的核心代码处,如下所示:
核心的SMBGhost本地提权代码,使用了是国外安全研究人员公布的一个开源的代码,如下所示:
总结
全球各地的黑客组织都在不断更新自己的网络攻击武器,就像WannaCry勒索病毒一样,在永恒之蓝系列漏洞被曝光后的一个月不到的时间里,就被WannaCry勒索病毒利用,在全球范围内爆发,可见黑客组织的行动之快,无时无刻不在研究最新的攻击手法与攻击武器,现在全球网络安全形势越来越严峻,各种网络犯罪组织都在通过发起网络攻击行为获取利益,网络安全在未来会越来越重要,地下黑客组织的攻击活动从来没有停止过,安全研究人员需要持续不断的关注最新的安全动态,及时掌握全球黑客组织的攻击行为