Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
UnjailMe — Una fuga dalla sandbox basata sulla proof-of-concept (CVE-2018-4087) di Rani Idan (Zimperium) | Kitploit
Strumenti/GitHubGitHub/mtjailed/unjailme
Escalation di PrivilegiFramework di ExploitSicurezza iOSAnalisi delle VulnerabilitàExploitInformatica ForensePost-ExploitSicurezza MobileSviluppo PayloadBinary Exploitation
GitHubmtjailed/unjailme

UnjailMe

82218 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Una fuga dalla sandbox basata sulla proof-of-concept (CVE-2018-4087) di Rani Idan (Zimperium)

Vedi RepositorySito web

UnjailMe

Un'evasione dalla sandbox basata su:

  • il proof-of-concept (CVE-2018-4087) di Rani Idan (Zimperium)
  • il proof-of-concept dell'overflow di securityd di @cheesecakeufo (zeroday, nessuna CVE nota, grazie Abraham!)

A proposito del PoC di ZIMPERIUM

Rani ha usato sbtool di Jonathan Levine per scoprire quali servizi fossero accessibili per la comunicazione dall'interno della sandbox.

Ha poi scoperto di più su bluetoothd e ha predisposto del codice per intercettare i messaggi da e verso il servizio.

In questo modo ha scoperto di poter dirottare la sessione di molti daemon e di poter far trapelare la porta del client.

In questo modo ha scoperto che era possibile aggiungere una callback con dati aggiuntivi alla connessione del client a bluetoothd.

La conseguenza è che si può ottenere il controllo del contatore di processo (callback) e del registro x3 (dati aggiuntivi) dei daemon di sistema da cui viene intercettata una porta client (sessione).

Fornendo la possibilità di far evadere un'app dalla sandbox in un contesto privilegiato, facendole eseguire codice con privilegi di sistema.

Apple ha corretto le vulnerabilità in iOS 11.2.5 usando un arc4random() per l'id di sessione.

Sembra che non sia più possibile ottenere la porta di un client, ma intercettare le sessioni lo è ancora.

Ci vogliono circa 5 giorni per fare brute force su questo arc4random() in questa nuova patch (4.294.967.296 possibilità) e quindi aspetto ancora una patch definitiva, poiché questa non è considerata una soluzione al problema di sicurezza.

Fonte: Zimperium Blog

A proposito del PoC di Abraham Masri

Per quanto ne so, si tratta di un buffer overflow nella comunicazione con securityd.

Questo viene fatto fornendo un messaggio XPC, cioè un messaggio basato su un dizionario con coppie valore-chiave, con una lunghezza non valida.

Il servizio riceve il messaggio e si verifica l'underflow.

Abraham sembra aver trovato un modo per controllare molti registri del processore, rendendo possibile l'esecuzione di codice con privilegi di sistema per le app in esecuzione all'interno del sistema.

Il PoC di Abraham mostra che Abraham sta cercando di creare lui stesso un exploit per questa vulnerabilità, poiché esiste codice per far trapelare gli indirizzi di base, noto come l'inizio della creazione di una catena ROP.

Non è noto se Abraham abbia intenzione di scrivere lui stesso questo exploit o di indicarci la giusta direzione.

Requisiti

  • Un dispositivo iOS a 64 bit con iOS 10 fino a 11.3.1

A proposito di questo progetto

  • Questo progetto non è un jailbreak né contribuirà a crearne uno, poiché opererà solo in userland
  • Questo progetto non può e non potrà mai ottenere la capacità di scrivere sul rootfilesystem, poiché questo è montato come read-only, come imposto dal kernel.
  • Questo progetto non consentirà facilmente l'esecuzione arbitraria di codice sotto forma di librerie dinamiche come fa cydia substrate.
  • L'obiettivo principale del progetto è elevare un'app contenitore in sandbox ai privilegi di sistema.
  • AMFI impone che tutti i binari siano firmati validamente e questo progetto non può patchare AMFI.
  • Il progetto mira a ottenere i permessi di lettura e scrittura sulla partizione userdata (/var/root, /var/mobile).
  • Il progetto mira a ottenere l'accesso al portachiavi protetto per il recupero delle credenziali e per scopi forensi.
  • Il progetto mira inoltre a fornire funzionalità server per eseguire codice come root e per il trasferimento di file.
  • Il progetto è stato pensato per essere di aiuto a sviluppatori e ricercatori per i loro contributi.
  • Il progetto renderà più facile per gli sviluppatori di jailbreak e i ricercatori di sicurezza trovare bug nei driver del kernel accessibili solo da un contesto privilegiato, o bug in userland, usando tecniche di fuzzing.
  • Il progetto renderà più facile per gli sviluppatori di tweak per jailbreak studiare le nuove funzionalità di iOS 11 e fare debug dello sviluppo di tweak su un dispositivo reale.
  • Questo progetto ha come focus principale il supporto da iOS 10 fino a 11.2.5, ma in teoria può supportare anche dalla 11.2.5 fino alla 11.3 inclusa, quando verranno sviluppati exploit.

