Wie finde ich die Stärke des (bereits gespeicherten) Wordpress-Passworts heraus?

10

Ich bin für die Sicherheit vieler gemeinsam genutzter Hosting-Server verantwortlich. Die meisten von ihnen haben WordPress-Websites. Jeder Server verfügt über mindestens 500 WordPress-Websites.

Nach meiner Erfahrung beginnt das Problem mit WordPress mit einem schwachen Passwort. Der Großteil des Website-Administratorkennworts ist sehr schwach und die Verwendung der Website für schwache Kennwörter wird ausgenutzt und für verschiedene böswillige Aktivitäten verwendet.

Jetzt ist mein Plan, das schwache Passwort der WordPress-Website herauszufinden und das Administratorkennwort zwangsweise in ein anderes sicheres Passwort zu ändern. Damit kann WordPress gesichert werden und mein Server wird keine Probleme haben.

Wie kann man die Stärke des gespeicherten WordPress-Passworts ermitteln?

Mani
quelle

Antworten:

8

Bruteforce-Hashes

Sie können den in der Datenbank gespeicherten Hash brutal erzwingen.

WordPress verwendet Phpass zum Hashing. Standardmäßig verwendet WordPress keinen Blowfish oder ähnliches, sondern nur md5 mit einer Iterationszahl von 8192. Wenn Sie nur wirklich schlechte Passwörter finden möchten, ist Bruteforcing durchaus machbar.

Aber ich würde dies als eine ziemlich große Verletzung des Vertrauens betrachten, das die Benutzer in Sie setzen, daher würde ich diesen Ansatz nicht empfehlen.

Analysieren Sie ihre Passwörter beim Anmelden

Sie können ein Skript hinzufügen, das alle Anforderungen an WordPress-Anmeldeskripte abfängt, und die Kennwörter protokollieren oder analysieren, da sie zu diesem Zeitpunkt im Klartext vorliegen.

Dies fängt natürlich nur schwache Passwörter ab, wenn sich ein Benutzer tatsächlich anmeldet. Wenn er seine Site verlassen hat oder eher inaktiv ist, kann es eine Weile dauern, bis Sie feststellen, dass er ein schwaches Passwort verwendet.

Ich würde dies als eine noch größere Verletzung betrachten, als die Hashes brutal zu erzwingen, und es bringt auch einige Sicherheitsbedenken mit sich (wenn Sie die Passwörter im Klartext speichern, wäre dies offensichtlich ein Problem, aber selbst wenn nicht, können Sie versehentlich einige Informationen von speichern die Analyse, die einem Angreifer helfen kann).

Implementieren Sie eine Kennwortrichtlinie (und zwingen Sie Benutzer, ihre Kennwörter zu ändern).

Sie können eine Kennwortrichtlinie implementieren. Wenn ein Benutzer ein neues Kennwort übermittelt, prüfen Sie, ob es Ihrer Richtlinie entspricht oder nicht (im Idealfall erfolgt dies serverseitig und nicht clientseitig über JavaScript).

Das Schreiben einer guten Kennwortrichtlinie ist schwierig. Sehen Sie sich daher die vorhandenen Richtlinien an, um Ihnen hier zu helfen.

Natürlich sind alte Kennwörter von der Richtlinie nicht betroffen. Daher müssen Sie Benutzer dazu zwingen, ihre alten Kennwörter zu ändern, um der Richtlinie zu entsprechen

Schaden begrenzen

Das Erzwingen sicherer Passwörter kann sicherlich eine gute Idee sein, aber im Idealfall sollte eine gehackte WordPress-Instanz Sie als Webmaster nicht wirklich beeinträchtigen.

Sie sollten den Schaden begrenzen wollen, sobald ein Angreifer Zugriff auf eine WordPress-Installation erhalten hat. Im Idealfall möchten Sie, dass nur diese eine Instanz betroffen ist, nicht Ihr gesamter Server (Sie können sich also Sorgen machen, dass ein Angreifer unanständige Inhalte auf eine Website stellt - genau wie es ein gültiger Benutzer tun könnte), nicht jedoch die Codeausführung oder andere böswillige Aktivität).

Dies ist ein ziemlich weit gefasstes Thema, aber einige Punkte beinhalten DISALLOW_FILE_EDIT:, die Verwendung von Plugins eingeschränkt (da diese weitaus weniger sicher codiert sind als WordPress selbst), JavaScript nicht zulassen (z. B. bei Multisites haben nur Superadministratoren das Recht, JavaScript zu veröffentlichen, nicht Admins) usw.

