So verwenden Sie NSE -Skripte (NMAP Skript Engine) unter Linux

So verwenden Sie NSE -Skripte (NMAP Skript Engine) unter Linux

NMAP ist ein beliebtes, leistungsstarkes und plattformübergreifendes Befehlszeilen-Netzwerk-Sicherheits-Scanner- und Exploration-Tool. Es kann Ihnen auch helfen, einen Überblick über Systeme zu erhalten, die Ihr Netzwerk verbunden haben. Sie können es verwenden, um alle IP -Adressen von Live -Hosts, offene Ports und Dienste zu scannen, die auf diesen Hosts ausgeführt werden, und vieles mehr.

Eine der interessanten Merkmale von NMAP ist der NMAP -Skript -Engine (NSE), was ihm noch mehr Flexibilität und Effizienz bringt. Es ermöglicht Ihnen, Ihre eigenen Skripte in der LUA -Programmiersprache zu schreiben und diese Skripte möglicherweise mit anderen NMAP -Benutzern zu teilen.

Lesen Sie auch: 29 Praktische Beispiele für NMAP -Befehle für Linux

Es gibt vier Arten von NSE -Skripten, nämlich:

  • Prerule -Skripte - sind Skripte, die vor einem der Scan -Operationen von NMAP ausgeführt werden, sie werden ausgeführt, wenn NMAP noch keine Informationen über ein Ziel gesammelt hat.
  • Host -Skripte - Werden Skripte ausgeführt, nachdem NMAP normale Operationen wie Host -Erkennung, Port -Scan, Versionserkennung und OS -Erkennung gegen einen Zielhost durchgeführt hat.
  • Serviceskripte - Werden Skripte gegen bestimmte Dienste ausgeführt, die auf einem Zielhost hören.
  • Postroteskripte - werden Skripte ausgeführt, nachdem NMAP alle Zielhosts gescannt hat.

Dann werden diese Skripte in verschiedenen Kategorien gruppiert, einschließlich der zur Authentifizierung (Auth), Entdeckung von Wirten (übertragen), Brute Force -Angriffe, um Authentifizierungsanmeldeinformationen zu erraten (brutal), mehr über ein Netzwerk entdecken (Entdeckung), was zu einer Leugnung des Dienstes führt (DOS), Ausbeutung einer gewissen Sicherheitsanfälligkeit (ausbeuten), usw. Eine Reihe von Skripten gehört zur Standardkategorie.

Notiz: Bevor wir uns weiter bewegen, sollten Sie diese wichtigen Punkte notieren:

  • Führen Sie keine Skripte von Dritten aus, ohne sie kritisch zu betrachten oder nur, wenn Sie den Autoren vertrauen. Dies liegt daran.
  • Zweitens können viele dieser Skripte möglicherweise als beide ausgeführt werden Vorregel oder Postrole Skript. In Anbetracht dessen wird empfohlen, ein Voransatz für Konsistenzzwecke zu verwenden.
  • NMAP verwendet die Skripte/Skript.db Datenbank, um die verfügbaren Standardskripte und Kategorien zu ermitteln.

Um den Standort aller verfügbaren NSE -Skripte anzuzeigen, führen Sie das Lokalisierungsdienstprogramm wie folgt aus:

$ Locate *.NSE /usr/share/nmap/scripts/acarsd-info.NSE/usr/share/nmap/scripts/adress-info.NSE/usr/share/nmap/scripts/afp-brute.NSE/usr/share/nmap/scripts/afp-ls.NSE/usr/share/nmap/scripts/afp-path-vuln.NSE/usr/share/nmap/scripts/afp-serverinfo.NSE/usr/share/nmap/scripts/afp showmount.NSE/usr/share/nmap/scripts/ajp-auth.NSE/usr/share/nmap/scripts/ajp-brute.NSE/usr/share/nmap/scripts/ajp-headers.NSE/usr/share/nmap/scripts/aJP-Methoden.NSE/usr/share/nmap/scripts/ajp-request.NSE/usr/share/nmap/scripts/Allsegeye-info.NSE/usr/share/nmap/scripts/amqp-info.NSE/usr/share/nmap/scripts/asn-query.NSE… 

