Sicherheitslücke in phpMyAdmin – oh noes

Heute mal etwas in quasi eigener Sache und zur Warnung.

In letzter Zeit sehe ich beim durchschauen meiner Logfiles des öfteren Einträge wie diesen

xx.xxx.xxx.xxx - - [11/Aug/2010:17:35:22 +0200] "GET /webadmin/scripts/setup.php HTTP/1.1" 404 341 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6""
Diese gehören zu einer Reihe von Angriffen von Botnetzen auf stinknormale Webserver. Aktuell ist u.A. ein Exploit im Umlauf, der eine Lücke in phpMyAdmin in älteren Versionen nutzt.
Dabei waren die Programmierer der MySql-Weboberfläche so unvorsichtig die PHP-Version unserialize() auf Daten zu nutzen, die sie aus dem Web empfangen. unserialize wandelt serialisierte Daten und Objekte wieder in PHP-interne Objekte um. Normalerweise kann dabei ja kein Code ausgeführt werden. PHP-Objekte haben jedoch ab Version 5 die Eigenschaft sogenannte magische Methoden zu unterstützen. Dazu gehören die Methode __construct, die als Konstruktor für ein Objekt fungiert und die Methode __destruct, die als Destruktor fungiert. Fügt man der Methode destruct Schadcode hinzu, so wird dieser ausgeführt wenn das Objekt am Ende seiner Laufzeit steht.
In diesem Fall wurde der Destruct-Methode Code hinzugefügt, der in das Verzeichnis /tmp auf den Webservern ein Schadprogramm schreibt. Das ist möglich, da phpMyAdmin mit den Rechten des Webservers läuft (also meist als User www_run, oder im schlimmsten Fall als root).So wurde zum Beispiel ein Schadprogramm dd_ssh in /tmp geschrieben, welches per SSH versucht auf andere Server einzubrechen.
Ich hatte das Glück bis auf die gescheiterten Einbruchsversuche per phpMyAdmin nicht von dem Problem betroffen zu sein, habe aber im Internet über andere Fälle gelesen, bei denen sich das Schadprogramm „installieren“ konnte.
Was man tun kann ist nun einfach zum einen phpMyAdmin zu updaten und es in ein Verzeichnis zu legen,welches nicht durch automatische Angriffe bestimmt werden kann. dbadmin und websql oder gar phpMyAdmin sind also keine guten Verzeichnisnamen für diesen Fall. Weiterhin sollte man überprüfen, ob man www_run (dem User, als der Apache läuft) Schreibrechte auf irgendein Verzeichnis geben muss, oder ob Leserechte nicht ausreichen.
Ärgerlich ist es allemal, wenn einem Botnetze die Logfiles vollmüllen.
Advertisements

Über kenny1987

Hallo Leute, ich bin kenny. Ich studiere momentan Informatik und werde über alles interessante was mir so über den Weg läuft bloggen. Seien es irgendwelche News oder aktuelle Entwicklungen von meinen Anwendungen. Viel Spaß :)
Dieser Beitrag wurde unter Internetz allerlei, Nachrichten abgelegt und mit , , , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Eine Antwort zu Sicherheitslücke in phpMyAdmin – oh noes

  1. dridde schreibt:

    Was auch hilft: /tmp als eigene Partition haben und als noexec und nosuid mounten.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s