Neu Das Whitepaper zur kontinuierlichen Sicherheitsvalidierung 2026 ist verfügbar. Whitepaper lesen →

Web Server — Angriff & Verteidigung.

Angriffsketten pro Server-Klasse mit zugehörigen Härtungsmaßnahmen — Apache, nginx, IIS, Tomcat, JBoss — und der Entscheidungsbaum vom ersten 200 OK bis zum authentifizierten Kontext.

Apache HTTPD

  • Angriff. .htaccess-Missbrauch wo AllowOverride SetHandler erlaubt — PHP-Handler in beschreibbaren Upload-Ordner droppen für sofortige RCE. mod_cgi + CVE-2021-41773 Path-Traversal noch auf Nachzüglern erreichbar. mod_status unter /server-status leakt Live-Request-URIs inklusive Auth-Tokens.
  • Verteidigung. Global AllowOverride None. mod_status deaktivieren oder auf Loopback beschränken. Über 2.4.50 patchen und Directory-Aliasse auf Traversal-Escape auditieren.

nginx

  • Angriff. Off-by-Slash-Misconfig: location /api { proxy_pass http://backend; } mit Request /api../admin normalisiert server-seitig. Header-Injection via proxy_set_header X-Real-IP $http_x_forwarded_for. Lua-Modul-Sandbox-Escape auf altem OpenResty.
  • Verteidigung. Trailing-Slash-Disziplin: location /api/ { proxy_pass http://backend/; }. $http_*-Header strippen, denen das Backend traut. OpenResty pinnen wenn genutzt; CVE-Feed separat vom nginx-Core verfolgen.

IIS / ASP.NET

  • Angriff. WebDAV PUT in beschreibbares Virtual-Dir; .config-Overwrite zum Handler-Swap. Unicode-Normalisierung (%c0%af) für Traversal auf Legacy-Installationen. ViewState-Deserialisierung wo machineKey geleakt oder Default ist.
  • Verteidigung. WebDAV deaktivieren wenn nicht benötigt, Verben einschränken. requestFiltering auf Block von ..-Sequenzen. machineKey rotieren, validation-/decryption-Keys nicht default.

Tomcat / JBoss / WildFly

  • Angriff. /manager/html mit Default-Creds (tomcat:tomcat, admin:admin) → WAR-Deploy → JSP-Shell. JMX-Console / Admin-Console auf JBoss-Legacy → Invoker-Servlet → Deserialisierung. RMI-Port 1099 noch extern exponiert in Misconfig-Deploys.
  • Verteidigung. Manager-/Admin-Apps aus Produktions-Builds entfernen. Falls nötig, auf Loopback binden und nach IP + starken Creds einschränken. JMX-Remote deaktivieren wenn nicht explizit benötigt; niemals auf öffentlichem Interface.

Entscheidungsbaum ab erstem 200 OK

  1. Tech identifiziert? Wenn ja → Banner→CVE-Liste konsultieren. Wenn nein → weiter fingerprinten (Favicon, Error-Pages, Verhaltensproben).
  2. Auth-Oberfläche sichtbar? Login-Form, Basic Auth, NTLM → bekannte schwache Credentials sprayen (kerbrute, hydra) innerhalb der Lockout-Policy.
  3. Admin-Panel erreichbar? Default-Creds zuerst, dann bekannte CVE für das Panel, dann Password-Recovery-Logikfehler.
  4. Keine Auth, statisch-artige App? Directory-Fuzz (ffuf -w raft-large -e .bak,.old,.zip,.txt) für Backup-Files, Source-Leaks, Config-Dumps.
  5. API-Endpunkt? Suche nach /api/v1, /api/v2, /swagger, /openapi.json, /graphql + Introspection. Mass-Assignment, IDOR, JWT-Confusion testen.
FaustregelManagement-Interfaces (Tomcat Manager, JBoss Admin, Confluence Admin) niemals auf öffentlichem Interface deployen, unabhängig von der Passwortstärke. Netzwerk-Restriktion schlägt ganze Angriffsklassen, die Passwort-Rotation nicht schafft.

Von der Referenz zum Befund

Validieren Sie das in Ihrer eigenen Umgebung.