How To Understand And Understand The Gsp Protocol On A Cell Phone Or Ipad Or Ipa (For A Cell) On A Sim Simlan 2 Or Ipam (For An Ipa) On An Ipad 2 Or 4 Or Ipap



Similar documents
Practical security research on 3G and 4G mobile telecommunications networks

Security Testing 4G (LTE) Networks 44con 6th September 2012 Martyn Ruks & Nils

Practical Security Testing for LTE Networks BlackHat Abu Dhabi December 2012 Martyn Ruks & Nils

How To Understand The Gsm And Mts Mobile Network Evolution

Contents VULNERABILITIES OF MOBILE INTERNET (GPRS), 2014

IP-based Mobility Management for a Distributed Radio Access Network Architecture. helmut.becker@siemens.com

LTE Overview October 6, 2011

ETSI TS V8.0.0 ( ) Technical Specification

2G/3G Mobile Communication Systems

How to secure an LTE-network: Just applying the 3GPP security standards and that's it?

UMTS/GPRS system overview from an IP addressing perspective. David Kessens Jonne Soininen

Mobile SCTP Transport Layer Mobility Management for the Internet

ETSI TS V9.0.0 ( ) Technical Specification

SS7 & LTE Stack Attack

NTT DOCOMO Technical Journal. Core Network Infrastructure and Congestion Control Technology for M2M Communications

Diameter in the Evolved Packet Core

GTP Security in 3G Core Network

IP Multimedia System: general aspects and migration perspectives

LTE transport network security Jason S. Boswell Head of Security Sales, NAM Nokia Siemens Networks

Whitepaper. 10 Metrics to Monitor in the LTE Network. blog.sevone.com

Overview of Network Architecture Alternatives for 3GPP2 Femto Cells Jen M. Chen, et al. QUALCOMM Incorporated

Chapter 10 VoIP for the Non-All-IP Mobile Networks

Trends in Mobile Network Architectures 3GPP LTE Mobile WiMAX Next Generation Mobile Networks Dr.-Ing. Michael Schopp, Siemens Networks

Use of MPLS in Mobile Backhaul Networks

Mobile Office Security Requirements for the Mobile Office

So happy to be here! Paparazzi over IP. Daniel Mende & Pascal Turbing {dmende pturbing}@ernw.de.

Introduction to Evolved Packet Core

Mobile network evolution A tutorial presentation

Mobile Communications

10 METRICS TO MONITOR IN THE LTE NETWORK. [ WhitePaper ]

Virtualization techniques for redesigning mobile backhaul networks: challenges and issues. Fabrice Guillemin Orange Labs, IMT/IMT/OLN/CNC/NCA

Index. Common Packet Channel (CPCH) 25 Compression 265, , 288 header compression 284

4G Mobile Networks At Risk

464XLAT: Breaking Free of IPv4. APRICOT 2014

Authentication and Security in IP based Multi Hop Networks

Chapter 2 Mobility Management for GPRS and UMTS

Mobility Management for All-IP Core Network

SAE and Evolved Packet Core

Performance Evaluation of VoIP Services using Different CODECs over a UMTS Network

Outsourcing and network sharing: key considerations to solve the backhaul challenge

Long-Term Evolution. Mobile Telecommunications Networks WMNet Lab

LTE Attach and Default Bearer Setup Messaging

ALCATEL CRC Antwerpen Fr. Wellesplein 1 B-2018 Antwerpen +32/3/ ; Suresh.Leroy@alcatel.be +32/3/ ; Guy.Reyniers@alcatel.

Cisco ASR 5000 Mobility Management Entity Administration Guide

Implementing LTE International Data Roaming

Configuring a Load-Balancing Scheme

Chapter 8 Security Pt 2

Linux Network Security

PDF vytvořeno zkušební verzí pdffactory UMTS

Synchronization Requirements in Cellular Networks over Ethernet

2G Cellular Data Networks

