Com utilitzar els scripts Nmap Script Engine (NSE) a Linux


escanejar ports oberts i serveis que s'executen en aquests amfitrions i molt més.

Una de les característiques interessants de Nmap és el Nmap Script Engine (NSE), que li aporta encara més flexibilitat i eficiència. Us permet escriure els vostres propis scripts en llenguatge de programació Lua i, possiblement, compartir aquests scripts amb altres usuaris de Nmap.

Hi ha quatre tipus d'scripts NSE, a saber:

  • Guions de preregla: són scripts que s'executen abans de qualsevol operació d'exploració de Nmap, s'executen quan Nmap encara no ha recopilat cap informació sobre un objectiu.
  • Scripts d'amfitrió: són scripts executats després que Nmap hagi realitzat operacions normals, com ara la descoberta de l'amfitrió, l'exploració de ports, la detecció de versions i la detecció del sistema operatiu contra un amfitrió objectiu.
  • Scripts de servei: són scripts executats contra serveis específics que s'escolten en un amfitrió de destinació.
  • Guions postrul: són scripts executats després que Nmap hagi escanejat tots els seus amfitrions de destinació.

A continuació, aquests scripts s'agrupen en diverses categories, incloses les d'autenticació (auth), descobriment d'amfitrions (emissió), atacs de força bruta per endevinar credencials d'autenticació (brute), descobrir més sobre una xarxa (descobriment), provocar una denegació de servei (dos ), explotant alguna vulnerabilitat (exploit), etc. Diversos scripts pertanyen a la categoria per defecte.

Nota: abans de seguir endavant, hauríeu de prendre nota d'aquests punts clau:

  • No executeu scripts de tercers sense mirar-los de manera crítica o només si confieu en els autors. Això es deu al fet que aquests scripts no s'executen en una caixa de proves i, per tant, podrien danyar el vostre sistema de manera inesperada o maliciosa o envair la vostra privadesa.
  • En segon lloc, és possible que molts d'aquests scripts s'executin com a script de preregla o postregla. Tenint en compte això, es recomana utilitzar una preregla per a finalitats de coherència.
  • Nmap utilitza la base de dades scripts/script.db per esbrinar els scripts i categories predeterminats disponibles.

Per veure la ubicació de tots els scripts NSE disponibles, executeu la utilitat de localització al terminal, com aquesta:

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

Els scripts NSE es carreguen mitjançant la marca --script, que també us permet executar els vostres propis scripts proporcionant categories, noms de fitxers de scripts o el nom dels directoris on es troben els vostres scripts.

La sintaxi per habilitar scripts és la següent:

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

Podeu veure una descripció d'un script amb l'opció --script-help. A més, podeu passar arguments a alguns scripts mitjançant les opcions --script-args i --script-args-file, aquesta última s'utilitza per proporcionar un nom de fitxer en lloc de un argument de línia d'ordres.

Per realitzar una exploració amb la majoria dels scripts predeterminats, utilitzeu el senyalador -sC o, alternativament, utilitzeu --script=default com es mostra.

$ 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

Per utilitzar un script per al propòsit adequat, primer de tot, podeu obtenir una breu descripció del que fa realment, per exemple, les capçaleres http.

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

Carregant scripts NSE per realitzar exploracions Nmap

Podeu seleccionar o carregar scripts per dur a terme una exploració amb els diferents mètodes que s'expliquen a continuació.

Un cop sàpigues què fa un script, pots realitzar una exploració utilitzant-lo. Podeu utilitzar un script o introduir una llista de noms d'script separats per comes. L'ordre següent us permetrà veure les capçaleres HTTP configurades al servidor web a l'amfitrió de destinació.

$ 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

També podeu carregar scripts d'una categoria o d'una llista de categories separades per comes. En aquest exemple, estem utilitzant tots els scripts de la categoria predeterminada i de difusió per dur a terme una exploració a l'amfitrió 192.168.56.1.

$ nmap --script default,broadcast 192.168.56.1

Això és útil quan voleu seleccionar scripts amb un patró de nom donat. Per exemple, per carregar tots els scripts amb noms que comencen per ssh, executeu l'ordre següent al terminal:

$ nmap --script "ssh-*" 192.168.56.1

També podeu seleccionar scripts mitjançant expressions booleanes que podeu crear amb els operadors and, or, and not. I els noms d'una expressió booleana poden ser una categoria, un nom de fitxer de script.db o tots.

L'ordre següent carregarà scripts de les categories predeterminades o d'emissió.

$ nmap --script "default or broadcast" 192.168.56.10

Que equival a:

$ nmap --script default,broadcast 192.168.56.10

Per carregar tots els scripts que ometen els de la categoria vuln, executeu aquesta ordre al terminal.

$ nmap --script "not vuln" 192.168.56.10

La següent comanda sembla una mica complicada, però és fàcil d'entendre, selecciona scripts per defecte o categories de difusió, deixant de banda aquells amb noms que comencen per ssh-:

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

És important destacar que és possible combinar categories, noms d'scripts, un directori que conté els vostres scripts personalitzats o una expressió booleana per carregar scripts, com aquest:

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

A continuació es mostra un exemple que mostra com passar arguments als scripts amb l'opció –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'"

Per passar un número de port, utilitzeu l'opció -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'"

L'ordre anterior executa una auditoria de la configuració de seguretat del servidor de bases de dades MySQL amb parts del benchmark CIS MySQL v1.0.2. També podeu crear els vostres fitxers d'auditoria personalitzats útils per a altres auditories de MySQL.

Això és tot per ara. Podeu trobar més informació a la pàgina de manual de Nmap o consultar NSE Usage.

Per començar a escriure els vostres propis scripts NSE, consulteu aquesta guia: https://nmap.org/book/nse-tutorial.html

Nmap és una eina realment potent i útil que tot administrador de sistemes o de xarxa necessita al seu arsenal de seguretat; NSE simplement li afegeix més eficiència.

En aquest article, us vam presentar Nmap Script Engine i vam veure com trobar i utilitzar els diferents scripts disponibles en diferents categories. Si teniu cap pregunta, no dubteu a escriure'ns mitjançant el formulari de comentaris a continuació.