首页 -> 安全研究

安全研究

绿盟月刊
绿盟安全月刊->第15期->最新漏洞
期刊号: 类型: 关键词:
Samba 2.0.7 SWAT 设计漏洞

日期:2000-11-04

受影响的系统:  Samba 2.0.7
       - Redhat Linux 6.2(etc.)

描述:
--------------------------------------------------------------------------------


samba 2.0.7里附带的swat程序存在设计错误,存在被在线穷举用户名/口令的可能。
当用户输入正确的用户名、不正确的口令时,swat挂起两秒后提示:

401 Authorization Required

You must be authenticated to use this service.

当用户输入不正确的用户名/口令时,swat立即提示:

401 Bad Authorization

username/password must be supplied

t12写了如下代码:

http://www.uberhax0r.net/~miah/swat/code/flyswatter.c

该程序利用上述不同错误反应产生一个有效用户名列表,并穷举相应口令,在
FreeBSD测试通过。

糟糕的是swat默认情况下没有启用日志功能,在samba-2.0.7/source/web/cgi.c
文件中有这么一行:

#define CGI_LOGGING 0

修改成:

#define CGI_LOGGING 1

重新编译安装运行,将启用日志功能。

然而更糟糕的事情发生了,swat没有检查日志文件是否已经存在就毫不迟疑地覆盖写
入来自客户端用户的任意输入内容:

ln -s /etc/passwd /tmp/cgi.log (译者--原文有误)

telnet localhost 901
--输入如下内容--
rootuser::0:0::/:/bin/bash
--  挂断连接  --

此时查看/etc/passwd文件,看到如下内容:

[Date: Mon, 23 Oct 2000 16:03:13 GMT localhost.localdomain (127.0.0.1)]
rootuser::0:0::/:/bin/bash

尽管/etc/passwd文件被破坏,但不妨碍你取得root权限。

可以使用下列脚本、C源代码、预编译好的Linux下二进制代码:
http://www.uberhax0r.net/~miah/swat/code/swat-exp.sh
http://www.uberhax0r.net/~miah/swat/code/swat-exp.c
http://www.uberhax0r.net/~miah/swat/code/swat-exp.linux (code by optyx)

这里有一个补丁
http://www.uberhax0r.net/~miah/swat/code/cgi.c.fixed (fix by optyx)

如果/tmp/cgi.log已经存在,你就无法利用符号链接技巧。然而cgi.log包含了来自
客户端的所有输入,其中包括用户名/口令,采用base64编码方式保存。绝大多数时
候,swat管理员将以root身份登录修改smb.conf文件,你可以运行gimme-login.sh脚
本从cgi.log文件中获取登录列表。

Swat还很容易遭受拒绝服务攻击。将登录URL从默认的"hostname:901"换成例如
"hostname:901?somerandomfile"这样的内容,提供不正确的用户名/口令,swat提示:

Authentication Required

此时inetd将重启swat。如果正在使用netscape,netscape将立即重试,最终导致
inetd关闭swat服务长达10分钟左右,依赖于具体的inetd配置,我们是在
redhat linux 6.2上测试得到这个结论的。

<* 来源:miah、t12、optyx *>



测试程序:
--------------------------------------------------------------------------------

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!



可以使用下列脚本、C源代码、预编译好的Linux下二进制代码:
http://www.uberhax0r.net/~miah/swat/code/swat-exp.sh
http://www.uberhax0r.net/~miah/swat/code/swat-exp.c
http://www.uberhax0r.net/~miah/swat/code/swat-exp.linux (code by optyx)



--------------------------------------------------------------------------------
建议:
这里有一个补丁
http://www.uberhax0r.net/~miah/swat/code/cgi.c.fixed (fix by optyx)

版权所有,未经许可,不得转载