Immersed Network Discovery and Attacks. Philippe Langlois Telecom Security Task Force

IPV6 IN MOBILE NETWORKS

Overview of the Evolved packet core network

Impact of IP on Mobile Communications THIS IS CISCO ON THE MOVE

3GPP TS V7.0.0 ( )

Technical white paper. Enabling mobile broadband growth Evolved Packet Core

Worldwide attacks on SS7 network

Protocol Signaling Procedures in LTE

Network Infrastructure Security in Cellular Data Networks: An Initial Investigation

Traffic Recognition in Cellular Networks

Securing Next Generation Mobile Networks

Understanding Mobile Wireless Backhaul

Mobile & Wireless Networking. Lecture 5: Cellular Systems (UMTS / LTE) (1/2) [Schiller, Section 4.4]

Global System for Mobile Communication Technology

Advanced SIP Series: SIP and 3GPP Operations

Chapter 2: Wireless IP Network Architectures

The 3GPP and 3GPP2 Movements Towards an All IP Mobile Network. 1 Introduction

Flow-Based Monitoring of GTP Traffic in Cellular Networks. Master of Science Thesis. E.H.T.B. Brands

UNDERSTANDING CORE TELECOM SECURITY

GSM Network and Services

3GPP Long Term Evolution: Architecture, Protocols and Interfaces

Mobile Devices Security: Evolving Threat Profile of Mobile Networks

Mobile Services (ST 2010)

EXPLORER. TFT Filter CONFIGURATION

5.0 Network Architecture. 5.1 Internet vs. Intranet 5.2 NAT 5.3 Mobile Network

Mobility and cellular networks

Lab Objectives & Turn In

How To Build A Network Architecture For A Cell Phone Network

Virtualization techniques for network functions. Fabrice Guillemin, Orange Labs, OLN/CNC/NCA September 14, 2015

Nokia Siemens Networks Flexi Network Server

Ref: A. Leon Garcia and I. Widjaja, Communication Networks, 2 nd Ed. McGraw Hill, 2006 Latest update of this lecture was on

EE 4105 Communication Engg-II Dr. Mostafa Zaman Chowdhury Slide # 1

SIP Trunking Configuration with

Mobile. Analyzing, Planning and Optimizing Heterogeneous Mobile Access and Core Networks

ALTERNATIVE BACKHAUL AND DATA OFFLOAD SOLUTIONS FOR GSM AND UMTS OPERATORS

Study of Long Term Evolution Network, its Architecture along with its Interfaces

IMT-2000 Network Architecture

TS-3GB-S.R0103-0v1.0 Network Firewall Configuration and Control (NFCC) - Stage 1 Requirements

OLD VULNERABILITIES IN NEW PROTOCOLS? HEADACHES ABOUT IPV6 FRAGMENTS

Telecom Signaling attacks on 3G and LTE networks

Mobile Wireless Overview

During your session you will have access to the following lab configuration. CLIENT1 (Windows XP Workstation) /24

GPRS and 3G Services: Connectivity Options

2G Mobile Communication Systems

A System for Detecting a Port Scanner in 3G WCDMA Mobile Networks

The LTE Network Architecture

Transcription:

HITB Labs: Practical Attacks Against 3G/4G Telecommunication Networks Jim Geovedi Daniel Mende jim@geovedi.com, dmende@ernw.de

Agenda Overview 3G / 4G Backhaul Networks Backend Protocols in depth The Lab The Tools Exercises Conclusions

Overview 3G / 4G

Standards In mobile telco world everything standardized by 3GPP 3GPP: collaboration between groups of telco standard orgs Which type of documents do you think these guys produce? ;-) 3GPP standards structured as/bundled in releases 1992: Phase 1 (GSM) 2000: Release 99 incl. first specification of 3G UMTS 2008: Release 8 incl. first specification of LTE stuff At times, 3GPP standards are a bit bulky ;-)