Screenshot

Come usare l'app

  • L'app non aggiunge alcun valore al progetto, ma serve come supporto visivo per coloro che l'hanno richiesta (Molte persone entusiaste della community l'hanno chiesto)
  • L'app eseguirà il dump delle informazioni da librerie e framework, inclusa la memoria, le informazioni mach-o e i relativi indirizzi di base, utili per lo sviluppo di ROP.
  • La logica nell'app può richiedere fino a 15 minuti per essere completata a causa delle numerose operazioni di parsing e delle stampe; questo non accadrà nelle versioni finali.
  • L'app non aggiungerà alcun valore al tuo iPhone né cambierà il comportamento del software così com'è; alcuni daemon potrebbero andare in crash, ma non verrà causato alcun danno permanente al sistema.
  • Si consiglia ai ricercatori di eseguire questo progetto in Xcode, invece.

RISOLUZIONE DEI PROBLEMI (non necessaria, ma per ogni evenienza)

  • Elimina l'app
  • Disattiva il Bluetooth
  • Riavvia
  • Attiva il Bluetooth
  • Disattiva il Bluetooth

Funzionalità

  • Accesso FTP (attualmente in sandbox, in futuro senza sandbox)
  • PoC visivo
  • PoC di zerodium (Finalmente leggermente migliorato, può effettuare chiamate alla funzione system())
  • PoC di Abraham, che dovrebbe essere in grado di eseguire codice arbitrario come root, perfetto per ssh.
  • PoC di Sem Voigtlander (DoS sull'allocazione dello spazio degli indirizzi del kernel, per la funzione di riavvio del dispositivo).

In programma

  • Exploit completo che includa il pieno controllo dello spazio degli indirizzi di altri daemon.
  • Accesso remoto a una shell SSH (dropbear o un derivato).

Da considerare in futuro

  • Iniezione di codice in SpringBoardd (Salve, amanti del jailbreak)
  • launchd (Non possibile, poiché non possiamo ottenere una sessione per esso).
  • Iniettare codice che carichi il framework BaseBoard
  • Far trapelare gli indirizzi delle librerie nella dyld_shared_cache.
  • Trovare un ropgadget in una qualsiasi libreria nella dyld_shared_cache.
  • Chiamare la ropchain impostando la callback e i dati aggiuntivi della callback.
  • Usare la logica di reverse engineering di BaseBoard per far eseguire a launchd amfid con argomenti e aslr disabilitato.
  • patchare amfid
  • Usare la logica di reverse engineering di BaseBoard per far eseguire afcd con argomenti per / e aslr disabilitato. (simile ad afc2).
  • Usare la logica di reverse engineering di BaseBoard per eseguire unjaild, un daemon che può essere usato come wrapper attorno a launchd e gestisce i privilegi dei task e l'iniezione di codice.
  • Ottenere una taskport su launchd con aslr disabilitato usando la logica di BaseBoard.

Da esaminare

  • Patch di AMFI (Non facile, non possiamo ottenere sessioni su amfi, ma forse possiamo fare escalation usando altri daemon).
  • Iniezione di entitlement (Non proprio necessaria, abbiamo il controllo su così tanti daemon che non ne abbiamo bisogno).
  • Elevare ulteriormente i privilegi usando API private (BaseBoard.framework può avviare processi con ASLR disabilitato e privilegi di sistema)???
  • Riportare in vita e portare liblorgnette su iOS (FATTO)

Scarica l'ipa

https://github.com/MTJailed/UnjailMe/releases/tag/0.1

Crediti

  • Abraham (@cheesecakeufo) per il suo zeroday di securityd
  • Vulnerabilità e PoC iniziale: Rani Idan (Zimperium) <3
  • PureFTPd
  • Progetto liblorgnette (con i miei piccoli miglioramenti)
  • NEWUI di @ringarang

Dona o contribuisci

  • Il codice sorgente può essere fornito se richiesto su Twitter via DM (@MTJailed)
  • Per favore dona, ho pochissimo tempo e pochi mezzi per lavorare a progetti del genere! (http://paypal.me/devsupport)
  • Presto il codice sorgente (tranne quello per ftp) sarà qui su GitHub.
Scarica lo strumento