Nmap Scripting Engine (NSE) adalah fitur Nmap yang memungkinkan pemindaian jaringan diperluas dengan skrip kecil untuk mengumpulkan informasi, memeriksa konfigurasi, dan mendeteksi kerentanan. Berkat NSE, Nmap tidak hanya melaporkan port terbuka, tetapi juga bisa menjawab pertanyaan seperti sertifikat TLS apa yang dipakai sebuah server atau layanan apa yang salah konfigurasi. Artikel ini menjelaskan konsep, kategori, dan cara memakainya secara bertanggung jawab.
Apa Itu Nmap Scripting Engine?
Menurut dokumentasi resmi, NSE adalah salah satu fitur Nmap yang paling kuat dan fleksibel. Pengguna dapat menulis dan berbagi skrip untuk mengotomatiskan beragam tugas jaringan, dan skrip dijalankan secara paralel. Skrip ditulis dalam bahasa pemrograman Lua yang tertanam di dalam Nmap (versi 5.4 pada dokumentasi terkini). Kegunaan NSE meliputi penemuan jaringan, deteksi versi yang lebih canggih, deteksi kerentanan dan backdoor, serta, pada skrip tertentu, pemeriksaan yang bersifat mengeksploitasi. Proyek Nmap menegaskan bahwa NSE tidak dimaksudkan menjadi kerangka eksploitasi seperti Metasploit.
Hasil skrip terintegrasi ke keluaran normal dan XML Nmap, sehingga mudah diproses lebih lanjut. Halaman daftar resmi di nmap.org/nsedoc saat ini mencatat 619 skrip dan 139 pustaka NSE, dan angkanya terus bertambah seiring pembaruan Nmap.
Kategori Skrip NSE yang Perlu Dipahami
Setiap skrip diberi satu atau lebih kategori. Memahami kategori adalah cara paling penting untuk menghindari akibat yang tidak diinginkan, karena tidak semua skrip aman dijalankan di semua lingkungan.
- default: skrip yang dipilih karena cepat, berguna, tidak terlalu berisik, andal, dan berdampak kecil pada privasi. Ini yang dijalankan opsi -sC.
- safe: skrip yang tidak dirancang untuk merusak layanan atau mengeksploitasi apa pun.
- discovery: skrip yang mengumpulkan informasi tentang jaringan, misalnya data registri publik atau layanan direktori.
- version: skrip yang memperluas deteksi versi dan hanya berjalan bersama opsi -sV.
- vuln: skrip yang memeriksa kerentanan tertentu.
- auth, brute, intrusive, dos, exploit, fuzzer, malware, broadcast, external: kategori dengan dampak lebih besar atau tujuan khusus.
Dokumentasi memberi peringatan jelas. Skrip intrusive dapat membuat layanan crash, menghabiskan banyak sumber daya, atau tampak berbahaya bagi administrator. Skrip dos dapat menjatuhkan layanan yang rentan, skrip fuzzer lambat dan boros bandwidth, dan skrip external mengirim data ke layanan pihak ketiga yang dapat mencatat alamat IP Anda dan target. Memakai argumen all berisiko karena mencakup skrip eksploitasi, brute force, dan DoS.
Cara Menggunakan NSE dengan Aman
Opsi dasar NSE sangat sederhana. Contoh berikut hanya ditujukan ke scanme.nmap.org, host yang disediakan proyek Nmap untuk latihan, atau ke lab milik Anda sendiri.
nmap -sC scanme.nmap.org
nmap --script=http-title scanme.nmap.org
nmap --script-help http-titlePerintah pertama menjalankan kumpulan skrip kategori default. Perintah kedua menjalankan satu skrip bernama http-title, yang menampilkan judul halaman utama web server. Perintah ketiga menampilkan penjelasan skrip tanpa memindai apa pun, dan kebiasaan membaca --script-help sebelum menjalankan skrip baru adalah praktik yang sangat baik.
Opsi penting lain
- --script menerima nama kategori, nama berkas, direktori, bahkan ekspresi Boolean dengan and, or, not, serta wildcard yang diberi tanda kutip seperti "http-*".
- --script-args dan --script-args-file meneruskan argumen ke skrip.
- --script-trace mencatat komunikasi tingkat skrip untuk debugging.
- --script-updatedb membangun ulang basis data skrip, hanya perlu setelah Anda menambah atau menghapus skrip.
- -A mengaktifkan pemindaian skrip bersama deteksi OS dan versi.
Contoh skrip yang aman dan umum dipakai: http-title (kategori default, discovery, safe) dan ssl-cert (default, safe, discovery), yang membaca informasi sertifikat TLS server seperti masa berlaku dan nama subjek.
Empat Fase Eksekusi Skrip
NSE menjalankan skrip pada beberapa fase tergantung fungsi pemicunya.
- Prerule berjalan sebelum pemindaian dimulai, cocok untuk pencarian tingkat jaringan seperti DHCP atau DNS-SD.
- Host berjalan sekali per host setelah penemuan host, pemindaian port, dan deteksi versi atau OS.
- Service adalah jenis paling umum dan berjalan terhadap layanan yang cocok, bahkan beberapa kali pada satu host.
- Postrule berjalan setelah seluruh target selesai, berguna untuk perbandingan antarhost dan pemformatan keluaran.
Skrip NSE tidak berjalan dalam sandbox. Dokumentasi Nmap menyarankan hanya memakai skrip dari sumber tepercaya atau skrip yang sudah Anda periksa isinya, karena skrip dapat merusak sistem atau membocorkan privasi. Bahkan skrip default dapat tergolong mengganggu, sehingga jangan jalankan terhadap jaringan tanpa izin.
Manfaat NSE bagi Tim Keamanan
Bagi tim yang bertugas bertahan, NSE membantu pekerjaan rutin: memeriksa masa berlaku sertifikat di seluruh aset, memastikan layanan lama sudah dinonaktifkan, dan menemukan konfigurasi yang menyimpang dari standar internal. Dalam penetration testing, NSE mempercepat tahap pengumpulan informasi sebelum analisis kerentanan yang lebih mendalam, sebagaimana dibahas dalam artikel tahapan penetration testing. Hasil NSE bukan pengganti pemindai kerentanan penuh; untuk cakupan yang luas dan pelaporan terstruktur, lihat penjelasan Nessus dan deteksi layanan dan OS di Nmap sebagai pelengkap.
Etika dan hukum tetap yang utama. Dokumentasi hukum Nmap menyarankan izin tertulis dari pemilik jaringan sebelum memindai, dan di Indonesia akses tanpa hak ke sistem elektronik berisiko terkena UU ITE. Tulis ruang lingkup, jadwal, dan skrip yang diizinkan dalam dokumen persetujuan sebelum pengujian dimulai.
Pertanyaan yang Sering Diajukan
Apakah NSE sama dengan Metasploit?
Bukan. NSE adalah bagian dari Nmap untuk otomatisasi pemindaian dan pemeriksaan. Proyek Nmap sendiri menyatakan tidak berniat menjadikan NSE kerangka eksploitasi seperti Metasploit.
Apakah menjalankan -sC aman?
Skrip kategori default dipilih agar relatif tidak mengganggu, tetapi dokumentasi menyatakan bahwa skrip default pun bisa tergolong intrusif. Jalankan hanya pada sistem yang Anda miliki atau yang sudah memberi izin.
Bahasa apa yang dipakai untuk menulis skrip NSE?
Lua. Skrip memakai pustaka NSE bawaan Nmap untuk protokol seperti HTTP, SSH, dan SMB, sehingga penulis skrip tidak perlu membangun semuanya dari nol.
Bagaimana cara melihat daftar skrip yang tersedia?
Buka referensi resmi di nmap.org/nsedoc atau jelajahi direktori skrip pada instalasi Nmap Anda, lalu baca deskripsi tiap skrip dengan --script-help.
Kesimpulan
Nmap Scripting Engine mengubah Nmap menjadi platform otomatisasi pemeriksaan jaringan yang fleksibel, selama Anda memahami kategori skripnya dan menjalankannya dengan izin. Mulailah dari skrip yang aman, baca dokumentasinya, dan uji di lab sendiri. Jika Anda ingin belajar memakai Nmap dan alat keamanan lain secara terstruktur, jelajahi kursus di Linuxhackingid.
Every article is reviewed by the practice lead who ran the work before it is published.