2G/3G Node B UTRAN RNC Core Network MSC/VLR GMSC PSTN / ISDN Node B BTS HLR AuC OAM SMSC other Wireless Networks BTS GERAN BSC P C U SGSN GGSN X.25 / Internet / corporate networks RAN: Radio Access Network RNC: Radio Network Controller MSC: Mobile Switching Center AuC: Authentication Center UTRAN: UMTS RAN BTS: Base Transceiver Station VLR: Visitor Location Register OAM: Operation Administration & Maintenance GERAN: GSM Enhanced RAN BSC: Base Station Controller GMSC: Gateway MSC SMSC: Short Message Service Center PCU: Paket Control Unit HLR: Home Location Register GSN: GPRS Support Node S/GGSN: Serving/Gateway GSN Source: 3GPP

4G

Backhaul Networks

Backhaul networks Definition In communication services Used to transport information from one network node to another In mobile communication Mobile Backhaul Carries data from the RAN to the management network and back. Three primary functions Transport Aggregation and grooming Switching/routing

Mobile Backhaul (3G)

Backhaul networks in 4G 4G specific requirements laid out by 3GPP Includes enodeb MME SGW enb MME SAE-GW Internet Represents The transport network between enodeb and MME The transport network between enodeb and SGW AAA

Backhaul networks Technologies Mostly ATM in the early years (GSM) PDH/SDH over Microwave, T1/E1 IP/MPLS Hybrid Approach with data offloading to DSL Carrier Ethernet

How to get into backhaul Physical intrusion to some cage located in the somewhere Get access to network segment Microwave DSL Carrier Ethernet 4G aggregates dumb BTS and BSC/RNC functions on one device enb not dumb anymore.

Once you re in (a backhaul network) Attack components 3G: SGSN, RNC, NodeB 4G: MME, enb, SAE-GW Routers/Switches Eavesdropping Will get you some key material but what would you need this for? Pretty much everything is unencrypt. here anyway. That s why 3GPP insists on using IPsec gateways. Subsequent question: do (which) operators implement this? In standard bodies $SOME_BIG_COUNTRY (hint: in Asia) strongly opposed this recommendation.

Protocols used in Backend

GTP GPRS Tunneling Protocol IP-based protocol initially used to carry GPRS within GSM and UMTS networks. Plays major role in 4G networks as well. Three variants GTP-C used for control plane (signaling) GTP-U used for user data GTP used for charging data

GTP GTP-C Control section of the GTP standard In 3G used for signaling between SGSN and GGSN Activates and deactivates GTP sessions In roaming scenarios this happens between different operators. GTP-U Used for data transport between the RAN and the core network Can tunnel packets in several formats: IPv4, IPv6, PPP etc. GTP Used in 3G for transmitting charging data from the CDF to the CGF.

GTP Header The GTP Header GTPv1 GTPv2

Some GTP message types GTP-C provides messages for Echo Create/Update/Delete/Initiate PDP Context PDU Notification Send Routing Information Failure Report Note MS/MS info Identification SGSN Context Forward Relocation Forward SRNS Context RAN information MBMS Notification/Context/(De-)Registration/Session

GTP in 4G

GTP-C Control protocol for GTP session Very complex protocol A lots of different mandatory TLVs are defined for all the different Message types Even more optional TLVs are defined, plus vendor specific secret TLVs

GTP-U Tunneling protocol for ME-traffic. Static header length. Endpoint multiplexing done by 32bit TEID. (Tunnel Endpoint Identifier, more on that later) User data is transported in clear text No authentication mechanism in the protocol itself

GTP from a security perspective Unauthenticated protocol No inherent security properties Trusted environment assumed Is used to perform quite some functions Session establishment ( activate PDP context ) Forwarding of packets Charging related stuff All these functions rely on certain protocol fields Presumably only known to valid peers... which are isolated anyway... ERNW GmbH Breslauer Str. 28 D-69124 Heidelberg www.ernw.de 22

