Samba远程代码执行漏洞(CVE-2017-7494)-SambaCry分析报告pc软件 文章资讯 手机软件

您当前的位置→图文中心安全防范Samba远程代码执行漏洞(CVE-2017-7494)-SambaCry分析报告
阅读排行

Samba远程代码执行漏洞(CVE-2017-7494)-SambaCry分析报告


2017/5/27  编辑:admin 来源:本站整理

传送门

【国际资讯】CVE-2017-7494:linux版“永恒之蓝”远程代码执行漏洞预警

【高危预警】Samba远程代码执行漏洞(CVE-2017-7494)分析

 

0x01 引子

2017年5月24日Samba官方官网发布出来了安全公告, 新发布的Samba 4.6.4修复了一个严重的代码执行漏洞(CVE-2017-7494), 该漏洞反应影响了Samba 3.5.0 之后到4.6.4/4.5.10/4.4.14中间的所有版本。 就在rpc_server/srv_pipe.c中的存在一个验证BUG, 攻击者可以能够利用客户端上传恶意动态库文件程序到具有可写权限的共享目录中, 之后发出请求, 使服务器加载Samba运行目录以外的非法模块, 导致恶意代码执行。

Samba, 是种用来让UNIX系列的操作系统system与微软windows操作系统的SMB/CIFS网络net协议做链接的自由软件。 很多企业或个人的 NAS(Network Attached Storage), 路由器和其他IOT设备存储解决处理方案会选择中开源软件Samba提供数据信息访问服务。 IPC$(Internet Process Connection) 是共享 “命名管道” 的资源, 能使用户匿名访问Samba服务器的共享资源。

 

0x02 漏洞影响分析

基于360天眼实验室全网扫描的数据显示, 就在目前中国大陆及港澳台开放445端口的IP数为18883个, 其中Samba服务共4433个, 而Samba版本落在漏洞版本区间的IP数为3765个, 占到了Samba服务的85%!台湾、香港分别为1767、1853个, 其余各省分布如下图所示。

Samba远程代码执行漏洞(CVE-2017-7494)-SambaCry分析报告【漏洞分析】Samba远程代码执行漏洞(CVE-2017-7494)-SambaCry分析报告

 

0x03 漏洞验证及分析

环境预先安排准备:

Samba远程代码执行漏洞(CVE-2017-7494)-SambaCry分析报告【漏洞分析】Samba远程代码执行漏洞(CVE-2017-7494)-SambaCry分析报告

 

使用Metasploit公开的exploits模块(is_known_pipename)来进行测试。 下载地址:https://github.com/rapid7/metasploit-framework/blob/master/modules/exploits/linux/samba/is_known_pipename.rb

攻击过程:

1. 向具有写权限的Samba服务器共享目录中上传恶意动态库, 这里命名为evil.so;

2. 攻击者暴力猜解共享目录的绝对路径, 同一个时间以IPC$(命名管道)资源的方式请求步骤1上传的恶意动态库, 使文件名变为服务器上的绝对路径” /path/to/evil.so”;

3. 服务器端误将文件资源 ” /path/to/evil.so” 当作IPC$(命名管道)资源加载运行, 漏洞触发。

1)上传恶意动态库文件到服务器共享目录public

Samba远程代码执行漏洞(CVE-2017-7494)-SambaCry分析报告【漏洞分析】Samba远程代码执行漏洞(CVE-2017-7494)-SambaCry分析报告

 

第51个包Write AndX Request写操作请求数据, 如下所示:

SMB(ServerMessageBlockProtocol) SMBHeader ServerComponent:SMB [Responsein:52] SMBCommand:WriteAndX(0x2f) ErrorClass:Success(0x00) … TreeID:51295(\\192.168.119.155\public)#访问靶机共享文件路径TreeID ProcessID:51988 UserID:62509 MultiplexID:27235 WriteAndXRequest(0x2f) WordCount(WCT):14 AndXCommand:Nofurthercommands(0xff) Reserved:00 AndXOffset:0 FID:0xef37(\rDfDKbgV.so)#恶意动态库文件FID … [FileRWLength:476]#写入文件大小 ByteCount(BCC):476 Data(476bytes)#上传二进制数据 Data:7f454c4602010100000000000000000003003e0001000000... [Length:476]

2)以命名管道方式请求恶意动态库

Samba远程代码执行漏洞(CVE-2017-7494)-SambaCry分析报告【漏洞分析】Samba远程代码执行漏洞(CVE-2017-7494)-SambaCry分析报告

 

第59个包NT Create AndX Request 请求命名管道资源数据, 如下所示:

SMB(ServerMessageBlockProtocol) SMBHeader ServerComponent:SMB SMBCommand:NTCreateAndX(0xa2) … TreeID:19967(\\192.168.119.155\IPC$)#这里使用命名管道方式很重要 ProcessID:51988 UserID:62509 MultiplexID:27235 NTCreateAndXRequest(0xa2) WordCount(WCT):24 AndXCommand:Nofurthercommands(0xff) Reserved:00 AndXOffset:0 Reserved:00 FileNameLen:23 CreateFlags:0x00000016 RootFID:0x00000000 … ByteCount(BCC):24 FileName:/home/samba/rDfDKbgV.so#管道名称即为前面上传文件的绝对路径

