diff --git a/src/SUMMARY.md b/src/SUMMARY.md index ac7efe026..9ab45b360 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -77,6 +77,7 @@ # ЁЯзЩтАНтЩВя╕П Generic Hacking - [Brute Force - CheatSheet](generic-hacking/brute-force.md) +- [Esim Javacard Exploitation](generic-hacking/esim-javacard-exploitation.md) - [Exfiltration](generic-hacking/exfiltration.md) - [Reverse Shells (Linux, Windows, MSFVenom)](generic-hacking/reverse-shells/README.md) - [MSFVenom - CheatSheet](generic-hacking/reverse-shells/msfvenom.md) diff --git a/src/generic-hacking/esim-javacard-exploitation.md b/src/generic-hacking/esim-javacard-exploitation.md new file mode 100644 index 000000000..71385acef --- /dev/null +++ b/src/generic-hacking/esim-javacard-exploitation.md @@ -0,0 +1,87 @@ +# eSIM / Java Card VM Exploitation + +{{#include ../banners/hacktricks-training.md}} + +## Overview +Embedded SIMs (eSIMs) рдХреЛ **Embedded UICC (eUICC)** рд╕реНрдорд╛рд░реНрдЯ-рдХрд╛рд░реНрдб рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рддрддреНрд╡ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ **Java Card Virtual Machine (JC VM)** рдЪрд▓рд╛рддреЗ рд╣реИрдВред рдЪреВрдВрдХрд┐ рдкреНрд░реЛрдлрд╛рдЗрд▓ рдФрд░ рдПрдкреНрд▓реЗрдЯреНрд╕ рдХреЛ Remote SIM Provisioning (RSP) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ *over-the-air* (OTA) рдкреНрд░рд╛рд╡рдзрд╛рдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, JC VM рдХреЗ рдЕрдВрджрд░ рдХреЛрдИ рднреА рдореЗрдореЛрд░реА-рд╕реБрд░рдХреНрд╖рд╛ рджреЛрд╖ рддреБрд░рдВрдд **рд╣реИрдВрдбрд╕реЗрдЯ рдХреЗ рд╕рдмрд╕реЗ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдШрдЯрдХ рдХреЗ рдЕрдВрджрд░** рдПрдХ рджреВрд░рд╕реНрде рдХреЛрдб-рдирд┐рд╖реНрдкрд╛рджрди рдкреНрд░рд╛рдЗрдорд┐рдЯрд┐рд╡ рдмрди рдЬрд╛рддрд╛ рд╣реИред + +рдпрд╣ рдкреГрд╖реНрда Kigen рдХреЗ eUICC (Infineon SLC37 ESA1M2, ARM SC300) рдХрд╛ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдХрд╛ рдкреВрд░реНрдг рд╕рдордЭреМрддрд╛ рд╡рд░реНрдгрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ `getfield` рдФрд░ `putfield` рдмрд╛рдЗрдЯрдХреЛрдб рдореЗрдВ рдкреНрд░рдХрд╛рд░-рд╕реБрд░рдХреНрд╖рд╛ рдЬрд╛рдВрдЪ рдХреА рдХрдореА рдХреЗ рдХрд╛рд░рдг рд╣реБрдЖред рд╕рдорд╛рди рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдиреНрдп рд╡рд┐рдХреНрд░реЗрддрд╛рдУрдВ рдХреЗ рдЦрд┐рд▓рд╛рдл рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдХрд╛рд░реНрдб-рдкрд░ рдмрд╛рдЗрдЯ-рдХреЛрдб рд╕рддреНрдпрд╛рдкрди рдХреЛ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВред + +## Attack Surface +1. **Remote Application Management (RAM)** +eSIM рдкреНрд░реЛрдлрд╛рдЗрд▓ рдордирдорд╛рдиреЗ Java Card рдПрдкреНрд▓реЗрдЯреНрд╕ рдХреЛ рдПрдореНрдмреЗрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкреНрд░рд╛рд╡рдзрд╛рди рдорд╛рдирдХ APDUs рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ SMS-PP (Short Message Service Point-to-Point) рдпрд╛ HTTPS рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЯрдирд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рдХреЗ рдкрд╛рд╕ рдХрд┐рд╕реА рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП **RAM keys** рд╣реИрдВ (рдпрд╛ рдЙрдиреНрд╣реЗрдВ рдЪреБрд░рд╛ рд▓реЗрддрд╛ рд╣реИ), рддреЛ рд╡реЗ рдПрдХ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рдПрдкреНрд▓реЗрдЯ рдХреЛ рджреВрд░рд╕реНрде рд░реВрдк рд╕реЗ `INSTALL`/`LOAD` рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред +2. **Java Card byte-code execution** +рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж, рдПрдкреНрд▓реЗрдЯ VM рдХреЗ рдЕрдВрджрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИред рд░рди-рдЯрд╛рдЗрдо рдЬрд╛рдВрдЪ рдХреА рдХрдореА рдореЗрдореЛрд░реА рднреНрд░рд╖реНрдЯрд╛рдЪрд╛рд░ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред + +## The Type-Confusion Primitive +`getfield` / `putfield` рдХреЛ рдХреЗрд╡рд▓ **рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рдВрджрд░реНрднреЛрдВ** рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдирд╛ рдЧрдпрд╛ рд╣реИред Kigen eUICC рдореЗрдВ рдирд┐рд░реНрджреЗрд╢ рдХрднреА рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рдХрд┐ рд╕реНрдЯреИрдХ рдкрд░ рдСрдкрд░реЗрдиреНрдб рдПрдХ *рдСрдмреНрдЬреЗрдХреНрдЯ* рд╣реИ рдпрд╛ рдПрдХ *рдРрд░реЗ* рд╕рдВрджрд░реНрднред рдЪреВрдВрдХрд┐ рдПрдХ `array.length` рд╢рдмреНрдж рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдкрд╣рд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреНрд╖реЗрддреНрд░ рдХреЗ рд╕рдорд╛рди рд╣реА рдСрдлрд╕реЗрдЯ рдкрд░ рд░рд╣рддрд╛ рд╣реИ, рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ: + +1. рдПрдХ рдмрд╛рдЗрдЯ-рдРрд░реЗ рдмрдирд╛рдПрдБ `byte[] buf = new byte[0x100];` +2. рдЗрд╕реЗ `Object o = (Object)buf;` рдореЗрдВ рдХрд╛рд╕реНрдЯ рдХрд░реЗрдВред +3. рдХрд┐рд╕реА рднреА 16-рдмрд┐рдЯ рдорд╛рди рдХреЛ рдПрдХ рдирд┐рдХрдЯрд╡рд░реНрддреА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЕрдВрджрд░ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП `putfield` рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ (рдЬрд┐рд╕рдореЗрдВ VTABLE / ptr рдЕрдиреБрд╡рд╛рдж рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ)ред +4. рдЖрдВрддрд░рд┐рдХ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЛ рд╣рд╛рдИрдЬреИрдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж *рдордирдорд╛рдиреА* рдореЗрдореЛрд░реА рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП `getfield` рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред +```java +// Pseudo-bytecode sequence executed by the malicious applet +// buf = newarray byte 0x100 +// o = (Object) buf // illegal but not verified +// putfield , 0xCAFE // arbitrary write +// ... set up read-what-where gadgets ... +``` +рдкреНрд░рд╛рдЗрдорд┐рдЯрд┐рд╡ **рдордирдорд╛рдиреЗ рдкрдврд╝рдиреЗ / рд▓рд┐рдЦрдиреЗ** рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ eUICC рдкрддреЗ рдХреА рдЬрдЧрд╣ рдореЗрдВ - рдЬреЛ GSMA рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдб рдХреЛ рдкреНрд░рдорд╛рдгрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдбрд┐рд╡рд╛рдЗрд╕-рд╡рд┐рд╢рд┐рд╖реНрдЯ ECC рдирд┐рдЬреА рдХреБрдВрдЬреА рдХреЛ рдбрдВрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред + +## рдПрдВрдб-рдЯреВ-рдПрдВрдб рдПрдХреНрд╕рдкреНрд▓реЙрдЗрдЯреЗрд╢рди рд╡рд░реНрдХрдлрд╝реНрд▓реЛ +1. **рдлрд░реНрдорд╡реЗрдпрд░ рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдВ** тАУ рдкреНрд░рд▓реЗрдЦрд┐рдд рдирд╣реАрдВ рдХрд┐рдП рдЧрдП `GET DATA` рдЖрдЗрдЯрдо `DF1F` рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ: +``` +80 CA DF 1F 00 // тЖТ "ECu10.13" (рдХрдордЬреЛрд░) +``` +2. **рджреБрд╖реНрдЯ рдПрдкреНрд▓реЗрдЯ OTA рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ** тАУ TS.48 рд╕рд╛рдорд╛рдиреНрдп рдкрд░реАрдХреНрд╖рдг рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рдЬреНрдЮрд╛рдд рдХреБрдВрдЬрд┐рдпреЛрдВ рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ SMS-PP рдЯреБрдХрдбрд╝реЛрдВ рдХреЛ рдзрдХреНрдХрд╛ рджреЗрдВ рдЬреЛ CAP рдлрд╝рд╛рдЗрд▓ (`LOAD`) рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВ рдЙрд╕рдХреЗ рдмрд╛рдж `INSTALL`: +``` +// рд╕рд░рд▓ APDU рд╢реНрд░реГрдВрдЦрд▓рд╛ +80 E6 02 00 // LOAD (рдмреНрд▓реЙрдХ n) +80 E6 0C 00 // рд▓реЛрдб рдХреЗ рд▓рд┐рдП INSTALL +``` +3. **рдкреНрд░рдХрд╛рд░-рднреНрд░рдо рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░реЗрдВ** тАУ рдЬрдм рдПрдкреНрд▓реЗрдЯ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдПрдХ рдкреЙрдЗрдВрдЯрд░ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рд╣рд╛рдИрдЬреИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦреЗрдВ-рдЬреЛ-рдЬрд╣рд╛рдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп APDU рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореЗрдореЛрд░реА рд▓реАрдХ рдХрд░рддрд╛ рд╣реИред +4. **GSMA рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреБрдВрдЬреА рдирд┐рдХрд╛рд▓реЗрдВ** тАУ рдирд┐рдЬреА EC рдХреБрдВрдЬреА рдПрдкреНрд▓реЗрдЯ рдХреА RAM рдореЗрдВ рдХреЙрдкреА рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рдЯреБрдХрдбрд╝реЛрдВ рдореЗрдВ рд▓реМрдЯрд╛рдИ рдЬрд╛рддреА рд╣реИред +5. **eUICC рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░реЗрдВ** тАУ рдЪреБрд░рд╛рдИ рдЧрдИ рдХреБрдВрдЬреА рдЬреЛрдбрд╝реА + рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╣рдорд▓рд╛рд╡рд░ рдХреЛ *рдХрд┐рд╕реА рднреА* RSP рд╕рд░реНрд╡рд░ рдкрд░ рдПрдХ рд╡реИрдз рдХрд╛рд░реНрдб рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рдорд╛рдгрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ (рдХреБрдЫ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд▓рд┐рдП EID рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдЕрднреА рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рд╕рдХрддреА рд╣реИ)ред +6. **рдкреНрд░реЛрдлрд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ** тАУ рдкреНрд▓реЗрдирдЯреЗрдХреНрд╕реНрдЯ рдкреНрд░реЛрдлрд╛рдЗрд▓ рдореЗрдВ рдЕрддреНрдпрдзрд┐рдХ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдлрд╝реАрд▓реНрдб рд╣реЛрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ `OPc`, `AMF`, OTA рдХреБрдВрдЬреА рдФрд░ рдпрд╣рд╛рдВ рддрдХ рдХрд┐ рдЕрддрд┐рд░рд┐рдХреНрдд рдПрдкреНрд▓реЗрдЯред рд╣рдорд▓рд╛рд╡рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ: +* рдПрдХ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХреЛ рджреВрд╕рд░реЗ eUICC рдкрд░ рдХреНрд▓реЛрди рдХрд░реЗрдВ (рд╡реЙрдпрд╕/SMS рд╣рд╛рдИрдЬреИрдХ); +* рдкреБрдирдГ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ Java Card рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдкреИрдЪ рдХрд░реЗрдВ (рдЬреИрд╕реЗ STK рд╕реНрдкрд╛рдЗрд╡реЗрдпрд░ рдбрд╛рд▓реЗрдВ); +* рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рджреБрд░реБрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдСрдкрд░реЗрдЯрд░ рд░рд╣рд╕реНрдпреЛрдВ рдХреЛ рдирд┐рдХрд╛рд▓реЗрдВред + +## рдХреНрд▓реЛрдирд┐рдВрдЧ / рд╣рд╛рдИрдЬреИрдХрд┐рдВрдЧ рдкреНрд░рджрд░реНрд╢рди +**рдлреЛрди A** рдФрд░ **рдлреЛрди B** рдкрд░ рд╕рдорд╛рди рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдореЛрдмрд╛рдЗрд▓ рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ рд╕реЗрдВрдЯрд░ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдЙрд╕ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд░реВрдЯ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рд╣реБрдЖ рд╣реИред рдПрдХ рд╕рддреНрд░ рдХрд╛ Gmail 2FA SMS рдЗрдВрдЯрд░рд╕реЗрдкреНрд╢рди рдкреАрдбрд╝рд┐рдд рдХреЗ рд▓рд┐рдП MFA рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред + +## рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг рдФрд░ рд╢реЛрд╖рдг рдЯреВрд▓рдХрд┐рдЯ +рд╢реЛрдзрдХрд░реНрддрд╛рдУрдВ рдиреЗ рдПрдХ рдЖрдВрддрд░рд┐рдХ рдЙрдкрдХрд░рдг рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд┐рд╕рдореЗрдВ `bsc` (*рдмреЗрд╕рд┐рдХ рд╕рд┐рдХреНрдпреЛрд░рд┐рдЯреА рдЪреЗрдХ*) рдХрдорд╛рдВрдб рд╣реИ рдЬреЛ рддреБрд░рдВрдд рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдПрдХ Java Card VM рдХрдордЬреЛрд░ рд╣реИ: +``` +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 shipped with the framework: +* `introspector` тАУ рдкреВрд░реНрдг VM рдФрд░ рдореЗрдореЛрд░реА рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ (~1.7 MB Java) +* `security-test` тАУ рд╕рд╛рдорд╛рдиреНрдп рд╕рддреНрдпрд╛рдкрди рдмрд╛рдпрдкрд╛рд╕ рдПрдкреНрд▓реЗрдЯ (~150 KB) +* `exploit` тАУ 100 % рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп Kigen eUICC рд╕рдордЭреМрддрд╛ (~72 KB) + +## Mitigations +1. **On-card byte-code verification** тАУ рд╕реНрдЯреИрдХ-рдЯреЙрдк рдХреЗрд╡рд▓ рдХреЗ рдмрдЬрд╛рдп рдкреВрд░реНрдг рдирд┐рдпрдВрддреНрд░рдг-рдкреНрд░рд╡рд╛рд╣ рдФрд░ рдбреЗрдЯрд╛-рдкреНрд░рд╡рд╛рд╣ рдкреНрд░рдХрд╛рд░ рдЯреНрд░реИрдХрд┐рдВрдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВред +2. **Hide array header** тАУ `length` рдХреЛ рдУрд╡рд░рд▓реИрдкрд┐рдВрдЧ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝реАрд▓реНрдб рдХреЗ рдмрд╛рд╣рд░ рд░рдЦреЗрдВред +3. **Harden RAM keys policy** тАУ рдХрднреА рднреА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рдкреНрд░реЛрдлрд╛рдЗрд▓ рди рднреЗрдЬреЗрдВ; рдкрд░реАрдХреНрд╖рдг рдкреНрд░реЛрдлрд╛рдЗрд▓ рдореЗрдВ `INSTALL` рдХреЛ рдЕрдХреНрд╖рдо рдХрд░реЗрдВ (GSMA TS.48 v7 рдореЗрдВ рд╕рдВрдмреЛрдзрд┐рдд)ред +4. **RSP server side heuristics** тАУ EID рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкреНрд░реЛрдлрд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рджрд░-рд╕реАрдорд╛, рднреМрдЧреЛрд▓рд┐рдХ рд╡рд┐рд╕рдВрдЧрддрд┐рдпреЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░реЗрдВ, рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреА рддрд╛рдЬрдЧреА рдХреЛ рдорд╛рдиреНрдп рдХрд░реЗрдВред + +## Quick Checklist for Pentesters +* Query `GET DATA DF1F` тАУ рдХрдордЬреЛрд░ рдлрд░реНрдорд╡реЗрдпрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ `ECu10.13` Kigen рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреА рд╣реИред +* рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ RAM рдХреБрдВрдЬреА рдЬреНрдЮрд╛рдд рд╣реИрдВ тАС> OTA `INSTALL`/`LOAD` рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред +* рдПрдкреНрд▓реЗрдЯ рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж, рд╕рд░рд▓ рдХрд╛рд╕реНрдЯ рдкреНрд░рд┐рдорд┐рдЯрд┐рд╡ (`objarrconfusion`) рдХрд╛ рдмреНрд░реВрдЯ-рдлреЛрд░реНрд╕ рдХрд░реЗрдВред +* рд╕реБрд░рдХреНрд╖рд╛ рдбреЛрдореЗрди рдирд┐рдЬреА рдХреБрдВрдЬреА рдкрдврд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ тАУ рд╕рдлрд▓рддрд╛ = рдкреВрд░реНрдг рд╕рдордЭреМрддрд╛ред + +## References +- [Security Explorations тАУ eSIM security](https://security-explorations.com/esim-security.html) +- [GSMA TS.48 Generic Test Profile v7.0](https://www.gsma.com/get-involved/working-groups/gsma_resources/ts-48-v7-0-generic-euicc-test-profile-for-device-testing/) +- [Java Card VM Specification 3.1](https://docs.oracle.com/en/java/javacard/3.1/jc-vm-spec/F12650_05.pdf) + +{{#include ../banners/hacktricks-training.md}}