The PDP-Context Packet Data Protocol A PDP-Context is an established data connection from the Mobile station to the Network. An Access Point Name (APN) is used to determine QoS and billing conditions. In 4G, also voice calls are data connections!

GTP session establishment A GTP-PDPContext-request is sent via GTP-C, which includes a local TEID and an APN. If the APN is valid the request is answered with a GTP-PDPContext-response (including remote TEID). Afterwards GTP-U packets are processed.

TEID in detail Tunnel Endpoint Identifier Do I need to explain that it serves to identify endpoints of tunnels? ;-) For each (user) data session.

TEID in detail Apparently some discussion about it being random For obvious (?) security reasons. Although we were not able to find spec prescribing this. What we observed 0x00005c35 0x00005c4d 0x00005c65 0x00005c7d 0x00005c95 [ ] Does this look random to you?

S1AP S1 Application Protocol Used in 4G between enodeb and MME (the S1 interface). Replaces GTP-C which is used in 3G on that interface. Uses SCTP for transport. Protocol is defined in ASN.1 only (!) in the 3GPP spec. Vendors implement proprietary extensions. What could possibly go wrong ;-)

S1AP Details We had the opportunity to test an enodeb MME pair, actively communicating over S1AP. Some things came to eyes early: No authentication used whatsoever. SCTP session is used to keep track of neighbor state. -> DoS via spoofed SCTP-ABORT packages. Others needed an fuzzing approach to come clear: No good parsing of the (ASN.1 defined) protocol. Fuzzing lead to major crash of the device. No tools or details released here, due to NDA. SORRY!

SCTP - Overview SCTP Stream Control Transmission Protocol Specified by IETF, maintained IETF Transport Area (TSVWG) WG Specs: RFC 3286 (Introduction) RFC 2960 (2000) RFC 3309 RFC 4960 (2007) RFC 5062

SCTP 4 way handshake SCTP vs. TCP

SCTP Timeline RFC 2960 (2000): initial spec RFC 4960 (2007): major rewrite RFC 5062 (2007) Security Attacks Found Against the Stream Control Transmission Protocol (SCTP) and Current Countermeasures So, over time SCTP has changed a bit

Tests in SCTP space Practical problems Current tools do not work very well Probably due to stack rewrites based on RFC 5206 and 4960 nmap SCTP does not work in a satisfactory manner -sz does give results -sy ( half-open handshake ) didn t show anything useful But we _knew_ the ports were there Philippe Langlois SCTPscan didn t work either. Daniel wrote quick+dirty simple SCTP port scanner.

SCTP hacked scanner ;) s = socket.socket(socket.af_inet, socket.sock_seqpacket) for i in ip: for j in xrange(sys.argv[2], sys.argv[3]): time.sleep(0.01) try: s.connect((j, i)) except Exception, e: print "Port %d closed on %s: %s" % (i, j, e) else: print "Port %d open on %s" % (i, j) s.close() (this is more port-knocking no real port-scanning)

UDP vs. SCTP UDP is nice from an attackers point of view: Easy to spoof Fast to scan SCTP brings some effort to Man-in-the-Middle attacks 4-Way Handshake in performed Security cookie is needed But, session termination by sending SCTP-ABORT packets no hard thing. In 4G, SCTP session state is used to track neighbor state -> DoS SGSN vs. GGSN

The VMware

The virtual machine Minimal gentoo linux with Username root Password toor Tools and dependencies preinstalled Tools in /root/tools GTP dizz files in /root/tools/dizzes Wireshark on the host system is recommended

The virtual machine Please make sure the virtual machine is running on your system. You will need it to follow the next part of the session. If you re lacking Wireshark or VMware, both can be found in the local net: http://10.0.0.1/

The Lab

