steven: [Sicherheit] Wie finde ich die Schwachstelle?

Hallo zusammen

Mir ist es diese Woche gleich zweimal passiert, dass eine von mir unterhaltene Webseite Opfer eines Hacks wurde: In beiden Fällen wurde jeweils an den Beginn sämtlicher index.* - Files der Seite ein iframe mit Verweis auf eine polnische Domain platziert.

Zuerst einmal ein seltsamer Zufall, da mir dies vorher noch überhaupt nie passiert ist und die beiden Seiten in keinster (mir bekannter) Weise miteinander verlinkt sind (Sind beide aus der selben Region, mag also sein dass sie irgendwo auf einer Linkliste erscheinen). Die beiden Seiten sind schon grob 4 und 2 Jahre online.

Da die Veränderung der Files sehr simpel und systematisch geschehen ist, nehm ich an dass da irgend ein Bot am Werk war, oder lieg ich da falsch? Die Seiten zu säubern über die Originalfiles ist simpel und schon geschehen, aber so ists natürlich nur eine Frage der Zeit bis sie wieder Opfer des selben Hacks werden.
Die Anzeichen sagen mir dass ich wahrscheinlich irgendwo (wohl aus Unwissenheit) einen ziemlich dämlichen und fahrlässigen Fehler begangen habe. Kann es an der Konfiguration der Server liegen? Oder wie sonst kriegt der Bot Direktzugriff auf die Files und kann sie editieren?
Die Seiten laufen bei unterschiedlichen Hostinganbietern mit unterschiedlichem CMS (Joomla/Typo3). Ich habe schon etwas recherchiert, habe aber abgesehen von allgemeinen Tipps und Anleitungen, was nach einem Hack zu tun ist nicht wirklich etwas gefunden. Wo liegt der typische Angriffspunkt bei dieser Art Hack, was sollte ich überprüfen?

