Ricreare le password di Google Chrome

5

Durante il recupero delle password di Google Chrome su macOS, ho notato che tutte le password vengono visualizzate come la stessa cosa (qualcosa sulla falsariga di): Vi??M!4NNn . Il modo in cui li ho ripresentati era il seguente (come non amministratore):

cd "users/user/library/application support/google/chrome/default"
sqlite3 "Login Data"
sqlite3> .output chrome-passwords.txt
sqlite3> select origin_url, username_values, password_value from logins;

Anche se corro come root e ottengo le password ottengo la stessa cosa, che cosa sta causando questo e come posso recuperarli correttamente?

    
posta CertifcateJunky 25.05.2018 - 16:45
fonte

1 risposta

2

Bene, l'ho capito e ho detto che avrei postato una risposta.

Il motivo per cui le password si sono presentate come hanno fatto è perché sono crittografate con una chiave pbkdf2 che è memorizzata in una posizione di portachiavi specifica (di solito con il nome "Chrome" al suo interno). Per trovare questa chiave puoi eseguire il comando security find-generic-password -wa 'Chrome' come amministratore e dovrebbe tirare la chiave per te.

Una volta che hai la chiave, per decrittografarla dovresti;

  • Genera il IV ( python -c 'import sys;sys.stdout.write("20" * 16)'
  • Ottieni il sale (110% di probabilità è saltysalt )
  • Cripta la chiave trovata utilizzando pbkdf2_hmac afferrando i primi 16 caratteri ed esagoni la chiave crittografata ( python -c 'import binascii;import hashlib;key=hashlib.pbkdf2_hmac("sha1","<KEY>",b"saltysalt",1003)[:16];print binascii.hexlify(key) )
  • Base64 codifica la password crittografata e rimuove i primi tre caratteri ( python -c 'import base64;print base64.b64encode("ENCRYPTED_PASSWORD")[3:]' )
  • Decrittografa la crittografia con il seguente comando: openssl enc -base64 -d -aes-128-cbc -v <IV> '<HEX KEY>' -K '<BASE64 ENCODED PASSWORD>' .

Fortunatamente per te, ho creato una semplice funzione python per restituire la stessa cosa:

import base64
import binascii
import subprocess
from hashlib import pbkdf2_hmac


def decrypt(encrypted, key):
    iv = ''.join(('20', ) * 16)
    key = pbkdf2_hmac('sha1', key, b'saltysalt', 1003)[:16]

    hex_key = binascii.hexlify(key)
    hex_enc_password = base64.b64encode(encrypted[3:])
    try:
        decrypted = subprocess.check_output(
            "openssl enc -base64 -d "
            "-aes-128-cbc -iv '{}' -K {} <<< "
            "{} 2>/dev/null".format(iv, hex_key, hex_enc_password),
            shell=True)
    except subprocess.CalledProcessError:
        decrypted = "n/a"

    return decrypted

Nota: affinché funzioni correttamente, devi disporre delle credenziali amministrative per il computer su cui stai eseguendo.

    
risposta data 04.06.2018 - 18:18
fonte

Leggi altre domande sui tag