Nmap NSE Hacking, Teil 1: Einführung

Nmap NSE Hacking, Teil 1

Einführung

Marc Ruef
von Marc Ruef
Lesezeit: 7 Minuten

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.

Über den Autor

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)

Links

Sie wollen die Resistenz Ihres Unternehmens auf Malware prüfen?

Unsere Spezialisten kontaktieren Sie gern!

×
Cyber Threat Intelligence

Cyber Threat Intelligence

Marc Ruef

3D Printing

3D Printing

Marc Ruef

Contact Tracing App DP3T

Contact Tracing App DP3T

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