Deteksi Versi dan Layanan

Arahkan Nmap ke mesin remote dan ia dapat memberitahu anda bahwa port 25/tcp, 80/tcp, dan 53/udp terbuka. Dengan menggunakan database nmap-services yang berisi lebih dari 2.200 layanan yang dikenal, Nmap akan melaporkan bahwa port tersebut mungkin adalah server mail (SMTP), server web (HTTP), dan name server (DNS). Pencocokan ini biasanya akurat- sebagian besar daemon yang mendengarkan TCP port 25 adalah, mail server. Namun demikian, anda tidak seharusnya terpaku pada hal ini! Orang-orang dapat dan menjalankan layanan pada port-port aneh.

Bahkan bila Nmap benar, dan server hipotetis di atas menjalankan server SMTP, HTTP, dan DNS, itu bukanlah informasi yang banyak. Ketika melakukan vulnerability assessment (atau inventori jaringan) atas perusahaan atau klien anda, anda benar-benar ingin mengetahui server mail dan DNS mana serta versi apa yang dijalankan. Dengan memiliki angka versi yang akurat akan membantu secara dramatis dalam menentukan eksploitasi yang tepat terhadap server tersebut. Deteksi versi membantu anda memperoleh informasi ini.

Setelah port TCP dan/atau UDP ditemukan dengan menggunakan salah satu metode scan, deteksi versi menginterogasi port tersebut untuk menentukan lebih jauh mengenai apa yang sedang berjalan. Database nmap-service-probes berisikan probe untuk melakukan query ke sejumlah layanan dan ekspresi pencocokan untuk mengenali dan memproses respon. Nmap berusaha menentukan protokol layanan (misalnya FTP, SSH, Telnet, HTTP), nama aplikasi (misalnya ISC BIND, Apache httpd, Solaris telnetd), angka versi, nama host, jenis device (misal printer, router), keluarga SO (misal Windows, Linux) dan terkadang detil lainnya seperti apakah X server terbuka untuk koneksi, versi protokol SSH, atau nama user KaZaA). Tentu saja, kebanyakan layanan tidak memberikan informasi ini. Jika Nmap dikompilasi dengan dukungan OpenSSL, ia akan koneksi ke server SSL untuk mendapatkan layanan yang berada di belakang lapisan enkripsi. Ketika ditemukan layanan RPC, Nmap RPC grinder (-sR) secara otomatis digunakan untuk menentukan program dan angka versi RPC. Beberapa port UDP diinformasikan dalam status open|filtered setelah scan port UDP tidak dapat menentukan apakah port terbuka atau disaring. Deteksi versi akan berusaha memperoleh respon dari port ini (sebagaimana dari port terbuka), dan merubah status port menjadi terbuka bila ia berhasil. Port TCP open|filtered diperlakukan dalam cara yang sama. Perhatikan bahwa opsi -A di antaranya mengaktifkan deteksi versi. Sebuah paper yang mendokumentasikan cara kerja, penggunaan, dan kustomisasi deteksi versi tersedia di https://nmap.org/book/vscan.html.

Bila Nmap menerima respon dari sebuah layanan namun tidak dapat mencocokkannya ke database, ia akan mencetak fingerprint khusus dan sebuah URL untuk menyerahkannya bila anda tahu secara pasti apa yang berjalan pada port tersebut. Mohon meluangkan waktu beberapa menit untuk menyerahkannya sehingga dapat bermanfaat bagi semua orang. Berkat penyerahan ini, Nmap memiliki sekitar 3.000 pola yang sesuai untuk lebih dari 350 protokol seperti SMTP, FTP, HTTP, dsb.

Deteksi versi diaktifkan dan dikendalikan dengan opsi-opsi berikut:

-sV (Deteksi Versi)

Mengaktifkan deteksi versi, seperti yang dijelaskan di atas. Anda dapat pula menggunakan -A, yang salah satunya mengaktifkan deteksi versi.

--allports (Sertakan seluruh port dalam deteksi versi)

Secara baku, deteksi versi Nmap melewati TCP port 9100 karena beberapa printer akan mencetak segala yang dikirim ke port itu, berakibat puluhan halaman request HTTP GET, sesi biner SSL, dsb. Perilaku ini dapat diubah dengan memodifikasi atau menghapus direktif Exclude dalam nmap-service-probes, atau anda dapat menspesifikasikan --allports untuk memeriksa seluruh port tanpa mengindahkan direktif Exclude.

--version-intensity <intensity> (Menset intensitas pemeriksaan versi)

Ketika melakukan pemeriksaan versi (-sV), Nmap mengirim serangkaian probe, dan setiap probe diberi nilai antara satu dan sembilan. Probe dengan nomor rendah efektif terhadap beragam layanan umum, sementara nomor lebih tinggi jarang berguna. Level intensitas menspesifikasikan probe mana yang harus diaplikasikan. Semakin tinggi angkanya, semakin mungkin layanan diidentifikasi dengan benar. Namun demikian, scan dengan intensitas tinggi membutuhkan waktu yang lebih lama. Intensitas harus antara 0 dan 9. Nilai bakunya adalah 7. Ketika sebuah probe didaftarkan ke port target melalui direktif nmap-service-probes ports, probe tersebut akan dicoba tanpa memperdulikan level intensitas. Hal ini memastikan bahwa probe DNS akan selalu dicoba terhadap sembarang port terbuka 53, probe SSL akan dilakukan terhadap port 443, dst.

--version-light (Aktifkan mode ringan)

Opsi ini merupakan alias dari --version-intensity 2. Mode ringan ini membuat pemeriksaan versi lebih cepat, namun mungkin kurang dapat mengidentifikasi layanan.

--version-all (Coba semua probe tunggal)

Sebuah alias bagi --version-intensity 9, memastikan bahwa setiap probe tunggal dicoba terhadap setiap port.

--version-trace (Melacak aktivitas pemeriksaan versi)

Hal ini membuat Nmap mencetak info debugging yang ekstensif tentang pemeriksaan versi yang sedang dilakukan. Ia merupakan subset dari --packet-trace.

-sR (RPC scan)

Metode ini bekerja sama dengan beragam metode pemeriksaan port Nmap. Ia menggunakan seluruh port TCP/UDP yang terbuka dan membanjiri mereka dengan perintah NULL program SunRPC dalam usaha menentukan apakah mereka adalah port RPC, dan bila ya, menentukan program dan nomor versinya. Karenanya anda dapat secara efektif memperoleh info yang sama dengan rpcinfo -p bahkan bila portmapper target berada di belakang firewall (atau dilindungi oleh TCP wrapper). Saat ini tidak dapat menggunakan umpan dalam RPC scan. Ia secara otomatis diaktifkan sebagai bagian pemeriksaan versi (-sV) jika anda memintanya. Oleh karena deteksi versi menyertakannya dan jauh lebih lengkap, -sR jarang dibutuhkan.