Tool-Tipp 36 Nikto Mit Nikto Sicherheitslücken in Webservern aufdecken

Von Thomas Joos 8 min Lesedauer

Das Open-Source-Tool Nikto kann Sicherheitslücken in Webservern und deren Konfigurationen aufzuspüren. Dazu führt Nikto automatisierte Scans durch und erkennt bekannte Schwachstellen, Fehlkonfigurationen sowie veraltete Softwareversionen. Wir zeigen in diesem Tool-Tipp die Möglichkeiten des Tools.

In diesem Tool-Tipp zeigen wir die ersten Schritte und Möglichkeiten mit Nikto, einem Open-Source-Schwachstellen-Scanner für Webserver. (Bild:  Midjourney / KI-generiert)
In diesem Tool-Tipp zeigen wir die ersten Schritte und Möglichkeiten mit Nikto, einem Open-Source-Schwachstellen-Scanner für Webserver.
(Bild: Midjourney / KI-generiert)

Mit seiner breiten Unterstützung für unterschiedliche Webserver wie Apache, IIS oder Nginx eignet sich Nikto insbesondere für Administratoren, die Sicherheitsprobleme auf ihren Servern effizient identifizieren möchten. Auch Anwendungen wie SharePoint und Exchange lassen sich gezielt analysieren, um spezifische Sicherheitsrisiken aufzudecken. Nikto gehört zum Beispiel zum Lieferumfang von Kali-Linux.

In diesem Tool-Tipp-Video zeigen wir die ersten Schritte und Möglichkeiten mit dem Schwachstellen-Scanner für Webserver Nikto.

Grundlagen eines Nikto-Scans

Die Nutzung von Nikto erfolgt direkt über das Terminal. Ein einfacher Scan beginnt mit der Eingabe eines Zielservers. Wir gehen in diesem Beitrag von einem Webserver aus, der auf die IP-Adresse 10.0.4.172 hört:

nikto -h 10.0.4.172

Hierbei untersucht Nikto den angegebenen Server auf bekannte Schwachstellen. Dabei werden typische Probleme wie fehlende Sicherheitspatches, exponierte Admin-Panels oder unsichere HTTP-Header erkannt. Ein Scan dieser Art liefert detaillierte Ergebnisse über den Status des Webservers. Ein Administrator kann dadurch feststellen, dass der Server HTTP-Methoden wie TRACE oder PUT erlaubt, die für Angreifer Angriffsvektoren darstellen.

Standardmäßig überprüft Nikto HTTP- und HTTPS-Ports (80 und 443). Wenn ein Webserver auf einem nicht standardmäßigen Port läuft, kann der -p-Parameter genutzt werden, um gezielt diese Ports zu analysieren:

nikto -h webserver.example.com -p 8080

Erkennung von Schwachstellen in IIS auf Windows-Servern

Ein praktisches Szenario ist der Einsatz von Nikto zur Analyse eines IIS-Webservers oder auch von Nextcloud. IIS (Internet Information Services) wird oft in Unternehmensumgebungen genutzt, ist jedoch bei falscher Konfiguration anfällig für Angriffe, wie andere Webserver auch. Mit einem gezielten Scan kann der Administrator nicht nur allgemeine Schwachstellen aufdecken, sondern auch IIS-spezifische Probleme identifizieren. Dabei kann auch direkt der FQDN des Servers genutzt werden:

nikto -h iis-server.example.com

Nikto erkennt zum Beispiel potenziell exponierte Verzeichnisse wie /aspnet_client, die auf einen falsch konfigurierten Server hinweisen. Diese Verzeichnisse können sensible Informationen preisgeben oder als Einstiegspunkt für weiterführende Angriffe dienen. Das Tool prüft auch auf unsichere Versionen des IIS-Servers und gibt Hinweise, welche Updates erforderlich sind, um Sicherheitslücken zu schließen. SharePoint, Exchange und andere Webdienste sind in vielen Unternehmen ein zentraler Bestandteil der IT-Infrastruktur, weshalb auch hier die Sicherheit eine hohe Priorität besitzt. Mit Nikto lassen sich SharePoint-Webanwendungen effektiv auf Sicherheitsprobleme untersuchen. Das geht natürlich auch mit anderen Webdiensten. Soll Nikto gezielt den Port 443 testen, erfolgt das mit:

