复现win7永恒之蓝漏洞
介绍
想象一下,如果你的电脑在你什么也不知道的情况下被别人使用,你的信息被别人一览无余,甚至他可以随意操控的电脑,那将是多么可怕的事情。
在2017年,全球范围内的许多组织和机构都遭受了永恒之蓝攻击的影响,包括英国国家医疗服务体系(NHS)、西班牙电信公司等。这些攻击造成的损失是巨大的,包括数据丢失、系统瘫痪等。此外,不法分子还通过改造“永恒之蓝”制作了WannaCry勒索病毒,使全球大范围内遭受了病毒的攻击,许多学校、大型企业、政府等机构都受到了影响。
永恒之蓝漏洞利用Windows系统中的SMB(服务器消息块)协议漏洞,通过该漏洞,攻击者可以获取系统的最高权限,从而控制被入侵的计算机。这个漏洞最初由美国国家安全局(NSA)发现,并用于其网络间谍活动,但后来被名为“影子经纪人”(Shadow Brokers)的神秘团体泄露。
漏洞原理
SMB(Server Message Block)是一个协议服务器信息块,是一种客户机/服务器、请求/响应协议,通过SMB协议可以在计算机间共享文件等资源。SMB协议工作在应用层和会话层,可以用在TCP/IP协议上,使用TCP 139和445端口。
永恒之蓝漏洞的原理涉及对微软Windows操作系统中SMB协议的实现方式的攻击。攻击者会扫描开放445文件共享端口的Windows机器,无需用户任何操作,只要开机上网,就可能被植入恶意程序。通过该漏洞,攻击者可以远程执行代码,获取系统控制权,进一步进行恶意操作。
准备工作
我们需要在VMware里面安装一个win7的操作系统作为我们的靶机。
在网络设置中,我们发现它有NAT模式和桥接模式,这两种模式有一定的区别。
NAT模式
网络连接方式
NAT模式(Network Address Translation)下,VMware会在主机上建立单独的专用网络,用以在主机和虚拟机之间相互通信。
虚拟机向外部网络发送的请求数据“包裹”,都会交由NAT网络适配器加上“特殊标记”并以主机的名义转发出去。外部网络返回的响应数据“包裹”,也是先由主机接收,然后交由NAT网络适配器根据“特殊标记”进行识别并转发给对应的虚拟机。
在这种情况下,如果我们搭建一个网页那么通常外界是访问不到的。因此这种方式会让我们的计算机隐蔽一些。
IP地址分配
在NAT模式下,虚拟机在内部网络中获取IP地址,而不是直接从外部网络获取。虚拟机对外通信时,通过宿主机的网卡映射外部IP地址,实现虚拟机与外网的通信。但是,同一台主机上的多个采用NAT模式网络连接的虚拟机可以相互访问。
适用场景
NAT模式适用于不需要对外直接访问的内部服务虚拟机。它简化了IP地址的管理,因为虚拟机在内部网络中获取IP地址,不需要担心与外部网络的IP地址冲突。
桥接模式
网络连接方式
桥接模式允许虚拟机直接接入物理网络,就像一台独立的物理机一样。它利用虚拟网桥将主机网卡与虚拟机的网卡进行通信,使虚拟机可以像物理机一样接入网络。
IP地址分配
在桥接模式下,虚拟机可以获得与主机相同子网的IP地址,并与主机在同一个网段内。虚拟机可以直接接收和发送外部网络的数据包,与外部网络设备具有相同的网络访问能力。由于这种模式下的虚拟机相当于一个真正的主机,我们从外界访问完全可以访问到,它和其他的物理机没有什么区别。
适用场景
桥接模式适用于需要模拟真实网络环境进行测试或部署应用程序的情况。当需要将虚拟机作为服务器映射到局域网上,以便局域网内的其他用户可以访问时,桥接模式也是一个很好的选择。
我们为了模拟更加真实,我们选择两个虚拟机都是桥接模式,在win7操作系统可以输入ipconfig查看IP。
在这次的操作中,我们用到的是kali的msf工具,我们可以输入msfconsole查看kali是不是有该工具。先是输入
sudo su
进入root用户,然后输入msfconsole下面的终端会变成msf6,这个文字图形每次都不一样,如果大家在做的时候跟我的不一样那不用担心。
操作步骤
1.扫描IP以及开放端口
在上一篇中我们学了nmap,在这里就可以尝试使用它了。先用ping的方式扫一下发现在网络中我们的192.168.1.17是活着的。
接下来,我们直接扫它的端口,我是通过TCP SYN的方法,因为它是半连接的更不容易留下痕迹,输入
nmap -sS 192.168.1.17
那么,我们发现我们需要的139和445端口它都给我们打开了,接下来我们直接操作msf工具。
2.找到永恒之蓝漏洞工具
永恒之蓝漏洞的编号是ms17-010,我们输入
search ms17-010
可以查找一下工具。
在寻找工具之后,我们发现第24个这个允许我们扫描存不存在永恒之蓝漏洞,我们现尝试使用一下这个工具吧。我们接下来输入
use <编号>
或者输入
use <全称>
到这里就说明我们已经成功使用这个工具了。
3.设置选项
我们看一下它需要我们设置什么选项,输入
show options
在这些选项后面required是yes的就必须要设置。先把rhosts设置了,我们输入
set rhosts 192.168.1.17
还有一个threads选项,根据我们高超的英语很明显它是线程的意思,这个设置的时候,要适中,一般来说,设置较高的线程数可以加快扫描速度,但同时也会增加对目标系统的负载,并可能触发目标系统的安全机制(如防火墙或入侵检测系统)。此外,如果线程数设置得过高,还可能导致扫描过程因资源耗尽而失败。
一个常见的做法是开始时设置一个适中的线程数(如5到10个),然后根据扫描的进展和系统的响应情况进行调整。如果扫描速度较慢且系统负载不高,可以逐渐增加线程数;如果系统负载过高或扫描被目标系统检测到,则可能需要减少线程数。
不管了,直接设置成50。
设置完以后直接输入run就行。
最后的扫描结果告诉我们,目标是win7的系统,它很有可能存在ms17_010漏洞。
那么,我们上面演示了这个扫描工具怎么用,我们接下来通过攻击工具直接攻击,它和这个工机的用法就很相似了。
这里出现了一个win我们已经成功了。
攻击成功以后,我们输入shell尝试使用cmd,发现失败了。不管了直接按它说的做。最终我们发现成功获得win7的cmd了,但是乱码了,这是因为windows系统和kali直接的编码转化不一样,我们通常转化为utf8编码只需要输入chcp 65001即可。
接下来,我们就可以得到这个电脑上我们想要的数据了,并且在另一台电脑上没有任何提示。我们试试别的指令。
我们可以看到win7的机子自己打开了百度。
防范策略
目前的电脑已经不存在这个漏洞了。
目前的电脑都关闭了445,129端口。但是如果你不能确定你的电脑有没有这个漏洞你可以用nmap扫描端口。
为了预防这种攻击我们有很多方法,例如
使用防火墙
在服务器上安装并配置好防火墙,限制外部访问。只允许必要的端口和服务可以从互联网访问,关闭不需要的端口,如445端口,以减少潜在的攻击面。防火墙可以监控和控制与服务器的网络通信,阻止恶意流量和未经授权的访问。
加密网络连接
为了保护服务器和客户端之间的通信安全,可以使用虚拟私人网络(VPN)等加密技术。这可以防止通信被监听和遭受中间人攻击。
除了这些,你还可以经常关注Microsoft公司,他会发放漏洞补丁。但是最主要的还是提高安全意识。