Webserver lassen sich häufig durch unachtsame Programmierung der Inhalte kapern. Kali Linux hilft mit Tools wie Nikto und Vega, solche Schwachstellen zu finden und zu beseitigen.
Im letzten Teil unseres Workshops zu Kali Linux [1] dreht sich alles um die Sicherheit von Webservern. Insbesondere bei kommerziellen Webseiten ist der Internetauftritt in aller Regel nicht nur optisch attraktiv aufbereitet, sondern ermöglicht auch den direkten Kontakt zum jeweiligen Unternehmen. Dazu kommen meist verschiedene Backends wie Datenbanken oder Anbindungen an ERP-Systeme zum Einsatz, mit deren Hilfe der Kunde Waren bestellt oder bezahlt.
Kriminelle interessieren sich insbesondere für die in Shop-Systemen hinterlegten persönlichen Daten von Anwendern; als Einfallstor in diese Systeme dient der Zugang über den Webbrowser. Daher gehört es zu den Pflichtaufgaben jedes Entwicklers und Administrators, Webserver und Webseiten gegen unterschiedlichste Angriffsszenarien abzusichern. Kali Linux bietet auch in diesen Fällen eine wertvolle Hilfestellung, indem es verschiedene Tools bereitstellt, mit deren Hilfe Sie Webseiten automatisiert auf Sicherheitslücken und Schwachstellen hin abklopfen.
Nikto
Der in Perl programmierte Webseiten-Scanner Nikto [2] gilt als eines der leistungsfähigsten Tools zum Untersuchen von Webservern. Dabei beschränkt sich die Software nicht nur auf offensichtliche Fehlkonfigurationen, sondern lokalisiert auch überalterte Software-Installationen und problematische Skripte. Das Kommandozeilenwerkzeug wartet mit beeindruckenden Leistungen auf: Es erkennt über 1250 Server-Versionen und informiert daher zuverlässig über veraltete und daher meist sicherheitskritische Varianten. Außerdem listet das Programm rund 6700 problematische Dateien und Programme auf und informiert den Admin über rund 270 versionsspezifische Lecks bei Webservern.
Dank seines modularen Aufbaus ergänzen und erweitern die Entwickler die Software permanent durch weitere Plugins. Beachten Sie aber, dass Nikto in der Grundeinstellung nicht als Stealth-Tool arbeitet: Da die Software viele HTTP-GET-Anfragen und somit auch Log-Einträge auf dem Zielserver verursacht, hinterlassen Sie dort eine kaum übersehbare Spur. Andererseits lässt sich auf diesem Weg auch festzustellen, ob ein installiertes IDS korrekt funktioniert.
Sie starten die Software in Kali Linux über den Menüpunkt Anwendungen | 02 – Schwachstellenanalyse | nikto. Es öffnet sich ein Terminal, das die Optionen der Software anzeigt. Anschließend geben Sie am Prompt den Befehl nikto -h Host ein, wobei sich sowohl die IP- als auch die HTTP(S)-Adresse als Hostname eignet. Danach listet die Software im Terminalfenster untereinander alle ermittelten Daten über das Zielsystem auf. Es folgt eine detaillierte Testreihe, die je nach Komplexität der verwendeten Konfiguration eine halbe Stunde und länger dauern kann. Den benötigten Zeitaufwand und die Anzahl der Requests listet die Software am Ende der Testreihe ebenfalls auf (Abbildung 1).
Um die von Nikto angezeigten Daten zu interpretieren, nutzen Sie am einfachsten die Webseite der Open Source Vulnerability Database, kurz OSVDB [3], die detaillierte Informationen zu aktuellen wie auch älteren entdeckten Schwachstellen in verschiedensten Softwarepaketen enthält. Zu vielen Problemen, die Nikto ermittelt, gibt sie eine entsprechende Kennnummer am Zeilenanfang der Auflistung aus. Diese weist auf eine in der OSVDB-Datenbank gelistete Schwachstelle hin, wo Sie diese problemlos nachschlagen.
Um nähere Informationen zu einzelnen von Nikto gefundenen Schwachstellen und Lösungsvorschläge für deren Beseitigung zu erhalten, geben Sie auf der Webseite der OSVDB-Datenbank im Eingabefeld OSVDB ID Lookup die Ziffern der entsprechenden Kennung ein und klicken anschließend auf Go. Sie erhalten dann in Tabellenform die benötigten Informationen (Abbildung 2). Die Zeile Solution zeigt Problemlösungen, mit deren Hilfe Sie die Schwachstelle in der Webserverkonfiguration beheben.

