Home » Webdesign » Website wurde gehackt
- Anzeige -
Software Asset Management beim Fachmann

Meine Webseite wurde gehackt, was nun?

Schadsoftware auf der eigenen Website

Wenn plötzlich Schadcode auf deiner Webseite ist, gilt es einiges zu beachten. In diesem Artikel zeige ich dir in 14 Punkten, was du wissen und tun musst, wenn deine Webseite gehackt wurde. Besten Dank an Manuel von der nexcon ag, der mir viele entscheidende Hinweise gab.

Konkret dreht es sich in diesem Artikel um...

Inhaltsverzeichnis

1. Einen Hack feststellen

Viele Webprovider scannen ihre Server regelmässig auf Schadsoftware. Insofern sollte man von seinem Provider gewarnt werden. Allerdings ist es auch schon vorgekommen, dass der Scanner eines Providers nicht den ganzen Schadcode feststellen konnte. Verlasse dich daher nicht blindlings auf eine vom Provider übergebene Dateiliste.

Andere Anzeichen können sein:

Wenn du deine Seite bei den Google Webmaster Tools registriert hast, erhältst Du möglicherweise auch von dort eine Warnung. Dann liegt der Befall aber meistens länger zurück.

2. Infektion durch geknacktes Passwort V 1.0

Untersuche deinen Rechner auf Viren und halte deinen Virenscanner stets aktuell.

Viele Viren und Würmer haben auch Password-Logger mit an Bord. Also Software, die Passwörter aufzeichnet und an einen Server des Angreifers schickt. Das kann natürlich auch dein FTP-Passwort oder das Passwort deines CMS sein.

Bei einem Befall musst du daher sicherstellen können, dass dein lokaler PC nicht verseucht ist und sämtliche Passwörter an die Hacker sendet. Zum "Entseuchen" sind auf it-zeugs.de Artikel erschienen. Schau dir z.B. den Artikel Schädlingsbekämpfung per Hand an.

Lass diesen Infektionsweg nicht aussen vor. Nicht dass Du zuerst deine Webseite bereinigst, neue Passwörter setzt und sofort wieder verseucht bist.

3. Infektion durch geknacktes Passwort V 2.0

Nutze immer verschiedene komplexe Passwörter.

Es gibt sogenannte Botnets. Das sind virtuelle Netzwerke von verseuchten Rechnern, die über das Internet vernetzt sind. Sie werden von Hackern unter anderem dazu benutzt werden, CMS-Passwörter (vor allem Wordpress) mit gesteuerten Passwortversuchen zu knacken. Da die Anfragen von verschiedenen IPs kommen, ist es nicht so einfach möglich, diese abzuwehren.

So oder so ist es sinnvoll, nach einem Befall alle Passwörter zu ändern.

4. Infektion durch Injection Flaws

Halte dein CMS aktuell und verwende nur Plugins aus sicherer Quelle.

Injecton Flaws entstehen immer dann, wenn z.B. Formulare übermittelten Programmcode ungeprüft ausgeben. Bei SQL-Injections wird SQL-Code übergeben, um an Datenbankinhalte zu kommen, die ein 'normaler User' nicht sehen sollte. SQL ist eine Programmiersprache, mit der man Datenbankabfragen macht. Bei Webscript Injections versucht ein Angreifer dem Webserver Schadcode (z.B. PHP) zur Ausführung unterzujubeln.

Daher solltest du dein CMS aktuell halten und nur Plugins aus sicherer Quelle verwenden.

5. Infektion durch Cross-Site-Scripting

Halte dein CMS aktuell und verwende nur Plugins aus sicherer Quelle.

Hier wird einer Web-Anwendung falscher Code übergeben. Ohne entsprechende Absicherung wird dieser dann ausgeführt. Beispielsweise könnte man einem Suchformular Javascript-Code übergeben.

Weitere Infos hierzu findest du unter dem Artikel Cross-Site Scripting auf Webmasterpro.

Auf Youtube finden sich viele Tutorials zu dem Thema. Die Zeiten, in denen kleine Seiten von Hack-Angriffen verschont bleiben, sind also entgültig vorbei.

