eSIM / Java Card VM Exploitation
tip
Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
Oorsig
Ingebedde SIMs (eSIMs) word geïmplementeer as Ingebedde UICC (eUICC) slimkaarte wat 'n Java Card Virtual Machine (JC VM) bo-op 'n veilige element laat loop. Omdat profiele en applets oor-die-lug (OTA) via Remote SIM Provisioning (RSP) verskaf kan word, word enige geheue-veilige fout binne die JC VM onmiddellik 'n afstandkode-uitvoeringsprimitive binne die mees bevoorregte komponent van die toestel.
Hierdie bladsy beskryf 'n werklike volledige kompromie van Kigen se eUICC (Infineon SLC37 ESA1M2, ARM SC300) veroorsaak deur ontbrekende tipe-veilige kontroles in die getfield
en putfield
bytecodes. Dieselfde tegniek kan hergebruik word teen ander verskaffers wat op-kaart byte-kode verifikasie oorslaan.
Aanvaloppervlak
- Afstandtoepassingbestuur (RAM)
eSIM profiele kan arbitrêre Java Card applets insluit. Verskaffing word uitgevoer met standaard APDUs wat deur SMS-PP (Short Message Service Point-to-Point) of HTTPS getunnel kan word. As 'n aanvaller die RAM sleutels vir 'n profiel besit (of steel), kan hulle 'n kwaadwillige applet op afstand
INSTALL
/LOAD
. - Java Card byte-kode uitvoering Na installasie, voer die applet binne die VM uit. Ontbrekende tydslope kontroles laat geheue-korrupsie toe.
Die Tipe-Bewustheid Primitive
getfield
/ putfield
is veronderstel om slegs op objekverwysings te werk. In Kigen eUICC valideer die instruksies nooit of die operand op die stapel 'n objek of 'n array verwysing is nie. Omdat 'n array.length
woord op presies dieselfde offset as die eerste instansieveld van 'n normale objek lewe, kan 'n aanvaller:
- 'n byte-array skep
byte[] buf = new byte[0x100];
- Dit cast na
Object o = (Object)buf;
- Gebruik
putfield
om enige 16-bis waarde binne 'n aangrensende objek te oorskryf (insluitend VTABLE / ptr vertaalinge). - Gebruik
getfield
om arbitrêre geheue te lees sodra interne punte verower is.
// Pseudo-bytecode sequence executed by the malicious applet
// buf = newarray byte 0x100
// o = (Object) buf // illegal but not verified
// putfield <victimObject+offset>, 0xCAFE // arbitrary write
// ... set up read-what-where gadgets ...
Die primitive bied arbitraire lees / skryf in die eUICC adresruimte – genoeg om die toestel- unieke ECC private sleutel wat die kaart aan die GSMA ekosisteem autentiseer, te dump.
Eind-tot-Eind Exploit Werkvloei
- Tel firmware op – Gebruik ongedokumenteerde
GET DATA
itemDF1F
:
80 CA DF 1F 00 // → "ECu10.13" (kwulnerabel)
- Installeer kwaadwillige applet OTA – Misbruik publiek bekende sleutels van die TS.48 Generiese Toetsprofiel en druk SMS-PP fragmente wat die CAP-lêer (
LOAD
) vervoer, gevolg deur 'nINSTALL
:
// vereenvoudigde APDU ketting
80 E6 02 00 <data> // LOAD (blok n)
80 E6 0C 00 <data> // INSTALL vir laai
- Trigger tipe-verwarring – Wanneer die applet gekies word, voer dit die skryf-wat-waar uit om 'n wysiger tabel te kapen en geheue deur normale APDU-antwoorde te lek.
- Onthul GSMA sertifikaatsleutel – Private EC-sleutel word na die applet se RAM gekopieer en in stukke teruggestuur.
- Imiteer die eUICC – Die gesteelde sleutel paar + sertifikate laat die aanvaller toe om te autentiseer by enige RSP bediener as 'n wettige kaart (EID binding mag steeds vereis word vir sommige operateurs).
- Laai en wysig profiele – Plak tekst profiele bevat hoogs sensitiewe velde soos
OPc
,AMF
, OTA sleutels en selfs addisionele applets. Die aanvaller kan:
- 'n profiel na 'n tweede eUICC kloon (stem/SMS kap);
- Java Card toepassings patch (bv. voeg STK spyware in) voordat dit weer opgelaai word;
- Operateur geheime onttrek vir grootskaalse misbruik.
Kloon / Kap Demonstrasie
Die installering van dieselfde profiel op PHONE A en PHONE B lei tot die Mobile Switching Centre wat inkomende verkeer na die toestel roete wat die mees onlangse registrasie gehad het. Een sessie van Gmail 2FA SMS onderskep is genoeg om MFA vir die slagoffer te omseil.
Geoutomatiseerde Toets & Exploit Toolkit
Die navorsers het 'n interne hulpmiddel vrygestel met 'n bsc
(Basic Security Check) opdrag wat onmiddellik wys of 'n Java Card VM kwulnerabel is:
scard> bsc
- castcheck [arbitrary int/obj casts]
- ptrgranularity [pointer granularity/tr table presence]
- locvaraccess [local variable access]
- stkframeaccess [stack frame access]
- instfieldaccess [instance field access]
- objarrconfusion [object/array size field confusion]
Modules verskeep met die raamwerk:
introspector
– volle VM en geheue verkenner (~1.7 MB Java)security-test
– generiese verifikasie omseil applet (~150 KB)exploit
– 100 % betroubare Kigen eUICC kompromie (~72 KB)
Mitigasies
- Op-kaart byte-kode verifikasie – afdwing volle kontrole-stroom & data-stroom tipe opsporing in plaas van net stapel-top.
- Versteek array kop – plaas
length
buite oorvleuelende objek velde. - Versterk RAM sleutels beleid – stuur nooit profiele met publieke sleutels nie; deaktiveer
INSTALL
in toets profiele (aangespreek in GSMA TS.48 v7). - RSP bediener kant heuristiek – beperk profiele aflaai per EID, monitor geografiese anomalieë, valideer sertifikaat varsheid.
Vinning Kontrolelys vir Pentesters
- Vra
GET DATA DF1F
– kwesbare firmware stringECu10.13
dui Kigen aan. - Kontroleer of RAM sleutels bekend is ‑> probeer OTA
INSTALL
/LOAD
. - Na applet installasie, brute-force eenvoudige cast primitief (
objarrconfusion
). - Probeer om Sekuriteit Domein private sleutels te lees – sukses = volle kompromie.
Verwysings
- Security Explorations – eSIM sekuriteit
- GSMA TS.48 Generiese Toets Profiel v7.0
- Java Card VM Spesifikasie 3.1
tip
Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.