Nmap NSE Hacking, Teil 1: Einführung

Nmap NSE Hacking, Teil 1

Einführung

Marc Ruef
by Marc Ruef
time to read: 7 minutes

Nmap steht für Network Mapper. Hierbei handelt es sich um ein quelloffenes Netzwerkutility, welches ursprünglich als Portscanner konzipiert wurde. Durch einen simplen Aufruf wie nmap www.scip.ch lassen sich die offenen Ports am entsprechenden Zielsystem identifizieren. Durch unterschiedliche Schalter wie -sT, -sS und -sU können hierfür verschiedene Scan-Techniken verwenden werden:

C:\Dokumente und Einstellungen\maru>nmap -sS 192.168.0.1

Starting Nmap 5.21 ( http://nmap.org ) at 2010-03-24 10:33 Westeuropõische Normalzeit Nmap scan report for 192.168.0.1 Host is up (0.013s latency). Not shown: 999 filtered ports PORT STATE SERVICE 80/tcp open http MAC Address: 00:1E:58:89:18:B2 (D-Link)

Nmap done: 1 IP address (1 host up) scanned in 4.98 seconds

Erweiterungen in der Software haben zusätzliche Möglichkeiten zur automatisierten Auswertung von Zielsystemen eingeführt. So lässt sich beispielsweise mit dem Schalter -O ein OS-Fingerprinting, bei dem das am Zielsystem eingesetzte Betriebssystem ermittelt wird, durchführen. Und mit -sV werden als offen identifizierte Ports einem Application Mapping (Identifikation des dargebotenen Anwendungsprotokolls), einem Application Fingerprinting (Identifikation des eingesetzten Produkts) und manchmal einer zusätzlichen Auswertung unterzogen.

Eine der grössten Erweiterungen bestand in der Einführung der Nmap Scripting Engine (NSE). Durch das Einbinden dedizierter Plugins können während der Laufzeit die von nmap zusammengetragenen Informationen ausgewertet, zusätzliche Tests initiiert und diese dokumentiert werden. zur Umsetzung von NSE-Skripten wird die imperative Programmiersprache Lua verwendet. Nachfolgend ein typisches Beispiel, wie mit dem Aktivieren der Script-Engine durch -sC die zusätzlichen Tests auf einem Webserver eingesetzt werden:

C:\Dokumente und Einstellungen\maru>nmap -sS -sV -sC www.scip.ch -p 80

Starting Nmap 5.21 ( http://nmap.org ) at 2010-03-24 11:10 Westeuropõische Normalzeit Nmap scan report for www.scip.ch (192.168.0.10) Host is up (0.0019s latency). rDNS record for 192.168.0.10: www.scip.ch PORT STATE SERVICE VERSION 80/tcp open http Apache httpd | robots.txt: has 6 disallowed entries | /_img/ /_thm/ /vuldb/images/ /cgi-bin/ /tmp/ |_*index.html |_http-favicon: |_html-title: Sicherheit ist unser Gesch\xE4ft! • scip AG

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

Dank NSE ist nmap weitaus mehr, als nur ein Portscanner. Wir benutzen bei unseren Security Scans eigene NSE-Skripte, um einen moderierbaren Vulnerability Scanner zu realisieren. Hierfür schreiben wir einzelne NSE-Skripte, die eine erweiterte Auswertung der Zielsystem vornehmen. Als Resultat werden hauptsächlich gefundene Schwachstellen und Details zu diesen dokumentiert. Diese Resultate parsen wir in einem weiteren Schritt in eine Datenbank, in der wir sodann die Moderation der Daten vornehmen können. Durch die computergestützte Analyse unter Zuhilfenahme unseres zentralen Expertensystems können wir damit unsere Prüfungen effizienter und zuverlässiger gestalten.

Grundsätzlich wird der Schalter -sC verwendet, um einen Script-Scan einzuleiten. Innerhalb eines Skripts kann über das Feld categories eine Zuweisung unterschiedlicher Kategorien erfolgen. Diese werden in der unten abgebildeten Tabelle aufgelistet. Durch den Schalter --script lassen sich sodann Skripte aus einzelnen Kategorien oder spezifischen Unterverzeichnissen bzw. einzelne Skripte separat ausführen. Einige Skripte greifen auf dynamische Argumente zurück, die bei der Programmausführung durch den Schalter --script-args übergeben werden können.

Skript-Kategorie Beschreibung
auth Ermitteln von Authentisierungs-Credentials (z.B. Bruteforce)
default Standard-Skripte, die beim Aufruf von -sC ausgeführt werden
discovery Auswertung zugänglicher Dienste (z.B. Titel eines HTML-Dokuments oder SNMP-Einträge)
external Skripte, die zwecks Weiterverarbeitung Daten an externe Dienste schicken (z.B. whois)
intrusive Intrusive Skripte, die das Zielsystem (negativ) beeinträchtigen könnten (z.B. hohe CPU-Auslastung)
malware Überprüfung der Infektion von Malware (Viren und Würmer)
safe Defensive Skripte, die keine intrusiven und destriktiven Zugriffe durchführen
version Erweiterung zum Fingerprinting mit dem Schalter -sV
vuln Identifikation spezifischer Verwundbarkeiten (ähnlich einem Vulnerability Scanner)

Im Rahmen dieser mehrteiligen Artikelserie werden wir verschiedene Techniken zur Implementierung und Optimierung von NSE-Skripten diskutieren. Im zweiten Teil werden wir ein erstes Plugin schreiben. Dieses wird allgemeine Informationen des durch nmap durchführten Portscans weiterverwenden, um zusätzliche Details zu den Resultaten auszugeben. Anhand dieses Prozesses soll das programmiertechnische Prinzip von NSE-Skripten illustriert werden.

About the Author

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)

Links

You want to test the strength of your enterprise regarding malware attacks?

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