Come decrittografare il portachiavi del sistema da un altro mac sulla riga di comando

1

Mi sono imbattuto in una situazione in cui un utente con un Mac che era stato danneggiato da un aggiornamento interrotto era necessario nel suo backup all'esterno di Time Machine del normale processo di ripristino. Sfortunatamente, hanno dimenticato la password per farlo.

Ho accesso al file system sul Mac danneggiato e ho bisogno di recuperare la password di Time Machine e qualsiasi altra cosa nel portachiavi del sistema.

Difficoltà: Il portachiavi del sistema non usa una password normale, utilizza byte casuali .

Come decifri un portachiavi di sistema?

    
posta Mikey T.K. 28.11.2017 - 18:27
fonte

1 risposta

4

Hai bisogno delle seguenti cose:

  • Un Mac guasto con un filesystem leggibile (chiamato la macchina Source da qui in poi)
  • Un nuovo computer Mac o Linux (chiamato la macchina Target da qui in poi)

  • Il file System.keychain dal computer di origine.

    • Questo file si trova in /System/Library/Keychains o /Library/Keychains
  • Il file SystemKey dal computer di origine. Questo contiene la password effettiva.
    • Situato in /var/db/SystemKey
  • Accesso a Internet sul computer di destinazione.

Passaggio 1: ripristino della chiave di crittografia per il portachiavi di origine

Non possiamo usare SystemKey così com'è - contiene byte casuali che non possono essere inseriti in una finestra di dialogo o riga di comando della password. Ancora meglio, abbiamo bisogno di 24 byte al centro del file - dopo il numero magico che indica un file chiave, ma prima dei byte di checksum.

Il comando corretto per ottenere la chiave esadecimale giusta è:

hexdump -s 8 -n 24 -e '1/1 "%.2x"' /path/to/SystemKey && echo

Spiegato: Salta i primi 8 byte dall'inizio del file, continua con 24 byte e usa la stringa di formato per scaricare i dati su una riga (è una stringa di tipo printf in C, se si ' curioso).

Il && echo è quindi otteniamo una nuova riga successiva in modo che l'output non venga eseguito all'inizio del prompt della shell dopo che il comando è stato completato.

Copia questa stringa da parte. Questa è la chiave di decrittazione per il portachiavi.

Passaggio 2: Scarica il portachiavi utilizzando la password

Abbiamo bisogno di uno strumento di terze parti per questo. Partiamo dal presupposto che il Mac guasto non può essere avviato in modo tale da poter utilizzare normalmente la sua app Keychain Access.

Tale strumento sarà Chainbreaker - uno script python. Dovrai installare la libreria hexdump per Python. Eseguire i seguenti comandi sul computer di destinazione:

  • sudo pip install hexdump
  • git clone https://github.com/n0fate/chainbreaker
  • cd chainbreaker

Ora semplicemente diamo a chainbreaker la chiave che hai appena trovato e il file:

python chainbreaker.py -f /path/to/system.keychain -k (the byte string from step 1)

Vedrai la password in chiaro di tutto nel portachiavi del sistema. Per il mio caso d'uso, volevo la password di Time Machine, che verrà rappresentata nell'output come Generic password record chiamata Time Machine . La password in chiaro sarà sotto.

Ora possiamo semplicemente usare il Finder per aprire il Time Machine .sparsebundle, dare la password che abbiamo estratto dal keyfile e continuare come al solito.

    
risposta data 28.11.2017 - 18:27
fonte

Leggi altre domande sui tag