Tutorial NSE (Nmap Scripting Engine)

NSE (Nmap Scripting Engine) mengaktifkan fungsi tambahan dalam proses pemindaian Nmap dengan mengizinkan skrip untuk tugas tambahan seperti kekerasan, deteksi kerentanan, atau eksploitasi.

Nmap Scripting Engine (NSE) berisi satu set skrip yang diklasifikasikan berdasarkan kategori, dan user dapat menulis skrip mereka sendiri dengan fitur khusus.

Tutorial ini menjelaskan dasar-dasar NSE, termasuk contoh praktis yang menunjukkan cara menggunakan Nmap Scripting Engine untuk meretas situs WordPress dan kredensial SSH atau menjalankan beberapa pemeriksaan keamanan tambahan.

Kategori dan jenis skrip NSE (Nmap Scripting Engine)

Skrip yang termasuk dalam NSE diklasifikasikan menurut kriteria yang berbeda berdasarkan saat eksekusi, tujuan skrip, dan metode.

Klasifikasi pertama berdasarkan terutama pada saat eksekusi mencakup 4 jenis skrip:

  • Prerule scripts dieksekusi sebelum fase pemindaian Nmap, misalnya, skrip yang digunakan untuk menghasilkan target baru.
  • Host scripts dijalankan selama proses pemindaian.
  • Service scripts dieksekusi setelah setiap kumpulan host dipindai, seperti skrip Host.
  • Postrule scripts dieksekusi setelah proses scan; skrip ini dapat mengeksploitasi kerentanan yang ditemukan selama proses pemindaian.

Klasifikasi kedua didasarkan pada tujuan dan keamanan skrip. Kategorikan skrip urutan menurut kriteria itu. Kategorinya adalah:

Auth: Skrip di bawah kategori ini berguna untuk menangani otentikasi. Di bawah kategori ini, Anda dapat menemukan skrip untuk melewati proses otentikasi, seperti http-method-tamper untuk memintas sumber daya yang dilindungi password dengan melakukan manipulasi kata kerja HTTP. Jika larik jalur untuk diperiksa tidak disetel, itu akan merayapi server web dan melakukan pemeriksaan terhadap sumber daya yang dilindungi password yang ditemukan.

Kategori Auth tidak menyertakan skrip brute force yang disimpan dalam kategori Brute. Namun, di bawah Auth, Anda dapat menemukan fungsi serupa seperti skrip http-default-accounts untuk menguji akses dengan kredensial default di berbagai aplikasi dan perangkat web.

Broadcast: Skrip ini memungkinkan untuk menemukan host dengan menyiarkan jaringan lokal.

Brute: Kategori ini berisi skrip untuk mengeksekusi serangan brute force seperti skrip http-wordpress-brute untuk menyerang situs WordPress atau rsync-brute untuk melakukan serangan terhadap protokol rsync.

Default: Kategori ini mencakup skrip yang memenuhi persyaratan berdasarkan kecepatan, kegunaan, verbositas, keandalan, intrusi, dan privasi. Skrip di bawah kategori ini harus selesai dengan cepat dan perlu melaporkan informasi berharga tentang target. Output harus dapat dibaca dan terbatas pada informasi yang akurat. Skrip intrusif yang cenderung merusak sistem atau service target kurang cocok untuk kategori ini. 

Penemuan: Skrip di bawah kategori ini mencoba menemukan lebih banyak tentang target dengan menanyakan sumber publik, perangkat yang mendukung SNMP, direktori, dan sejenisnya. Skrip http-affiliate-id mengambil ID jaringan afiliasi seperti Google AdSense atau Analytics, Amazon, dll., dari halaman web dan dapat digunakan untuk mengidentifikasi halaman dengan pemilik yang sama.

DOS: Skrip ini berguna untuk menguji kerentanan target sebelum serangan DOS; skrip ini rentan terhadap kerusakan sistem atau service yang rentan.

Eksploitasi: Skrip dalam kategori ini digunakan untuk mengeksploitasi kerentanan pada target.

Eksternal: Kategori ini berisi skrip yang melibatkan sumber daya eksternal selama proses pemindaian, seperti permintaan informasi basis data pada target. Skrip yang berbagi informasi tentang proses pemindaian dengan database pihak ketiga ditempatkan dalam kategori ini. IP – geolocation-geoplugin , misalnya, mencoba menentukan lokasi target fisik menggunakan http://www.geoplugin.com/.