3)服务器加载恶意动态库

Smbd服务进程详细调用链, 如下如所示:

Samba远程代码执行漏洞(CVE-2017-7494)-SambaCry分析报告【漏洞分析】Samba远程代码执行漏洞(CVE-2017-7494)-SambaCry分析报告

 

Samba漏洞关键源代码详细位置, 如下如所示:

Samba远程代码执行漏洞(CVE-2017-7494)-SambaCry分析报告【漏洞分析】Samba远程代码执行漏洞(CVE-2017-7494)-SambaCry分析报告

 

由于没有对pipename的值做判断, smb_probe_module函数调用执行在共享目录下上传so的文件, 进而导致恶意代码执行漏洞。

Samba远程代码执行漏洞(CVE-2017-7494)-SambaCry分析报告【漏洞分析】Samba远程代码执行漏洞(CVE-2017-7494)-SambaCry分析报告

 

Metaspoit中提供在SMB_SHARE_BASE的列表用于猜解, 共享目录的绝对路径。 笔者直接布置设置可对的的Samba共享目录绝对路径, 可以确保一次可以通过。

 

0x04 检测漏洞是否存在

1) 本地检测:本地检查Samba版本是否属于 4.4.14、 4.5.10、4.6.4 及以后的版本。

2) 远程检测:使用nmap --script=smb-os-discovery -p 445 192.168.1.122/24命令扫描网络中Samba版本。

 

0x05 漏洞修复

1. Samba 官方已经提供了新版本来修复上述漏洞, 请受影响的用户尽快升级到新版本。 使用源码安装的 Samba 用户, 请尽快下载当前最新的 Samba 版本手动更新;使用二进制分发包(RPM 等方式)的用户立即进行 yum, apt-get update 等安全更新操作。

下载链接如下:

https://download.samba.org/pub/samba/stable/samba-4.6.4.tar.gz https://download.samba.org/pub/samba/stable/samba-4.5.10.tar.gz https://download.samba.org/pub/samba/stable/samba-4.4.14.tar.gz

2. 缓解措施:通过在 smb.conf 的[global]节点下增加 nt pipe support = no选择项, 之后重新启动Samba 服务, 以此达到缓解针对该漏洞攻击的效果。  

 

0x06 FAQ

1)很多童鞋在ubuntu16.04或者centos6.8上没有验证成功, 是so不对?metasploit版本不对?还是靶机环境不对?

答:

a) kali上的metasploit保证最新, 然后只需下载对应的is_known_pipename.rb模块, 放入/usr/share/metasploit-framework/modules/exploits/linux/samba/目录即可;

b) 使用metasploit自带的payload生成模块即可, 默认为reverse TCP;

c) 本次测试靶机的smb.conf设置如下:

[public] path=/home/samba public=yes writable=yes browseable=yes guestok=yes readlist=nobody writelist=nobody

能触发漏洞的配置文件版本很多, writable = yes是必需的, global里有个security设置, 删除后默认是匿名访问。

d) 本次测试共享目录/home/samba的权限为777;

e) 重点:2017年5月24日以后使用apt或者yum安装的smb服务可以说是都是打过补丁的, 所以不有可能利用成功。

2)怎么才能在ubuntu下查看Samba的完整版本?

a) apt install apt-show-versions

b) apt-show-versions samba

Samba远程代码执行漏洞(CVE-2017-7494)-SambaCry分析报告【漏洞分析】Samba远程代码执行漏洞(CVE-2017-7494)-SambaCry分析报告

 

c) 位置1是Samba版本, 位置2是ubuntu补丁版(ubuntu0.16.04.7), 可以参见ubuntu的修改日志http://changelogs.ubuntu.com/changelogs/pool/main/s/samba/samba_4.3.11+dfsg-0ubuntu0.16.04.7/changelog, 可以看到已经修复了漏洞CVE-2017-7494。

3)如何查看centos已经修复的版本?

相关文章

NASA表示金星和木星将会在太空中碰撞会造成全球停电!:脸书最近有一则信息,11月13日的清晨肉眼可以看到金星和木星将在空中交会,近日美太空总署NASA表示,金星和木星将会在太空中碰撞,造成全球停电!一位太空专家在DinosMark网站上发表了一篇声明:“根据NASA的报告,金星和木...。

NASA被三人提告闯入私人用地,他们声称三千年前火星是他们祖先的:当你的工作是送探测器和卫星到遥远的行星上时,您不会收到很多与财产权相关的诉讼,但18年前这就发生在美国太空总署(NASA)的身上。

Nasa专家发现月球上有金字塔和外星人基地:近年来,从告密者到科学家、甚至是前太空人,都泄漏了有关月球的大量信息给大众。

nasa旅行者号教会我们如何聆听太空:为了与遥远的旅行者号飞船“对话”,NASA必须大力发展空间通信技术。

发表评论
网站帮助 - 广告合作 - 下载声明 - 网站地图