QNA > C > Cosa Succede Effettivamente Quando Facciamo Il Root O Il Jailbreak Di Un Dispositivo?

Cosa succede effettivamente quando facciamo il root o il jailbreak di un dispositivo?

In sostanza, si ottiene l'accesso root al dispositivo. Questi dispositivi girano su Linux. Quando si vuole eseguire qualche comando con maggiori permessi, è necessario avere l'accesso come root, che è il motivo per cui si digita "su" nel terminale. Root è il nome utente o l'account che per impostazione predefinita ha accesso a tutti i comandi e file in un sistema.

In genere, Apple/Samsung/Google/ecc. ha un accesso limitato a questi permessi. Per esempio, su un iPhone, non è possibile SSH in un iPhone o installare applicazioni da qualsiasi altra parte che non sia l'App Store. Con il jailbreak, tuttavia, si ottiene l'accesso root al dispositivo e si possono quindi annullare questi privilegi.

Questi metodi sono generalmente ottenuti tramite un exploit. Per esempio, diciamo:

prog_x è responsabile del lancio dei programmi. Tuttavia, prog_x non verifica l'autenticazione dei programmi. Scrivendo un programma per elevare i privilegi di sistema, potreste teoricamente sfruttare questo programma facendogli lanciare il vostro programma, che successivamente eleverà i vostri permessi utente. Naturalmente, è molto più complicato di così.


Gli sviluppatori di Evasi0n hanno utilizzato almeno cinque bug distinti in iOS 6.x per eseguire il jailbreak.

In primo luogo, gli hacker hanno ottenuto l'accesso a un file che indica il fuso orario del dispositivo tramite un bug nel sistema di backup, poi un link simbolico è stato inserito nel file del fuso orario per un socket che garantisce l'accesso a launchd, un framework di gestione dei servizi.

In secondo luogo, viene eseguita un'applicazione firmata, l'applicazione "Jailbreak", su springboard, che esegue un comando remount che rende il file system di root scrivibile.

Evasi0n utilizza anche launchd per scambiare la funzione di firma del codice chiamata ogni volta che un programma viene lanciato con una che restituisce sempre "approvato".

Evasi0n quindi simula un crash per individuare il kernel (un programma per computer che gestisce le richieste di I / O dal software e le traduce in istruzioni di elaborazione dei dati per la CPU) controllando il vettore di eccezione ARM. La tabella dei vettori ARM risiede ad un indirizzo fisso [1].

Infine, evasi0n sfrutta un bug nell'interfaccia USB di iOS che passa un indirizzo del kernel senza controllare che venga restituito invariato (che fa parte delle suddette "istruzioni di elaborazione dati" del kernel, se non mi sbaglio) viene utilizzato per consentire ad evasi0n di scrivere in qualsiasi parte del kernel, in particolare nella parte del kernel che limita le modifiche al suo codice.

[1]

  • Kernel

    Disponibile per: iPhone 3GS e successivi, iPod touch (quarta generazione) e successivi, iPad 2 e successivi

    Impatto: Un utente locale potrebbe essere in grado di determinare l'indirizzo di strutture nel kernel

    Descrizione: Un problema di divulgazione delle informazioni esisteva nel gestore dell'interruzione del prefetch ARM. Questo problema è stato risolto andando nel panico se il gestore dell'interruzione del prefetch non viene chiamato da un contesto di interruzione.

    CVE-ID

    CVE-2013-0978 : evad3rs

Questo richiede molti anni di pratica. Si dovrebbe imparare la programmazione generale, il linguaggio assembly, lo shellcode, la crittografia, il linguaggio macchina, e su Linux, il reverse engineering e l'hardware. Il jailbreak è l'equivalente di un meccanico che modifica un'auto. Non è qualcosa che si prende una chiave inglese e si lavora immediatamente. Devi sapere su cosa stai lavorando prima di poterlo fare.

Di Islek

Quanti colpi di copyright su Instagram faranno disabilitare un account? :: Cos'è una risorsa Android?
Link utili