导语:昨天晚上,开源软件Samba官方发布安全公告,称刚刚修复了软件内一个已有七年之久的严重漏洞(CVE-2017-7494),可允许攻击者远程控制受影响的Linux和Unix机器。

昨天晚上,开源软件Samba官方发布安全公告,称刚刚修复了软件内一个已有七年之久的严重漏洞(CVE-2017-7494),可允许攻击者远程控制受影响的Linux和Unix机器。

samba-remote-code-exploit.png

Samba是什么

Samba是计算设备的基石级协议SMB的开源实现,被广泛应用在Linux、Unix、IBM System 390、OpenVMS等各类操作系统中,提供文件共享和打印服务。

漏洞影响范围

自2010年3月1日后发布的Samba所有版本均受影响。

影响版本:≥ v3.5.0

根据Shodan统计,目前互联网上暴露Samba 445端口的设备超过485000台。Rapid7研究人员分析后认为,其中有将近11万台设备运行的是不再被支持的Samba版本,因此不会有补丁。

考虑到Samba是许多Linux、Unix发行版的内置软件,所以有专家认为,这个漏洞是“Linux版的永恒之蓝”,很容易被改造为勒索软件的传播组件。

需要特别提及,由于内置Samba,家庭NAS设备也是受影响的重灾区。

漏洞分析

360安全团队的cyg07和redrain分析了这个漏洞,他们向嘶吼提供了相关技术细节。

如Samba官方所描述,该漏洞只需要通过一个可写入的Samba用户权限就可以提权到samba所在服务器的root权限(samba默认是root用户执行的)。

从Patch来看的话,is_known_pipename函数的pipename中存在路径符号会有问题:

33.png

再延伸下smb_probe_module函数中就会形成公告里说的加载攻击者上传的dll来任意执行代码了:

34.png

具体攻击过程:

1.  构造一个有’/’ 符号的管道名或路径名,如 “/home/toor/cyg07.so”

2.  通过smb的协议主动让服务器smb返回该FID

3.  后续直接请求这个FID就进入上面所说的恶意流程

具体攻击结果如下:

1.  尝试加载 “/home/toor/cyg07.so” 恶意so

35.png

2.其中so 代码如下(加载时会调用 samba_init_module 导出函数)

36.png

3.最后我们可以在/tmp/360sec中看到实际的执行权限(带root权限)

37.png

攻击代码

看到公告后,渗透测试框架Metasploit的创始人@hdmoore很快研究出了漏洞验证代码,只需要一行代码就可以利用:

simple.create_pipe("/path/to/target.so")

目前该漏洞在Metasploit已经有了利用模块,可以验证Ubuntu 16.04和群晖NAS设备,更多版本还在验证中。

如何修复?

Samba官方已经发布新版本修复了漏洞,受影响用户可以尽快将软件升级到v 4.6.4/4.5.10/4.4.14以上的版本。

如果暂时不能升级,那么可以将以下代码添加至Samba配置文件smb.conf中

nt pipe support = no

添加代码后,重启SMB守护进程(smbd),就可以临时缓解漏洞了。

源链接

Hacking more

...