Nmap OS detection dan service detection adalah dua fitur yang mengubah daftar port terbuka menjadi gambaran nyata tentang apa yang berjalan di sebuah host. Dengan keduanya, Anda bisa tahu bahwa port 443 bukan sekadar "HTTPS", melainkan versi web server tertentu di atas sistem operasi tertentu. Informasi ini penting bagi tim keamanan untuk inventarisasi aset dan memprioritaskan penambalan.
Apa Itu Service Detection dan OS Detection di Nmap?
Setelah menemukan port yang terbuka, Nmap biasanya hanya menebak layanan dari nomor port (misalnya port 22 dianggap SSH). Tebakan itu berasal dari basis data nmap-services dan sering keliru, karena administrator bebas memindahkan layanan ke port lain. Dua fitur berikut menggantikan tebakan dengan pengamatan langsung.
- Service and version detection (opsi -sV) menanyai port yang terbuka dan mencocokkan jawabannya dengan basis data pola. Hasilnya berupa nama aplikasi, nomor versi, dan terkadang informasi tambahan seperti hostname atau tipe perangkat.
- OS detection (opsi -O) menebak sistem operasi dan perangkat dari cara tumpukan jaringan (network stack) host merespons paket yang dikirim Nmap.
Keduanya bersifat aktif: Nmap benar-benar mengirim paket ke target. Karena itu, keduanya hanya boleh dijalankan pada sistem milik Anda sendiri atau yang sudah memberi izin tertulis. Dasar pemindaian host dan port dibahas di tutorial Nmap untuk pemula.
Bagaimana Cara Kerja Service Detection (-sV)?
Menurut dokumentasi resmi Nmap, deteksi versi berjalan setelah fase penemuan port. Nmap mengirim serangkaian probe yang tersimpan di berkas nmap-service-probes, lalu membandingkan balasan layanan dengan ekspresi pencocokan di berkas yang sama. Jika ada yang cocok, Nmap melaporkan protokol, nama aplikasi, versi, dan bila tersedia, string CPE yang dipakai untuk memetakan produk ke database kerentanan.
Intensitas pemindaian
Setiap probe punya nilai kelangkaan dari 1 sampai 9. Opsi --version-intensity menerima angka 0 sampai 9 dan secara bawaan bernilai 7. Semakin tinggi angkanya, semakin banyak probe yang dicoba dan semakin besar peluang layanan teridentifikasi, dengan harga waktu pemindaian yang lebih lama. Dua pintasan tersedia: --version-light setara intensitas 2 dan --version-all setara intensitas 9.
Hal lain yang perlu diketahui
Probe juga dapat mengubah status port open|filtered menjadi terbuka jika ternyata ada layanan yang menjawab. Untuk layanan RPC, Nmap menjalankan RPC grinder secara otomatis, dan layanan SSL dikenali bila Nmap dibangun dengan dukungan OpenSSL. Port TCP 9100 dikecualikan secara bawaan karena sebagian printer bermasalah ketika menerima probe.
Bagaimana Nmap OS Detection Mengenali Sistem Operasi?
Nmap OS detection memakai teknik TCP/IP stack fingerprinting. Setiap sistem operasi mengimplementasikan standar jaringan dengan sedikit perbedaan: urutan nomor awal TCP (ISN), dukungan dan urutan opsi TCP, ukuran jendela awal, pola IP ID, dan banyak lagi. Nmap mengirim hingga 16 probe TCP, UDP, dan ICMP yang dirancang untuk memunculkan perbedaan itu, lalu membandingkan sidik jari hasilnya dengan basis data nmap-os-db. Dokumentasi resmi menyebut basis data tersebut berisi lebih dari 2.600 sidik jari yang dikenal, lengkap dengan klasifikasi vendor, OS, generasi, tipe perangkat, dan CPE.
Agar hasilnya akurat, Nmap idealnya menemukan minimal satu port TCP terbuka dan satu port TCP tertutup. Tanpa keduanya, tebakan menjadi kurang pasti. Opsi pendukung yang sering dipakai:
- --osscan-limit melewati host yang tidak memenuhi syarat port tersebut, sehingga menghemat waktu pada pemindaian banyak host.
- --osscan-guess (atau --fuzzy) menampilkan tebakan terdekat beserta persentase keyakinan ketika tidak ada kecocokan sempurna.
- --max-os-tries mengatur berapa kali Nmap mencoba. Bawaannya lima kali dalam kondisi baik dan dua kali dalam kondisi lain.
Pemindaian OS juga melaporkan prediktabilitas urutan TCP dan perkiraan uptime dari opsi TCP timestamp. Mode -A menggabungkan deteksi OS, deteksi versi, dan sejumlah skrip bawaan dalam satu perintah, tetapi lebih berisik di jaringan.
Contoh Penggunaan yang Aman di Lingkungan Lab
Pemilik proyek Nmap menyediakan host scanme.nmap.org untuk latihan pemindaian dengan Nmap, dengan permintaan tidak lebih dari sekitar selusin pemindaian per hari dan tanpa percobaan eksploitasi. Selain itu Anda bebas memakai mesin virtual di lab cyber security di WSL dan VirtualBox milik sendiri.
nmap -sV scanme.nmap.org
sudo nmap -O scanme.nmap.org
sudo nmap -sV --version-light scanme.nmap.orgPerintah pertama mengidentifikasi layanan dan versinya. Perintah kedua mengaktifkan deteksi OS, yang umumnya memerlukan hak akses administrator (root) karena Nmap mengirim paket mentah. Perintah ketiga menukar sebagian ketelitian dengan kecepatan. Saat membaca hasil, perhatikan kolom VERSION dan baris "OS details" atau "Aggressive OS guesses"; keduanya adalah perkiraan, bukan kepastian.
Cara Membaca Hasil dan Keterbatasannya
Hasil deteksi adalah bukti pendukung, bukan fakta mutlak. Beberapa hal yang membuatnya meleset:
- Firewall, load balancer, atau proxy di depan server membuat sidik jari yang terbaca adalah milik perangkat perantara, bukan server sebenarnya.
- Banner layanan bisa dimodifikasi administrator, sehingga versi yang dilaporkan tidak selalu versi asli.
- Perangkat virtual, kontainer, dan sistem yang sudah dikeraskan dapat menghasilkan sidik jari yang tidak ada di basis data.
- Hasil dengan persentase keyakinan rendah sebaiknya dikonfirmasi dengan sumber lain, misalnya inventaris aset atau pemeriksaan langsung oleh pemilik sistem.
Dalam praktik, nomor versi hasil -sV dicocokkan dengan daftar kerentanan publik, misalnya lewat identifier CVE. Langkah berikutnya biasanya menjalankan skrip pemeriksaan lewat Nmap Scripting Engine atau pemindai kerentanan khusus.
Sisi Bertahan: Mengurangi Informasi yang Bocor
Bagi pembela, hasil Nmap adalah gambaran apa yang dilihat pihak luar. Beberapa langkah praktis:
- Matikan layanan yang tidak dipakai dan tutup port yang tidak perlu di firewall.
- Batasi informasi versi pada banner layanan, misalnya dengan mengatur ServerTokens di Apache atau server_tokens di Nginx.
- Terapkan pembaruan keamanan secara teratur. Menyembunyikan versi tidak menambal kerentanan; itu hanya satu lapis tambahan.
- Jalankan Nmap terhadap aset sendiri secara berkala dan bandingkan dengan inventaris. Layanan yang tidak Anda kenal patut diselidiki.
- Pantau lonjakan koneksi dari satu sumber ke banyak port; pada IDS pola ini dikenali sebagai aktivitas pemindaian.
Pemindaian tanpa izin dapat berujung pada masalah hukum. Dokumentasi Nmap sendiri menyarankan izin tertulis sebelum memindai jaringan pihak lain. Di Indonesia, akses tanpa hak ke sistem elektronik diatur dalam UU ITE, seperti dijelaskan di artikel tentang hukum hacking dan UU ITE.
Pertanyaan yang Sering Diajukan
Apakah Nmap OS detection selalu akurat?
Tidak. Nmap memberikan tebakan terbaik berdasarkan sidik jari dan menampilkan persentase keyakinan. Akurasi turun bila tidak ada port terbuka dan tertutup, atau bila ada firewall dan proxy di jalur pemindaian.
Mengapa deteksi OS memerlukan hak root?
Karena Nmap mengirim paket TCP, UDP, dan ICMP yang dirancang khusus (raw packet), dan sistem operasi umumnya membatasi pembuatan paket semacam itu bagi pengguna dengan hak istimewa.
Apa beda -sV dan -O?
Opsi -sV mengidentifikasi aplikasi dan versi yang berjalan pada port terbuka, sedangkan -O menebak sistem operasi host secara keseluruhan. Keduanya saling melengkapi.
Apakah boleh memindai website orang lain untuk belajar?
Tidak tanpa izin. Gunakan lab sendiri atau host yang memang mengizinkan, seperti scanme.nmap.org, dan patuhi batas penggunaannya.
Kesimpulan
Service detection dan Nmap OS detection mengubah daftar port mentah menjadi informasi yang bisa ditindaklanjuti: aplikasi apa, versi berapa, dan di atas sistem operasi apa. Gunakan hasilnya sebagai petunjuk, verifikasi dengan sumber lain, dan selalu pastikan Anda punya izin sebelum memindai. Jika ingin mempelajari penggunaan Nmap dan alat keamanan lain secara terarah di lingkungan lab, lihat kursus di Linuxhackingid.
Every article is reviewed by the practice lead who ran the work before it is published.
