Nmap Script Engine (NSE) skriptide kasutamine Linuxis


skannige nendes hostides töötavaid avatud sadamaid ja teenuseid ning palju muud.

Nmapi üks huvitavaid omadusi on Nmap Script Engine (NSE), mis toob sellele veelgi suurema paindlikkuse ja tõhususe. See võimaldab teil kirjutada oma skriptid Lua programmeerimiskeeles ja jagada neid skripte teiste Nmapi kasutajatega.

NSE skripte on nelja tüüpi, nimelt:

  • Eeskirjaskriptid - skriptid, mis töötavad enne mõnda Nmapi skannimistoimingut. Need käivitatakse siis, kui Nmap pole veel sihtmärgi kohta teavet kogunud.
  • Hosti skriptid - skriptid, mis käivitatakse pärast seda, kui Nmap on tavalise toimingu, näiteks hosti avastamine, pordi skannimine, versiooni tuvastamine ja OS-i tuvastamine, sihtmärgi hosti suhtes.
  • Teenuse skriptid - need on skriptid, mida käitatakse konkreetsete teenuste vastu, kes kuulavad sihtmasinat.
  • Postrule'i skriptid - skriptid, mida käitatakse pärast seda, kui Nmap on skanninud kõik oma sihtmasinad.

Seejärel rühmitatakse need skriptid erinevatesse kategooriatesse, sealhulgas autentimiseks (auth), hostide avastamiseks (ringhääling), jõhkratele rünnakutele autentimismandaatide arvamiseks (brute), võrgu kohta lisateabe avastamiseks (avastamine), teenuse keelamiseks (dos ), teatud haavatavuse kasutamine (ärakasutamine) jne. Vaikimisi kategooriasse kuulub hulk skripte.

Märkus. Enne kui edasi liigume, peaksite märkima järgmised põhipunktid:

  • Ärge käivitage skripte kolmandatelt osapooltelt, ilma et neid kriitiliselt läbi vaataksite või ainult siis, kui usaldate autoreid. Selle põhjuseks on asjaolu, et neid skripte ei käitata liivakastis ja see võib seega teie süsteemi ootamatult või pahatahtlikult kahjustada või privaatsusse tungida.
  • Teiseks võib paljusid neist skriptidest käitada kas eel- või järelmäärakirjadena. Arvestades seda, on järjepidevuse huvides soovitatav kasutada eeltingimust.
  • Nmap kasutab saadaolevate vaikeskriptide ja -kategooriate väljaselgitamiseks skripte/script.db andmebaasi.

Kõigi saadaolevate NSE-skriptide asukoha nägemiseks käivitage terminalis asukoht-utiliit järgmiselt:

$ 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 skriptid laaditakse lipu --script abil, mis võimaldab teil ka oma skripte käitada, pakkudes kategooriaid, skriptifailide nimesid või kataloogide nime, kus teie skriptid asuvad.

Skriptide lubamise süntaks on järgmine:

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

Skripti kirjeldust saate vaadata suvandiga --script-help . Lisaks saate mõnele skriptile argumente edastada valikute --script-args ja --script-args-file kaudu, hilisemat kasutatakse failinime andmiseks, mitte käsurea arg.

Enamiku vaikeskriptidega skannimiseks kasutage lippu -sC või alternatiivina --script = default , nagu näidatud.

$ 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

Skripti sobivaks otstarbeks kasutamiseks võite kõigepealt saada lühikese kirjelduse selle kohta, mida see tegelikult teeb, näiteks http-päised.

$ 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.

NSE-skriptide laadimine Nmapi skannimiseks

Skannimiseks saate skripte valida või neid laadida allpool selgitatud erinevate meetoditega.

Kui teate, mida skript teeb, saate selle abil skannida. Võite kasutada ühte skripti või sisestada komadega eraldatud skriptide nimede loendi. Allolev käsk võimaldab teil veebiserveris konfigureeritud HTTP-päiseid sihtmärgi hostis vaadata.

$ 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

Samuti saate skripte laadida ühest kategooriast või komadega eraldatud kategooriate loendist. Selles näites kasutame hostil 192.168.56.1 skannimiseks kõiki vaikekategooria ja leviedastuse skripte.

$ nmap --script default,broadcast 192.168.56.1

See on kasulik, kui soovite valida antud nimemustriga skripte. Näiteks kõigi skriptide laadimiseks nimedega, mis algavad ssh-ga, käivitage terminalis järgmine käsk:

$ nmap --script "ssh-*" 192.168.56.1

Skripte saate valida ka loogikaväljendite abil, mille saate ehitada operaatorite abil ja, või. Boole'i avaldises olevad nimed võivad olla kategooria, failinimi script.db-st või kõik.

Järgmine käsk laadib skriptid vaikekategooriatest või levikategooriatest.

$ nmap --script "default or broadcast" 192.168.56.10

Mis on samaväärne järgmisega:

$ nmap --script default,broadcast 192.168.56.10

Kõigi skriptide laadimiseks, jättes välja kategooria vuln skriptid, käivitage see käsk terminalis.

$ nmap --script "not vuln" 192.168.56.10

Järgmine käsk tundub veidi keeruline, kuid seda on lihtne mõista, see valib skriptid vaikekategooriates või levikategooriates, jättes välja need, mille nimed algavad ssh-:

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

Tähtis on, et skriptide laadimiseks on võimalik kombineerida kategooriaid, skriptide nimesid, kohandatud skripte sisaldavat kataloogi või boolean väljendit:

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

Allpool on näide, mis näitab, kuidas argumentidega skripte edastada suvandiga –script-args:

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

Pordinumbri edastamiseks kasutage valikut -p nmap:

$ 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'"

Ülaltoodud käsk käivitab MySQL-i andmebaasiserveri turvakonfiguratsiooni auditi CIS-i MySQL v1.0.2 võrdlusaluse osade suhtes. Samuti saate teiste MySQL-auditite jaoks luua oma kasulikud kohandatud auditifailid.

Praegu on see kõik. Lisateavet leiate Nmapi manulehelt või vaadake NSE kasutust.

Oma NSE skriptide kirjutamise alustamiseks vaadake seda juhendit: https://nmap.org/book/nse-tutorial.html

Nmap on tõeliselt võimas ja kasulik tööriist, mida iga süsteemi või võrguadministraator oma turvaarsenalis vajab - NSE lisab sellele lihtsalt rohkem efektiivsust.

Selles artiklis tutvustasime teile Nmap Script Engine'i ja uurisime, kuidas leida ja kasutada erinevaid kategooriate all olevaid erinevaid skripte. Kui teil on küsimusi, kirjutage meile alloleva kommentaarivormi kaudu kindlasti tagasi.