CVE-2020-0796:疑似微软SMBv3协议“蠕虫级”漏洞的检测与修复

0x1:背景

2020年3月11日,海外厂家发布安全规则通告,通告中描述了一处微软SMBv3协议的内存破坏漏洞,编号CVE-2020-0796,并表示该漏洞无需授权验证即可被远程利用,可能形成蠕虫级漏洞

0x2:受影响版本

Windows 10版本1903(用于32位系统)

Windows 10版本1903(用于基于ARM64的系统)

Windows 10版本1903(用于基于x64的系统)

Windows 10版本1909(用于32位系统)

Windows 10版本1909(用于基于ARM64的系统)

Windows 10版本1909(用于)基于x64的系统

Windows Server 1903版(服务器核心安装)

Windows Server 1909版(服务器核心安装)

0x3:漏洞检测复现


CVE-2020–0796-Scanner.png

如上图所示,在未停用 SMBv3 中的压缩功能时,我的测试机器win10 1909 18363.719是存在漏洞的,在powershell停用 SMBv3 中的压缩功能后,再次检测就不存在了,暂时只有这个缓解措施,还没有补丁。

0x4:漏洞检测工具

python版本

来源:https://github.com/ollypwn/SMBGhost/blob/master/scanner.py  

import socket
import struct
import sys

pkt = b'\x00\x00\x00\xc0\[email protected]\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00$\x00\x08\x00\x01\x00\x00\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00x\x00\x00\x00\x02\x00\x00\x00\x02\x02\x10\x02"\x02$\x02\x00\x03\x02\x03\x10\x03\x11\x03\x00\x00\x00\x00\x01\x00&\x00\x00\x00\x00\x00\x01\x00 \x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\n\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00'
sock = socket.socket(socket.AF_INET)
sock.settimeout(3)
sock.connect(( sys.argv[1],  445 ))
sock.send(pkt)

nb, = struct.unpack(">I", sock.recv(4))
res = sock.recv(nb)

if not res[68:70] == b"\x11\x03":
    exit("Not vulnerable.")
if not res[70:72] == b"\x02\x00":
    exit("Not vulnerable.")

exit("Vulnerable.")





nmap版本:

#!/bin/bash
if [ $# -eq 0 ]
  then
    echo $'Usage:\n\tcheck-smb-v3.11.sh TARGET_IP_or_CIDR {Target Specification - Nmap}'
    exit 1
fi

echo "Checking if there's SMB v3.11 in" $1 "..."

nmap -p445 --script smb-protocols -Pn -n $1 | grep -P '\d+\.\d+\.\d+\.\d+|^\|.\s+3.11' | tr '\n' ' ' | tr 'Nmap scan report for' '@' | tr "@" "\n" | tr '|' ' ' | tr '_' ' ' | grep -oP '\d+\.\d+\.\d+\.\d+'

if [[ $? != 0 ]]; then
    echo "There's no SMB v3.11"
fi


0x5:漏洞缓解措施

powershell 中运行如下命令:

# 停用
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" DisableCompression -Type DWORD -Value 1 -Force
# 恢复
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" DisableCompression -Type DWORD -Value 0 -Force

0x6:漏洞修复

微软昨日发布了更新补丁,下载地址:

https://www.catalog.update.microsoft.com/Search.aspx?q=KB4551762

也可以自行在Windows的更新管理界面手动更新,也可以更新下载补丁.


Mrxn 发布于 2020-3-12 03:18

win10防止桌面图标,文件或者文件夹被误删除修改

此文是写给手残片吃多了的人,比如我。。。昨天手残把桌面的一个文件夹删除了,里面有我的报告啊。。。。TMD。。。而我的回收站是会自动清除的!!!

好吧,重新写了上交。。。但是这件事不能就这么算了。。。我怕以后还有手残的时候(肯定会有的!)就找有什么方法可以给这些文件夹/文件/图标加上一道锁,当我要删除的时候提示一下,搜了一下发现问题的时间很久了,都是10年左右的,如下这种:

shotpic_2018-01-04_10-12-23.png

而我用的是win10,肯定不适用,但是思路可以借鉴啊,但是找了半天,没有发现什么所谓的web锁定。。。最后想到了,通过控制权限应该也可以的,说干咋就干。。。先新建一个文件夹,然后右键--授予访问权限--删除访问--停止共享,

shuxing.pngshanchu.png

tingzhi.png

然后在文件夹的属性--安全,选项卡里面把你的账户用户名的权限里面的完全控制和修改这两个授权去掉,

xiugai.pngok.png

你再次用DEL或者右键删除的时候就会弹出提示框确认,需要管理员权限。。。

tishi.png

注意--warning:这中设置方法bu适用使用shift+del 组合按键的永久删除。

标签: windows win10

Mrxn 发布于 2018-1-4 02:02

解决AMD双显卡win10开机黑屏很久,关闭ULPS

我的本本加了个256的SSD,一直用的win10 速度速度都还可以的,但是前两天自动更新后(AMD),我就发现电脑开机特别慢啊,之前都是几秒钟就到了刷指纹的界面,手指一扫就到桌面了,农企给我自动更新后,开机就要黑屏几十秒。。。。一开始还以为电脑中毒了,系统坏了啥的。。。折腾就不说了。

后来在搜索到了一些百度经验的文章,很多都没用。。。。其中有两篇说的就是按摩店(AMD)的双显卡,win10升级后开机慢。果然,禁用ulps后,开机立马好了,终于恢复了几秒钟!

注:这个方法只适用于双AND显卡的电脑哈,其他的没有测试,你也没有ulps这个东西,哈哈。

下面说一下方法哈:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E968-E325-11CE-BFC1-08002BE10318}\0000]
"EnableULPS"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E968-E325-11CE-BFC1-08002BE10318}\0001]
"EnableULPS"=dword:00000000