GTP on 7200VXR 7200 is capable of serving as GGSN in a 3G net Special image needed service gprs ggsn config command Once activated, device opens up udp/2123 and udp/2152 gtp-echo-requests (gtp-v1) are answered on both ports gtp-create-pdpcontext-requests (gtp-v1) are answered on udp/2123 (gtp-c) if a valid/configured APN is given in the request

Lab ranges Local Network DHCP enabled 10.0.0.0/24 gw 10.0.0.1 Target Network 172.25.1.0/24 40

The Tools

gtp_scan Scans a host to find gtp services on udp/sctp Python based Requires IPy Source: http://c0decafe.de/tools/gtp_scan-0.7.tar.gz

gtp_scan cmd $ python gtp-scan.py --help Usage: gtp-scan.py [options] address[/net] Options: --version exit show program's version number and -h, --help show this help message and exit -w SEC Time to wait for cooldown -s Use SCTP for transport, instead of UDP 43

gtp_scan detail GTP inbuilt ping mechanism is used to discover services. Scans for GTP-U, GTP-C and GTP. Each port is tested with GTPv1 and GTPv2 echo_requests. Listening Services will send back a GTP echo_response, if no filtering is applied on the path. As hosts answer nicely and UDP is used for transport, fast scanning of wide network ranges is possible.

Some statistics (GTP-C) Version 1 Version 2 AfriNIC 26 (31) 11 (26) APNIC 81 (131) 97 (90) ARIN 52 (29) 45 (51) LACNIC 22 (14) 10 (18) RIPE 129 (97) 94 (435) UP 310 (302) 257 (620) [Values in brackets are the results from our last scan, some months ago]

apnbf Script that brute forces the APN (Access Point Name) in GTPv1c. Python based Source: http://c0decafe.de/tools/apnbf-0.1.tar.gz

apnbf cmd $ python apnbf.py --help Usage: apnbf.py [options] address Options: --version show program's version number and exit -h, --help show this help message and exit -w WORDLIST Wordlist to use -d SEC BruteForce delay -v Be verbose

apnbf detail Host are scanned for the possibility to establish a new PDP_context. This requires a valid APN name. If the establishment is possible, further attacks could be launched. Given list for APN names is brute forced. Returned error code gives a good impression of the hosts shape.

APNBF results from the internetz List of most used APNs in the Wild: internet (12) INTERNET (10) Internet (10) wap (5) mms (5) airtelnet.es (4) online.telia.se (3) cmnet (3) Some gtp speakers don t care about the APN at all ;-)

Python based fuzzing framework Useful to fuzz GTP spreaker Requires pylibpcap and libdnet Source: http://c0decafe.de/tools/dizzy-0.5.tar.gz 50

GTP on 7200VXR DoS Sending out _a_lot_ of gtp-echo-requests will stress the 7200er CPU to 100%, so that No ICMP pings answered anymore. No remote mgmt (ssh/telnet) possible (refuses connections on tcp/22). No further GTP requests processed. Sending out _a_lot_ of gtp-create-pdpcontext-requests will also stress the device, so that only ~30% of all (valid and bogus) requests are answered. However a valid APN is needed We ll get back to this

Exercises

Scan for GTP Scan the target range [172.25.1.0/24] for GTP* speaking devices. #cd /root/tools/gtp_scan-0.7/ #python gtp-scan.py 172.25.1.0/24

