Giunsa Paggamit ang Nmap Script Engine (NSE) Scripts sa Linux


i-scan ang mga bukas nga pantalan ug serbisyo nga nagdagan sa mga host, ug daghan pa.

Usa sa mga makapaikag nga bahin sa Nmap mao ang Nmap Script Engine (NSE), nga nagdala labi pa nga kadali ug kahusayan niini. Makapahimo kini kanimo sa pagsulat sa imong kaugalingon nga mga script sa Lua programming language, ug posible nga ipaambit kini nga mga script sa ubang mga tiggamit sa Nmap didto.

Adunay upat ka matang sa NSE scripts, nga mao ang:

  • Prerule scripts – mao ang mga script nga nagdagan sa wala pa ang bisan unsang mga operasyon sa pag-scan sa Nmap, kini gipatuman kung ang Nmap wala pa makakuha og bisan unsang impormasyon mahitungod sa usa ka target.
  • Mga script sa host – mao ang mga script nga gipatuman human ang Nmap makahimo sa normal nga mga operasyon sama sa pagdiskubre sa host, pag-scan sa pantalan, pagtuki sa bersyon, ug pag-ila sa OS batok sa usa ka target nga host.
  • Service scripts – mao ang mga script nga gipadagan batok sa piho nga serbisyo nga namati sa usa ka target host.
  • Postrule scripts – mao ang mga script nga gipadagan human ma-scan sa Nmap ang tanang target host niini.

Dayon kini nga mga script gi-grupo ubos sa lain-laing mga kategoriya lakip na ang alang sa authentication (auth), pagdiskubre sa mga host (broadcast), brute force nga mga pag-atake sa pagtag-an sa authentication credentials (brute), pagdiskobre og dugang mahitungod sa usa ka network (discovery), hinungdan sa pagdumili sa serbisyo (dos ), pagpahimulos sa pipila ka kahuyang (pagpahimulos), ug uban pa. Daghang mga script ang nahisakop sa default nga kategorya.

Mubo nga sulat: Sa dili pa kita mobalhin ug dugang, kinahanglan nimong hinumdoman kining mahinungdanong mga punto:

  • Ayaw ipatuman ang mga script gikan sa mga ikatulo nga partido nga wala’y kritikal nga pagsusi niini o kung nagsalig ka sa mga tagsulat. Kini tungod kay kini nga mga script wala gipadagan sa usa ka sandbox ug sa ingon mahimo nga wala damha o makadaot nga makadaot sa imong sistema o makasulong sa imong pribasiya.
  • Ikaduha, daghan niini nga mga script mahimong modagan isip usa ka prerule o postrule script. Sa pagkonsiderar niini, girekomendar ang paggamit sa usa ka prerule alang sa mga katuyoan sa pagkamakanunayon.
  • Gigamit sa Nmap ang database sa scripts/script.db aron mahibal-an ang magamit nga default nga mga script ug mga kategorya.

Aron makita ang lokasyon sa tanan nga magamit nga mga script sa NSE, pagdagan ang locate utility sa terminal, sama niini:

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

Ang mga script sa NSE gikarga gamit ang --script nga bandila, nga nagtugot usab kanimo sa pagpadagan sa imong kaugalingon nga mga script pinaagi sa paghatag sa mga kategorya, mga ngalan sa file sa script, o ang ngalan sa mga direktoryo kung diin nahimutang ang imong mga script.

Ang syntax alang sa pagpagana sa mga script mao ang mosunod:

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

Mahimo nimong tan-awon ang usa ka paghulagway sa usa ka script nga adunay kapilian nga --script-help. Dugang pa, mahimo nimong ipasa ang mga argumento sa pipila ka mga script pinaagi sa mga kapilian nga --script-args ug --script-args-file, ang ulahi gigamit aron maghatag usa ka filename kaysa sa. usa ka command-line arg.

Para makahimo ug scan gamit ang kadaghanan sa mga default script, gamita ang -sC flag o alternatibo gamit ang --script=default ingon sa gipakita.

$ 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

Aron magamit ang usa ka script alang sa angay nga katuyoan, mahimo nimo, una sa tanan, makakuha usa ka mubo nga paghulagway kung unsa ang aktuwal nga nahimo niini, pananglitan, mga 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.

