Come scoprire la forza della password di Wordpress (già memorizzata)?


10

Sono responsabile della sicurezza di molti server di hosting condiviso. Molti di loro hanno siti Web WordPress. Ogni server ha almeno 500 siti Web WordPress.

Nella mia esperienza, il problema con WordPress inizia con una password debole. La maggior parte della password dell'amministratore del sito Web è molto debole e l'utilizzo del sito Web con password debole viene sfruttato e utilizzato per varie attività dannose.

Ora il mio piano è quello di scoprire la password debole del sito Web WordPress e cambiare con forza la password dell'amministratore in un'altra password sicura. In questo modo, WordPress può essere protetto e il mio server non avrà problemi.

Qual è il modo per conoscere la forza della password di WordPress memorizzata?

Risposte:


8

Hash di Bruteforce

È possibile aumentare la forza dell'hash archiviato nel database.

WordPress utilizza phpass per l'hash. Per impostazione predefinita, WordPress non utilizza blowfish o simili, ma solo md5 con un conteggio di iterazioni di 8192. Se vuoi solo trovare password davvero pessime, il bruteforcing è sicuramente fattibile.

Ma considererei questa una violazione piuttosto grande della fiducia che gli utenti ripongono in te, quindi non consiglierei questo approccio.

Analizza le loro password durante l'accesso

È possibile aggiungere uno script che intercetta tutte le richieste agli script di accesso di WordPress e registrare o analizzare le password, poiché sono in testo normale a quel punto.

Ovviamente, questo acquisisce password deboli solo quando un utente accede effettivamente. Se hanno abbandonato il loro sito o sono piuttosto inattivi, potrebbe occorrere del tempo per scoprire che usano una password debole.

Considererei questa violazione ancora più grande della brutale forzatura degli hash e comporta anche alcuni problemi di sicurezza (se si memorizzano le password in testo semplice, questo sarebbe ovviamente un problema, ma anche in caso contrario, è possibile che accidentalmente vengano archiviate alcune informazioni da l'analisi che può aiutare un attaccante).

Implementare una politica delle password (e forzare gli utenti a cambiare le loro password)

È possibile implementare una politica di password. Quando un utente invia una nuova password, verifichi se è conforme alle norme o meno (idealmente, ciò avverrebbe sul lato server, non sul lato client tramite JavaScript).

Scrivere una buona politica password è difficile, quindi dai un'occhiata alle politiche esistenti per aiutarti qui.

Naturalmente, le vecchie password non sono interessate dalla politica, quindi è necessario forzare gli utenti a cambiare le loro vecchie password per conformarsi alla politica

Limitare i danni

Applicare password complesse può sicuramente essere una buona idea, ma idealmente un'istanza di WordPress compromessa non dovrebbe davvero influenzarti come webmaster.

Dovresti limitare il danno una volta che un utente malintenzionato ha ottenuto l'accesso a un'installazione di WordPress. Idealmente, vorresti che fosse interessata solo un'istanza, non l'intero server (quindi potresti preoccuparti che un utente malintenzionato inserisca contenuti indecenti su un sito Web, proprio come potrebbe fare un utente valido), ma non sull'esecuzione di codice o su altri malware attività).

Questo è un argomento piuttosto ampio, ma alcuni punti includono:, DISALLOW_FILE_EDITlimitato l'uso dei plug-in (poiché sono codificati in modo molto meno sicuro rispetto allo stesso WordPress), non consente JavaScript (ad es. Con i siti multipli, solo i superamministratori hanno il diritto di pubblicare JavaScript, non amministratori), ecc.


4

Non sono sicuro che questo sia persino possibile. Quando si seleziona la password, viene memorizzata l'hash nel database. Non c'è enginering inverso quando si tratta di algoritmi di hash.

Nella mia esperienza, lo script per la forza della password si trova in www.example.com/wp-admin/js/password-strength-meter.js, e questo è il link ad esso.

Puoi modificare i livelli e la percentuale per le password qui, quindi puoi impostare una forza password obbligatoria su 100/100.

E, se vuoi che il tuo client controlli la forza della password, c'è un'applicazione carina che può darti la forza della password qui.

È impossibile fare un po 'di enginering inverso qui, e inoltre, ci sono alcuni plugin che stanno costringendo gli utenti a ottenere password complesse.


1
Sembra una cosa semplicissima che gli host web e i proprietari dei siti possono fare per proteggersi. Ottima domanda e risposta! Non sono sicuro che sia mai stato affrontato qui prima. Almeno non è stato affrontato per molto tempo. Saluti!!
closetnoc,

1
La risposta sopra è buona, ma non risolve il mio problema. La maggior parte dei siti Web WordPress sono già installati o in un giorno 100s di installazione di WP è in corso nel mio server. Supponiamo che modifichi la forza della password usando password-strength-meter.js, ancora non utile per me. Bcoz, il pwd è già impostato. Questo sarà utile solo per il nuovo passwd, non per quello già impostato.
Mani,

1
Ma non è possibile scoprire tutte le password dal database perché sono sottoposte a hash. È possibile impostare questo e quindi inviare nuovamente a tutti gli utenti di modificare le loro password in modo che possano avere password complesse. Non vedo altro modo per aggirare questo. Controlla anche le risposte di seguito.
Josip Ivic,

2
@Josip Ivic, l'unico modo è resettare pwd e informare l'amministratore come hai detto.
Mani,

1
Per i nuovi utenti, modificherei semplicemente lo script su wp sul server, quindi è obbligatorio avere password complesse, e per i vecchi utenti, rispedirei loro messaggi in modo che possano cambiare le loro password in password forti. Come ho detto, non esiste un modo semplice per farlo, ma è fattibile. :)
Josip Ivic,