Scan for GTP gtp- s c a n v 0. 7 C o p y r i g h t 2 0 1 1 D a n i e l M e n d e < m a i l @ c 0 d e c a f e. d e > s t a r t i n g s c a n o f 1 7 2. 2 5. 1. 0 / 2 4 c o o l i n g d o w n f o r 1 0 s e c... # # # 1 7 2. 2 5. 1. 3 u p, f r o m udp/ 2 1 2 3 ( gtp- c ) s e n t 3 2 0 3 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 * * * V A L I D L E N I N G T P : v e r s i o n = 1 f l a g s = X X X 1 0 0 1 0 t y p e = 3 * * * V E R S I O N N O T S U P P O R T E D # # # 1 7 2. 2 5. 1. 3 u p, f r o m udp/ 3 3 8 6 ( gtp' ) s e n t 3 e 0 3 0 0 0 0 f f 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 v e r s i o n = 1 f l a g s = X X X 1 1 1 1 0 t y p e = 3 l e n = 0 d a t a = f f 0 0 0 0 * * * V E R S I O N N O T S U P P O R T E D # # # 1 7 2. 2 5. 1. 3 u p, f r o m udp/ 2 1 2 3 ( gtp- c ) s e n t 3 2 0 2 0 0 0 6 0 0 0 0 0 0 0 0 0 c 3 d 0 0 0 0 0 e 0 1 * * * V A L I D L E N I N G T P : v e r s i o n = 1 f l a g s = X X X 1 0 0 1 0 t y p e = 2 * * * E C H O R E S P O N S E done

Find the right APN Find at least one valid APN on the identified GTP-C speaking devices. #cd /root/tools/apnbf-0.1 #python apnbf.py -w apnlist 172.25.1.3

Find the right APN apnbf v 0. 1 C o p y r i g h t 2 0 1 1 D a n i e l M e n d e < m a i l @ c 0 d e c a f e. d e > s t a r t i n g s c a n o f 1 7 2. 2 5. 1. 3 t r y i n g i n t e r n e t. g p r s. u n i f o n. c o m. a r M i s s i n g o r u n k n o w n A P N trying i n t e r n e t. u n i f o n M i s s i n g o r u n k n o w n A P N trying i n t e r n e t. c t i m o v i l. c o m. a r M i s s i n g o r u n k n o w n A P N trying i n t e r n e t * * * A P N F O U N D : i n t e r n e t trying t e l s t r a. i n t e r n e t M i s s i n g o r u n k n o w n A P N

Establish a valid PDP-Context Find the gtp_create_pdp_context_request.dizz in the dizzes/gtp_v1/ folder on the virtual machine. Edit the APN_value field to match the discovered APN: { '_name': 'APN_value', '_type': 'basic', 'bytelen': None, 'cur': '\x0bapn_here', 'default': '\x0band_here', 'fuzz': 'none', 'length': None},

Establish a valid PDP-Context # nano / r o o t / t o o l s / d i z z e s / g t p _ v 1 / g t p _ c r e a t e _ p d p _ c o n t e x t _ r e q u e s t. d i z z press CTRL+W for find enter the search term APN_value replace the ernwtel.com with your APN press CTRL+O to save and CTRL+X to exit the editor

Establish a valid PDP-Context Once the dizz file is prepared, start up dizzy and send the described packet once: #python dizzy.py -t -o udp -d 172.25.1.3 -e 2123:2123../dizzes/gtp_v1/gtp_create_pdp_context_request.dizz Look into Wireshark on your host system and examine the answer. What do you see?

Move on to real fuzzing Establishing a valid PDP-context is nice and the first step for GTP state-full fuzzing, but we will stay with state-less fuzzing for this time, because: This a 3G/4G lab session, no fuzzing training ;) I don t had the time (yet) to write state-full fuzzing scripts (although dizzy is usable as a state-full fuzzer) We don t want to kill the telco industry today :-D

Move on to real fuzzing Edit the gtp_create_pdp_context_request.dizz file again and set every field you want to be fuzzed to: 'fuzz': 'std', Launch up the same dizzy command but remove the -t (testing) flag. Sit back and watch Wireshark ;-) BTW, what s the load on the target?

Conclusions We expect to see a number of attacks in 3G and 4G mobile telco networks in the next years, for some reasons Walled (telco) gardens are vanishing. At the same time terminals get more and more powerful. In the future it s all IP in those networks. There s a complex (IP based) protocol landscape. And potentially ppl_outside_telcos are able to understand these prots. As there are apparently people understanding Siemens PCS 7... Theory reality

There s never enough time THANK YOU...for yours!