Kaip naudoti „Nmap Script Engine“ (NSE) scenarijus sistemoje „Linux“


nuskaitykite atvirus prievadus ir paslaugas, veikiančias tuose kompiuteriuose, ir dar daugiau.

Viena iš įdomių „Nmap“ savybių yra „Nmap Script Engine“ (NSE), suteikiantis dar daugiau lankstumo ir efektyvumo. Tai leidžia jums rašyti savo scenarijus „Lua“ programavimo kalba ir galbūt dalytis šiais scenarijais su kitais ten esančiais „Nmap“ vartotojais.

Yra keturių tipų NSE scenarijai, būtent:

  • Prerule scenarijai - tai scenarijai, paleidžiami prieš bet kurią „Nmap“ nuskaitymo operaciją, jie vykdomi, kai „Nmap“ dar nesurinko jokios informacijos apie taikinį.
  • Pagrindinio kompiuterio scenarijai - tai scenarijai, vykdomi po to, kai „Nmap“ atlieka įprastas operacijas, tokias kaip pagrindinio kompiuterio atradimas, prievado nuskaitymas, versijos aptikimas ir OS aptikimas prieš tikslinį pagrindinį kompiuterį.
  • Paslaugų scenarijai - tai scenarijai, paleisti prieš konkrečias paslaugas, klausančias tikslinio pagrindinio kompiuterio.
  • Postrule scenarijai - tai scenarijai, paleisti po to, kai „Nmap“ nuskaitė visus savo tikslinius kompiuterius.

Tada šie scenarijai yra sugrupuoti į įvairias kategorijas, įskaitant autentifikavimą (autentifikavimą), pagrindinių kompiuterių atradimą (transliaciją), žiaurių jėgų išpuolius, norint atspėti autentifikavimo kredencialus (grubius), daugiau sužinoti apie tinklą (atradimas), dėl kurių atsisakoma teikti paslaugas (dos ), išnaudojant tam tikrą pažeidžiamumą (išnaudojimą) ir kt. Nemažai scenarijų priklauso numatytajai kategorijai.

Pastaba: Prieš judėdami toliau, turėtumėte atkreipti dėmesį į šiuos pagrindinius dalykus:

  • Nevykdykite scenarijų iš trečiųjų šalių, kritiškai jų neperžiūrėdami arba tik tada, jei pasitikite autoriais. Taip yra todėl, kad šie scenarijai nėra vykdomi smėlio dėžėje, todėl gali netikėtai ar piktybiškai pakenkti jūsų sistemai ar įsibristi į jūsų privatumą.
  • Antra, daugelis iš šių scenarijų gali būti paleisti kaip išankstinės arba antrinės taisyklės scenarijai. Atsižvelgiant į tai, nuoseklumo tikslais rekomenduojama naudoti išankstinę taisyklę.
  • „Nmap“ naudoja scenarijų/script.db duomenų bazę, kad išsiaiškintų galimus numatytuosius scenarijus ir kategorijas.

Norėdami pamatyti visų galimų NSE scenarijų vietą, terminale paleiskite „locate“ įrankį:

$ 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 scenarijai įkeliami naudojant vėliavą --script , kuri taip pat leidžia paleisti savo scenarijus, pateikiant kategorijas, scenarijų failų pavadinimus arba katalogų, kuriuose yra jūsų scenarijai, pavadinimą.

Scenarijų įgalinimo sintaksė yra tokia:

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

Galite peržiūrėti scenarijaus aprašą naudodami parinktį --script-help . Be to, kai kuriems scenarijams galite perduoti argumentus naudodami parinktis --script-args ir --script-args-file , vėliau naudojama failo pavadinimui pateikti, o ne komandinės eilutės arg.

Norėdami atlikti nuskaitymą naudodami daugumą numatytųjų scenarijų, naudokite vėliavą -sC arba alternatyviai naudokite --script = default , kaip parodyta.

$ 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

