Nmap Script Engine (NSE) -komentosarjojen käyttäminen Linuxissa


Nmap on suosittu, tehokas ja monialustainen komentorivin suojausskanneri ja -tutkimustyökalu. Se voi myös auttaa sinua saamaan yleiskatsauksen järjestelmistä, jotka yhdistävät verkkosi. voit käyttää sitä löytääksesi kaikki elävien isäntien IP-osoitteet, skannataksesi avoimet portit ja näillä isännillä käynnissä olevat palvelut ja paljon muuta.

Yksi Nmapin mielenkiintoisista ominaisuuksista on Nmap Script Engine (NSE), joka tuo siihen entistä enemmän joustavuutta ja tehokkuutta. Sen avulla voit kirjoittaa omia skriptejäsi Lua-ohjelmointikielellä ja mahdollisesti jakaa nämä skriptit muiden Nmap-käyttäjien kanssa.

Lue myös: 29 käytännön esimerkkiä Nmap-komennoista Linuxille

NSE-skriptejä on neljää tyyppiä, nimittäin:

  • Esisäännöskriptit – ovat skriptejä, jotka suoritetaan ennen mitä tahansa Nmap-tarkistustoimintoa. Ne suoritetaan, kun Nmap ei ole vielä kerännyt tietoja kohteesta.
  • Isäntäkomentosarjat – ovat komentosarjoja, jotka suoritetaan sen jälkeen, kun Nmap on suorittanut normaalit toiminnot, kuten isäntähaun, portin tarkistuksen, versiontunnistuksen ja käyttöjärjestelmän tunnistuksen kohdeisäntä vastaan.
  • Palveluohjelmat – ovat skriptejä, jotka suoritetaan tiettyjä palveluita vastaan, jotka kuuntelevat kohdepalvelimella.
  • Postrule-skriptit – ovat skriptejä, jotka suoritetaan sen jälkeen, kun Nmap on tarkistanut kaikki kohdepalvelimensa.

Sitten nämä skriptit ryhmitellään eri luokkiin, mukaan lukien todennus (auth), isäntien löytäminen (lähetys), brute force -hyökkäykset todennustietojen arvaamiseen (brute<).), löytää enemmän verkosta (löytö), aiheuttaa palveluneston (dos), hyödyntää joitakin haavoittuvuuksia (hyödynnä) jne. Useat skriptit kuuluvat oletusluokkaan.

Huomaa: ennen kuin siirrymme pidemmälle, sinun tulee huomioida seuraavat avainkohdat:

  • Älä suorita kolmansien osapuolien skriptejä tarkastelematta niitä kriittisesti tai vain, jos luotat tekijöihin. Tämä johtuu siitä, että näitä komentosarjoja ei ajeta hiekkalaatikossa, ja ne voivat siten yllättäen tai haitallisesti vahingoittaa järjestelmääsi tai loukata yksityisyyttäsi.
  • Toiseksi monet näistä skripteistä voivat mahdollisesti toimia joko prerule- tai postrule-komentosarjana. Tämän huomioon ottaen on suositeltavaa käyttää esisääntöä johdonmukaisuuden vuoksi.
  • Nmap käyttää scripts/script.db-tietokantaa selvittääkseen käytettävissä olevat oletusskriptit ja -luokat.

Jos haluat nähdä kaikkien käytettävissä olevien NSE-komentosarjojen sijainnin, suorita paikannus-apuohjelma terminaalissa seuraavasti:

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-komentosarjat ladataan --script-lipulla, jonka avulla voit myös ajaa omia komentosarjojasi antamalla luokkia, komentosarjatiedostojen nimiä tai hakemistojen nimet, joissa komentosarjasi sijaitsevat.

Skriptien käyttöönoton syntaksi on seuraava:

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

Voit tarkastella komentosarjan kuvausta vaihtoehdolla --script-help. Lisäksi voit välittää argumentteja joillekin skripteille vaihtoehdoilla --script-args ja --script-args-file. Jälkimmäistä käytetään antamaan tiedostonimi. komentorivin arg.

Voit suorittaa tarkistuksen useimmilla oletusskripteillä käyttämällä -sC-lippua tai vaihtoehtoisesti --script=default-komentoa kuvan mukaisesti.

