wannacry蠕虫相关汇总知识
前两天wannacry席卷全球,在国内也引起了大量关注,国内安全厂商对此也进行了相关分析,于是趁此机会想记录一下相关知识,主要是汇总技术报告。
一、SMB远程攻击漏洞
北京时间2月2日,国外技术网站Github曝光了Windows SMBv3存在远程攻击0day漏洞。根据已公开的漏洞验证代码(POC),攻击者可以迫使受影响系统蓝屏崩溃,此漏洞也存在进一步远程执行代码的高危风险。
经验证,此漏洞主要影响Windows Server 2012/2016、Win8/8.1以及Win10系统。攻击者可以模拟成一个SMB服务器,诱使客户端发起SMB请求来触发漏洞;攻击者也可以通过中间人方式“毒化”SMB回应,插入恶意的SMB回复实现拒绝服务或控制受害系统。
1.SMB协议
Microsoft 服务器消息块 (SMB) 协议是 Microsoft Windows 中使用的一项 Microsoft 网络文件共享协议。
2.漏洞分析
http://paper.seebug.org/280/?from=groupmessage&isappinstalled=0
(1)环境
EXPLOIT: Eternalblue-2.2.0.exe
TARGET: win7 sp1 32bits
srv.sys 6.1.7601.17514
srvnet.sys 6.1.7601.17514
PATCH: MS17-010
(2)漏洞原理
srv.sys在处理SrvOs2FeaListSizeToNt的时候逻辑不正确导致越界拷贝。从调试记录可以看到被覆盖的是SMB1的buffer是有srvnet.sys分配的。这里exploit精心布局好的,是通过pool喷射的将两个pool连接在一起的。
首先SrvOs2FeaListToNt调用SrvOs2FeaListSizeToNt计算pNtFea的大小。这里注意了SrvOs2FeaListSizeToNt函数会修改原始的pOs2Fea中的Length大小,然后以计算出来的Length来分配pNtFea.最后调用SrvOs2FeaToNt来实现转换。SrvOs2FeaToNt后面的判断就有问题了。这里还不止一个问题。
1. 转换完成后,增加pOs2FeaBody然后比较。正确的逻辑难道不应该是先判断再转换吗?
2. 由于SrvOs2FeaListSizeToNt中改变了pOs2Fea的length的值,这里使用变大后的值做比较,肯定会越界。
(3)漏洞利用
在将下面SrvNet分配的对象覆盖前面的a1字节后。由于被覆盖的pool里面存在用于接收数据的buffer的指针。像上面描述的0x8d1aa034(0xffd0f020)这个地方的指针。srvnet在接收包的时候就会在固定0xffdff000这个地址存入客户端发送来的数据。0xffdff000这块内存是系统预留的,里面保存了系统的一些信息,像时钟,版本,配置之类。注意这个地址在win10下是不可以执行的。所以这个利用方法在win10下是不可用的。
0xffdff1f1处为shellcode。最后在接收完成后,最终调到srvnet!SrvNetWskReceiveComplete。在这个函数中会调用最终的shellcode。
(4)关于补丁
微软在补丁中并没有补掉漏洞的代码而是在上层过滤了触发漏洞的一个Type。 补丁修补的逻辑在srv!ExecuteTransaction
3.漏洞影响范围
此漏洞存在于SMB客户端(mrxsmb20.sys),已公开的POC可以导致系统BSOD(blue screen of death),即死亡蓝屏。攻击者可以通过139、445等远程端口,或中间人攻击,甚至以包含UNC路径的邮件、文档或网页诱骗用户点击触发漏洞。此漏洞也可能被利用远程执行恶意代码,对企业内网和服务器造成更严重的危害。
UNC(Universal Naming Convention 通用命名约定)
UNC是一种命名惯例, 主要用于在Microsoft Windows上指定和映射网络驱动器. UNC命名惯例最多被应用于在局域网中访问文件服务器或者打印机
UNC命名使用特定的标记法来识别网络资源. UNC命名由三个部分组成:服务器名, 共享名, 和一个可选的文件路径. 这三个部分通过backslash连接起来如下:\\server\share\file_path。可以通过指定UNC名字来映射网络驱动器, 远程地访问一台计算机上的文件夹。
4.漏洞缓解措施
在防火墙处阻止TCP 端口 139 和 445,通过阻止入站和出站 SMB 流量,保护位于防火墙后面的系统,防范此漏洞攻击造成的安全风险。
二、EternyBlue永恒之蓝
Eternalblue(永恒之蓝)只是影子经纪人公布的Windows零日漏洞利用工具系列中的一款。除此之外,以“永恒”为前缀名的漏洞利用工具还有例如Eternalromance, Eternalchampion 和 Eternalsynergy,所有这些都是针对近期的Windows操作系统的。
方程式0day Eternalblue是NSA武器库的一部分,其利用过程:通过TCP端口445和139来利用SMBv1和NBT中的远程代码执行漏洞。
基于Fuzzbunch的漏洞利用框架的Eternalblue攻击实例:
http://www.freebuf.com/articles/system/133853.html
例子是获取目标机器的反向shell。
Shadow Brokers下载:https://github.com/misterch0c/shadowbroker
Metasploit框架下载:https://github.com/rapid7/metasploit-framework
方程式下载:https://github.com/x0rz/EQGRP_Lost_in_Translation
二、Wannacry蠕虫
1.背景
2017.5.12全球多个国家爆发勒索病毒攻击,中国大批高校也出现感染情况,众多师生的电脑文件被病毒加密,只有支付赎金才能恢复。此次校园网勒索病毒是由NSA泄漏的“永恒之蓝”黑客武器传播的。目前,“永恒之蓝”传播的勒索病毒以ONION和WNCRY两个家族为主,受害机器的磁盘文件会被篡改为相应的后缀,图片、文档、视频、压缩包等各类资料都无法正常打开,只有支付赎金才能解密恢复。下图为勒索截面。
该恶意软件会扫描电脑上的TCP 445端口(Server Message Block/SMB),以类似于蠕虫病毒的方式传播,攻击主机并加密主机上存储的文件,然后要求以比特币的形式支付赎金。
由于国内曾多次出现利用445端口传播的蠕虫病毒,部分运营商对个人用户封掉了445端口。但是教育网并无此限制,存在大量暴露着445端口的机器,因此成为不法分子使用NSA黑客武器攻击的重灾区。
安全专家发现,ONION勒索病毒还会与挖矿机(运算生成虚拟货币)、远控木马组团传播,形成一个集合挖矿、远控、勒索多种恶意行为的木马病毒“大礼包”,专门选择高性能服务器挖矿牟利,对普通电脑则会加密文件敲诈钱财,最大化地压榨受害机器的经济价值。
2.逆向分析
(1)看雪
http://bbs.pediy.com/thread-217586.htm
含样本(无域名判断)
(2)360
http://bobao.360.cn/learning/detail/3853.html
(3)腾讯
http://www.freebuf.com/articles/system/134578.html
(3)安天
http://www.****.net/article/a/2017-05-14/15823368
(5)思科Talos团队
http://www.freebuf.com/news/134566.html
(6)其他
http://www.freebuf.com/vuls/134602.html
之后会梳理并将相关细节整理出来~