tim
quelle
4

Ich bin mir nicht sicher, ob das überhaupt möglich ist. Wenn Sie Ihr Passwort auswählen, wird es in der Datenbank gespeichert. Bei Hash-Algorithmen gibt es kein Reverse Enginering.

Nach meiner Erfahrung befindet sich das Skript für die Kennwortstärke in www.example.com/wp-admin/js/password-strength-meter.js, und dies ist der Link dazu.

Hier können Sie die Ebenen und den Prozentsatz für Kennwörter ändern, sodass Sie eine obligatorische Kennwortstärke auf 100/100 festlegen können.

Und wenn Sie möchten, dass Ihr Client die Passwortstärke überprüft, gibt es eine nette Anwendung , die Ihnen hier die Passwortstärke geben kann.

Es ist unmöglich, hier ein Reverse Enginering durchzuführen, und außerdem gibt es nur wenige Plugins, die Benutzer dazu zwingen, sichere Passwörter zu erhalten.

Josip Ivic
quelle
1
Dies scheint eine einfache Sache zu sein, die Webhoster und Websitebesitzer tun können, um sich selbst zu schützen. Sehr gute Frage und Antwort! Ich bin mir nicht sicher, ob es jemals zuvor hier angesprochen wurde. Zumindest wurde es schon lange nicht mehr angesprochen. Prost!!
Schranknoc
1
Die obige Antwort ist gut, aber sie löst mein Problem nicht. Die meisten WordPress-Websites sind bereits installiert oder an einem Tag werden 100 WP-Installationen auf meinem Server durchgeführt. Angenommen, ich ändere die Stärke des Passworts mit password-strong-meter.js, was für mich immer noch nicht nützlich ist. Bcoz, das pwd ist schon eingestellt. Dies ist nur für das neue Passwort nützlich, nicht für das bereits eingestellte.
Mani
1
Es gibt jedoch keine Möglichkeit, alle Kennwörter aus der Datenbank herauszufinden, da sie gehasht sind. Sie können dies festlegen und dann erneut an alle Benutzer senden, um ihre Kennwörter zu ändern, damit sie sichere Kennwörter haben können. Ich sehe keinen anderen Weg daran vorbei. Überprüfen Sie auch die Antworten unten.
Josip Ivic
2
@ Josip Ivic, der einzige Weg ist, pwd zurückzusetzen und den Administrator zu informieren, wie Sie sagten.
Mani
1
Für neue Benutzer würde ich einfach das Skript auf wp auf dem Server anpassen, sodass sichere Kennwörter erforderlich sind, und für alte Benutzer würde ich ihnen E-Mails erneut senden, damit sie ihre Kennwörter in sichere ändern können. Wie ich schon sagte, es gibt keinen einfachen Weg, dies zu tun, aber es ist machbar. :)
Josip Ivic
3

Die gute Nachricht ist, dass Sie die Passwörter der Benutzer ändern können. Die schlechte Nachricht ist, dass Sie sie nicht sehen können.
Wordpress ist so leistungsfähig, dass es selbst in der Datenbank das Passwort mit Einwegverschlüsselung speichert. Es ist nicht nur ein MD5-Hash, den Sie konvertieren können, es sind nicht einmal serialisierte Daten, für das Passwort test123würden Sie so etwas erhalten $P$BjW8o9Dm1vC5bwAcP1iAdNVm0lbvn, auch wenn Sie das Passwortfeld ändern In der Datenbank würde es ohne Verschlüsselung nicht funktionieren.

So ändern Sie das Passwort

Ich glaube, Sie sind sich dessen bewusst, aber ich werde es einfach hier lassen. Sie können Ihr WordPress-Dashboard mit Administratorrechten aufrufen, zu Benutzern gehen, einen Benutzer finden und dieser Teil ist für Ihre Zwecke etwas schlecht, da Sie auf "Neues Passwort generieren" klicken müssen. Er gibt Ihnen eine zufällige Auswahl an Buchstaben und Symbolen Bearbeiten Sie es mit Ihrem eigenen, aber selbst dann können Sie das Passwort nicht sehen.

