22 März 2014 ~ 4 Kommentare

Ein wenig mehr WordPress Sicherheit: admin Account nachträglich umbenennen!

So verbreitet wie WordPress ist, wird es natürlich auch schonmal zum Ziel für Angriffe. Ich selbst kann ein Lied davon singen, denn vor ein paar Jahren hat es ein Angreifer – vermutlich ein Bot – geschafft, wahrscheinlich über ein veraltetes WordPress Plugin schädlichen Code in meine index.php (und zwar allen auf dem betroffenen Server!) einzuschleusen. Ich habe es zum Glück sehr zeitnah gemerkt, da eine von mir häufig selbst aufgerufene Seite komplett von der Malware überschrieben wurde und daher gar nicht mehr funktionierte. Es war nur der verschlüsselte Schadcode darin enthalten. War alles eine ganz schön aufreibende Geschichte, an dieser Stelle muss ich direkt auch nochmal ein Dankeschön an Tim von internetwache.org richten, der mir damals sehr behilflich war und den Schädling analysierte.

wpbenutzer1Aber genug davon, ich wollte nur darstellen, dass der eigene Blog durchaus schonmal angegriffen werden kann, selbst wenn man kein Big Player ist. Es kann eben ein Bot sein, der bei tausenden Blogs sein Glück probiert. Und eine bestimmte Schwachstelle, nämlich den standardmäßigen Adminaccount einer jeden WordPressinstallation, kann man mit sehr einfachen Mitteln in wenigen Minuten ein Stückchen sicherer gestalten, wie ich im Folgenden vorstellen werde. Das Problem: Der Standardaccount hat den immer gleichen Benutzernamen “admin”, den kaum ein WordPressnutzer ändert. Ein Bot, der möglicherweise durch Bruteforce sein Glück bei tausenden Blogs versucht, braucht sich daher um den Usernamen garkeine Gedanken machen und wird immer direkt “admin” angreifen, da dieser ja praktisch immer vorhanden ist. Ich kann zwar nicht sagen, wie wahrscheinlich ein solcher Angriff in der Praxis ist und ob man sich bei einem vermeintlich sicheren Passwort trotzdem beruhigt als “admin” zurücklehnen kann. Schaden kann es dennoch nicht, den guten admin zu entfernen und gegen einen anderen Namen auszutauschen.

wpbenutzer2

Leider kann man in WordPress den Benutzernamen nicht einfach so umbenennen, dennoch gibt es eine einfache Lösung ohne Datenbankeingriffe. Zunächst legt man einfach einen neuen Benutzer an. Man muss dabei allerdings zunächst eine andere E-Mail Adresse verwenden, als beim admin. Dem Benutzer geben wir dann die Rolle Administrator. Nun ausloggen und mit dem soeben erstellten Benutzer wieder einloggen. In der Benutzerverwaltung auf den alten Adminaccount gehen und löschen wählen. Man wird nun gefragt, was mit den Beiträgen dieses Benutzers passieren soll. Natürlich wollen wir diese nicht löschen, sondern wählen, sie auf den neuen Benutzer zu übertragen. Nun kann man wieder die ursprüngliche E-Mail Adresse verwenden (z.B. wenn daran ein Gravatar Account hängt). Tja, das wars auch schon! Natürlich hilft das gegen menschliche Angreifer eher wenig, die einem nicht wohlgesonnen sind. Ein eventueller Bot hätte es aber definitiv schwerer und würde vermutlich komplett ins Leere laufen.

greg

Blogger bei kleingebloggt
Servus! Mein Name ist Michael Gregor, ich bin E-Commerce Student an der FHWS, Blogger, Webworker und schon IT-Geek seit ich 1994 meinen ersten 386er hatte 🙂