6. Infektion durch Man-in-the-Middle-Attacke

Sichere deine Webseite möglichst mit SSL ab, das erhöht auch dein Ranking.

Bei der Man-in-the-Middle-Attacke versucht der Angreifer die Kommunikation zweier Partner abzuhören oder gg. zu manipulieren.

7. Zugriff auf betroffene Dateien sperren

Wenn deine Webseite gehackt wurde, dann verhindere den Zugriff auf den Schadcode oder nimm die Seite vorübergehend komplett offline.

Wurde die eigene Website gehackt, dann heisst es zum einen kühlen Kopf bewahren, aber auch recht zügig handeln. Fangen sich User über deine Website Schadcode ein, kann dies zu einem massiven Trafficabfall und Vertrauensverlust führen.

Falls vom Provider nicht bereits erfolgt, solltest du den Zugriff auf die befallenen Dateien via Änderung der Berechtigungen verhindern. Falls du unsicher bist, welche Dateien betroffen sind, dann nimm sicherheitshalber die komplette Seite offline.

8. Überprüfen des eigenen Rechners auf Viren und / oder Trojaner

Prüfe spätestens jetzt deinen Rechner bzw. alle Rechner, mit denen du jemals auf deine Webseite zugegriffen hast, auf Schadsoftware. Falls du nicht weisst wie, schau dir den Artikel Schädlingsbekämpfung per Hand an.

9. Passwörter ändern

Ändere alle Passwörter und benutze verschiedene komplexe Passwörter.

Nach einem Befall musst Du sicherheitshalber alle Passwörter ändern. Das betrifft insbesondere:

Keinfesfalls solltest du hierfür überall das gleiche verwenden. Falls es der Provider anbietet, solltest du ausserdem auf SFTP umstellen. So kann der FTP-Verkehr nicht mehr abgehört werden.

10. Analyse der Logfiles

Versuche anhand der vom Provider übergebenen Daten und der Logfiles den Infektionsweg festzustellen. Leider sind die Logfiles bei jedem Provider anders aufgebaut. I. d. R. sind Sie aber via FTP downloadbar. Beispiele:

xferlog_regular.processed 

enthält das Logfile von archiviertem FTP-Verkehr

error.log 

enthält Log der Zugriffsfehler.

access_log.stat

enthält Log der Zugriffe auf den Webspace. Die letztere ist eigentlich mit die interessanteste, da hier recht gut auf seltsame Zugriffe geprüft werden kann. Auffällig sind z.B. "POST" von anderen IPs als der eigenen, aber auch "HEAD". Mit der POST-Methode wird der Webserver angewiesen, Daten zur Speicherung entgegenzunehmen. Aber auch andere Zugriffe sollte man kritisch prüfen, wenn z.B. auf ein Pluginverzeichnis sehr häufig zugegriffen wurde. Als Einstiger hat man es hier leider nicht gerade leicht. Seltsame Einträge können leider einfach auch "nur" Log-SPAM sein. Kommt ein Zugriff sehr häufig vor, wird er in den Logs, die man per Web aufrufen kann, mit einem Link aufgeführt. So kommt der Spamer zu einem Backlink, von dem er hofft, dass dieser seine eigene Seite weiter nach oben bringt (was aber nicht stimmt).

Beispiele

nnn.nnn.nnn.nnn - - [03/Sep/2014:01:22:08 +0200] "POST /golf/Vuissens/Fotogallerie/zoom/Vuissens/a6db048d41.php 
HTTP/1.1" 200 435 "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; 
Trident/5.0)"
nnn.nnn.nnn.nnn - - [10/Nov/2014:03:07:56 +0100] "HEAD /admin/fckeditor/editor/filemanager/connectors/asp/upload.asp 
HTTP/1.1" 401 346 "-" "-"

Gezielt suchen sollte man nach POST-Aufrufen. Alle Zeilen mit einem 200 nach dem Dateinamen wurden extern ohne Fehler aufgerufen. Also können diese Skripte attackierbar oder infiziert sein.

11. Datenbank überprüfen

