Wéi benotzen ech Nmap Script Engine (NSE) Scripten a Linux


scannt oppe Ports a Servicer déi op dësen Hosten lafen, a sou vill méi.

Ee vun den interessanten Features vun Nmap ass den Nmap Script Engine (NSE), deen nach méi Flexibilitéit an Effizienz bréngt. Et erlaabt Iech Är eege Scripten an der Lua Programmiersprache ze schreiwen, an eventuell dës Scripte mat aneren Nmap Benotzer dobaussen ze deelen.

Et gi véier Aarte vun NSE Scripten, nämlech:

  • Prerule Scripten - si Skripte déi virun enger vun den Nmap Scan Operatiounen lafen, si ginn ausgefouert wann Nmap nach keng Informatioun iwwer en Zil gesammelt huet.
  • Host Scripten - sinn Scripte, déi ausgefouert ginn nodeems Nmap normal Operatioune gemaach huet wéi Host Entdeckung, Port Scannen, Versiounserkennung an OS Detektioun géint en Zilhost.
  • Service Scripten - sinn Scripte déi géint spezifesch Servicer lafen, déi op engem Zilhost lauschteren.
  • Postrule Scripten - sinn Scripte lafen nodeems Nmap all seng Zilhost gescannt huet.

Da ginn dës Skripte ënner verschiddene Kategorien gruppéiert, dorënner déi fir Authentifikatioun (Auth), Entdeckung vu Hosten (Sendung), Brute Force Attacke fir Authentifikatiouns-Umeldungsinformatiounen ze roden (brute), Entdeckung méi iwwer e Netzwierk (Entdeckung), verursaachen eng Verweigerung vum Service (dos) ), e puer Schwachstelle auszenotzen (Exploitatioun), etc.. Eng Zuel vu Skripte gehéieren zu der Standardkategorie.

Notiz: Ier mer weider réckelen, sollt Dir dës Schlësselpunkte notéieren:

  • Ausféieren keng Scripte vun Drëtte Parteien ouni kritesch duerch se ze kucken oder nëmmen wann Dir d'Auteuren vertraut. Dëst ass well dës Skripte net an enger Sandkëscht lafen an domat onerwaart oder béiswëlleg Äre System beschiedegen oder Är Privatsphär invaséieren.
  • Zweetens, vill vun dëse Skripte kënne méiglecherweis entweder als Prerule oder Postrule Skript lafen. Wann Dir dëst berécksiichtegt, ass et recommandéiert e Prerule fir Konsistenzzwecker ze benotzen.
  • Nmap benotzt d'Scripts/script.db Datebank fir déi verfügbar Standardskripter a Kategorien erauszefannen.

Fir de Standort vun all verfügbaren NSE Skripte ze gesinn, fuert de Locatiouns Utility um Terminal, sou:

$ locate *.nse

/usr/share/nmap/scripts/acarsd-info.nse
/usr/share/nmap/scripts/address-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-methods.nse
/usr/share/nmap/scripts/ajp-request.nse
/usr/share/nmap/scripts/allseeingeye-info.nse
/usr/share/nmap/scripts/amqp-info.nse
/usr/share/nmap/scripts/asn-query.nse
...

NSE Skripte gi gelueden mam --script Fändel, deen Iech och erlaabt Är eege Skripte auszeféieren andeems Dir Kategorien, Skriptdateienumm oder den Numm vun de Verzeichnisser ubitt, wou Är Skripte sinn.

D'Syntax fir Scripten z'aktivéieren ass wéi follegt:

$ nmap -sC target     #load default scripts
OR
$ nmap --script filename|category|directory|expression,...   target    

Dir kënnt eng Beschreiwung vun engem Skript mat der Optioun --script-help kucken. Zousätzlech kënnt Dir Argumenter un e puer Skripte iwwer d'Optiounen --script-args an --script-args-file weiderginn, déi spéider gëtt benotzt fir e Dateinumm ze ginn anstatt eng Kommandozeil arg.

Fir e Scan mat de meeschte Standardskripter auszeféieren, benotzt de -sC Fändel oder alternativ benotzt --script=default wéi gewisen.