knif3r
quelle
Ich habe vergessen zu erwähnen, dass Sie ein Plugin wie iThemes verwenden können, um Benutzer zur Eingabe sicherer Passwörter zu verpflichten. Außerdem können Sie Brute-Force-Schutz und andere coole Funktionen zulassen, an denen Sie interessiert sein könnten.
knif3r
3

Da die Passwörter gehasht werden, besteht die einzige Möglichkeit, ihre Sicherheit zu testen, darin, sie brutal zu erzwingen. Sammeln Sie eine Liste häufig verwendeter, schwacher Passwörter und testen Sie diese anhand der in Ihrer Datenbank gespeicherten Hashes.

Wenn Sie keine sehr vollständige Kennwortliste verwenden, werden nicht alle schwachen Kennwörter abgefangen, sondern die schwächsten herausgefiltert.

Tom van der Zanden
quelle
Dies ist eine Lösung, die viel Zeit benötigt.
Josip Ivic
Das nennt man einen Regenbogentisch bauen.
Ashfame
@ Ashfame Nein, das ist es nicht. Ein Regenbogentisch ist ein viel ausgefeilterer Ansatz, der für dieses Szenario nicht unbedingt am besten geeignet ist.
Tom van der Zanden
@ TomvanderZanden Es ist vielleicht kein geeigneter Ansatz, aber wie wird dies kein Regenbogentisch sein?
Ashfame
@Ashfame Weil Regenbogentabellen viel ausgefeilter sind als "Überprüfen einer Liste von Passwörtern anhand Ihrer Datenbank". Regenbogentabellen verwenden beispielsweise Hash-Ketten und Reduktionsfunktionen. Beachten Sie auch, dass das Erstellen einer Regenbogentabelle mehr Zeit in Anspruch nimmt als nur das Überprüfen aller Kennwörter anhand Ihrer Datenbank. Die Verwendung einer vorberechneten Regenbogentabelle mag sinnvoll sein, ist jedoch in dieser Situation möglicherweise zu viel des Guten.
Tom van der Zanden
1

Sie können das wp-Administratorkennwort nicht zwangsweise ändern, es sei denn, Sie haben keine Kontrolle in jeder WordPress-Datenbank, die in phpmyadmin gespeichert ist.

Und nein, es gibt keine schnelle Möglichkeit, das Wochenpasswort auf der 500 WordPress-Site herauszufinden. Josip erwähnte einen Link zur Stärke des Checkout-Passworts, aber diese Site verwendete md5 crypto algo nicht zum Auschecken der Passwortstärke.

Wenn Sie diesen SO-Link ( Wordpress mit MD5 ) auschecken, sehen Sie, dass sich die Ausgabe von dieser App unterscheidet. Wie Sie sehen, p#aSS*Word14ist dies nicht sicher als Dance With Me TonightVerwenden Sie also keine Drittanbieter-App, um Ihr Wordpress-Passwort zu überprüfen, da sie möglicherweise einen anderen Krypto-Algorithmus verwenden, um die Passwortstärke zu überprüfen / anzunehmen.

Außerdem sollten Sie alle Passwörter haben und einzeln testen. Es gibt keinen Zaubertrick, um dies schnell herauszufinden.

Eine andere Sache ist, dass, wenn eine WordPress-Site gehackt wird, dies keine Auswirkungen auf andere wp-Sites auf demselben Server hat (außer DOS-Angriff). Ich habe gesehen, dass viele Leute wp beim Shared Hosting gestartet haben und ihre Site gehackt wird, aber ihre Nachbar-Site lief immer noch einwandfrei, da jede wp ihre eigene Datenbank auf phpmyadmin hat.

Goyllo
quelle
Didn't affect other WP site on same server:Zufall! Hängt von der Art des Angriffs / Hacks und der Absicht des Hackers / Bots ab.
Ashfame
Ich spreche von WordPress-Sicherheit, nicht von einer Sicherheit auf Root-Ebene. Ich bin mir jedoch sicher, dass vor allem Hosting-Anbieter, die Sandbox-Mechanismen verwenden, keine Auswirkungen auf andere Websites auf demselben Server hatten.
Goyllo
1

Wie frühere Antworten gezeigt haben: Sie können die gespeicherten Passwörter nicht lesen.