3

Le buone notizie sono che puoi cambiare le password degli utenti, le cattive notizie sono che non puoi vederle.
Wordpress è così potente che persino nel database memorizza la password con la crittografia in un modo non è solo un hash md5 che puoi convertire, non è nemmeno dati serializzati, per la password test123otterrai qualcosa di simile $P$BjW8o9Dm1vC5bwAcP1iAdNVm0lbvn, anche se cambi il campo password nel database senza usare la crittografia, non funzionerebbe.

Come cambiare la password

Credo che tu ne sia consapevole, ma lo lascerò qui. Puoi inserire la tua dashboard di wordpress con privilegi di amministratore, andare agli utenti, trovare un utente e questa parte è un po 'brutta per i tuoi scopi perché devi fare clic su Genera nuova password, ti darà una zuppa casuale di lettere e simboli e puoi modificalo con il tuo ma anche in questo caso non riesci a vedere la password.


Hai dimenticato di menzionare che puoi utilizzare un plug-in come iThemes per richiedere agli utenti di inserire password complesse, consentire anche la protezione della forza bruta e altre interessanti funzioni che potrebbero interessarti.
Knif3r,

3

Poiché le password sono sottoposte a hash, l'unico modo per testare la loro sicurezza è forzarle brutalmente. Raccogli un elenco di password comunemente usate e deboli e mettile alla prova con gli hash memorizzati nel tuo database.

A meno che non si utilizzi un elenco di password molto completo, questo non catturerà tutte le password deboli, ma filtrerà quelle più deboli.


Questa è una soluzione che richiede molto tempo.
Josip Ivic,

Questo è ciò che si chiama costruire un tavolo arcobaleno.
Ashfame,

@Ashfame No, non lo è. Un tavolo arcobaleno è un approccio molto più sofisticato che non è necessariamente il più adatto per questo scenario.
Tom van der Zanden,

@TomvanderZanden Potrebbe non essere un approccio adatto, ma come non sarà un tavolo arcobaleno?
Ashfame,

@Ashfame Perché le tabelle arcobaleno sono molto più sofisticate di "controllare un elenco di password rispetto al database". Le tabelle Rainbow, ad esempio, utilizzano catene di hash e funzioni di riduzione. Si noti inoltre che la creazione di una tabella arcobaleno richiede più tempo rispetto al semplice controllo di tutte le password rispetto al database. L'uso di un tavolo arcobaleno precompilato potrebbe avere senso, ma potrebbe essere eccessivo per questa situazione.
Tom van der Zanden,

1

Non è possibile modificare forzatamente la password dell'amministratore di wp, a meno che non si abbia alcun controllo in ciascun database di wordpress, che è archiviato in phpmyadmin.

E no, non esiste un modo rapido per scoprire la password della settimana sul sito di 500 wordpress. Josip menziona un link per verificare la sicurezza della password, ma quel sito non ha utilizzato md5 crypto algo per verificare la sicurezza della password.

Dai un'occhiata a questo SO Link , ( Wordpress usando MD5 ) e vedrai che l'output è diverso da quell'app. Quindi, come vedi, p#aSS*Word14non è sicuro di Dance With Me TonightQuindi non usare l'app di thirt party per controllare la tua password di Wordpress, perché potrebbe essere che stanno usando un altro algoritmo crittografico per controllare / assumere la sicurezza della password.