$ nmap -sC scanme.nmap.org
OR
$ nmap --script=default scanme.nmap.org
OR
$ nmap --script default scanme.nmap.org
Starting Nmap 7.01 ( https://nmap.org ) at 2017-11-15 10:36 IST
Nmap scan report for scanme.nmap.org (45.33.32.156)
Host is up (0.0027s latency).
Not shown: 999 filtered ports
PORT   STATE SERVICE
80/tcp open  http
|_http-title: Go ahead and ScanMe!

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

Fir e Skript fir de passenden Zweck ze benotzen, kënnt Dir fir d'éischt eng kuerz Beschreiwung kréien wat et tatsächlech mécht, zum Beispill http-Header.

$ nmap --script-help http-headers scanme.nmap.org
Starting Nmap 7.01 ( https://nmap.org ) at 2017-11-15 10:37 IST

http-headers
Categories: discovery safe
https://nmap.org/nsedoc/scripts/http-headers.html
  Performs a HEAD request for the root folder ("/") of a web server and displays the HTTP headers returned.

Lueden NSE Skripte Fir Nmap Scans auszeféieren

Dir kënnt Scripten auswielen oder lueden fir e Scan auszeféieren a verschiddene Methoden, déi hei ënnen erkläert ginn.

Wann Dir wësst wat e Skript mécht, kënnt Dir e Scan benotzen. Dir kënnt ee Skript benotzen oder eng Komma-getrennte Lëscht mat Skriptnamen aginn. De Kommando hei ënnen erlaabt Iech d'HTTP Header ze gesinn, déi um Webserver am Zilhost konfiguréiert sinn.

$ nmap --script http-headers scanme.nmap.org
Starting Nmap 7.01 ( https://nmap.org ) at 2017-11-15 10:39 IST
Nmap scan report for scanme.nmap.org (45.33.32.156)
Host is up (0.27s latency).
Not shown: 996 closed ports
PORT      STATE    SERVICE
22/tcp    open     ssh
80/tcp    open     http
| http-headers: 
|   Date: Wed, 15 Nov 2017 05:10:04 GMT
|   Server: Apache/2.4.7 (Ubuntu)
|   Accept-Ranges: bytes
|   Vary: Accept-Encoding
|   Connection: close
|   Content-Type: text/html
|   
|_  (Request type: HEAD)
179/tcp   filtered bgp
31337/tcp open     Elite

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

Dir kënnt och Scripte vun enger Kategorie oder aus enger komma-getrennter Lëscht vu Kategorien lueden. An dësem Beispill benotze mir all Skripte an der Standard- a Sendungskategorie fir e Scan op den Host 192.168.56.1 auszeféieren.

$ nmap --script default,broadcast 192.168.56.1

Dëst ass nëtzlech wann Dir Scripte mat engem Numm Muster wielt. Zum Beispill fir all Skripte mat Nimm mat ssh ze lueden, fuert de Kommando hei ënnen um Terminal:

$ nmap --script "ssh-*" 192.168.56.1

Dir kënnt och Scripte mat booleschen Ausdréck auswielen, déi Dir mat den an, oder, an net Bedreiwer bauen kënnt. An Nimm an engem booleschen Ausdrock kënnen eng Kategorie sinn, e Dateinumm vu script.db oder all.

De folgende Kommando lued Skripte vun de Standard- oder Emissiounskategorien.

$ nmap --script "default or broadcast" 192.168.56.10

Wat entsprécht:

$ nmap --script default,broadcast 192.168.56.10

Fir all Skripte ze lueden, déi déi an der Vuln Kategorie ausléisen, fuert dëse Kommando um Terminal.

$ nmap --script "not vuln" 192.168.56.10

Deen nächste Kommando gesäit e bësse komplizéiert aus, awer et ass einfach ze verstoen, et wielt Skripte an der Default- oder Emissiounskategorien, léisst déi mat Nimm aus, déi mat ssh- ufänken:

$ nmap --script "(default or broadcast) and not ssh-*" 192.168.56.10

Wichteg ass et méiglech Kategorien, Skriptnamen, e Verzeechnes mat Äre personaliséierte Skripte ze kombinéieren oder e booleschen Ausdrock fir Skripte ze lueden, wéi dëst:

$ nmap --script broadcast,vuln,ssh-auth-methods,/path/to/custom/scripts 192.168.56.10

Drënner ass e Beispill dat weist wéi Argumenter u Skripte mat der –script-args Optioun weiderginn:

$ nmap --script mysql-audit --script-args "mysql-audit.username='root', \
mysql-audit.password='password_here', mysql-audit.filename='nselib/data/mysql-cis.audit'"

Fir eng Portnummer ze passéieren, benotzt d'-p nmap Optioun:

$ nmap -p 3306 --script mysql-audit --script-args "mysql-audit.username='root', \ 
mysql-audit.password='password_here' , mysql-audit.filename='nselib/data/mysql-cis.audit'"

Deen uewe genannte Kommando leeft en Audit vun der MySQL Datebankserver Sécherheetskonfiguratioun géint Deeler vum CIS MySQL v1.0.2 Benchmark. Dir kënnt och Är eegen nëtzlech personaliséiert Auditdateien fir aner MySQL Auditen erstellen.

Dat ass et fir elo. Dir kënnt méi Informatioun op der Nmap Man Säit fannen oder kuckt NSE Usage.

Fir unzefänken mat Ären eegene NSE Scripten ze schreiwen, kuckt dëse Guide: https://nmap.org/book/nse-tutorial.html

Nmap ass e wierklech mächtegt an nëtzlecht Tool dat all System oder Netzwierkadministrator a sengem/hirem Sécherheetsarsenal brauch - NSE füügt einfach méi Effizienz derbäi.

An dësem Artikel hu mir Iech den Nmap Script Engine agefouert a gekuckt wéi Dir déi verschidde verfügbar Scripte ënner verschiddene Kategorien fannt a benotzt. Wann Dir Froen hutt, zéckt net fir eis iwwer de Kommentarformular hei ënnen ze schreiwen.