nikto -h sharepoint.example.com -p 443

In diesem Fall prüft Nikto den SharePoint-Server, der über HTTPS auf Port 443 läuft. Es können dabei bekannte Schwachstellen wie unsichere Servicekonfigurationen oder standardmäßig aktivierte Seiten wie /_vti_bin aufgedeckt werden. Diese Seiten stellen häufig Angriffsziele dar, da sie Einblicke in die interne Struktur des SharePoint-Systems gewähren. Auch die Erkennung unsicherer Authentifizierungsmechanismen, wie schwache NTLM-Konfigurationen, gehört zu den Ergebnissen eines solchen Scans.

In diesem Tool-Tipp-Video zeigen wir die ersten Schritte und Möglichkeiten mit dem Schwachstellen-Scanner für Webserver Nikto.

Individuelle Tests mit benutzerdefinierten Payloads

Nikto ermöglicht auch spezifische Tests mit benutzerdefinierten Payloads, was bei der Untersuchung spezifischer Schwachstellen hilfreich ist. Nikto kann mit einer eigenen Konfigurationsdatei eine gezielte Prüfung auf SQL-Injection-Schwachstellen durchführen:

nikto -h webserver.example.com -id sql_injection.conf

Durch die Anpassung der Scan-Einstellungen lassen sich so Tests für spezifische Anwendungen oder Umgebungen optimieren. In einer Umgebung mit mehreren Servern kann Nikto zudem parallel arbeiten, was den gesamten Prozess deutlich beschleunigt.

Nutzung von SSL-Optionen mit -ssl und Überprüfung von Zertifikaten

Bei HTTPS-Verbindungen bietet Nikto detaillierte Prüfungen der SSL/TLS-Konfiguration. Das ist interessant, um Schwachstellen wie veraltete Verschlüsselungsprotokolle oder schwache Schlüssel aufzudecken. Durch die Option -ssl lässt sich Nikto explizit auf HTTPS-Dienste ausrichten:

nikto -h secure-web.example.com -ssl

Zusätzlich erkennt Nikto Zertifikatsprobleme, wie abgelaufene Zertifikate oder unzureichende Schlüssellängen. Dies ist besonders bei öffentlich zugänglichen Diensten wie SharePoint oder Exchange OWA von Bedeutung, da unsichere Zertifikate ein Einfallstor für Man-in-the-Middle-Angriffe darstellen.

Der Parameter -Tuning ermöglicht eine spezifische Anpassung des Scans, um gezielt bestimmte Testkategorien zu aktivieren. Diese Option ist hilfreich, wenn nur bestimmte Aspekte des Webservers getestet werden sollen. Ein Administrator könnte beispielsweise nur auf XSS-Schwachstellen und HTTP-Header-Sicherheitsprobleme prüfen:

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zur IT-Sicherheit

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung
nikto -h webserver.example.com -Tuning 5,9

Die Ziffern entsprechen den Kategorien, die Nikto testen soll. In diesem Fall stehen 5 für Cross-Site-Scripting und 9 für HTTP-Header-Probleme. Ein solcher gezielter Scan liefert effizient Ergebnisse für spezifische Angriffsvektoren, ohne dass allgemeine Tests Zeit und Ressourcen beanspruchen.

Authentifizierte Scans für geschützte Bereiche

Viele Webanwendungen sind durch Authentifizierung geschützt, was einen umfassenden Test ohne gültige Zugangsdaten erschwert. Nikto unterstützt grundlegende Authentifizierungsmethoden wie HTTP Basic und NTLM. Mit den Parametern -id oder -user und -pass können Zugangsdaten direkt übergeben werden:

nikto -h protected-web.example.com -id admin:password123

Um die Scans über einen Proxyserver laufen zu lassen, etwa in einer gesicherten Netzwerkumgebung oder um Anonymität zu wahren, bietet Nikto die Option -useproxy. Ein solcher Proxy-Scan könnte folgendermaßen aussehen:

nikto -h webserver.example.com -useproxy http://proxyserver:8080

Das ermöglicht auch das Umgehen von IP-Restriktionen, wenn der Zielserver nur Anfragen von bestimmten Adressen akzeptiert.

Statt einzelne Server manuell zu scannen, können Administratoren mit Nikto auch ganze Netzwerke automatisiert überprüfen. Durch eine Datei mit einer Liste von Zielhosts und Ports kann der -hostfile-Parameter genutzt werden:

nikto -hostfile targets.txt

Die Datei targets.txt enthält mehrere Server in der Form:

192.168.1.10:80192.168.1.11:443iis.example.com

Nikto arbeitet die Liste systematisch ab und erstellt individuelle Berichte für jedes Ziel. Diese Funktion eignet sich hervorragend für größere Umgebungen mit mehreren Webservern.

Nach einem umfassenden Scan ist eine übersichtliche Dokumentation der Ergebnisse essenziell. Mit dem -output-Parameter speichert Nikto die Ergebnisse in verschiedenen Formaten wie Text, HTML oder XML:

nikto -h webserver.example.com -output scan_results.html

Für den Einsatz in automatisierten Prozessen kann das XML-Format genutzt werden, um die Ergebnisse in andere Sicherheitswerkzeuge oder Dashboards zu integrieren.

In diesem Tool-Tipp-Video zeigen wir die ersten Schritte und Möglichkeiten mit dem Schwachstellen-Scanner für Webserver Nikto.

DNS-basierte Scans und Virtual Hosts mit -vhost

Viele Webserver hosten mehrere Websites auf derselben IP-Adresse. Um spezifische Scans für solche Virtual Hosts durchzuführen, bietet Nikto die -vhost-Option. Ein gezielter Scan einer bestimmten Website auf einem Server mit mehreren Hosts könnte so aussehen:

nikto -h 192.168.1.100 -vhost subdomain.example.com

Damit stellt Nikto sicher, dass der korrekte Host-Header übermittelt wird, was vor allem bei HTTPS-Servern und Anwendungen wie Exchange OWA entscheidend ist. Ohne diese Option würde der Server möglicherweise nur die Standardseite liefern, wodurch Schwachstellen in spezifischen virtuellen Hosts übersehen werden.

Ein häufiger Angriffsvektor bei Exchange-Servern sind Schwachstellen wie ProxyShell. Um gezielt danach zu suchen, kann Nikto für spezifische Pfade und Exploits eingesetzt werden. Dies geschieht, indem die Payloads in eine angepasste Konfigurationsdatei eingebunden werden, die Nikto gezielt ausführt:

nikto -h exchange.example.com -config proxy_shell_tests.conf

In der Datei proxy_shell_tests.conf könnten spezifische Tests für Schwachstellen wie CVE-2021-34473 oder CVE-2021-34523 hinterlegt sein. Dies ermöglicht gezielte Tests, ohne dass irrelevante Schwachstellen das Ergebnis verzerren. Besonders hilfreich ist dies in hybriden Exchange-Umgebungen, die sowohl lokal als auch in der Cloud betrieben werden.

Verzeichnis-Bruteforce mit angepassten Wörterlisten

Standardmäßig prüft Nikto auf eine Vielzahl von bekannten Verzeichnissen und Dateien. Um die Effektivität zu erhöhen, können benutzerdefinierte Wörterlisten verwendet werden, die spezifisch für die Zielumgebung sind. Dies wird durch die Option -mutate in Kombination mit einer eigenen Liste ermöglicht:

nikto -h webserver.example.com -mutate 3 -404code 403

Der Parameter -mutate 3 aktiviert eine erweiterte Verzeichnissuche, die auf der gegebenen Wortliste basiert. Mit der zusätzlichen Angabe von -404code 403 ignoriert Nikto dabei irreführende Fehlermeldungen, etwa wenn ein Server eine 403-Antwort statt der üblichen 404-Nachricht liefert. Solche Methoden sind besonders hilfreich bei stark modifizierten IIS-Servern oder Webanwendungen wie SharePoint, bei denen eigene HTTP-Antwortcodes konfiguriert wurden.

Nikto kann auch für die Identifikation eingesetzter Technologien und Content-Management-Systeme (CMS) verwendet werden. Mit dem -findonly-Parameter fokussiert sich der Scan ausschließlich auf die Erkennung der eingesetzten Software, ohne vollständige Tests auszuführen:

nikto -h cms.example.com -findonly

In diesem Tool-Tipp-Video zeigen wir die ersten Schritte und Möglichkeiten mit dem Schwachstellen-Scanner für Webserver Nikto.

Umfangreiche Tests durch Plugins mit -Plugins

Nikto unterstützt Plugins, die den Funktionsumfang erheblich erweitern. Mit -Plugins können Administratoren gezielt Zusatzmodule aktivieren, etwa für die Prüfung auf Malware-Infektionen oder unsichere Inhalte. Ein Beispiel für den Einsatz von Plugins:

nikto -h compromised.example.com -Plugins anti-malware

Dieses Plugin sucht nach Indikatoren für kompromittierte Webseiten, wie schädliche Skripte oder eingefügte Links zu bekannten Malware-Domains. Solche Tests sind besonders bei IIS-Servern relevant, die häufig Ziel von Angriffen mit Webshells oder inject-Skripten sind.

Um Server während geschäftskritischer Phasen nicht zu überlasten, können Administratoren den Scan mit dem -delay-Parameter verlangsamen. Dies reduziert die Belastung und minimiert die Wahrscheinlichkeit, dass Sicherheitslösungen den Scan blockieren:

nikto -h webserver.example.com -delay 2

Hier fügt Nikto zwischen jeder Anfrage eine Pause von 2 Sekunden ein. Diese Methode eignet sich insbesondere für Produktionsumgebungen oder Server, die hinter einer Web Application Firewall (WAF) stehen.

In großen Umgebungen mit vielen Hosts und möglichen Schwachstellen ist es hilfreich, irrelevante Ergebnisse auszublenden. Der Parameter -nointeractive sorgt dafür, dass Nikto die Analyse ohne Benutzereingriffe fortsetzt und weniger relevante Warnungen ignoriert:

nikto -h webfarm.example.com -nointeractive

Dieser Ansatz ist besonders nützlich bei Tests von Server-Farmen mit ähnlichen Konfigurationen, wie sie häufig bei Load-Balancing-Infrastrukturen mit IIS oder Exchange zu finden sind.

Automatisierung in CI/CD-Pipelines mit -timeout

Nikto lässt sich nahtlos in CI/CD-Pipelines integrieren, um Sicherheitsüberprüfungen während des Entwicklungsprozesses zu automatisieren. Der Parameter -timeout stellt sicher, dass ein Scan nicht zu lange dauert und sich in bestehende Workflows einfügt:

nikto -h dev-server.example.com -timeout 300

Hier wird der Scan nach 300 Sekunden abgebrochen, falls er nicht abgeschlossen ist. Diese Option ist nützlich, um Sicherheitschecks in Testumgebungen durchzuführen, ohne dass diese den Entwicklungsprozess verzögern.

In diesem Tool-Tipp-Video zeigen wir die ersten Schritte und Möglichkeiten mit dem Schwachstellen-Scanner für Webserver Nikto.

(ID:50402044)