Fuzzer: kategori ini berisi skrip untuk mengirim bidang acak secara besar-besaran untuk menemukan kerentanan untuk mengeksploitasi buffer overflow, DOS (denial of service), skrip lintas situs, atau injeksi SQL.

Mengganggu: Skrip dalam kategori ini cenderung merusak target dengan menggunakan sejumlah besar sumber daya atau terdeteksi sebagai aktivitas berbahaya.

Malware: Skrip malware dirancang untuk mendeteksi kemungkinan keberadaan malware atau pintu belakang pada target.

Aman: Berlawanan dengan skrip yang mengganggu, skrip aman yang tidak mungkin menabrak target, yang tidak memerlukan banyak sumber daya dan tidak mungkin terdeteksi sebagai berbahaya oleh target, dapat ditempatkan di sini. Skrip di bawah kategori ini terutama berhubungan dengan tugas penemuan.

Versi: Skrip versi memperluas fitur versi Nmap; contohnya adalah script docker-version yang digunakan untuk mendeteksi versi service docker.

Vuln: Skrip Vuln berguna untuk menguji kerentanan pada target secara akurat.

Skrip NSE terletak di /usr/share/nmap/scripts, dan skrip baru apa pun yang ingin Anda tambahkan (mis., Vulscan ) harus ditempatkan di sana. 

Cara menggunakan Nmap Scripting Engine (NSE)

NSE disertakan dalam Nmap, untuk mulai menginstal Nmap jika Anda belum memilikinya, dengan menjalankan (pada distribusi Linux berbasis Debian dan Debian):

sudo apt install nmap

Catatan: Pada distribusi Linux berbasis RedHat, Anda dapat menjalankan:

yum install nmap

Setelah instalasi, atau jika Anda sudah menginstal Nmap, jalankan perintah berikut untuk memperbarui database Nmap Scripting Engine:

nmap --script-updatedb

Nmap memungkinkan sintaks yang berbeda untuk menjalankan scan; contoh berikut menunjukkan pemindaian Nmap dengan deteksi versi, memanggil skrip http-WordPress-brute dan meneruskan sebagai argumen lokasi kamus. Ini adalah kemungkinan sintaks ketika Anda tahu skrip apa yang ingin Anda jalankan.

Pada contoh pertama, saya akan menunjukkan bagaimana Nmap NSE dapat meretas situs WordPress dengan brute force menggunakan skrip http-wordpress-brute.nse. Dalam contoh ini, situs web yang diretas adalah Noticias Mercedes yang saya miliki.

nmap -sV --script http-wordpress-brute --script-args 'userdb=users.txt,passdb=pass.txt' noticiasmercedes.com

Di mana:

Nmap -sV: memanggil nmap dan mengaktifkan deteksi versi.

–script http-wordpress-brute: memanggil script http-wordpress-brute untuk memaksa situs wordpress.

–script-args ‘userdb=users.txt,passdb=pass.txt’: menentukan kamus user dan password, dalam hal ini, saya membuat file users.txt dan pass.txt yang berisi data dummy dan kredensial yang benar, file terletak di direktori yang sama di mana Nmap dieksekusi, Anda juga dapat menentukan jalurnya:–script-args ‘userdb=/path/to/dicionaty/users.txt,passdb=/path/to/dicionaty/pass.txt’

Seperti yang Anda lihat di output, password berhasil diretas:

Untuk contoh berikut, mari kita asumsikan Anda tidak yakin tentang skrip yang ingin Anda jalankan terhadap target Anda, tetapi Anda ingin membatasi pemindaian Anda untuk pemeriksaan keamanan. Dalam hal ini, Anda dapat menginstruksikan Nmap untuk menjalankan semua skrip yang termasuk dalam kategori Aman atau Default, atau keduanya.

Contoh berikut menunjukkan cara menjalankan semua skrip yang termasuk dalam kategori Default dan Aman dengan sintaks yang ramah user:

nmap --script "default and safe" noticiasmercedes.com

Contoh terakhir menunjukkan cara memecahkan kredensial SSH menggunakan NSE:

nmap --script ssh-brute.nse localhost

Seperti dengan http-WordPress-brute, dengan skrip ini, Anda juga dapat menentukan kamus dengan mengabaikan argumen:

--script-args userdb=users.txt,passdb=pass.txt

Di mana users.txt dan pass.txt harus diganti dengan kamus Anda (dan jalur jika diperlukan),

Artikel berikut menyertakan contoh NSE tambahan:

Saya harap Anda menemukan artikel di NSE ini bermanfaat; ikuti terus LinuxHint untuk tips dan tutorial Linux lainnya.

Related Posts