把上面这段代码保存为后缀为reg的格式,比如ULPS_Disable.reg 双击导入注册表,重启即可测试效果。

下面这段代码就是开启ulps的,使用方法同上:


Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E968-E325-11CE-BFC1-08002BE10318}\0000]
"EnableULPS"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E968-E325-11CE-BFC1-08002BE10318}\0001]
"EnableULPS"=dword:00000001

这是作者原话:

This zip contains two files:

ULPS_Disable.reg
ULPS_Enable.reg

Basically it will just change the value of "EnableUlps" in the registry from "0" (disable) or "1" (enable) at locations:
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E968-E325-11CE-BFC1-08002BE10318}\[b]0000[/b]]
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E968-E325-11CE-BFC1-08002BE10318}\[b]0001[/b]]

Double click the one you want and reboot your computer.

ULPS stands for "Ultra Low Power State".

Disabling it allows your system to overclock. Specific drivers may still be required.

 -HTWingNut


百度经验的很多链接失效了,我通过搜索作者的名字,找到了他的网盘,哈哈,然后找到了这个,其实没有找到之前,我也解决了,自己手动搜索注册表修改一样的。不过有上面这两个脚本还是快多了啊!so,分享在这里,以方便有需要的朋友。


Mrxn 发布于 2016-12-7 05:46

win7 win10绕过系统密码添加用户登陆

3.jpg

[blue] 不使用任何工具/软件来绕过win7、win10的密码从而添加新账户/修改本身账户密码来登陆系统 ,这个方法在网上也有过,今天呢博主专门测试了一下,是可以的,所以发出来,共享。方便大家在忘记密码而又没有工具的时候登录系统。下面就开始吧:[/blue]

0x001

首先我们让电脑重启下,并且还得让他进入修复模式

最简单的方法就是长按电源键,然后直到他强制关机,再开机,哇哦,进入修复模式了呢!

0x002

然后你就看到了非正常关机的修复界面,蓝底白字那个,我不用win10就不截图了,自己感受,然后别点重启,点高级设置!

0x003

然后,又有三个选项,不用管,看图看得懂吧?选择第二个,那个螺丝刀和扳手的自动排查图标!

0x004

这里windows会让你选择从镜像恢复或是命令行提示符,机智的你是不是肯定会选择命令提示符呢?

然后你就想执行命令了是吧?添加账号了是吧?提升为管理员了是吧?

呵呵。。。那我还写着文章干嘛?事实证明是没用的,应为这个命令行无法为正常windows系统添加账户(说的太深,自己理解去吧)

4.jpg



这个时候我们用命令行这样执行:

c:
cd Windows\System32\
rename sethc.exe bak_sethc.exe
xcopy cmd.exe sethc.exe
exit

 嗯哼,打完收工。。。。明白了吧,把粘滞键改成cmd。


然后重启电脑,看到登录界面,要我输入密码???按五下shift,CMD弹出来了吧?呼呼。

这个时候,你可以去添加账户了,绝对是添加给当前系统的。

net user p0tt1 p0tt1666 /add

net loucalgroup administrators p0tt1 /add


然后?然后就进去了...进去了...去了...了...

[quote] 注:代码和过程其实都差不多,博主比较懒,不想打字,复制的,原文:http://p0tt1.com/?post/1lyzhz [/quote]



Mrxn 发布于 2016-2-24 10:45

个人资料

    blogger

    Mrxn

    一个关注网络安全,热爱黑客技术的好青年!

搜索

最新评论