NSE -Skripte werden mit dem geladen --Skript Flag, mit dem Sie auch Ihre eigenen Skripte ausführen können, indem Sie Kategorien, Skript -Dateinamen oder den Namen der Verzeichnisse angeben, in denen sich Ihre Skripte befinden.

Die Syntax zum Aktivieren von Skripten lautet wie folgt:

$ nmap -sc target #load Standardskripte oder $ nmap --Script -Dateiname | Kategorie | Verzeichnis | Ausdruck,… Ziel 

Sie können eine Beschreibung eines Skripts mit dem anzeigen --Skript-Help Möglichkeit. Zusätzlich können Sie Argumente an einige Skripte über die weitergeben --Skript-Args Und --Skript-Args-Datei Optionen, die später verwendet werden, um einen Dateinamen zu liefern, anstatt einen Befehlszeilenum.

Verwenden Sie das, um einen Scan mit den meisten Standardskripten durchzuführen -sc fahnen oder alternativ verwenden --script = Standard wie gezeigt.

$ nmap -sc scanme.NMAP.org oder $ nmap --Script = Standard Scanme.NMAP.org oder $ nmap -script Standard Scanme.NMAP.Org 
Probenausgabe
NMAP 7 starten.01 (https: // nmap.org) am 2017-11-15 10:36 IST NMAP-Scan-Bericht für Scanme.NMAP.Org (45.33.32.156) Der Host ist auf (0.0027S Latenz). Nicht gezeigt: 999 gefilterte Ports Port State Service 80/TCP Open HTTP | _http-Title: Gehen Sie voran und scanme! NMAP Fertig: 1 IP -Adresse (1 Host -Up) gescannt in 11.74 Sekunden 

Um ein Skript für den entsprechenden Zweck zu verwenden, können Sie zunächst eine kurze Beschreibung dessen erhalten, was es tatsächlich tut, zum Beispiel, HTTP-Anhändler.

$ nmap-script-help http-header scanme.NMAP.Org 
Probenausgabe
NMAP 7 starten.01 (https: // nmap.org) bei 2017-11-15 10:37 IST HTTP-Header-Kategorien: Discovery Safe https: // nmap.org/nsedoc/script/http-headers.HTML führt eine Kopfanforderung für den Root -Ordner ("/") eines Webservers durch und zeigt die zurückgegebenen HTTP -Header an. 

Laden Sie NSE -Skripte zum Ausführen von NMAP -Scans

Sie können Skripte auswählen oder laden, um einen Scan in verschiedenen nachstehend erläutenen Methoden durchzuführen.

Verwenden des Skriptnamens

Sobald Sie wissen, was ein Skript tut, können Sie einen Scan mit ihm ausführen. Sie können ein Skript verwenden oder eine von Kommas getrennte Liste von Skriptnamen eingeben. Mit dem folgenden Befehl können Sie die auf dem Webserver am Zielhost konfigurierten HTTP -Header anzeigen.

$ nmap--Skript HTTP-Header Scanme.NMAP.Org 
Scannen Sie HTTP -Header
NMAP 7 starten.01 (https: // nmap.org) am 2017-11-15 10:39 IST NMAP-Scan-Bericht für Scanme.NMAP.Org (45.33.32.156) Der Host ist auf (0.27S Latenz). Nicht gezeigt: 996 geschlossene Ports Port State Service 22/TCP Open SSH 80/TCP Open HTTP | HTTP-Header: | Datum: Mi, 15. November 2017 05:10:04 GMT | Server: Apache/2.4.7 (Ubuntu) | Akzeptieren von Bytes | Variieren: Akzeptanzkodierung | Verbindung: Schließen | Inhaltstyp: Text/HTML | | _ (Anforderungstyp: Kopf) 179/TCP gefiltert BGP 31337/TCP Open Elite NMAP Fertig: 1 IP -Adresse (1 Host -Up) gescannt in 20 gescannt.96 Sekunden 

Verwenden von Kategorien

Sie können Skripte auch aus einer Kategorie oder aus einer von Kommas getrennten Kategorienliste laden. In diesem Beispiel verwenden wir alle Skripte in der Standard- und Rundfunkkategorie, um einen Scan auf dem Host durchzuführen 192.168.56.1.

$ nmap -script Standard, Sendung 192.168.56.1 
Scannen Sie einen Host

Verwenden von * Wildcard

Dies ist nützlich, wenn Sie Skripte mit einem angegebenen Namensmuster auswählen möchten. Zum Beispiel, um alle Skripte mit Namen zu laden, beginnend mit ssh, Führen Sie den folgenden Befehl auf dem Terminal aus:

$ nmap--Script "SSH-*" 192.168.56.1 
Laden Sie Skripte mit Wildcards-

Mit booleschen Ausdrücken

Sie können auch Skripte mit booleschen Ausdrücken auswählen, die Sie mit dem erstellen können Und, oder, Und nicht Betreiber. Und Namen in einem Booleschen Ausdruck können eine Kategorie sein, ein Dateiname von Skript.db, oder alles.

Der folgende Befehl lädt Skripte aus der Standard- oder Rundfunkkategorien.

$ nmap --Skript "Standard oder Sendung" 192.168.56.10 

Das entspricht:

$ nmap -script Standard, Sendung 192.168.56.10 

So laden Sie alle Skripte, die diese in der weglassen vuln Kategorie führen Sie diesen Befehl auf dem Terminal aus.

$ nmap --Skript "nicht vuln" 192.168.56.10 

Der nächste Befehl sieht ein wenig kompliziert aus, aber es ist leicht zu verstehen. Er wählt Skripte in den Standardkategorien oder in Sendungskategorien aus, sodass diejenigen mit Namen mit SSH:

$ nmap--Script "(Standard oder Sendung) und nicht SSH-*" 192.168.56.10 

Wichtig ist, dass es möglich ist, Kategorien, Skriptnamen, ein Verzeichnis mit Ihren benutzerdefinierten Skripten oder einen booleschen Ausdruck zum Laden von Skripten wie folgt zu kombinieren:

$ nmap--Skriptsübertragung, vuln, ssh-auth-methods,/path/to/custom/scripts 192.168.56.10 

Argumente an NSE -Skripte weitergeben

Im Folgenden finden Sie ein Beispiel -Skript-Args Möglichkeit:

$ nmap--Script MySQL-ADIT--Script-Args "MySQL-ADITIT.userername = 'root', \ mysql-edit.password = 'password_here', MySQL-ADIT.Dateiname = 'nselib/data/mysql-cis.Prüfung'" 

Verwenden Sie die Portnummer, um eine Portnummer zu übergeben, die -P NMAP -Option:

$ NMAP -P 3306--Script MySQL-ADIT--Script-Args "MySQL-ADITIT.userername = 'root', \ mysql-edit.password = 'password_here', MySQL-ADIT.Dateiname = 'nselib/data/mysql-cis.Prüfung'" 

Der obige Befehl führt eine Prüfung der Sicherheitskonfiguration der MySQL -Datenbankserver gegen Teile der Cis mysql v1.0.2 Benchmark. Sie können auch Ihre eigenen nützlichen benutzerdefinierten Audit -Dateien für andere MySQL -Audits erstellen.

Das war es fürs Erste. Weitere Informationen finden Sie auf der Seite NMAP Man oder finden Sie die NSE -Nutzung.

Um mit dem Schreiben Ihrer eigenen NSE -Skripte zu beginnen, lesen Sie diesen Handbuch: https: // nmap.org/book/nse-tutorial.html

Abschluss

NMAP ist ein wirklich leistungsfähiges und nützliches Tool, das jedes System oder Netzwerkadministrator in seinem Sicherheitsarsenal benötigt - NSE Fügt ihm einfach mehr Effizienz hinzu.

In diesem Artikel haben wir Sie in die vorgestellt NMAP -Skript -Engine und untersuchte, wie man die verschiedenen verfügbaren Skripte in verschiedenen Kategorien findet und verwendet. Wenn Sie Fragen haben, zögern Sie nicht, uns über das folgende Kommentarformular an uns zurückzuschreiben.