Das Örtchen RSS-Feed
Kategorie
Kategorie: Blog
Buttons & Statistiken

Drupal Association - Individual Member

FeedBurner RSS-Feed

WordPress: Zu oft falsches Kennwort eingegeben

WordPress lässt eigentlich beliebig viele Login-Versuche zu. Man kann also, so oft wie man lustig ist, versuchen, Benutzer und Kennwort einer CMS-Installation zu erraten.

In den letzten Jahren (2013, 2014) gab es immer wieder automatisierte Angriffswellen, die versuchten, genau diesen Umstand auszunutzen. Um dies zu verhindern, setzen viele Website-Betreiber inzwischen Plugins wie Limit Login Attempts oder iThemes Security (ehemals Better WP Security) ein. Diese bieten eine sogenannte Brute-Force-Protection, d.h. sie sperren Benutzernamen oder IP-Adressen bei zu vielen ungültigen Anmeldeversuchen.

Ausgesperrt und nun?

Nun kann es aber passieren, daß man selbst oder jemand anderes zu viele fehlerhafte Anmeldeversuche verursacht hat und zwar mit dem selbst verwendeten Benutzernamen. Man erhält dann als Website-Betreiber eine "Site Lockout Notification" mit folgendem Inhalt:

Dear Site Admin,

A user, *Test*, has been locked out of the WordPress site at 
http://(...) due to *too many bad login attempts*.

The user has been locked out *until 2015-02-22 20:35:01*.

To release the lockout please visit the lockouts page (...)

Versucht sich der Test-Benutzer trotzdem einzuloggen, so erhält er die Meldung "You have been locked out due to too many invalid login attempts". Nun kann er natürlich einfach abwarten, bis der genannte Zeitpunkt erreicht ist. Das ist normalerweise nicht sonderlich schlimm, da man standardmäßig nur 15 Minuten ausgesperrt wird.

Aus Sicherheitsgründen stelle ich diesen Zeitraum bei meinen WordPress-Installationen aber wesentlich höher ein und man müsste somit mehrere Tagen warten, bis man sich wieder einloggen kann. Das macht natürlich wenig Sinn. Man muss also selbst zur Tat schreiten oder seinen Administrator um Hilfe bitten.

Eine Entsperrung mittels phpMyAdmin

Bei den meisten Hostern hat man als Website-Betreiber einen direkten Zugriff auf die verwendete Datenbank. Das bekannteste Tool hierfür nennt sich phpMyAdmin. Wie und wo man phpMyAdmin aufrufen kann, ist vom Hoster abhängig. Meist finden sich jedoch Hinweise in der ursprünglichen Bestellbestätigung oder in der Administrationsoberfläche des Hosters.

Hat man phpMyAdmin aufgerufen, so ist im einfachsten Fall schon die korrekte Datenbank ausgewählt. Beinhaltet das Hosting-Paket mehrere DBs, so muss man zunächst die korrekte ermitteln. Ist nur eine Datenbank mit Inhalten befüllt, so ist dies wiederum sehr einfach. Werden mehrere Webseiten betrieben, so wird es schon etwas schwieriger. Am sinnvollsten ist es in diesem Fall, die Datei wp-config.php mittels eines FTP-Clients vom Webserver herunterzuladen.

define('DB_NAME', 'demo');

Öffnet man diese Datei mit einem Texteditor, so sollte sich relativ weit oben eine vergleichbare Zeile finden. In meinem Fall benutzt WordPress also die Datenbank demo.

Einige Zeilen tiefer in der gleichen Konfigurationsdatei sollte sich dann noch das sogenannte Tabellen-Prefix finden.

$table_prefix  = 'wp_';

In meiner Beispiel-Datenbank sollten also alle von WordPress verwendeten Tabellen mit dem Standard-Prefix wp_ beginnen.

Sehen wir uns zunächst den Inhalt der Tabelle wp_users an. Dort finden sich in der Spalte user_login die Benutzernamen aller registrierten WordPress-Benutzer. Hier sollten wir zunächst die Zeile des passenden Benutzers (im Beispiel also Test) finden. Bei sehr vielen Benutzern gibt es übrigens mehr als eine Tabellen-Seite. Uns interessiert lediglich die ID in der ersten Spalte des Benutzer-Datensatzes. Nehmen wir an, unser Test-Benutzer hat die ID 5.

Wechseln wir nun in die Tabelle wp_itsec_lockouts. Dort müssen wir nun eine oder mehrere Zeile(n) mit dem lockout_type brute_force und dem lockout_user 5 (also der Benutzer-ID) finden. Löschen Sie alle betreffenden Zeilen. Danach sollte ein Login wieder möglich sein.

