Filezilla hat mich verraten? Virus via FTP eingeschleppt.

Ich bin ohne mein Wissen „infiltriert“ worden. Im Internet. In meinen gehosteten Webaccounts. Irgendjemand hat mir einen Backdoor-Virus untergeschoben. Der Trojaner PHP.Shell-38 installiert eine PHP-Datei, welche codiert abgelegt wird und beim Aufruf ein Formular erzeugt, mit dem sich wohl einiges Schindluder anrichten lässt. Mit vollem Dateizugriff auf meine Dateien.
Es war nicht nur ein Account. Es waren (fast) alle meine Sites bei diesem Hoster. Immer das selbe Schema, nur mit unterschiedlichen Ordnern und Dateien.

Dies ist die ganze bisherige Story dazu … bis zur Entschlüsselung des Codes. Ich werde genau den Weg, den ich beschritten habe, aufzeigen und alle Quellen verlinken, die ich nutzte. Betrachten wir den ganzen Schlamassel …

Vorvorgestern Abend war ich noch total sicher. Naja – so sicher wie man sich im Internetzeitalter so sein kann. Meine paar Internetpräsenzen laufen stabil; alles war in Butter.

Gestern Morgen stutzte ich beim Checken meiner E-Mails: da prangte mir ein paar mal das Subject „Virus in Ihrem Account xxxxxx gefunden“ entgegen. Verschiedene Ickse; also mehrere Accounts. Naja – ich dachte mir erst, dass Antivir für WordPress von Sergej Müller mal wieder Alarm schlägt (was machmal vorkommt, dann aber immer darauf hinausläuft, dass ich etwas wilden Code genutzt habe. In echt gefunden hat das Plugin noch nie was bei mir!) und verschob das tiefergehende Prüfen auf später. Allerdings bohrte in mir der Absender der Emails: das ist eine speziell von mir eingerichtete E-Mailadresse, über die sonst nicht so viel reinkommt. Wieso bekomme ich eine Virenwarnung über diese Mailadresse?

Ich checkte gleich nachdem ich am Rechner saß die E-Mails erneut. Hmmm. Was stand da? „php_obfus_24.UNOFFICIAL“ gefunden in …. Interessant. Sagt mir gar nichts und Antivir war bereits aus dem Rennen. Dies könnte was ernsteres sein. Ich klinkte mich auf einen betroffenen Account ein und lud mir mal die beanstandete (und vom Virenscanner umbenannte) Datei herunter. Komisch – der Name sagte mir gar nichts. Außerdem hieß das Ding auf jedem Account anders und lang auch immer in einem anderen Verzeichnis.

In der PHP-Datei gab es jeweils nur eine Anweisung: preg_replace(…….)

Sehr viel Zeichensalat dazwischen. Undefinierbares Zeug. Ich ahnte, dass hier wieder ne Base64-Codierung vorlag. Immerhin nutze ich die teilweise auch, um kleinere Bilder direkt in CSS-Dateien einzulagern und so ein paar Requests beim Laden der Seiten zu sparen. Ich sollte Rechte behalten.

Zunächst schrieb ich an meinen Hoster (der später noch genannt wird) und bat ihn um seine geschätzte Meinung. Wie gewohnt fix bekam ich die Antwort, dass ich selbst nachschauen kann: in den Log-Files. Klar – ich Depp hatte die Logs gar nicht auf dem Radar, weil ich mich in der jüngeren Vergangenheit nicht mehr damit beschäftigt hatte. Einen Tipp bekam ich noch gleich auf den Weg: die FTP-Logs vom 6. Dezember 2013. Verdammt lang her …

Ich zückte Filezilla und lud mir von einem Account die Logs herunter. Das FTP-Log vom besagten Tag wies nur Zugriffe auf, die unmöglich von mir sein konnten. Und sie waren sehr spannend zu lesen:

Schauen wir uns mal an, was da los war:
In den frühen Morgenstunden loggte sich jemand via FTP in meinen Account ein. Um die Zeit schlafe ich meistens! Dieser Jemand lud sich die wp-config.php und die Google-Sitemap herunter. Geschlagene 19 Sekunden später wird in der Root(!) eine Gif-Datei erzeugt und gleich wieder gelöscht. Weitere drei Sekunden später wird in einem beliebigen Verzeichnis (in dem Fall /images/) eine quasi leere PHP-Datei erzeugt und wieder gelöscht und … gleich wieder erzeugt. Aber dieses mal mit Inhalt (22.572Bytes) .
Und dann war der Angreifer wieder weg.

