Nmap Scripting Engine (NSE)

Nmap Scripting Engine (NSE) adalah salah satu fitur Nmap yang paling powerful dan fleksibel. Ia memungkinkan user untuk menulis (dan membagi) skrip sederhana (menggunakan bahasa pemrograman Lua, ) untuk mengotomasi beragam tugas jaringan. Skrip-skrip tersebut dieksekusi secara parale dengan kecepatan dan efisiensi yang anda harapkan dari Nmap. User dapat mengandalkan beragam skrip yang didistribusikan dengan Nmap, atau menulis sendiri sesuai kebutuhan.

Tugas-tugas yang kami pikirkan ketika membuat sistem termasuk penemuan jaringan, deteksi versi yang lebih canggih, deteksi kerentanan. NSE bahkan dapat digunakan untuk eksploitasi kerentanan.

Untuk mencerminkan penggunaan yang berbeda dan untuk memudahkan pilihan skrip yang diinginkan, setiap skrip berisi field yang mengasosiasikannya dengan satu atau lebih kategori. Kategori yang ada saat ini adalah safe, intrusive, malware, version, discovery, vuln, auth, and default. These are all described at https://nmap.org/book/nse-usage.html#nse-categories.

Nmap Scripting Engine dijelaskan lebih rinci di https://nmap.org/book/nse.html dan dikendalikan oleh opsi-opsi berikut ini:

-sC

Melakukan scan skrip menggunakan sejumlah skrip baku. Ia merupakan ekivalen --script=default. Beberapa skrip dalam kategori ini dianggap intrusif dan tidak seharusnya dijalankan terhadap jaringan target tanpa ijin.

--script <script-categories>|<directory>|<filename>|all

Menjalankan scan skrip (seperti -sC) menggunakan daftar kategori skrip, skrip individual, atau direktori berisikan skrip, aih-alih menggunakan set baku. Nmap akan mencoba dulu menginterpretasikan argumen sebagai kategori, kemudian sebagai file atau direktori. Skrip atau direktori skrip dapat dispesifikasikan dengan path absolut atau relatif. Path absolut digunakan seperti yang diberikan. Path relatif akan dicari dalam tempat-tempat berikut hingga ditemukan : --datadir/; $NMAPDIR/; ~/.nmap/ (tidak dicari pada Windows); NMAPDATADIR/ or ./. A scripts/ subdirektori juga dicari untuk setiap direktori ini.

Jika diberikan sebuah direktori dan ditemukan, Nmap memuat seluruh skrip NSE (semua nama file yang berakhiran dengan .nse) dari direktori tersebut. Nama file tanpa ekstensi nse akan diabaikan. Nmap tidak mencari secara rekursif ke subdirektori untuk mencari skrip. Jika diberikan nama file individual, ekstensi file tidak perlu harus nse.

Skrip Nmap secara baku disimpan dalam subdirektori scripts direktori data Nmap (lihat https://nmap.org/book/data-files.html). Demi efisiensi, skrip diindeks dalam database yang disimpan dalam scripts/script.db. yang mendaftar kategori atau kategori-kategori yang dimiliki skrip. Berikan argumen all untuk menjalankan seluruh skrip dalam database skrip Nmap.

Skrip berbahaya tidak dijalankan dalam sandbox dan karenanya dapat merusak sistem anda atau menggangu privasi anda. Jangan pernah menjalankan skrip dari pihak ketiga kecuali anda mempercayai penulisnya atau telah mengaudit skrip tersebut dengan cermat.

--script-args <name1>=<value1>,<name2>={<name3>=<value3>},<name4>=<value4>

Membolehkan anda memberik argumen ke skrip NSE. Argument diberikan sebagai pasangan name=value. Argumen yang diberikan diproses dan disimpan dalam tabel Lua, yang dapat diakses oleh semua skrip. Nama-nama dianggap sebagai string (yang harus berupa nilai alfanumerik) dan digunakan sebagai kunci dalam argument-table. Nilai dapat berupa string atau tabel (dilingkupi oleh ‘{’ dan ‘}’). Sebagai contoh, anda dapat memberikan argumen : user=bar,pass=foo,whois={whodb=nofollow+ripe}. Argumen string secara potensial digunakan oleh beberapa skrip; subtables normalnya hanya digunakan oleh satu skrip. Dalam skrip yang menggunakan subtable, ia dinamakan sesuai dengan nama skripnya (seperti whois dalam contoh ini).

--script-trace

Opsi ini melakukan apa yang dilakukan oleh --packet-trace, namun satu tingkat ISO lebih tinggi. Jika diberikan opsi ini seluruh komunikasi incoming dan outgoing yang dilakukan skrip akan dicetak. Informasi yang ditampilkan mencakup protokol komunikasi, sumber, target dan data yang ditransmisikan. Jika lebih dari 5% seluruh data yang ditransmisikan tidak dapat dicetak, maka output trace dalam format hex. --packet-trace juga mengaktifkan tracing skrip.

--script-updatedb

Opsi ini mengupdate database skrip yang ditemukan dalam scripts/script.db yang digunakan Nmap untuk menentukan skrip baku dan kategori yang tersedia. Opsi ini digunakan bila anda menambah atau mengurangi skrip NSE dari direktori baku scripts atau bila anda merubah kategori sembarang skrip. Opsi ini biasanya digunakan sendirian: nmap --script-updatedb.