GameIndustry.eu Logo

2020 2021 2020 2020 20242016 2011   
GameIndustry.eu /  Blog /
DeutschSchutz vor bösartigen Angriffen auf Webservern
Eingetragen: 15.10.2020 Editiert: 01.01.2022

Schutz vor bösartigen Angriffen auf Webservern



Einschleusung von bösartigen Code vermeiden
Mittlerweile ist das Internet wenn man es so nennen will, Kriegsschauplatz und eine eigene Internetseite zu betreiben ist nicht immer einfach.

Der Artikel ist eine Erinnerung daran, dass sich immer wieder mal Serverlogs angeschauen und eigene Systeme auf dem neuesten Stand gehalten werden sollten. Auf diesen Seiten wird zudem eine IP-Liste bösartiger Suchanfragen bereitgestellt, die dabei helfen kann einen kleinen Teil dieser Angriffe abzufangen.

Immer wieder mit dabei, der Tor Browser bzw. die ExitNodes. Die Liste der Angriffsvektoren ist lang.

Inhaltsverzeichnis


  1. Verschiedene Angriffszensarien
  2. Wordpress Attacken
  3. User Enumeration
  4. XSS Attacken
  5. Weitere Angriffsvektoren
  6. Schutz mit Hilfe der HTACCESS
  7. User-Agents von Crawlern & Bots

Verschiedene Angriffszensarien


Neben bekanntem XSS (Cross-site Scripting) und Mysql Injection, XSPA, SSRF und DDoS Attacken werden diverse Tricks ausprobiert um Lücken auf Webservern auszunutzen. Vor allem haben es Individuen auf Fertigsysteme wie Wordpress abgesehen und klopfen eine Seite mehrmals täglich ab. Der Nachteil an diesen Fertigsystemen ist, das bei Sicherheitslücken oftmals gleich Hunderttausende Seiten betroffen sind und Parasiten so leichtes Handwerk haben um an Daten zu kommen.

Im schlimmsten Fall verliert der Admin den Zugang zum eigenen System, Datenbanken wurden gelöscht oder manipuliert, Nutzerdaten werden geklaut oder Schadsoftware verteilt. Szenarien gibt es leider wie Sand am Meer.

Weitere Bestandteile wären das permanente Abklopfen von Verzeichnisnamen, installieren von Backdoors, Bruteforceattacken auf Backends, User Enumeration - Auflistung der Nutzer (z.b. Adminaccounts), Ausspähen von Zugangspasswörtern, SQL Injections durch Core-Elemente, sowie aktives Ausnutzen von Sicherheitslücken für den FCKeditor uvm.

Ich kenne mich nicht mit Wordpress aus, aber einige Angriffsvektoren existieren wohl schon seit über 4 Jahren und länger. Dass diese immer noch ausgeführt werden, spricht nicht gerade für den Einsatz eines solchen Systems. Vor allem wenn Freund/in oder Kumpel fix 'ne Seite eingerichtet hat und selbst keine Ahnung von der Materie hat.

Wordpress in Zahlen


Ein kleiner Auszug aus dem Jahr 2021
  1. 10.12.2021 - Attacke gegen 1,6 Millionen Wordpresseiten dank unsicheren Plugins und Themes
  2. 08.12.2021 - Infizierte Wordpress Plugins werden genutzt um Kreditkarteninformationen zu stehlen
  3. 24.11.2021 - 1,2 Millionen Wordpress Seiten durch Datenpanne bei GoDaddy gefährdet
  4. 11.11.2021 - 1 Millionen Wordpress Seiten durch veraltete Starter Plubins gefärdet
  5. 02.11.2021 - DSGVO Plugin erlaubt unauthorisierten Löschvorgang von Webseiten
  6. 28.10.2021 - 1 Million Wordpress Systeme durch unauthorisierten API Zugang gefährdet

Quellen: Sucuri, Wordfence

Wordpress Attacken


Wenn es also Webseiten mit Sicherheitslücken erwischt, dann sofort auf einen Schlag im fünf bis siebenstelligen Bereichen. Daher scheint es auch kein Wunder zu sein, dass sich Angriffe primär auf Wordpress eingeschossen haben und Systeme (mehrmals am Tag) nach Schwachstellen nach Schema F abklopfen. Auch Webseiten die nicht auf Wordpress basieren.

  "GET / HTTP/1.1"