Ich hatte bisher den Fall noch nie, aber Schadcode kann sich auch in der Datenbank verstecken. Normalerweise sollte dieser mit folgender SQL-Abfrage gefunden werden können:

SELECT * FROM tabelle WHERE plugincode LIKE '%base64%'

-tabelle- musst du durch den Namen sämtlicher relevanten Tabellen ersetzten.

12. Applikationen aktualisieren

Sind alle Applikationen auf der Website aktuell? Dies betrifft insbesondere das CMS. Falls nicht, aktualisiere alles. Schau dich aber auch in den einschlägigen Foren um, ob nicht bereits Lücken von neuen Versionen bekannt sind.

13. "Tante" Google fragen

Gibt es andere Betroffene? Dank Google habe ich in einem Fall z.B. Hinweise gefunden, dass auch in der aktuellsten Version eines CMS ein Plugin Sicherheitsrisiken beinhaltet.

14. Vorkehrungen für die Zukunft

Sofortmassnahmen

Abweichung von Standards

Schau, dass du möglichst nirgendwo den Standard-Admin-User verwendest, sondern einen eigenen User (z.B. MySecUser - nein den verwende ich selbst nirgends) verwenden.

Internetpräsenz regelmässig auf veraltete Systeme prüfen

Aktualisiere alles, was du aktualisieren kannst. In der Regel ist das CMS hier der erste Ansatzpunkt. Prüfe, ob es eine neue Version gibt und installiere diese. Überprüfe das zukünftig regelmässig, auch ohne Befall der Webpräsenz!

.htaccess Magic

Über die .htacces-Datei kann man einige tolle Dinge anstellen, die zur weiteren Absicherung dienen.

Mit...

  order allow,deny 
  deny from nnn.nnn.nnn.nnn 
  allow from all

...wird die IP-Adresse nnn.nnn.nnn.nnn vom Zugriff ausgeschlossen. Gegen Botnets hilft das allerdings nicht viel.

Mit

order allow,deny
deny from 192.168
allow from all 

...wird ein ganze IP-Bereich gesperrt.

Mit

<FilesMatch "\.php$">
Order Allow,Deny
Deny from all
</FilesMatch>
<FilesMatch "index[0-9]?\.php$">
Order Allow,Deny
Allow from all
</FilesMatch>
<FilesMatch "veriword[0-9]?\.php$">
Order Allow,Deny
Allow from all
</FilesMatch>

...wird der Zugriff auf alle php-Dateien ausser index.php und veriword.php gesperrt.

Für das CMS MODX braucht es noch die Freischaltung der login.processor.php, daher noch folgendes ergänzen:

<FilesMatch "login\.processor[0-9]?\.php$">
Order Allow,Deny
Allow from all
</FilesMatch>

Berechtigungen

In der Regel liegen Webpräsenzen auf einem Unix-artigen Betriebssystem, wie z.B: Linux, Solars, FreeBSD. Die Berechtigungen werden hier über 3 oktale Zahlen definiert. In Filezilla sieht man die Berechtigung, wenn man mit der rechten Taste auf eine Datei klickt und "Dateiberechtigungen..." wählt.

Bei den meisten Hostern läuft das Web unter dem FTP-Account. Auf solchen Systemen kann man für Dateien 644 und Verzeichnisse 755 als Berechtigungen setzen. Auf keinen Falls sollte 777 als Berechtigungen gesetzt werden, da sonst über ein gehackten Account auf dem gleichen Server (der gar nichts mit Ihrer Webpräsenz zu tun haben muss), Dateien verändert werden können.

Und sonst?

Bei einigen Providern kann man einstellen, dass per http von PHP-Skripts aus keine Dateien hochgeladen werden dürfen, was die Sicherheit ebenfalls vergrössert.

Quellen, weitere Infos



War der Artikel hilfreich? Bitte liken und sharen. Danke!

it-zeugs.de ist auch auf Facebook...

Schreibe einen Kommentar - aber kein SPAM - der wird zuverlässig gefiltert!

  • Erforderliche Felder sind markiert mit *.

If you have trouble reading the code, click on the code itself to generate a new random code.