nmap -sC scanme.nmap.org
OR
nmap --script=default scanme.nmap.org
OR
nmap --script default scanme.nmap.org
Näytelähtö
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

Jos haluat käyttää komentosarjaa oikeaan tarkoitukseen, saat ensin lyhyen kuvauksen siitä, mitä se todella tekee, esimerkiksi http-otsikot.

nmap --script-help http-headers scanme.nmap.org
Näytelähtö
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.

Ladataan NSE-skriptejä Nmap-skannausten suorittamista varten

Voit valita tai ladata komentosarjoja suorittaaksesi tarkistuksen eri menetelmillä, jotka on kuvattu alla.

Skriptin nimen käyttäminen

Kun tiedät, mitä komentosarja tekee, voit suorittaa tarkistuksen sen avulla. Voit käyttää yhtä komentosarjaa tai kirjoittaa pilkuilla erotetun luettelon skriptien nimistä. Alla olevan komennon avulla voit tarkastella HTTP-otsikoita, jotka on määritetty kohdeisäntäpalvelimelle.

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

Luokkien käyttö

Voit myös ladata komentosarjoja yhdestä luokasta tai pilkuilla erotetusta luokkaluettelosta. Tässä esimerkissä käytämme kaikkia oletus- ja lähetysluokan skriptejä suorittaaksemme tarkistuksen isännässä 192.168.56.1.

nmap --script default,broadcast 192.168.56.1

* Jokerimerkin käyttäminen

Tämä on hyödyllistä, kun haluat valita skriptejä tietyllä nimikuviolla. Jos esimerkiksi haluat ladata kaikki komentosarjat, joiden nimet alkavat ssh:lla, suorita alla oleva komento päätteessä:

nmap --script "ssh-*" 192.168.56.1

Boolen lausekkeiden käyttö

Voit myös valita komentosarjoja käyttämällä loogisia lausekkeita, jotka voit luoda käyttämällä ja-, tai- ja not-operaattoreita. Boolen lausekkeen nimet voivat olla luokka, tiedostonimi tiedostosta script.db tai kaikki.

Seuraava komento lataa komentosarjat oletus- tai lähetysluokista.

nmap --script "default or broadcast" 192.168.56.10

Mikä vastaa:

nmap --script default,broadcast 192.168.56.10

Jos haluat ladata kaikki komentosarjat jättäen pois vuln-luokan komentosarjat, suorita tämä komento päätteessä.

nmap --script "not vuln" 192.168.56.10

Seuraava komento näyttää hieman monimutkaiselta, mutta se on helppo ymmärtää, se valitsee komentosarjat oletus- tai lähetysluokissa jättäen pois ne, joiden nimet alkavat ssh-:

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

Tärkeää on, että on mahdollista yhdistää luokkia, komentosarjojen nimiä, mukautettuja komentosarjojasi sisältävä hakemisto tai boolen lauseke skriptien lataamiseksi, kuten tämä:

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

Argumenttien välittäminen NSE-skripteille

Alla on esimerkki argumenttien välittämisestä skripteille –script-args-vaihtoehdolla:

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

Siirrä porttinumero -p nmap-vaihtoehdolla:

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

Yllä oleva komento suorittaa MySQL-tietokantapalvelimen suojausmäärityksen tarkastuksen CIS MySQL v1.0.2 -vertailuarvon osissa. Voit myös luoda omia hyödyllisiä mukautettuja tarkastustiedostoja muita MySQL-tarkastuksia varten.

Siinä se toistaiseksi. Löydät lisätietoja Nmap-manuaalisivulta tai katso NSE-käyttö.

Aloita omien NSE-skriptien kirjoittaminen tutustumalla tähän oppaaseen: https://nmap.org/book/nse-tutorial.html

Johtopäätös

Nmap on todella tehokas ja hyödyllinen työkalu, jota jokainen järjestelmän tai verkon ylläpitäjä tarvitsee tietoturva-arsenaalissaan – NSE vain lisää sen tehokkuutta.

Tässä artikkelissa esittelimme sinulle Nmap Script Enginen ja tarkastelimme, kuinka voit löytää ja käyttää eri luokkiin kuuluvia erilaisia skriptejä. Jos sinulla on kysyttävää, älä epäröi kirjoittaa meille takaisin alla olevan kommenttilomakkeen kautta.