Ein kleiner Hintergrund: Wir haben gerade unser PBX-System gehackt. Der Server selbst scheint sicher zu sein (kein protokollierter nicht autorisierter Konsolenzugriff - SSH usw.), aber irgendwie haben die Hacker es geschafft, einen neuen Administrator in die PBX-Software (FreePBX, unterstützt von MySQL) einzufügen. Apache-Protokolle implizieren, dass es den Hackern gelungen ist, den Benutzer ohne Verwendung der Weboberfläche (oder eines Exploits in der Weboberfläche) hinzuzufügen.
Jetzt habe ich festgestellt, dass MySQL ohne Root-Passwort (!!) ausgeführt und offen an die externe IP-Adresse gebunden wurde (offensichtlich habe ich dies jetzt gesperrt). Der einzige Benutzer auf Stammebene in MySQL war 'root'@'localhost'
und 'root'@'127.0.0.1'
, auf den beide nur lokal zugänglich sein sollten.
Meine Frage lautet also:
Gibt es eine Möglichkeit, eine Verbindung zu MySQL zu fälschen, damit eine Verbindung zum Benutzer 'root' @ 'localhost' von einer Remote-IP-Adresse aus hergestellt werden kann, ohne dass ein anderer Exploit lokal ausgeführt wird?
Als Referenz ist die Box Centos 5 (Linux 2.6.10), auf dem MySQL 5.0.95 ausgeführt wird.