"GET / HTTP/1.1"
"GET //2018/wp-includes/wlwmanifest.xml HTTP/1.1"
"GET //2019/wp-includes/wlwmanifest.xml HTTP/1.1"
"GET //blog/wp-includes/wlwmanifest.xml HTTP/1.1"
"GET //cms/wp-includes/wlwmanifest.xml HTTP/1.1"
"GET //media/wp-includes/wlwmanifest.xml HTTP/1.1"
"GET //news/wp-includes/wlwmanifest.xml HTTP/1.1"
"GET //shop/wp-includes/wlwmanifest.xml HTTP/1.1"
"GET //site/wp-includes/wlwmanifest.xml HTTP/1.1"
"GET //sito/wp-includes/wlwmanifest.xml HTTP/1.1"
"GET //test/wp-includes/wlwmanifest.xml HTTP/1.1"
"GET //web/wp-includes/wlwmanifest.xml HTTP/1.1"
"GET //website/wp-includes/wlwmanifest.xml HTTP/1.1"
"GET //wordpress/wp-includes/wlwmanifest.xml HTTP/1.1"
"GET //wp-includes/wlwmanifest.xml HTTP/1.1"
"GET //wp/wp-includes/wlwmanifest.xml HTTP/1.1"
"GET //wp1/wp-includes/wlwmanifest.xml HTTP/1.1"
"GET //wp2/wp-includes/wlwmanifest.xml HTTP/1.1"
"GET //xmlrpc.php?rsd HTTP/1.1"

  "GET / HTTP/1.1"
"GET / HTTP/1.1"
"GET / HTTP/1.1"
"GET / HTTP/1.1"
"GET / HTTP/1.1"
"GET / HTTP/1.1"
"GET /.env HTTP/1.1"
"GET /.env HTTP/1.1"
"GET /admin/includes/general.js HTTP/1.1"
"GET /admin/includes/general.js HTTP/1.1"
"GET /admin/view/javascript/common.js HTTP/1.1"
"GET /admin/view/javascript/common.js HTTP/1.1"
"GET /administrator/ HTTP/1.1"
"GET /administrator/ HTTP/1.1"
"GET /administrator/help/en-GB/toc.json HTTP/1.1"
"GET /administrator/help/en-GB/toc.json HTTP/1.1"
"GET /administrator/language/en-GB/install.xml HTTP/1.1"
"GET /administrator/language/en-GB/install.xml HTTP/1.1"
"GET /fckeditor/editor/filemanager/connectors/php/upload.php?Type=Media HTTP/1.1"
"GET /fckeditor/editor/filemanager/connectors/php/upload.php?Type=Media HTTP/1.1"
"GET /images/editor/separator.gif HTTP/1.1"
"GET /images/editor/separator.gif HTTP/1.1"
"GET /js/header-rollup-554.js HTTP/1.1"
"GET /js/header-rollup-554.js HTTP/1.1"
"GET /misc/ajax.js HTTP/1.1"
"GET /misc/ajax.js HTTP/1.1"
"GET /plugins/system/debug/debug.xml HTTP/1.1"
"GET /plugins/system/debug/debug.xml HTTP/1.1"
"GET /vendor/phpunit/phpunit/build.xml HTTP/1.1"
"GET /vendor/phpunit/phpunit/build.xml HTTP/1.1"
"GET /wp-includes/js/jquery/jquery.js HTTP/1.1"
"GET /wp-includes/js/jquery/jquery.js HTTP/1.1"

User Enumeration


Hier wird geprüft ob und welche Nutzer existieren. Existiert z.b. ein Adminaccount kann versucht werden sich über diesen einzuloggen.

  "GET /?author=1 HTTP/1.1"
"GET /?author=2 HTTP/1.1"
"GET /?author=3 HTTP/1.1"

XSS Attacken


Einschleusen von Fremdcode mit Hilfe von URL-Manipulation

  "GET /search/index.php?suchbegriff=/etc/passwd& HTTP/1.1"
"GET /search/index.php?suchbegriff=Extinction'[0]& HTTP/1.1"
"GET /search/index.php?suchbegriff=\">alert(String.fromCharCode(88,83,83))& HTTP/1.1"

Weitere Angriffsvektoren


Noch mehr Mist... Muss toll sein, anderen Menschen schaden zu wollen.

  "GET /.well-known/autoconfig/mail/config-v1.1.xml?emailaddress=admin%40xxxxxx.de HTTP/1.1"
