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
dalamnmap-service-probes
, atau anda dapat menspesifikasikan--allports
untuk memeriksa seluruh port tanpa mengindahkan direktifExclude
.-
--version-intensity
(Menset intensitas pemeriksaan versi)<intensity>
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 direktifnmap-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.