Controllare se una password per il documento dell'ufficio di MS criptato è corretta

0

Sto scrivendo un programma Python per decifrare un documento criptato di MS Office. Fare riferimento a questo GitHub Repo come riferimento.

Ora quello che voglio fare è provare un gruppo di password comunemente usate contro il documento. Una sorta di approccio a forza bruta. Ma il problema è quando inserisco la password, non ho modo di sapere se il contenuto decrittografato è spazzatura, il che significa che la password è sbagliata o il contenuto decrittografato è il giusto contenuto originale, il che significa che la password era corretta.

So che all'interno della struttura del documento, questa informazione è solitamente incorporata in EncryptionInfo . Ma non capisco come faccio a verificare se la password che sto usando è corretta o il contenuto che decrittografia è corretto.

Ho provato a controllare un sacco di fonti online e uno che potrebbe aiutare è Questo video di YouTube e < a href="https://www.programcreek.com/java-api-examples/index.php?source_dir=POI-Android-master/ppt/poi/org/apache/poi/poifs/crypt/EncryptionVerifier.java" > Potrebbe essere questo codice (non penso però) ma non sono in grado di realizzare tutto questo in un codice python perché non capisco tutte le operazioni suggerite in esso correttamente.

    
posta Keyur Golani 02.10.2017 - 23:37
fonte

1 risposta

3

I documenti di MS Office sono crittografati con la password in testo semplice. Ma usano l'hash della password in testo semplice per verificare se funzionerà prima però. Se la password fornita dall'utente passa attraverso il processo di hashing e corrisponde al suo hash memorizzato, decodifica il file con la password fornita.

Inoltre l'hash non è un hash diretto della chiave. In Office 2007 hash la password 50.000 volte e in Office 2010 l'hash 100.000 volte. Entrambi utilizzano SHA-1. Questo è per combattere gli strumenti che eseguono il bruto degli hash forzati per le versioni precedenti. Office 2013 utilizza la stessa strategia ma utilizza SHA-512 per impostazione predefinita.

Quindi, se conosci il metodo hash e la versione di Office, puoi scrivere uno script che trasforma una password in testo semplice in un hash compatibile da confrontare con l'hash del documento MS. Se il tuo script li confronta come uguali, puoi verificare che sia la password corretta.

    
risposta data 03.10.2017 - 01:09
fonte

Leggi altre domande sui tag