p3p0 ändert php dateien

nikon2k

Grünschnabel
Hallo zusammen,
ich habe ein kleines Problem und möchte nun rausfinden wo ggf. die Sicherheitslücke sein könnte.

Folgendes:
Seit einigen wochen bekommt mein webserver besuch von einem "hacker" der beigeht und sämtliche PHP Dateien ändert und direct nach <?php ein eval(base64_decode(....)) .

Dabei macht der das so oft, wie er ein <?php findet, sprich wenn ein Script mehrmals <?php beinhaltet findet man dahinter nun auch diesen code.

Jetzt lief der Server auf Windows Basis (und nein ich möchte darüber keine diskussion führen:p) und daher hatten die files auch keine chmod 444.

Ich hab die heute morgen allerdings nun alle schreibgeschützt gemacht.

Das ist allerdings nicht meine Frage, meine Frage ist die :

Wie kann ein Fremder die PHP Dateien einfach so ändern bzw. deren Inhalt?
Ich meine selbst bei chmod 777 - über welche praktische Möglichkeit kann er sich behelfen um eine Datei zu ändern ?

FTP Logs habe ich überprüft und kann FTP ausschliesen. Gleiches gilt für SVN.

Daher blieb nur noch der Apache - aber ich frage mich einfach : wie geht das ?
 
Die wahrscheinlichste Vermutung ist eine Sicherheitslücke in einer PHP Applikation die einen Zugriff aufs Dateisystem erlaubt.
Dies kann z. B. durch einen Datei Upload geschehen, mit anschließender Ausführung der Datei, meistens aber durch eine Lücke beim Inkludieren von Skripten die es dem Hacker erlaubt PHP Dateien von fremden Servern auszuführen. Hierbei wäre interessant zu wissen, wie die Einstellung von allow_url_include ist.
Ein selteneres Problem ist eine Sicherheitslücke durch [phpf]eval[/phpf].
 
Hi,
also allow_url_include ist auf off , daran sollte es direkt so nicht liegen.

Datei Upload..hmm..bei der Seite gibt es glaub ich gar keinen, soweit ich weiß ?

Muss ich mal genauer schauen. Ich verwende zudem für Statistiken das Tool "phpTrafficA" - welches danach auch vollkommen infiziert ist.

Es kann natürlich sein daß phptrafficA das problem ist - da kenn ich die Scripte nicht wirklich auswendig.

Gäbe es noch eine andere Möglichkeit?

Noch ein paar Zusatz Infos :
ich nutze Appserv Apache 2.2 und PHP Version 5.2.6 .

cURL Support ist enabled.

FTP Support ist enabled.
 
Keine Ahnung, kann natürlich sein.
Nutzt du hier die aktuellste Version?
Ist der phpTraffic abgesichert? Also dass man nur mit Passwort darauf zugreifen kann?

Ohne eine ausführliche Kontrolle kann man das so nicht sagen.... Aber das access.log von Apache sollte dir Auskunft darüber leisten. Meist gibt es seltsame Dateiaufrufe, die man erkennen sollte.
 
Hi,
ja das Apace access.log hab ich schon durchgeschaut (da der befall ja mehrmals aufgetreten ist, hatte ich verstärkt die letzten wochen darauf geachtet ob beim aufruf über google auf den seiten eine falsche weiterleitung stattfindet - dadurch war es mir auch möglich den zeitraum einzugrenzen).

Allerdings hatte ich nix auffälliges gefunden bzw. komischerweise auch keine merkwürdigen dateiaufrufe (die ich sonst häufiger mal gefunden hatte). phpTraffic ist nur normal durch ein password abgesichrt und per robots txt halt disallow - ich werd aber wohl nochmal htaccess schutz dahintersetzen.

Ich werd nochmal schauen ob ich ne aktuelle Version hab oder nicht und ggf. mach ich mal nen update.

Ansonsten hab ich alle PHP Files erstmal auf RA gesetzt (also schreibgeschützt).

Hätte ja sein können, daß du noch Möglichkeiten kennst was noch möglich sein kann , aber vielen dank erstmal für deine antworten :)
 
Moin,

prüfe deine Scripte bitte auf ungefilterte GET/POST Parameter:
PHP:
$var = $_GET['param'];
$var = $_POST['param'];
damit wäre es zb möglich direkt eval() Code an eine Url anzuhängen.

Wenn du Formulare auf deiner Seite nutzt, ist eine ordentliche Prüfung jedes Eingabefeldes erforderlich. ALL input is evil.

Des Weiteren solltest du überprüfen, ob register_globals aus ist. Das ermöglicht ebenfalls solche Sicherheitslücken.

mfg aGeNET
 
register_gobals ist definitiv off.

$_GET und $_POST Vars werden generell immer escaped - allerdings basier die seiten auf älteren code ..daher prüf ich wohl lieber nochmal weil ich mir jetzt selbst unsicher bin ob ich es nicht das ein oder andere mal übersehen habe.

Generell prüfe ich aber jeden Input bei der Programmierung.

Ich bin mir nur nicht sicher wie es bei phptraffica aussieht - da hab ich den code natürlich nicht groß geprüft und könnte mir vorstellen, daß dort ggf. sogar der Fehler ist.

Denn ich seh auch in den logs keine ungewöhnliche url bzw. versuchte injektions die passen könnten.
 
Für alle die es interessieren sollte.

Ich denke ich hab die Lücke gefunden:

Ich hatte von web erreichbar auf allen webseiten ein verzeichniss "phpmyadmin/scripts/setup.php" welches ich auch im log gesehen hatte.

Da dieses Script nicht durch den phpmyadmin htaccess schutz mitgeschützt wurde , konnten angreifer hier code einschleusen.

Ich habe jetzt das komplette verzeichniss scripts entfernt..mal abwarten, aber ich denke das könnte wirklich die ursache gewesen sein.
 
Das hattest du vorher gar nicht erwähnt... Hast du das mal auf den neuesten Stand gebracht?

Hier gab es nämlich in der Tat eine schwere Sicherheitslücke in der setup.php, die auch weithin bekannt war. Dafür sind sogar Exploits öffentlich verfügbar.
 
Nee ich habe es noch nicht auf den neusten Stand gebracht , will aber heute oder morgen mal komplettes server update durchführen und mal alle komponenten aktualisieren.

Ich war auch davon ausgegangen wenn ich phpmyadmin mit htaccess schütz laufen lassen, wäre alles geschützt , aber natürlich nicht scripte die standalone dahinter laufen :(

Hatte nachdem heut morgen wieder alles gehackt war und ich dann auch den zeitraum eingrenzen konnte, ein GET und POST auf diese datei gefunden - und da ich zu der zeit 100% nicht am PC war , kam mir das gleich verdächtig vor .

Ich hatte es vorher nicht erwähnt gehabt, weil ich ehrlich gesagt selbst nicht dran gedacht hatte (zumal ich durch den htaccess schutz im traum nicht drauf gekommen bin).

Aber sobald man google phpmyadmin scripts setup.php eingibt, kommen auch direkt die exploits zum vorschein.
 
Zurück