Ich war ziemlich baff.

Hmmm. Das es sich bei der Seite um eine wordpress-basierte Site handelt kann man rausbekommen. Es gibt so irrsinnig viele WordPress-Seiten. Und fast ebensoviele nutzen die Webmaster-Services von Google, für die man die Sitemap.xml erzeugt. Insofern wundert mich der Download nicht. Immerhin liegt darin ja quasi die Seitenstruktur mit Dateinamen und Ordnern hübsch aufbereitet im XML-Format herum. Kann sich jeder bedienen und mit einem XML-Parser abarbeiten und lesen.
Dann die Gif-Dateien. Ich denke, dass der Angreifer lediglich testen wollte, ob er Schreibrechte auf dem Account hat. Hatte er ja auch. Der abermalige Test mit der leeren PHP-Datei sollte wohl testen, ob die Schreibrechte auch für das spezielle Verzeichnis gelten. Auch das taten sie. Tja … und dann legte er das Kuckucksei ins Nest. Ich argwöhnte, dass dies kein Nikolausgeschenk sei.

Ich prüfte die anderen Accounts. Genau das gleiche Verhalten wurde am schwarzen 6. Dezember 2013 aufgezeichnet. Immer mit anderen Dateinamen und Verzeichnissen. Und noch einen Unterschied gabs: es waren nicht nur WordPress-Seiten betroffen. Auch statische Seiten, die nur in gutem alten HTML herumliegen, wurden angegriffen. Hier wurde statt der wp-config.php die robots.txt gelesen.

Mir dämmerte, dass hier eine organsierte Schweinerei im Gange war und rannte orakelnd per E-Mail zu meinem Hoster. So und so .. Alarm, Angriff, Attacke, Hacker uswusf. Wieder kam kurze Zeit später eine Antwort:

Ihre FTP-Zugangsdaten sind Dritten bekannt. Wir gehen davon aus, dass auch andere Accounts so manipuliert worden sind.
D.h. es wurde FTP-Zugänge ausspioniert. Wir gehen davon aus, dass auch bei anderen Accounts der FTP-Zugang verwendet wurde.

Wir empfehlen sämtliche FTP-Zugänge zu ändern sowie lokale Rechner gründlich zu scannen.

Ein Hack des Servers selbst ist auszuschließen. Virenprüfungen der Accounts finden in unregelmäßigen Abständen statt,

Als erstes dachte ich an das Datum: 6. Dezember 2013. Die Meldung der Viren erfolgte am 03. Februar 2014. ‚Das nenn ich wirklich mal unregelmäßig!‘, schoss es mir durch den Kopf. Doch bevor mir die Zornesröte zu Kopf stieg, gewann der Analytiker und ich wurde vom Ehrgeiz gepackt.

1. Katastrophenmaßnahme: alle Passwörter ändern!
Ich ackerte mich durch meine Accounts und gönnte jedem von ihnen ein neues (längeres und komplizierteres) Paßwort. Parallel hackte ich die neuen Zugangsdaten gleich in mein Filezilla, weil ich nunmal ein fauler Hund bin. Während dieser ganzen Aktion dachte ich darüber nach, wie zum Geier die Angreifer an meine Zugangsdaten gekommen sein sollen. Mir fiel nichts ein. Ich arbeite stets mit laufenden Virenscannern, die immer geupdatet werden, folglich stets auf dem neuesten Stand sind. Ich meine, dass ich sicher bin (auch wenn sich jetzt der eine oder andere vor Lachen am Boden kringelt.) Ich weiß aber auch, dass ich nie sicher sein kann.