Inoltre dovresti avere tutte le password e testarle una per una, non c'è nessun trucco magico da scoprire rapidamente.

Un'altra cosa è che, se un sito WordPress viene violato, allora non ha influenzato l'altro sito wp nello stesso server (tranne l'attacco DOS). Ho visto molte persone iniziare wp nell'hosting condiviso e il loro sito viene violato, ma il loro sito vicino funzionava bene, perché ogni wp ha il suo database su phpmyadmin.


Didn't affect other WP site on same server:Coincidenza! Dipende dal tipo di attacco / hack e intenzione dell'hacker / bot.
Ashfame,

Sto parlando della sicurezza di wordpress, non di una sicurezza a livello di root. Ma sono sicuro, soprattutto il provider di hosting che utilizza il meccanismo sandbox non ha influito su altri siti Web sullo stesso server.
Goyllo,

1

Come hanno sottolineato le risposte precedenti: non è possibile leggere le password memorizzate.

Una soluzione alternativa potrebbe essere:

  1. Attua il suggerimento di Josip Ivic per applicare password complesse.
  2. Elimina tutte le password (o solo le password per gli utenti con determinati privilegi).
  3. Infine, informare gli utenti interessati che è in vigore una nuova politica delle password e indirizzarli /wp-login.php?action=lostpassworda reimpostare le password.

1

Le password di WordPress sono sottoposte a hash, come farebbe qualsiasi applicazione sensibile quando si tratta di archiviare le password perché la memorizzazione di password in chiaro è molto insicura poiché i tuoi utenti potrebbero avere la stessa password per altri servizi che usano (pensi a Gmail?).

Non è possibile riconvertire l'hash nella password, altrimenti si potrebbe anche salvarli in chiaro. Le password in precedenza MD5venivano utilizzate per l'hash, ma ciò era risultato insicuro da un team di sicurezza, quindi l'algoritmo di hashing è stato aggiornato phpass.

Suggerimento: WordPress può comunque riuscire a hash correttamente anche se aggiorni MD5 (% password%) nella colonna sql.

Ora il modo pratico per affrontare ciò che stai cercando di fare per un singolo sito è forzare davvero un cambiamento di password cambiando la colonna in qualcos'altro e applicando i requisiti di sicurezza della password nella pagina in cui aggiorneranno la loro password. Ma il tuo caso d'uso richiede di farlo su così tante installazioni di WP e quei proprietari di siti potrebbero non apprezzarti se lo fai senza il loro consenso. Quindi, devi assolutamente limitare la portata dell'impatto delle tue azioni.

1) Aggiorna le password solo per amministratori, redattori, ma ti richiede di scoprire chi sono quegli utenti. Inviali tramite e-mail e quindi applicare la limitazione della password sulla pagina di reimpostazione della password / pagina di registrazione, ecc. Ricorda che qualcuno può avere quei moduli altrove sul sito (pensa anche ai moduli AJAX). Creazione di un comando WP-CLI che ti aiuti qui nell'esecuzione di questo piano, anziché nel caricamento dell'ambiente WP e nell'esecuzione degli script.

2) Generare una tabella arcobaleno che consiste in una password con hash per una stringa nota (password). E quindi devi fondamentalmente abbinare l'hash con la password di un particolare utente e valutare la forza di quella password. La generazione della tabella è il passaggio più lento qui in quanto è necessario eseguire l'hashing di ogni possibile password possibile, memorizzarla su disco (diversi GB a seconda della lunghezza e della combinazione di password per cui si tiene conto) e quindi agire sui risultati. Il 99% è sicuro che sia una soluzione eccessiva per le tue esigenze.

Suggerimento: conosci quei sali e quei segreti che abbiamo in wp-config.phparchivio. La loro modifica invalida le sessioni registrate, nel caso in cui ne abbiate mai bisogno.


1

Prova a forzare la forza usando un attacco del dizionario

Quale modo migliore per valutare la forza della tua password? :-) Sì, lo so, ci vorrà del tempo ...

Altrimenti, potresti semplicemente supporre che tutte le password siano deboli (direi che sarà un presupposto molto accurato ) e crearti le password, archiviare gli hash nel database e dare la password in chiaro agli amministratori usando un "sicuro" canale

Altrimenti, supponi di nuovo che tutte le password siano deboli e costringa gli amministratori a cambiarle e utilizza un validatore di sicurezza delle password molto esigente sul sito Web stesso.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.