Nmap NSE Top Ten Webserver Scripts

Nmap NSE Top Ten Webserver Scripts

Marc Ruef
Marc Ruef
Stefan Friedli
Stefan Friedli
Lesezeit: 9 Minuten

An den diesjährigen Hashdays hat Marc Ruef eine Präsentation mit dem Titel Nmap NSE Scripting for IT Security Professionals gehalten. Dabei wurde das von uns für umfangreiche Netzwerküberprüfungen genutzte Framework vorgestellt. Am Schluss des Talks wurde darauf verwiesen, dass wir einen Teil unserer genutzten Nmap NSE Skripte sowie den Ruby-Parser veröffentlichen werden. Die Funktionsweise dieser sowie der empfohlene Ablauf sind in den Slides festgehalten.

Name Typ Grösse
Nmap NSE Hacking for IT Security Professionals ppt 2971 KBytes
Nmap NSE Top Ten Webserver Scripts tar.gz (NSE/Lua) 4422 Bytes
Nmap xml2csv Parser tar.gz (Ruby) 14977 Bytes

Beschreibung

Die enthaltenen NSE-Skripte helfen bei der Auswertung von Webservern. Die nachfolgende Liste zeigt die Top Ten dessen auf. Einige der Skripte benötigen die Aktivierung der Version Detection mit dem Schalter -sV, um die benötigten Informationen zusammentragen zu können.

ID Titel Version Detection
1 Web Server Identification empfohlen
2 Web Server Banner Grabbing optional
3 Web Server robots.txt Enumeration optional
4 Web Server HTTP Fingerprinting erforderlich
5 Web Server Default Install Page optional
6 Web Server X-Powered-By optional
7 Web Server OPTIONS Support optional
8 Web Server ETag Enumeration optional
9 Web Server NTLM Authentication optional
10 Web Server HTTP/1.1 Pipelining Support optional

Installation

Um die NSE-Skripte zu installieren, entpacken Sie das tar.gz-Archiv. Es gibt zwei unterschiedliche Unterordner, die entsprechend innerhalb des Nmap-Hauptordners berücksichtigt werden müssen:

Die jeweiligen Dateien müssen in die entsprechenden Ordner der lokalen Nmap-Installation kopiert werden.

Nutzung

Die Ausführung von Nmap erfolgt in gewohnter Weise, wobei durch den Schalter --script=scip_nse_topten_webserver die Top Ten Skripte ausgeführt werden können:

C:\>nmap -sV —script=scip_nse_topten_webserver www.scip.ch -p80

Starting Nmap 5.21 ( http://nmap.org ) at 2010-11-18 11:23 Westeuropõische Normalzeit Nmap scan report for example.scip.ch (192.168.0.101) Host is up (0.00s latency). rDNS record for 192.168.0.101: example.scip.ch PORT STATE SERVICE VERSION 80/tcp open http Apache httpd | web_server_identification: sID{1}, | sAccuracy{80}, | sTesttype{Exploiting}, | sTestsource{Application Mapping}, | sVersion{1.0-hd10}, | sOutput{Header: | | Date: Thu, 18 Nov 2010 10:24:03 GMT | Server: Apache | Vary: Accept-Encoding | Content-Length: 6749 | Connection: close | Content-Type: text/html | | }, | sDescription{The target service is a web server which is using the application protocol http to communicate. An attacker might approach this service to enumerate or compromise the target host.}, |_sTimestamp{1290075843}; | web_server_banner_grabbing: sID{2}, | sAccuracy{80}, | sTesttype{Scanning}, | sTestsource{HTTP-Banner (Server Line)}, | sVersion{1.0-hd10}, | sOutput{Apache}, | sDescription{The web server is announcing himself with a welcome banner in the Server line of the http header. An attacker might use this information to initiiate target-oriented attacks.}, |_sTimestamp{1290075843};

Service detection performed. Please report any incorrect results at http://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 8.02 seconds

Die Ausgabe wird nun um die durch die NSE-Skripte bereitgestellten Informationen erweitert. Pro NSE-Skript, das eine Ausgabe generiert hat, wird ein Datensatz ausgegeben. Die einzelnen Felder beinhalten die jeweiligen Informationen:

Feld Beschreibung
sId Eindeutige Identifikationsnummer des NSE-Skripts
sAccuracy Genauigkeit der Analyse in Prozent
sTesttype Typ des Tests (Derivative, Portscan, Scanning, …)
sTestsource Quelle der Daten (in diesem Fall immer Nmap)
sVersion Versionsnummer des NSE-Skripts
sOutput Ausgabe des Testzugriffs (z.B. gefundener Banner)
sDescription Kurze Beschreibung des Problems
sTimestamp Unix-Timestamp bei erfolgreicher Identifikation

Parsing

Die XML-Ausgabe dieses Scans kann dann mit dem in Ruby geschriebenen Parser nse_xml2csv.rb in eine CSV-Datei umgewandelt werden. Dadurch wird eine Weiterverarbeitung der Daten, zum Beispiel in einer Tabellenkalkulation oder Datenbank, möglich. Dies ist gerade bei einer umfangreichen Datensammlung von Vorteil.

C:\>ruby nse_xml2csv.rb -h
NAME

nse_xml2csv.rb

OPTIONS

—help,-h Displays help page. —debug,-d Sets debug to true. —scan-file,-i scan file nmap XML output file to parse —target-file,-t target file The target file to create. If none is supplied, output will be written to current directory (results.csv)

AUTHOR: Stefan Friedli COPYRIGHT © scip AG – 2010

C:\>ruby nse_xml2csv.rb -i nmap_result.xml -t results_from_xml.csv nse_xml2csv.rb 1.0 launched… Finished… see results_from_xml.csv for results.

Das Resultat wird in die entsprechende Datei geschrieben und kann sodann in einer Tabellenkalkulation betrachtet werden:

Resultat des xml2csv Parsers

Lizenz

Die hier bereitgestellten Codeteile wurden von Stefan Friedli und Marc Ruef geschrieben. Sie unterliegen, falls nicht anders angegeben, der GNU General Public License Version 3.

Über die Autoren

Marc Ruef

Marc Ruef ist seit Ende der 1990er Jahre im Cybersecurity-Bereich aktiv. Er hat vor allem im deutschsprachigen Raum aufgrund der Vielzahl durch ihn veröffentlichten Fachpublikationen und Bücher – dazu gehört besonders Die Kunst des Penetration Testing – Bekanntheit erlangt. Er ist Dozent an verschiedenen Hochschulen, darunter ETH, HWZ, HSLU und IKF. (ORCID 0000-0002-1328-6357)

Stefan Friedli

Stefan Friedli gehört zu den bekannten Gesichtern der Infosec Community. Als Referent an internationalen Konferenzen, Mitbegründer des Penetration Testing Execution Standard (PTES) und Vorstandsmitglied des Schweizer DEFCON Group Chapters trägt er aktiv zum Fortschritt des Segmentes bei.

Sie wollen mehr als einen simplen Security Test mit Nessus und Nmap?

Unsere Spezialisten kontaktieren Sie gern!

×
Cyber Threat Intelligence

Cyber Threat Intelligence

Marc Ruef

3D Printing

3D Printing

Marc Ruef

Sie wollen mehr?

Weitere Artikel im Archiv

Sie brauchen Unterstützung bei einem solchen Projekt?

Unsere Spezialisten kontaktieren Sie gern!

Sie wollen mehr?

Weitere Artikel im Archiv