Abbildung 2: Die OSVDB-Datenbank listet viele sicherheitskritische Schwachstellen auf und erlaubt es Ihnen, von Nikto gefundene Probleme zu identifizieren.
Vega
Ein weiteres, äußerst nützliches Tool zum Aufspüren von Konfigurationsmängeln in Webservern heißt Vega [4] und bringt eine grafische Oberfläche mit. Sie starten die Software im Kali-Menü unter Anwendungen | 03 – Webapplikationen | vega.
Das Programm öffnet ein übersichtlich aufgebautes Fenster, in dem Sie neben einer kleinen Menü- und einer ebenfalls sehr spartanisch gehaltenen Schalterleiste am oberen Rand drei große Anzeigebereiche finden: Die vertikale Leiste links mit der Bezeichnung Website View listet die Seitenstruktur der jeweils gescannten Webseite auf. Im großen Bereich Scan Info rechts zeigt die Software gefundene Schwachstellen an, die sie nach Schweregraden unterteilt; im Fensterbereich darunter zeigt Vega die Identities an.
Um einen Webserver auf Schwachstellen hin abzuklopfen, klicken Sie zunächst oben links im Fenster auf den Button in Form einer Zielscheibe namens Start New Scan. Die Software öffnet daraufhin ein neues Fenster, in dem Sie die Adresse des Webservers eingeben. Vega ermittelt in den Standardeinstellungen auf dem Zielsystem eine Vielzahl von möglichen Schwachstellen. Die Palette reicht dabei von Header-Injections über URL-Injections bis hin zu XSS-Injections.
Nach Eingabe der URL klicken Sie unten rechts auf Next. Im folgenden Dialog definieren Sie, welche Typen von Schwachstellen der Scanner berücksichtigen soll. Die Software bietet in den beiden Unterkategorien Injection Modules und Response Processing Modules mehrere Dutzend Schwachstellenscanner an, von denen es die meisten bereits in der Grundeinstellung aktiviert (Abbildung 3).

Abbildung 3: Bereits in der Grundeinstellung aktiviert der Security-Scanner Vega die meisten der integrierten Scan-Module.
Beachten Sie, dass ein solcher Scan aufgrund der Vielzahl der möglichen Schwachstellen sehr viel Zeit in Anspruch nimmt. Nach Auswahl der gewünschten Module und einem neuerlichen Klick auf Next fordert Sie der nächste Dialog auf, eventuell nötige Authentifizierungen für einen automatisierten Scan festzulegen. Im nächsten Dialog schließen Sie bestimmte Parameter vom Scan aus, die das Ergebnis beeinträchtigen könnten. Nach einem Klick auf Finish beginnt Vega mit der Prüfung. Währenddessen erscheint ein Fortschrittsbalken im Hauptfenster.
Darüber hinaus informiert Sie das Programm permanent über bereits gefundene Schwachstellen, indem Sie im Bereich Scan Alerts auf das kleine Dreieck vor der aktuellen, per Datum, Uhrzeit und dem Hinweis [Auditing] angezeigten Protokollliste klicken. Die Software listet anschließend die gefundenen Schwachstellen in einer Übersicht auf, welche es in die Kategorien High, Medium und Info einteilt.
Nach vollzogenem Audit fasst die Rubrik Scan Alerts die Ergebnisse zusammen. Sofern Sie mehrere Webserver untersucht haben, trennt das Tool die Ergebnisse entsprechend. Sie können sich dort die von Schwachstellen betroffenen Pfade und Dateinamen anzeigen lassen, wobei Vega diese wiederum in Kategorien wie beispielsweise Cross-Site Script Include aufteilt.
Lösungen
Um genauere Informationen inklusive Lösungsvorschlägen zu den einzelnen Schwachstellen zu erhalten, klicken Sie auf die entsprechenden Einträge im Fensterbereich Scan Alerts. Vega zeigt daraufhin im Fenstersegment Scan Info rechts detaillierte Informationen zu jedem einzelnen Sicherheitsproblem und bietet mehrere Lösungsvorschläge an. Zusätzlich wird die Sicherheitslücke auch für weniger versierte Anwender eingehend diskutiert, wobei der Bereich Impact Folgeabschätzungen aufführt.
Im Bereich Remediation finden Sie verschiedene Lösungsvorschläge, wie Sie das jeweilige potenzielle Sicherheitsleck beheben. Die ganz unten in diesem Fenstersegment befindliche Gruppe References führt zudem meist mehrere Links an, die zusätzliche Informationen liefern, darunter auch solche zu Wikipedia (Abbildung 4).

Abbildung 4: Vega erläutert aufgespürte Schwachstellen sehr detailliert und bietet auch Lösungen, die Probleme zu beheben.
Proxy
Vega lässt sich zusätzlich auch in einem Proxy-Modus betreiben, der sämtliche ein- und ausgehenden Datenpakete abfängt und scannt. Dieser Betriebsmodus erlaubt es, Schwachstellen im Quelltext der zu untersuchenden Webseiten zu lokalisieren.
Dazu müssen Sie zunächst den Browser für den Betrieb mit einem Proxy-Server konfigurieren. Beim in Kali Linux enthaltenen Iceweasel öffnen Sie dazu die Preferences. Im Reiter Advanced in der oben horizontal angezeigten Reiterleiste wählen Sie die Option Network an und klicken dann im Bereich Connection auf den Schalter Settings…. Im neuen Dialog Connection Settings aktivieren Sie das Optionsfeld vor Manual proxy configuration. Anschließend tragen Sie für das HTTP-Protokoll und SSL-Verbindungen die IP-Adresse 127.0.0.1 für den lokalen Host und dahinter jeweils den Port 8888 ein, auf dem der Vega-Proxy lauscht. Zuletzt bestätigen Sie Ihre Modifikationen mit einem Klick auf OK.
Klicken Sie nun oben rechts in der Menüleiste von Vega auf Proxy und dann oben links auf das grüne Startsymbol. Sobald Sie Iceweasel aufrufen und die gewünschte URL eingeben, fließen sämtliche Datenpakete über den Proxy. Daher füllen sich im unteren Bereich des Vega-Programmfensters die beiden Reiter Request und Response mit den entsprechenden Anfragen und Antworten des Servers. Die Antwortpakete scannt Vega dabei auch durch die aktiven Module. Welche das sind, erfahren Sie, indem Sie links oben in der kleinen Schalterleiste auf das Schraubenschlüssel-Symbol klicken. Im Listenfenster Configure enabled modules for proxy schalten Sie nach Bedarf einzelne Module zu oder ab (Abbildung 5).

Abbildung 5: Durch Setzen eines Häkchens aktivieren Sie Überwachungsmodule im Proxy-Modus, die sämtliche eingehenden Pakete nach den Vorgaben untersuchen.
Den Request-Editor starten Sie, indem Sie im Fenster Requests auf die gewünschte ID rechtsklicken und aus dem Kontextmenü Replay Request anwählen. Der Editor zeigt zunächst lediglich den Request an. Wechseln Sie in den Reiter Headers, so erscheinen in Listenform die entsprechenden Header-Daten des Requests, die Sie, ebenso wie den Request selbst, editieren dürfen. Um die Wirkung der Modifikationen auf den Webserver zu testen, klicken Sie anschließend oben rechts auf das kleine grüne Pfeilsymbol. Damit versendet Vega den modifizierten Request; die Response des Servers erscheint unten im gleichnamigen Fensterbereich (Abbildung 6).

Abbildung 6: Der Request-Editor erlaubt es, an den Webserver gestellte Request zu manipulieren. In diesem Beispiel kam vom Server als Response eine 404-Fehlermeldung (Seite nicht gefunden) zurück.
Um einen automatischen Scan über den Proxy-Server vorzunehmen, definieren Sie zunächst ein Target Scope. Dazu rechtsklicken Sie im Fensterbereich Website View links auf die gewünschte Zieladresse und wählen aus dem Kontextmenü danach Add to current scope. Anschließend schalten Sie den Proxy ein und aktivieren den Scanvorgang für alle zutreffenden Zieladressen, indem Sie auf den Button Start Proxy Scan oben links in der Schalterleiste klicken.
Sobald Sie mit Ihrem Webbrowser eines der gelisteten Ziele aufrufen, scannt Vega die komplette Kommunikation. Um anschließend Alarmmeldungen und Lösungsvorschläge einzusehen, klicken Sie ganz unten links auf das rote Kreissymbol mit Ausrufezeichen. Vega zeigt nun links im Fenster unterhalb von Scan Alerts gefundene Schwachstellen mit einer Wertung an. Sobald Sie auf eine der Meldungen klicken, erscheint rechts im Programmfenster unter Scan Info eine ausführliche Beschreibung der potenziellen Schwachstelle (Abbildung 7).

Abbildung 7: Auch bei automatischen Scans im Proxy-Modus blendet Vega Lösungsvorschläge für problematische Einstellungen ein.
Fazit
Nikto und Vega erlauben es, mögliche Schwachstellen eines Webservers schnell ausfindig zu machen, und liefern zusätzlich passende Lösungsvorschläge. Während Nikto als einfacher gestaltetes Tool hier auch auf externe Quellen zurückgreift, liefert Vega nicht nur detaillierte Informationen zu der betroffenen Schwachstelle, sondern diskutiert diese auch noch und unterbreitet Vorschläge zu deren Beseitigung. Damit ermöglicht es auch weniger versierten Administratoren, Webserver effizient abzusichern.
Infos
[1] Kali Linux: https://www.kali.org
[2] Nikto: https://cirt.net/Nikto2/
[3] Open Source Vulnerability Database: http://osvdb.org
[4] Vega: https://subgraph.com/vega/