Norėdami naudoti scenarijų tinkamam tikslui, pirmiausia galite gauti trumpą aprašymą, ką jis iš tikrųjų veikia, pavyzdžiui, http antraštes.

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

Įkeliami NSE scenarijai, kad būtų galima atlikti Nmap nuskaitymus

Norėdami pasirinkti nuskaitymą, galite pasirinkti arba įkelti scenarijus skirtingais toliau paaiškintais metodais.

Sužinoję, ką daro scenarijus, galite nuskaityti naudodami jį. Galite naudoti vieną scenarijų arba įvesti kableliais atskirtą scenarijų pavadinimų sąrašą. Žemiau pateikta komanda leis jums peržiūrėti HTTP antraštes, sukonfigūruotas žiniatinklio serveryje tiksliniame pagrindiniame kompiuteryje.

$ 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

Taip pat galite įkelti scenarijus iš vienos kategorijos arba iš kableliais atskirtų kategorijų sąrašo. Šiame pavyzdyje mes naudojame visus numatytosios ir transliacijos kategorijos scenarijus nuskaitymui pagrindiniame kompiuteryje 192.168.56.1.

$ nmap --script default,broadcast 192.168.56.1

Tai naudinga, kai norite pasirinkti scenarijus su nurodytu pavadinimo modeliu. Pavyzdžiui, norėdami įkelti visus scenarijus su pavadinimais, prasidedančiais ssh, vykdykite toliau pateiktą komandą terminale:

$ nmap --script "ssh-*" 192.168.56.1

Taip pat galite pasirinkti scenarijus naudodami logines išraiškas, kurias galite sukurti naudodami ir, arba, ir ne operatorius. Vardai loginėje išraiška gali būti kategorija, failo vardas iš script.db arba visi.

Ši komanda įkelia scenarijus iš numatytųjų arba transliacijų kategorijų.

$ nmap --script "default or broadcast" 192.168.56.10

Kas prilygsta:

$ nmap --script default,broadcast 192.168.56.10

Norėdami įkelti visus scenarijus, nenurodydami kategorijos „vuln“, vykdykite šią komandą terminale.

$ nmap --script "not vuln" 192.168.56.10

Kita komanda atrodo šiek tiek sudėtinga, bet ją lengva suprasti, ji pasirenka scenarijus pagal numatytąsias arba transliacijos kategorijas, palikdama tuos, kurių pavadinimai prasideda ssh-:

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

Svarbu tai, kad norėdami įkelti scenarijus, galite sujungti kategorijas, scenarijų pavadinimus, katalogą, kuriame yra jūsų tinkinti scenarijai, arba loginę išraišką:

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

Toliau pateiktas pavyzdys, parodantis, kaip perkelti argumentus scenarijams su parinktimi –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'"

Norėdami perduoti prievado numerį, naudokite parinktį -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'"

Pirmiau nurodyta komanda atlieka „MySQL“ duomenų bazės serverio saugos konfigūracijos auditą, palyginti su CIS „MySQL v1.0.2“ etalono dalimis. Taip pat galite sukurti savo naudingus pasirinktinius audito failus kitiems „MySQL“ auditams.

Kol kas tiek. Daugiau informacijos galite rasti „Nmap“ vyro puslapyje arba apsilankykite „NSE Usage“.

Norėdami pradėti rašyti savo NSE scenarijus, peržiūrėkite šį vadovą: https://nmap.org/book/nse-tutorial.html

„Nmap“ yra tikrai galingas ir naudingas įrankis, kurio kiekvienam sistemos ar tinklo administratoriui reikia savo saugos arsenale - NSE tiesiog padidina jo efektyvumą.

Šiame straipsnyje mes supažindinome jus su „Nmap Script Engine“ ir apžvelgėme, kaip rasti ir naudoti įvairius scenarijus pagal skirtingas kategorijas. Jei turite klausimų, nedvejodami parašykite mums per toliau pateiktą komentaro formą.