4 Kommentare zu “Ein wenig mehr WordPress Sicherheit: admin Account nachträglich umbenennen!”

  1. Vince 23 März 2014 at 17:25 Permalink

    Korrigier’ mich, wenn ich mich irre, aber empfiehlt WordPress nicht deutlich genug, den Admin-Account nicht “admin” zu nennen? Genauso wie beispielsweise sofort nach der Installation gut sichtbar darauf hingewiesen wird, dass die install.php gelöscht werden soll?

    Wen das alles schon überfordert, der sollte sich eines dieser Security-Komplett-Plugins installieren, die nehmen dem Benutzer schonmal einiges ab.

    P.S. Ich finde diese Checkbox hier unter dem Kommentarfeld ziemlich dämlich. Jetzt hab ich also die Wahl, meine Daten von dir an die USA weiterreichen zu lassen oder in Zukunft keine Kommentare mehr zu schreiben. Sehr schlau. Es gibt sehr gute Alternativen zu Akismet.

  2. greg 23 März 2014 at 23:49 Permalink

    Aber gerne doch.

    Wenn man, wie ich, WordPress vor Jahren installiert und seitdem immer nur geupdated hat, hatte man absolut keine Wahl, der Adminaccount wurde immer unveränderbar als Benutzername “admin” angelegt. Es sei denn natürlich, man hätte selbst in den PHP Code eingegriffen und dies dort direkt in der Installationsroutine geändert, aber welcher Enduser macht sowas ernsthaft? Sicher nicht die Adressaten dieses Beitrags und ich hätte auch nicht einmal ansatzweise an so etwas gedacht, als ich WordPress installiert habe. Seit wann man dies bei der Installation selbst wählen kann, weiß ich nicht. Habe gerade testweise sowohl die alte 2.8 von meiner Platte, als auch die aktuelle 3.8 installiert. Bei der 3.8 kann man einfach einen Benutzernamen auswählen, von “admin” ist da kein Wort mehr. Gut, die 2.8 ist nun 5 Jahre alt, da sieht man mal, wie lange meine Blogs schon bestehen. Ein spezieller Hinweis fehlt aber auch bei der 3.8 komplett und sogar noch besser: in der liesmich.html steht unter Punkt 7 der 5-Minuten-Installation:

    “Das Installationsskript schickt Dich anschließend zur Anmeldeseite. Gebe als Benutzernamen admin ein und darunter das Passwort, dass das Skript für Dich inzwischen generiert hat. Nach der Anmeldung kannst Du auf Benutzer/ Dein Profil klicken um das Passwort ändern zu können.”

    Man hat dies offenbar noch nicht wirklich angepasst. So oder so, da draußen sind sicherlich noch Horden an Bloggern mit admin-Benutzer unterwegs. Im übrigen gibt es diesen Hinweis auf die install.php auch nicht. Habe ihn jedenfalls weder bei 2.8, noch 3.8 nach dem Setup gesehen. Dazu auch noch aus dem WP Forum:

    “You can safely delete /wp-admin/import.php , /wp-admin/install.php , /wp-admin/install-helper.php , /wp-admin/upgrade.php , and /wp-admin/upgrade-functions.php .

    There are two things to keep in mind here:

    1. Whenever you execute and automatic upgrade, these files will be replaced.

    2. Security issues are addressed as quickly as possible, so as long as you stay up-to-date, you shouldn’t have anything to worry about.”

    und

    “No, there is no security risk. Both files do sanity checks before anything happens.”

    Schaden wirds also sicher nicht, aber demnach muss man dies nach jedem Update manuell erneut tun.

    P.S.: Momentan teste ich Antispam-Bee, daher habe ich den Hinweis mit der Checkbox gerade entfernt, das ist nämlich ein eigenes von Akismet unabhängiges Plugin gewesen. Ich werde aber gerne deine Kommentare in Zukunft auch weiterhin manuell in die USA schicken 😛

  3. Vince 28 März 2014 at 09:46 Permalink

    “Im übrigen gibt es diesen Hinweis auf die install.php auch nicht.”

    Naja, irgendwo wird der Hinweis ja irgendwann mal gestanden haben. Ich habe den sicher nicht aus meinem Kaffeesatz gelesen.

    Antispam-Bee nutze ich übrigens auch schon lange, funktioniert sehr gut.

  4. greg 28 März 2014 at 15:30 Permalink

    Ich weiß ja nicht, was du dir üblicherweise in den Kaffee kippst 😉

    Naa schmarrn, ich schrieb ja noch dazu, ich habe eben bei 2.8 und 3.8 keinen solchen gesehen. Vielleicht gabs den ja zwischenzeitlich mal oder an anderer Stelle, das kann schon gut sein.

    Schönes Wochenende! 🙂


Hinterlasse einen Kommentar

Kommentare werden moderiert, es kann also etwas dauern, bis dein Kommenatar angezeigt wird.

RSS abonnieren
Twitter Profil