"GET /admin/assets/global/plugins/jquery-file-upload/server/php/index.php HTTP/1.1"
"GET /admin/assets/global/plugins/jquery-file-upload/server/php/index.php HTTP/1.1"
"GET /admin/assets/plugins/jquery-file-upload/server/php/index.php HTTP/1.1"
"GET /admin/assets/plugins/jquery-file-upload/server/php/index.php HTTP/1.1"
"GET /autodiscover/autodiscover.xml HTTP/1.1"
"GET /public/assets/global/plugins/jquery-file-upload/server/php/index.php HTTP/1.1"
"GET /public/assets/global/plugins/jquery-file-upload/server/php/index.php HTTP/1.1"
"GET /public/assets/jquery-file-upload/server/php/index.php HTTP/1.1"
"GET /public/assets/jquery-file-upload/server/php/index.php HTTP/1.1"
"GET /python-admin/dashboard.php HTTP/1.1" 301 258 "-" "Python-urllib/3.7"
"GET /python-admin/dashboard.php HTTP/1.1" 404 2357 "-" "Python-urllib/3.7"

Gezieltes Abfischen von bestimmten Dateien


Gezieltes Aufrufen von bestimmten Dateinamen, die Logindaten enthalten können, Githublogs, Sicherungen der eigenen Datenbanken, Dumpdateien oder Walletdaten

  "GET /back/backup.sql.tar HTTP/1.1" 301 251 "-" "-"
"GET /back/sftp-config.json HTTP/1.1" 301 253 "-" "-"
"GET /back/website.tar HTTP/1.1" 301 248 "-" "-"
"GET /backup/backup.sql.gz HTTP/1.1" 301 252 "-" "-"
"GET /backups/www.rar HTTP/1.1" 301 247 "-" "-"
"GET /bak/.bash_history HTTP/1.1" 301 249 "-" "-"
"GET /credentials.txt HTTP/1.1" 404 2192 "-" "-"
"GET /dump.sql HTTP/1.1" 403 2185 "-" "-"
"GET /old/wallet.zip HTTP/1.1" 404 2191 "-" "-"
"GET /old/website.gz HTTP/1.1" 301 246 "-" "-"
"GET /public_html.zip HTTP/1.1" 301 247 "-" "-"
"GET /restore/dump.sql HTTP/1.1" 301 248 "-" "-"

Schutz mit Hilfe der Htaccess


Die Htaccess (Hypertext-Zugriff) Datei dient als Konfigurationsdatei auf Webservern und kann mit nutzerdefinierten Regeln gefüllt werden, die dabei helfen können Verzeichnisse umzuleiten, Fehlerseiten auszugeben, Zugriffsschutz zu verankern oder auch um Abfragen im Vorraus abzublocken. Letzerer Punkt ist interessant, da es somit relativ einfach möglich ist, genannten Angriffsvektoren den Gar aus zu machen.

 # Block über User-Agents
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (Crawler|Bot|Apache) [NC]
RewriteRule (.*) - [F,L]
</IfModule>

# Block über URL-Abfragen
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{QUERY_STRING} (wlwmanifest|adminstrator) [NC]
RewriteRule (.*) - [F,L]
</IfModule>

Ip-Adressen mit der htaccess gezielt blockieren


Die Methode wird allerdings auf Dauer sehr langsam. Hier bietet es sich je nach Seitensprache an mit Arrays zu arbeiten, unliebsame Zugriffe zu blockieren. Oder nutzt entsprechende Wordpress Funktionen.

 <Limit GET POST PUT>
Order allow,deny
Allow from all
deny from 1.2.3.4
deny from 5.6.7.8
</Limit>

Die Webseite von PerishablePress bietet zum Umgang mit der htacces detaillierte Informationen und Vorgehensweisen.

User-Agents von Crawlern & Bots


Crawler & Bots sind Scripte (oder Programme), die Webseiten nach Inhalten und Informationen durchforsten und ggf. speichern.

Nicht nur, dass sie eine Menge Traffic verursachen und damit Ressourcen verbrauchen, die Firmen und Personen hinter den Bots & Crawlern verdienen sich daran doof und dämlich an Daten die Ihnen noch nicht einmal selbst gehören. Wie im Fall des Diffbots, der monatlich bis zu 800€ kostet. Webseitenbetreiber sehen von diesem Reichtum natürlich nichts. Im Gegenteil, sie müssen wenn sie Pech haben sogar noch draufzahlen.

Auch hier lohnt es sich darauf zu achten, wer die eigenen Seiten besucht, um dem notfalls einen Riegel vorzuschieben, denn auch Anwender (mit bösartigen Absichten) können ihren User-Agent als Bot "tarnen". Hier hilt nur eine kontinuierliche Auswertung der eigenen Serverlogs und eine  Bot & Crawlerliste wurde bereitgestellt, die dabei helfen kann den eigenen Webserver abzusichern.