Nikto – Webseiten auf Security prüfen

Heute mal ein etwas anderer Beitrag.

Hin und wieder ist es sinnvoll die eigene Webseite auf Sicherheitslöcher oder Fehlkonfigurationen zu prüfen.

Gerade für Webseiten gibt es viele Tools, die solche Tests anbieten. Ich habe über die Jahre Nikto zu schätzen gelernt.

Nikto ist ein sehr beliebtes und einfach zu bedienendes Werkzeug, um die Sicherheit von Webservern zu bewerten und  potenzielle Probleme und Schwachstellen sehr schnell zu finden. Dieses Tutorial zeigt, wie sie mit Nikto Webserver auf Schwachstellen untersuchen können. Nikto ist inzwischen ein Standard-Werkzeug das in so gut wie jeder Linux Distribution enthalten ist.  Nikto durchsucht Webserver – nach einem update mittels der offiziellen Nikto-Website – nach 6700 potenziell gefährlichen Dateien / Programmen. Des Weiteren sucht das Tool nach veralteten Versionen von über 1250 Servern und versionsspezifischen Problemen auf über 270 Servern. Sie sollten wissen, dass Nikto nicht als stealthy-Tool konzipiert ist und das Ziel so schnell wie möglich scannt, was den Scanprozess in den Protokolldateien eines Intrusion Detection Systems (IDS) sehr deutlich macht. Wenn das richtig konfiguriert ist gehen dort alle Lampen an. Also nicht den Server vom besten Kumpel damit quälen.

Die aktuelle Feature Liste:

Features
These are some of the major features in the current version:

  • SSL Support (Unix with OpenSSL or maybe Windows with ActiveState’s
    Perl/NetSSL)
  • Full HTTP proxy support
  • Checks for outdated server components
  • Save reports in plain text, XML, HTML, NBE or CSV
  • Template engine to easily customize reports
  • Scan multiple ports on a server, or multiple servers via input file (including nmap output)
  • LibWhisker’s IDS encoding techniques
  • Easily updated via command line
  • Identifies installed software via headers, favicons and files
  • Host authentication with Basic and NTLM
  • Subdomain guessing
  • Apache and cgiwrap username enumeration
  • Mutation techniques to “fish” for content on web servers
  • Scan tuning to include or exclude entire classes of vulnerability
    checks
  • Guess credentials for authorization realms (including many default id/pw combos)
  • Authorization guessing handles any directory, not just the root
    directory
  • Enhanced false positive reduction via multiple methods: headers,
    page content, and content hashing
  • Reports “unusual” headers seen
  • Interactive status, pause and changes to verbosity settings
  • Save full request/response for positive tests
  • Replay saved positive requests
  • Maximum execution time per target
  • Auto-pause at a specified time
  • Checks for common “parking” sites
  • Logging to Metasploit
  • Thorough documentation

Also los geht’s unter Ubuntu:

sudo apt-get install nikto

sudo nikto -update

Webserver mit Nikto scannen

Ein nettes Feature in Nikto ist die Möglichkeit, den Test mit dem Parameter -Tuning zu definieren. Dadurch können Sie nur die Tests ausführen, die Sie benötigen, die Ihnen viel Zeit sparen:

0 – File Upload
1 – Interesting File / Seen in logs
2 – Misconfiguration / Default File
3 – Information Disclosure
4 – Injection (XSS/Script/HTML)
5 – Remote File Retrieval – Inside Web Root
6 – Denial of Service
7 – Remote File Retrieval – Server Wide
8 – Command Execution / Remote Shell
9 – SQL Injection
a – Authentication Bypass
b – Software Identification
c – Remote Source Inclusion
x – Reverse Tuning Options (i.e., include all except specified)

Lassen Sie uns Nikto starten, um mit der Option 1 nach interessanten Dateien zu suchen:

nikto -host [Hostname oder IP] -Tuning 1

Bitte beachten, dass es illegal und strafbar ist, Hosts ohne schriftliche Genehmigung zu scannen.
Verwenden Sie nikto nicht auf fremde Server an! Sondern verwenden Sie den eigenen Server oder VMs für Übungs- und Testzwecke.

Nikto zeigt nun die Apache-, OpenSSL- und PHP-Version des Ziel-Webservers an. Außerdem erhalten Sie einen Überblick über mögliche Schwachstellen, einschließlich der Referenz der Open Source Vulnerabilities Database (OSVDB). Wenn Sie die OSVDB-Website nach dem Referenzcode durchsuchen, wird die mögliche Sicherheitslücke detaillierter erläutert. Das OSVDB-Projekt deckt derzeit mehr als 120.980 Schwachstellen ab, die 198.973 Produkte betreffen.

Ausführen aller Nikto-Scans gegen einen Host/Webserver

Um alle Prüfungen für einen bestimmten Host auszuführen, können Sie den folgenden Befehl verwenden:

nikto -host [Hostname oder IP]

Das Ausführen aller Scans dauert sehr lange.

Nikto gegen mehrere Hosts laufen lassen

Nikto bietet mehrere Optionen zum Testen mehrerer Hosts an:

  1. Durch die Verwendung einer gültigen Hostdatei mit einem Host pro Zeile
  2. Piping Nmap Ausgabe an Nikto.

1: Eine gültige Host-Datei ist eine Textdatei, die einen Host pro Zeile enthält. Anstatt den Hostnamen als Argument und die  Option -h zu verwenden, gibt man einfach den  Dateipfad zur gültigen Hostdatei an. Und warten.

2: Die andere (coole) Lösung besteht darin, eine Nmap-Ausgabe an Nikto weiterzuleiten. Nmap gibt die gültigen Hosts an Nikto aus und Nikto führt die ausgewählten Scans gegen diese Hosts aus. Mit dem folgenden Befehl wird ein Nmap-Scan auf dem Host 192.168.4.0 – 192.168.4.24 ausgeführt, wobei eine Nmap-Ausgabe verwendet wird, die durch das Flag -oG- definiert ist:

nmap -p80 192.168.0.0/24 -oG - | nikto -h -

Bitte beachten Sie, dass Sie einen Bindestrich (-) für die Nikto-Hostoption verwenden sollten, um die von Nmap gelieferten Hosts zu verwenden.

Viel Spaß beim Sichern des eigenen Netzwerks.

0 Kommentare

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert