Nmap NSE Top Ten Webserver Scripts

Nmap NSE Top Ten Webserver Scripts

Marc Ruef
Marc Ruef
Stefan Friedli
Stefan Friedli
time to read: 9 minutes

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.

About the Authors

Marc Ruef

Marc Ruef has been working in information security since the late 1990s. He is well-known for his many publications and books. The last one called The Art of Penetration Testing is discussing security testing in detail. He is a lecturer at several faculties, like ETH, HWZ, HSLU and IKF. (ORCID 0000-0002-1328-6357)

Stefan Friedli

Stefan Friedli is a well-known face among the Infosec Community. As a speaker at international conferences, co-founder of the Penetration Testing Execution Standard (PTES) as well as a board member of the Swiss DEFCON groups chapters, he still contributes to push the community and the industry forward.

Are you interested in a Penetration Test?

Our experts will get in contact with you!

×
Specific Criticism of CVSS4

Specific Criticism of CVSS4

Marc Ruef

scip Cybersecurity Forecast

scip Cybersecurity Forecast

Marc Ruef

Voice Authentication

Voice Authentication

Marc Ruef

Bug Bounty

Bug Bounty

Marc Ruef

You want more?

Further articles available here

You need support in such a project?

Our experts will get in contact with you!

You want more?

Further articles available here