Nag-load sa NSE Scripts Para Makabuhat ug Nmap Scans

Mahimo nimong pilion o i-load ang mga script aron mahimo ang pag-scan sa lainlaing mga pamaagi nga gipasabut sa ubos.

Kung nahibal-an na nimo kung unsa ang gibuhat sa usa ka script, mahimo nimong himuon ang pag-scan gamit kini. Mahimo nimong gamiton ang usa ka script o isulod ang usa ka lista nga gibulag sa koma sa mga ngalan sa script. Ang sugo sa ubos makapahimo kanimo sa pagtan-aw sa mga HTTP header nga gi-configure sa webserver sa target host.

$ 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

Mahimo ka usab nga magkarga sa mga script gikan sa usa ka kategorya o gikan sa usa ka lista nga gibulag sa koma sa mga kategorya. Sa kini nga pananglitan, gigamit namon ang tanan nga mga script sa default ug kategorya sa broadcast aron mahimo ang usa ka pag-scan sa host 192.168.56.1.

$ nmap --script default,broadcast 192.168.56.1

Mapuslanon kini kung gusto nimo magpili mga script nga adunay gihatag nga sumbanan sa ngalan. Pananglitan aron ma-load ang tanan nga mga script nga adunay mga ngalan nga nagsugod sa ssh, padagana ang mando sa ubos sa terminal:

$ nmap --script "ssh-*" 192.168.56.1

Makapili ka usab ug mga script gamit ang boolean nga mga ekspresyon nga mahimo nimong tukuron gamit ang ug, o, ug dili mga operator. Ug ang mga ngalan sa usa ka Boolean nga ekspresyon mahimong usa ka kategorya, usa ka filename gikan sa script.db, o tanan.

Ang mosunod nga sugo mag-load sa mga script gikan sa default o broadcast nga mga kategorya.

$ nmap --script "default or broadcast" 192.168.56.10

Nga katumbas sa:

$ nmap --script default,broadcast 192.168.56.10

Aron ma-load ang tanan nga mga script nga wala’y mga naa sa kategorya nga vuln, padagana kini nga mando sa terminal.

$ nmap --script "not vuln" 192.168.56.10

Ang sunod nga sugo morag gamay nga komplikado apan sayon sabton, kini nagpili sa mga script sa default, o mga kategoriya sa pagsibya, nga gibiyaan ang adunay mga ngalan nga nagsugod sa ssh-:

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

Importante, posible nga maghiusa sa mga kategorya, mga ngalan sa script, usa ka direktoryo nga adunay imong naandan nga mga script, o usa ka boolean nga ekspresyon aron makarga ang mga script, sama niini:

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

Sa ubos usa ka pananglitan nga nagpakita kung giunsa ang pagpasa sa mga argumento sa mga script gamit ang -script-args nga kapilian:

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

Aron mapasa ang numero sa port, gamita ang -p nmap nga kapilian:

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

Ang sugo sa ibabaw nagpadagan ug audit sa MySQL database server security configuration batok sa mga bahin sa CIS MySQL v1.0.2 benchmark. Mahimo ka usab nga maghimo sa imong kaugalingon nga mapuslanon nga kostumbre nga mga file sa pag-audit alang sa ubang mga pag-audit sa MySQL.

Mao na kini sa pagkakaron. Makita nimo ang dugang nga impormasyon sa panid sa tawo sa Nmap o tan-awa ang Paggamit sa NSE.

Para makasugod sa pagsulat sa imong kaugalingong NSE scripts, tan-awa kini nga giya: https://nmap.org/book/nse-tutorial.html

Ang Nmap usa ka gamhanan ug mapuslanon nga himan nga gikinahanglan sa matag sistema o network administrator sa iyang security arsenal - ang NSE nagdugang lang ug mas episyente niini.

Niini nga artikulo, gipaila-ila ka namo sa Nmap Script Engine ug gitan-aw kon unsaon pagpangita ug paggamit sa lain-laing anaa nga mga script ubos sa lain-laing mga kategoriya. Kung naa kay pangutana, ayaw pagpanuko sa pagsulat balik kanamo pinaagi sa comment form sa ubos.