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.