Eine alternative Lösung könnte sein:

  1. Implementieren Sie den Vorschlag von Josip Ivic , um sichere Passwörter durchzusetzen.
  2. Löschen Sie alle Kennwörter (oder nur Kennwörter für Benutzer mit bestimmten Berechtigungen).
  3. Informieren Sie die betroffenen Benutzer schließlich darüber, dass eine neue Kennwortrichtlinie in Kraft ist, und weisen Sie sie an /wp-login.php?action=lostpassword, ihre Kennwörter zurückzusetzen.
Syberspace
quelle
1

WordPress-Passwörter werden gehasht, wie es jede sinnvolle Anwendung beim Speichern von Passwörtern tun würde, da das Speichern von Klartext-Passwörtern sehr unsicher ist, da Ihre Benutzer möglicherweise dasselbe Passwort für andere Dienste haben, die sie verwenden (denken Sie an Google Mail?).

Es ist nicht möglich, den Hash zurück in das Passwort zu konvertieren, sonst könnte man sie genauso gut im Klartext speichern. Früher wurden Passwörter gehasht MD5, dies wurde jedoch von einem Sicherheitsteam als unsicher erwiesen, sodass der Hashing-Algorithmus auf aktualisiert wurde phpass.

Tipp: WordPress kann es immer noch schaffen, es korrekt zu hashen, selbst wenn Sie MD5 (% password%) in der SQL-Spalte aktualisieren.

Der praktische Weg, um das zu erreichen, was Sie für eine einzelne Site tun möchten, besteht darin, eine Änderung der Kennwörter zu erzwingen, indem Sie die Spalte in etwas anderes ändern und die Anforderungen an die Kennwortstärke auf der Seite erzwingen, auf der das Kennwort aktualisiert werden soll. Ihr Anwendungsfall erfordert dies jedoch bei so vielen WP-Installationen, und diese Websitebesitzer schätzen es möglicherweise nicht, dass Sie dies ohne ihre Zustimmung tun. Sie müssen also definitiv den Wirkungsbereich Ihrer Handlungen begrenzen.

1) Aktualisieren Sie Kennwörter nur für Administratoren und Redakteure, aber Sie müssen herausfinden, wer diese Benutzer sind. Senden Sie ihnen eine E-Mail und erzwingen Sie dann die Kennwortbeschränkung für das Zurücksetzen der Kennwortseite / Registrierungsseite usw. Denken Sie daran, dass jemand diese Formulare an anderer Stelle auf der Website haben kann (denken Sie auch an AJAX-Formulare). Erstellen eines WP-CLI-Befehls, der Ihnen hier bei der Ausführung dieses Plans hilft, anstatt die WP-Umgebung zu laden und Skripts auszuführen.

2) Generieren einer Regenbogentabelle, die aus einem Hash-Passwort für eine bekannte Zeichenfolge (Passwort) besteht. Und dann müssen Sie im Grunde das Hashing mit dem Passwort eines bestimmten Benutzers abgleichen und die Stärke dieses Passworts bewerten. Das Generieren der Tabelle ist hier der langsamste Schritt, da Sie jedes mögliche Kennwort hashen müssen, es auf der Festplatte speichern müssen (mehrere GB, abhängig von der Länge und Kombination der Kennwörter, die Sie berücksichtigen) und dann auf die Ergebnisse reagieren müssen. 99% sicher, dass es eine Overkill-Lösung für Ihre Bedürfnisse ist.

Tipp: Sie kennen die Salze und Geheimnisse, die wir in der wp-config.phpAkte haben. Wenn Sie sie ändern, werden angemeldete Sitzungen ungültig, falls Sie dies jemals benötigen.

Ashfame
quelle
1

Versuchen Sie, es mit einem Wörterbuchangriff brutal zu erzwingen

Was ist ein besserer Weg, um die Stärke Ihres Passworts zu beurteilen? :-) Ja ich weiß, es wird einige Zeit dauern ...

Andernfalls könnten Sie einfach annehmen, dass alle Passwörter schwach sind (ich würde sagen, das wird eine sehr genaue Annahme sein) und sich die Passwörter selbst erstellen, die Hashes in der Datenbank speichern und den Administratoren das Klartext-Passwort mit einem "sicheren" Passwort geben. Kanal

Nehmen Sie andernfalls erneut an, dass alle Passwörter schwach sind, und zwingen Sie die Administratoren, sie zu ändern, und verwenden Sie auf der Website selbst einen sehr wählerischen Validator für die Passwortstärke.

Gianluca Ghettini
quelle