Si të përdorni skriptet e Nmap Script Engine (NSE) në Linux


skanoni portet e hapura dhe shërbimet që funksionojnë në ato hoste dhe shumë më tepër.

Një nga veçoritë interesante të Nmap është Nmap Script Engine (NSE), i cili i sjell edhe më shumë fleksibilitet dhe efikasitet. Kjo ju mundëson të shkruani skriptet tuaja në gjuhën e programimit Lua, dhe ndoshta t'i ndani këto skripte me përdoruesit e tjerë të Nmap atje.

Ekzistojnë katër lloje të skripteve NSE, përkatësisht:

  • Skriptet prerule – janë skriptet që ekzekutohen përpara ndonjë prej operacioneve të skanimit të Nmap, ato ekzekutohen kur Nmap nuk ka mbledhur ende asnjë informacion për një objektiv.
  • Skriptet e hostit – janë skriptet që ekzekutohen pasi Nmap të ketë kryer operacione normale si zbulimi i hostit, skanimi i portit, zbulimi i versionit dhe zbulimi i sistemit operativ kundër një hosti të synuar.
  • Skriptet e shërbimit – janë skriptet që ekzekutohen kundër shërbimeve specifike që dëgjojnë në një host të synuar.
  • Skriptet Postrule – janë skriptet që ekzekutohen pasi Nmap ka skanuar të gjithë hostet e tij të synuar.

Më pas këta skripta grupohen në kategori të ndryshme duke përfshirë ato për vërtetimin (auth), zbulimin e hosteve (transmetim), sulmet me forcë brutale për të gjetur kredencialet e vërtetimit (brute), zbulimin e më shumë rreth një rrjeti (zbulimi), duke shkaktuar një mohim shërbimi (dos ), duke shfrytëzuar disa dobësi (shfrytëzimi), etj. Një numër skriptesh i përkasin kategorisë së paracaktuar.

Shënim: Përpara se të lëvizim më tej, duhet të mbani shënim këto pika kryesore:

  • Mos ekzekutoni skripta nga palë të treta pa i shqyrtuar në mënyrë kritike ose vetëm nëse u besoni autorëve. Kjo është për shkak se këto skripte nuk ekzekutohen në një sandbox dhe kështu mund të dëmtojnë papritur ose me qëllim të keq sistemin tuaj ose të pushtojnë privatësinë tuaj.
  • Së dyti, shumë prej këtyre skripteve mund të funksionojnë ose si një skenar para-rregullor ose pas-rregullor. Duke marrë parasysh këtë, rekomandohet përdorimi i një rregulli paraprak për qëllime të qëndrueshmërisë.
  • Nmap përdor bazën e të dhënave scripts/script.db për të përcaktuar skriptet dhe kategoritë e paracaktuara të disponueshme.

Për të parë vendndodhjen e të gjithë skripteve të disponueshme NSE, ekzekutoni mjetin lokal në terminal, si kjo:

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

Skriptet NSE ngarkohen duke përdorur flamurin --script, i cili gjithashtu ju lejon të ekzekutoni skriptet tuaja duke ofruar kategori, emra skedarësh skripti ose emrat e drejtorive ku ndodhen skriptet tuaja.

Sintaksa për aktivizimin e skripteve është si më poshtë:

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

Ju mund të shikoni një përshkrim të një skripti me opsionin --script-help. Për më tepër, ju mund t'i kaloni argumente disa skripteve nëpërmjet opsioneve --script-args dhe --script-args-file, ky i fundit përdoret për të dhënë një emër skedari në vend të një linjë komanduese arg.

Për të kryer një skanim me shumicën e skripteve të paracaktuar, përdorni flamurin -sC ose përdorni në mënyrë alternative --script=default siç tregohet.

$ 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

Për të përdorur një skript për qëllimin e duhur, para së gjithash, mund të merrni një përshkrim të shkurtër të asaj që bën në të vërtetë, për shembull, http-headers.

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

Po ngarkohen skriptet NSE për të kryer skanime Nmap

Ju mund të zgjidhni ose ngarkoni skriptet për të kryer një skanim në metoda të ndryshme të shpjeguara më poshtë.

Pasi të dini se çfarë bën një skript, mund të kryeni një skanim duke e përdorur atë. Mund të përdorni një skript ose të futni një listë të emrave të skripteve të ndarë me presje. Komanda e mëposhtme do t'ju mundësojë të shikoni titujt e HTTP të konfiguruar në serverin në internet në hostin e synuar.

$ 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

Ju gjithashtu mund të ngarkoni skriptet nga një kategori ose nga një listë kategorish e ndarë me presje. Në këtë shembull, ne po përdorim të gjitha skriptet në kategorinë e paracaktuar dhe të transmetimit për të kryer një skanim në hostin 192.168.56.1.

$ nmap --script default,broadcast 192.168.56.1

Kjo është e dobishme kur dëshironi të zgjidhni skriptet me një model të caktuar emri. Për shembull, për të ngarkuar të gjitha skriptet me emra që fillojnë me ssh, ekzekutoni komandën më poshtë në terminal:

$ nmap --script "ssh-*" 192.168.56.1

Ju gjithashtu mund të zgjidhni skriptet duke përdorur shprehje boolean të cilat mund t'i ndërtoni duke përdorur operatorët dhe, ose, dhe jo. Dhe emrat në një shprehje Boolean mund të jenë një kategori, një emër skedari nga script.db, ose të gjitha.

Komanda e mëposhtme do të ngarkojë skriptet nga kategoritë e paracaktuara ose të transmetimit.

$ nmap --script "default or broadcast" 192.168.56.10

Që është e barabartë me:

$ nmap --script default,broadcast 192.168.56.10

Për të ngarkuar të gjithë skriptet që i lënë ato në kategorinë vuln, ekzekutoni këtë komandë në terminal.

$ nmap --script "not vuln" 192.168.56.10

Komanda tjetër duket pak e komplikuar, por është e lehtë për t'u kuptuar, zgjedh skriptet në kategoritë e paracaktuara ose të transmetimit, duke lënë jashtë ato me emra që fillojnë me ssh-:

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

Më e rëndësishmja, është e mundur të kombinohen kategoritë, emrat e skripteve, një drejtori që përmban skriptet tuaja të personalizuara ose një shprehje boolean për të ngarkuar skriptet, si kjo:

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

Më poshtë është një shembull që tregon se si të kaloni argumente te skriptet me opsionin –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'"

Për të kaluar një numër porti, përdorni opsionin -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'"

Komanda e mësipërme kryen një auditim të konfigurimit të sigurisë së serverit të bazës së të dhënave MySQL kundrejt pjesëve të standardit CIS MySQL v1.0.2. Ju gjithashtu mund të krijoni skedarët tuaj të dobishëm të auditimit me porosi për auditime të tjera të MySQL.

Kjo është ajo për momentin. Mund të gjeni më shumë informacion në faqen e njeriut të Nmap ose të shikoni Përdorimin e NSE.

Për të filluar me shkrimin e skripteve tuaja NSE, shikoni këtë udhëzues: https://nmap.org/book/nse-tutorial.html

Nmap është një mjet vërtet i fuqishëm dhe i dobishëm që çdo administrator sistemi ose rrjeti ka nevojë në arsenalin e tij/saj të sigurisë – NSE thjesht i shton më shumë efikasitet.

Në këtë artikull, ne ju njohëm me Nmap Script Engine dhe shikuam se si të gjeni dhe përdorni skriptet e ndryshme të disponueshme sipas kategorive të ndryshme. Nëse keni ndonjë pyetje, mos hezitoni të na shkruani përmes formularit të komenteve më poshtë.