2. Wenn du nicht weiter weißt, frage …
Ich stellte eine vermeintlich schlaue Frage in der WordPress-Gruppe auf Google+. Der erste Hinweis ging gleich in die Richtung, die ich schon geahnt hatte: „Das klassische Einfallstor ist ein infizierter Rechner. Repariere das zuerst, sonst sind alle anderen Maßnahmen nutzlos.“, schrieb Thomas Scholz, um kurze Zeit später mit der vermutlich richtigen Nase erneut zu kommentieren: „Derzeit sind beispielsweise infizierte Filezilla-Programme im Umlauf, das könnte ein Ansatzpunkt sein.“. WIE BITTE? Filezilla – infiziert? Ach du meine Güte. Ich ächzte den letzten Stunden nach. Kann es sein? Da ich keinen näheren Hinweis in dieser Richtung mehr erhielt, twitterte ich kurz „Weiß wer was über infizierte Filezilla-Versionen?“. Und siehe da – DasNordlicht winkte mit einem noch recht frischen Artikel des PC-Magazins:

Datenklau per Trojaner
Vorsicht vor verseuchter FileZilla-Version

Antivirus-Hersteller Avast warnt derzeit vor einer mit Trojanern infizierten Version des beliebten FTP-Tools FileZilla. Die korrumpierte Version stiehlt die eingegeben Zugangsdaten.

Und wieder „Ach du meine Güte ….“. Der Artikel berichtet über verseuchte FileZilla-Installationen, welche die in Filezilla gespeicherten Passwörter mal eben gen Russland geschickt haben. Klugerweise steht in dem Artikel aber auch eine Methode, woran man die infizierten Programme erkennt. Die Methode wandte ich sogleich auf meine Installation an und … sie war nicht betroffen. Ist also doch nicht FileZilla Schuld? Ich war ratlos.

3. Bin ich lokal verseucht?
Ich startete daheim den Scan von Microsofts Security Essentials … der aber auch ergebnislos durchlief. Auch der eilig zur Unterstützung herbeizitierte Trojan Remover fand nichts. Naja – ein Restrisiko bleibt trotzdem immer.
Vielleicht hatte ich zwischendurch mal eine infizierte Filezilla-Version drauf? Und diese ist bei irgendwelchen routinemäßigen Updateorgien mit einer sauberen Version überbügelt worden? Das würde erklären, warum nur längere Zeit nicht geänderte FTP-Zugänge angegriffen wurden. Neuere Accounts blieben nämlich verschont!

4. Ist bereits Schaden entsanden?
Bleib für’s erste die Frage: Wurde das Script je aufgerufen?

Nein – wurde es nicht. Ich habe sämtliche Logs seit dem 6.12. durchsucht. Dabei wurden die abgelegten PHP-Dateien nicht gefunden; folglich wurden sie auch nicht abgerufen.

5. Mögliche Ziele des Angreifers herbeispekulieren
Der Angreifer hatte also auf meinem Webspace Dateien abgelegt und diese nie genutzt? Komisch. Waren das vielleicht „Schläfer“? Enthielt der Code der Dateien irgendwelche Anweisungen für eine Attacke auf jemand anderen? Ich konnte mir schon vorstellen, dass im Laufe der Zeit auf vielen Webpräsenzen diese Script-Dateien verteilt wurde, um dann vielleicht im Rahmen eines größeren Angriffs aktiviert zu werden. Vielleicht eine DDOS-Attacke via Bot-Netzwerk? Das wurde ja in meiner Fanatasie immer abenteuerlicher. Um sicher zu gehen, musste ich herausfinden, was die Datei für Code enthielt. Hatte ich ein PHP-Skript entzaubert, hatte ich alle andern auch, denn die Dateigrößen waren absolut identisch und sie enthielten auch alle den gleichen Code.

Das wird Inhalt von Teil 2 dieser kleinen schwarzen Artikelserie sein .. Stay tuned …

[Update: Hier gehts zu Teil 2 – Trojaner-Alarm: PHP.Shell-38 via FTP eingeschleust ]

3 Antworten

  1. Kerstin sagt:

    wenn ich auf Hier gehts zu Teil 2 -….. klicke springt mein Virenscaner an 😉

    • Themenmixer sagt:

      Nicht wirklich, oder Kerstin? Was nutzt du denn für nen Scanner?
      Die Seite ist aber absolut sauber!
      Hitzige Grüße vom Bodensee
      Jörg

  1. 5. Februar 2014

    […] In meinem letzten Artikel habe ich damit begonnen, die ganze Geschichte um den mysteriösen Virenbefall auf meinen Webaccounts bei einem Hoster zu dokumentieren. Zur Vorgeschichte liest du also am Besten zunächst den verlinkten Artikel. […]

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.