Besten Dank für eure Hilfe!

  1. Ich finde dieses Posting albern. Noch allgemeiner und detailärmer kann man es nicht mehr formulieren.

    1. Ich finde dieses Posting albern. Noch allgemeiner und detailärmer kann man es nicht mehr formulieren.

      Wie du dir vielleicht vorstellen kannst, liegt dem grossen Detailreichtum des Postings mein umfassendes Knowhow im Umgang mit einem solchen Problem zugrunde. Du hast dir die Mühe gemacht, eine Antwort zu schreiben: Also was fehlt dir denn, was sind die Ansätze?
      Beide Seiten laufen auf dem klassischen Hostingangebot für kleine Privatseiten: Apache/virtuell. Damit ich dir helfen kann beim Helfen bräuchte ich schon ne spezifische Frage (In dem Sinne ist der Leitfaden von selfhtml nicht nur auf den Threadersteller sondern auch auf den Antwortenden anwendbar.. ;) )
      Wie kriegt der Bot/Hacker Zugriff auf die Seiten bzw. wie kriege ich raus wie es gelaufen ist? Übers CMS-Backend kriegt man den schliesslich nicht. Ist ein Hack des FTP-Zugangs wahrscheinlich? Oder sonst eine Variante? Was gibts da noch? Mit Servertechnologie etc kenn ich mich überhaupt nicht aus. Meine erste Intuition wäre ja ein unbemerkter Virus auf meinem Rechner und dadurch der Zugriff auf die Files von Filezilla o.ä. gewesen, was ja auch wunderbar automatisch funktionieren dürfte. Nur müssten dann alle Seiten betroffen sein, sind es aber nicht. (Wobei ich dies natürlich im Auge behalte.)

      1. Hallo,

        als erstes finde heraus, welche CMS-Versionen auf den Servern installiert sind und dann informiere dich über die Bugs, die diese enthalten und ob diese dafür verantwortlich sein können.

        vg ichbinich

        --
        Kleiner Tipp:
        Tofu schmeckt am besten, wenn man es kurz vor dem Servieren durch ein saftiges Steak ersetzt...
      2. Hallo steven,

        ... Mit Servertechnologie etc kenn ich mich überhaupt nicht aus. ...

        wer hat den Server denn aufgesetzt und wer pflegt den Server?

        Gruß, Jürgen

      3. Hallo,

        Ich finde dieses Posting albern. Noch allgemeiner und detailärmer kann man es nicht mehr formulieren.
        Wie du dir vielleicht vorstellen kannst, liegt dem grossen Detailreichtum des Postings mein umfassendes Knowhow im Umgang mit einem solchen Problem zugrunde. Du hast dir die Mühe gemacht, eine Antwort zu schreiben: Also was fehlt dir denn, was sind die Ansätze?

        du hast zwar das CMS genannt, das du auf den beiden Servern nutzt, und es sind schon mal zwei verschiedene. Das macht es zumindest unwahrscheinlich, dass eine Sicheheitslücke im CMS selbst ausgenutzt wurde. Da ich aber weder von Joomla, noch von Typo3 Ahnung habe, kann ich da keine spezifischen Denkanstöße geben.

        Wahrscheinlicher ist also irgendeine Schwachstelle in einer Komponente, die auf *beiden* Sites verwendet wird. Vielleicht ein Gästebuch? Falls du derartige Fremdscripte einsetzt, recherchiere nach (inzwischen) bekannten Schwachstellen. Auch die tatsächliche Domain, die über das iframe-Element referenziert wird, könnte dir bei der Recherche und Identifikation helfen.

        Beide Seiten laufen auf dem klassischen Hostingangebot für kleine Privatseiten: Apache/virtuell.

        Damit könnten -je nach Sicherheitskonzept des Hosters- auch andere Kunden betroffen sein, die auf demselben Server "wohnen". Hast du schon mal nachgefragt? Falls das so ist, kann auch die Ursache bei einem anderen Kunden liegen.

        Wie kriegt der Bot/Hacker Zugriff auf die Seiten bzw. wie kriege ich raus wie es gelaufen ist?

        Das Wahrscheinlichste ist, wie gesagt, eine Schwachstelle in irgendeinem Fremdscript, die es dem Angreifer ermöglicht hat, fremden (seinen) Code einzuschleusen. Das können etwa PHP-includes sein, bei denen Benutzereingaben ungeprüft im Pfadnamen landen.

        Übers CMS-Backend kriegt man den schliesslich nicht.

        Wieso nicht? Halte ich keinesfalls für ausgeschlossen.

        Ist ein Hack des FTP-Zugangs wahrscheinlich?

        Denkbar, halte ich aber auch nicht für wahrscheinlich. Ich hoffe, du hast dein eigenes Zugangspasswort schon prophylaktisch geändert. Trat der Eingriff danach noch einmal auf?

        Mit Servertechnologie etc kenn ich mich überhaupt nicht aus.

        Kontaktiere deinen Webhoster, schildere das Problem und bitte um Unterstützung. Er kann anhand der Logdateien diverser Dienste vielleicht feststellen, was wirklich gelaufen ist. Und dann kann man gezielt Maßnahmen treffen.

        Meine erste Intuition wäre ja ein unbemerkter Virus auf meinem Rechner und dadurch der Zugriff auf die Files von Filezilla o.ä. gewesen, was ja auch wunderbar automatisch funktionieren dürfte.

        Auch denkbar - je nachdem, wie wirksam du deine(n) eigenen Rechner unter Kontrolle hast.

        So long,
         Martin

        --
        Lehrer:  Wieviel ist die Hälfte von 8?
        Schüler: Kommt drauf an. Waagrecht 0 und senkrecht 3.
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
      4. Welche Software/Protokoll nutzt du, um deine Dateien zu aktualisieren? Ich gehe mal von FTP aus.

        Ich hatte mal vor Jahren einen Wurm/Trojaner/Virus, der hat die FTP-Zugänge über TotalCommander ausgelesen, und dann auf (fast) allen meinen Kundenservern die index.php verändert, etwa so, wie du es beschrieben hast. Allerdings nur auf fast allen, wie gesagt. Warum das nicht auf allen war, kann ich dir nicht sagen.

        Niemals Passwörter in der Software hinterlegen. Das ist meines Erachtens grob fahrlässig.

  2. Hallo steven,

    Verdacht 1
    Du bist die Verbindung.

    Verdacht 2
    Jemand hat den "Zettel mit den Passwörtern" gefunden.

    Verdacht 3
    Du hast bei der Konfiguration irgend etwas falsch gemacht. ;)

    Zur Info
    In meinen Logfiles finde ich immer wieder Zugriffsversuche auf nicht vorhandene Ordner und Dateien. Den Namen entnehme ich, dass da jemand versucht, nicht ausreichend geschützte System- oder Konfigurationsdateien zu lesen.

    Gruß, Jürgen

  3. Moin Moin!

    Schwachstelle 1: Du gehst davon aus, dass es nur eine Schwachstelle gibt.

    Typische Probleme (unsortiert):

    * schwache Passworte ("geheim","sagichnicht" statt 20 Zeichen willkürlich aus dem gesamten verfügbaren Zeichensatz ausgewürfelt oder noch besser Public-Key-Verfahren)
    * fehlerhafte Software (im Web-Umfeld sehr gerne alte PHP-Versionen, gerne in Kombination mit altem Code, zusammengefrickelte Plugins für zusammengefrickelte "Fertig-Lösungen")
    * Zugriff über unverschlüsselte Protokolle (Telnet, FTP statt SSH, SFTP, SCP)
    * zu viele Informationen für Angreifer (ServerTokens full, use CGI::Carp qw(fatalsToBrowser), ...)
    * unsichere Standard-Konfiguration statt sauber abgedichteter Installation
    * zu viele Services aktiv, die gar nicht benötigt werden
    * Services ungeschützt vom Internet erreichbar (z.B. sehr gerne die MySQL-DB hinter vielen Websites)
    * schlampiger Administrator / billiger Hoster, der keine Updates einspielt und mit völlig veralteten und bekannt unsicherer Software arbeitet
    * chmod 777 als "Universal-Rezept" gegen alle Permissions-Probleme
    * SQL Injection
    * Social Engeneering
    * Angriff von Insidern (im Firmenumfeld)
    * "Security by obscurity"

    Diese Liste ist längst nicht vollständig.

    Wenn Du Sicherheitslücken suchst, fang damit an, wie jemand zu denken, der über ein großes Botnet, ausreichend Kohle und ausreichend Motivation verfügt, um Dir schaden zu wollen oder wenigstens um Deine Resourcen kostenlos zu benutzen. Mach Dich über gängige Sicherheitsprobleme schlau. Versuch mal, mit gängigen Techniken Deine eigenen Systeme in einer Labor-Umgebung (d.h. vom Rest der Welt getrennt) anzugreifen.

    Alexander

    --
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
    1. Hi Steven,

      Mach Dich über gängige Sicherheitsprobleme schlau.

      Dieser Artikel ist über WordPress im speziellen, eventuell findest du aber Ansatzpunkte die dir bei der Lösung deines eigenen Problems helfen. Common WordPress Malware Infections.

      Hast du vielleicht auf deinem Server tägliche Backups? Dann kannst du die Backups durchsuchen und heraus finden wann genau deine Seite gehackt wurde. (Wenn tauchen das erste mal Files auf die nicht von dir sind, oder nicht von Joomla/Typo3? Mach eine Leerinstallation und über Diff - mit einer Kopie eines Backups, mache einen Vergleich welche Dateien nicht dazu gehören)

      Eventuell, mach erstmal deine Seite zu, "Liebe Besucher wegen Wartungsartbeiten am Server u.s.w.", bis du die Quelle der Infektion gefunden hast.

      gruesse aus'm ruhrpott
        jens mueller

      --
      As long as a single mind remembers, as long as a single heart
      beats with passion, how can a dream die?
      \//_ Live long and prosper
      sh:( fo:) ch:| rl:° br:^ n4:| ie:% mo:| va:} de:> zu:) fl:( ss:) ls:> js:|
      1. Hallo ,

        Exploits of a Mom
        xkcd Exploits of a Mom

        gruesse aus'm ruhrpott
          jens mueller

        --
        As long as a single mind remembers, as long as a single heart
        beats with passion, how can a dream die?
        \//_ Live long and prosper
        sh:( fo:) ch:| rl:° br:^ n4:| ie:% mo:| va:} de:> zu:) fl:( ss:) ls:> js:|
  4. Ich danke euch allen für die Antworten!

    Einige von den Tipps werde ich mir noch einmal etwas genauer anschauen.

    Ich bin mir inzwischen zu 99% sicher, dass meine Vermutung zutreffend ist: Ich habe bei den beiden betroffenen Seiten sämtliche Zugänge gewechselt, diesen bei einer weiteren, noch nicht betroffenen aber belassen, sie dafür regelmässig gecheckt. Und siehe da, ich musst nur bis gestern warten: Die index.* Files wurden alle verändert - über den FTP Zugang.
    Was dürfte passiert sein? Ich hatte mir vor gut 2 oder 3 Wochen nach langem wieder mal einen Virus eingefangen auf meinem Homecomputer. Entfernt war dieser ziemlich schnell und ich habe mir auch nicht mehr weiter viel dabei gedacht. Was mir nicht klar war: In der Standardeinstellung von Filezilla werden im Verlauf die Passwörter vergangener Logins nicht einfach nur gespeichert, die Logindaten stehen sogar in Plaintext in einem XML-File im Appdata-Ordner.. Liegen also auf dem Präsentierteller für eine automatisierte Suche. Man kann es Hackern auch einfach machen...

    Fazit: Das "Passwörter nicht speichern"-Kästchen in Filezilla ist bestimmt keine schlechte Idee...

    Gruss