Wenn Sie das Kennwort nicht mehr wissen, so sollten Sie keine weiteren Login-Versuche unternehmen, sondern mittels Passwort vergessen? ein E-Mail zum Zurücksetzen anfordern und dort den entsprechenden Link anklicken.

Fazit

Die Freischaltung eines gesperrten Benutzers ist nicht wirklich schwer. Da man jedoch auf Datenbank-Ebene arbeitet, kann man durchaus einiges kaputt machen. Ein Backup der Datenbank-Inhalte ist also vorher auf jeden Fall ratsam. Dies ist beispielsweise mit phpMyAdmin unter Exportieren möglich.

Wurde der eigene Account durch Loginversuche einer anderen Person oder eines sonstigen Angreifers gesperrt, so ist es eine Änderung des Benutzernamens sinnvoll. Auch diese Änderung ist mit phpMyAdmin relativ einfach umsetzbar. Alternativ kann man auch ein WordPress-Plugin wie beispielsweise Admin renamer extended verwenden.

WordPress verlinkt an verschiedenen Stellen standardmäßig auf eine Seite für den Autoren eines Blog-Beitrags. In der entsprechenden URL ist der Benutzername erkennbar, sofern in den Permalink-Einstellungen von WordPress eine schönere Darstellung als der Standard ausgewählt wurde.

Deswegen würde ich nach einer Änderung des Benutzernamens dringend zur Installation des Plugins Edit Author Slug raten. Hiermit kann man im Benutzer-Profil den sogenannten Author-Slug anpassen. Hier sollte man eine Angabe auswählen, die den eigenen Benutzernamen nicht verrät. Ich benutze meist den Vor- und Nachnamen des jeweiligen Benutzers (z.B. jan-teriete).

Abschließend würde ich auch noch raten, direkt ein neues sichereres Kennwort festzulegen. Wie dies geht erfahren Sie im Mozilla-Artikel Sichere Passwörter erstellen, um Ihre Identität zu schützen.

Hallo! Bist du neu hier? Dann abonniere doch den RSS-Feed dieses nicht mehr ganz so stillen Örtchens, um über meine geistigen Ergüsse auf dem Laufenden zu bleiben. Alternativ besteht auch die Möglichkeit, sich von FeedBurner per E-Mail über meine Ausscheidungen benachrichtigen zu lassen.

Kommentare

Hallo, vielen Dank für den Artikel! Die Lösung, zu viele fehlgeschlagenen Anmeldeversuche einfach aus der Datenbank zu löschen. Ging super schnell und unkompliziert. Bei mir trat das Problem jetzt zum ersten Mal auf und ich frage mich ob man es mit bestimmten Maßnahmen schon vorab verhindern kann, oder zumindest das Risiko reduzieren.

Habe schon überlegt, ob es was bringen würde den Admin-Namen zu ändern. Bzw. Autoren Namen und Admin Namen zu trennen. könnte das hilfreich sein? Oder gibt es für die Angreifer trotzdem Möglichkeiten den Admin Namen auslesen zu lassen?

@Gavin: Ich habe einmal in meinem WordPress-Blog darüber geschrieben, daß man den Benutzernamen eines Logins bei einer Standard-Installation leider relativ schnell in Erfahrung bringen kann. Derzeit gehe ich beispielsweise davon aus, daß Dein Vorname auch Dein Login ist. Du solltest auf jeden Fall den Benutzernamen ändern und einen Spitznamen bzw. öffentlichen Namen festlegen, der von diesem abweicht. Außerdem muss natürlich der Slug der Autorenseite von Deinem Benutzernamen abweichend sein, sonst bringt das alles nichts. Sobald Loginversuche für einen existierenden Benutzernamen gemeldet werden, sollte man meiner Meinung nach auf jeden Fall aktiv werden.

Neuen Kommentar schreiben

Der Inhalt dieses Feldes wird nicht öffentlich zugänglich angezeigt.
Der Inhalt dieses Feldes wird öffentlich zugänglich angezeigt, aber als rel="nofollow" markiert.
Hinweis

Kommentare beleben den Blog! Ich freue mich über jeden Kommentar. Du kannst hier offen Deine Meinung zum Artikel sagen, aber bitte beachte die Netiquette und vermeide es andere zu beleidigen.

Bitte unterlasst es die Kommentare zu SEO-Zwecken zu missbrauchen. Kommentare mit Links, die nicht zu Blogs führen (oder zu Blogs mit Grauzonen-Themen) und/oder Keywords als Namen verwenden, sind nicht erwünscht!

Möchtest Du mir einen Blog-Artikel schmackhaft machen, dann schreib die URL ohne HTML-Tag in den Kommentarbereich und ich werde diesen bei Gefallen verlinken.