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.