Anda di halaman 1dari 50

NMAP

https://nmap.org/man/id/man-author.html

Nmap (Network Mapper) merupakan sebuah tool open source untuk eksplorasi dan audit
keamanan jaringan. Ia dirancang untuk memeriksa jaringan besar secara cepat, meskipun ia dapat
pula bekerja terhadap host tunggal. Nmap menggunakan paket IP raw dalam cara yang canggih
untuk menentukan host mana saja yang tersedia pada jaringan, layanan (nama aplikasi dan versi)
apa yang diberikan, sistem operasi (dan versinya) apa yang digunakan, apa jenis firewall/filter
paket yang digunakan, dan sejumlah karakteristik lainnya. Meskipun Nmap umumnya digunakan
untuk audit keamanan, namun banyak administrator sistem dan jaringan menganggapnya
berguna untuk tugas rutin seperti inventori jaringan, mengelola jadwal upgrade layanan, dan
melakukan monitoring uptime host atau layanan.

Output Nmap adalah sebuah daftar target yang diperiksa, dengan informasi tambahannya
tergantung pada opsi yang digunakan. Hal kunci di antara informasi itu adalah tabel port
menarik. Tabel tersebut berisi daftar angka port dan protokol, nama layanan, dan status.
Statusnya adalah terbuka (open), difilter (filtered), tertutup (closed), atau tidak
difilter (unfiltered). Terbuka berarti bahwa aplikasi pada mesin target sedang
mendengarkan (listening) untuk koneksi/paket pada port tersebut. Difilter berarti bahwa
sebuah firewall, filter, atau penghalang jaringan lainnya memblokir port sehingga Nmap tidak
dapat mengetahui apakah ia terbuka atau tertutup. Tertutup port tidak memiliki aplikasi
yang sedang mendengarkan, meskipun mereka dapat terbuka kapanpun. Port digolongkan
sebagai tidak difilter ketika mereka menanggapi probe Nmap, namun Nmap tidak dapat
menentukan apakah mereka terbuka atau tertutup. Nmap melaporkan kombinasi status open|
filtered dan closed|filtered ketika ia tidak dapat menentukan status manakah yang
menggambarkan sebuah port. Tabel port mungkin juga menyertakan detil versi software ketika
diminta melakukan pemeriksaan versi. Ketika sebuah pemeriksaan protokol IP diminta (-sO),
Nmap memberikan informasi pada protokol IP yang didukung alih-alih port-port yang
mendengarkan.

Selain tabel port yang menarik, Nmap dapat pula memberikan informasi lebih lanjut tentang
target, termasuk nama reverse DNS, prakiraan sistem operasi, jenis device, dan alamat MAC.

Pemeriksaan Nmap yang umum ditunjukkan dalam Example 1. Argumen yang digunakan pada
contoh ini hanyalah -A, untuk memeriksa sistem operasi dan versi, pemeriksaan skrip, dan
traceroute; -T4 untuk eksekusi yang lebih cepat; dan dua buah nama host target.

Example 1. Sebuah gambaran pemeriksaan Nmap

# nmap -A -T4 scanme.nmap.org

Starting Nmap ( http://nmap.org )


Interesting ports on scanme.nmap.org (64.13.134.52):
Not shown: 994 filtered ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 4.3 (protocol 2.0)
25/tcp closed smtp
53/tcp open domain ISC BIND 9.3.4
70/tcp closed gopher
80/tcp open http Apache httpd 2.2.2 ((Fedora))
|_ HTML title: Go ahead and ScanMe!
113/tcp closed auth
Device type: general purpose
Running: Linux 2.6.X
OS details: Linux 2.6.20-1 (Fedora Core 5)

TRACEROUTE (using port 80/tcp)


HOP RTT ADDRESS
[Cut first seven hops for brevity]
8 10.59 so-4-2-0.mpr3.pao1.us.above.net (64.125.28.142)
9 11.00 metro0.sv.svcolo.com (208.185.168.173)
10 9.93 scanme.nmap.org (64.13.134.52)

Nmap done: 1 IP address (1 host up) scanned in 17.00 seconds

Spesifikasi Target
Semua yang ada pada perintah baris Nmap yang bukan berupa opsi (atau argumen opsi)
dianggap sebagai spesifikasi host target. Kasus paling sederhana adalah menspesifikasikan
alamat IP target atau nama host untuk diperiksa.

Terkadang anda ingin memeriksa seluruh jaringan host-host yang berdekatan. Untuk hal ini,
Nmap mendukung pengalamatan CIDR-style. Anda dapat menambahkan /<numbits> ke sebuah
alamat IPv4 atau nama host dan Nmap akan memeriksa setiap alamat IP yang alamat <numbits>
pertamanya sama dengan alamat IP referensi atau nama host yang diberikan. Sebagai contoh,
192.168.10.0/24 akan memeriksa 256 host antara 192.168.10.0 (biner: 11000000 10101000
00001010 00000000) dan 192.168.10.255 (biner: 11000000 10101000 00001010 11111111),
inklusif. 192.168.10.40/24 akan memeriksa target-target yang sama. Misalkan host
scanme.nmap.org memiliki alamat IP 64.13.134.52, spesifikasi scanme.nmap.org/16 akan
memeriksa sebanyak 65.536 alamat IP antara 64.13.0.0 dan 64.13.255.255. Nilai terkecil yang
diijinkan adalah /0, yang akan memeriksa seluruh Internet. Nilai terbesar adalah /32, yang hanya
akan memeriksa host atau alamat IP yang disebutkan karena seluruh bit alamat tetap.

Notasi CIDR pendek namun tidak selalu fleksibel. Sebagai contoh, anda mungkin ingin
memeriksa 192.168.0.0/16 namun ingin melewati IP yang diakhiri dengan .0 atau .255 karena
mereka mungkin digunakan sebagai subnet jaringan dan alamat broadcast. Nmap mendukung hal
ini melalui pengalamatan rentang oktet. Alih-alih menspesifikasikan alamat IP normal, anda
dapat menspesifikasikan daftar angka atau rentang untuk setiap oktet. Sebagai contoh,
192.168.0-255.1-254 akan melewati seluruh alamat dalam rentang yang berakhiran dalam .0 atau
.255, dan 192.168.3-5,7.1 akan memeriksa empat alamat 192.168.3.1, 192.168.4.1, 192.168.5.1,
dan 192.168.7.1. Kedua sisi rentang dapat dihilangkan; nilai baku adalah 0 di sisi kiri dan 255
untuk sisi kanan. Penggunaan - sama artinya dengan 0-255, namun ingat untuk menggunakan 0-
dalam oktet pertama sehingga spesifikasi target tidak terlihat seperti opsi perintah baris. Rentang
tidak hanya terbatas pada oktet akhir: 0-255.0-255.13.37 akan melakukan pemeriksaan Internet-
wide untuk seluruh alamat IP yang berakhiran 13.37. Sampling luas seperti ini dapat bermanfaat
untuk riset dan survei Internet.

Alamat IPv6 hanya dapat dispesifikasikan dengan alamat IPv6 lengkap mereka atau nama host.
CIDR dan rentang oktet tidak didukung untuk IPv6 karena mereka jarang bermanfaat.

Nmap menerima spesifikasi banyak host pada perintah baris, dan mereka tidak perlu dalam jenis
yang sama. Perintah nmap scanme.nmap.org 192.168.0.0/8 10.0.0,1,3-7.- melakukan apa yang
anda harapkan.

Meskipun target biasanya dispesifikasikan pada perintah baris, opsi berikut juga tersedia untuk
mengendalikan pemilihan target:

-iL <inputfilename> (Input dari daftar)

Membaca spesifikasi target dari <inputfilename>. Memberikan banyak daftar host pada
perintah baris seringkali tidak mengasyikkan. Sebagai contoh, DHCP server anda
mungkin mengekspor daftar 10.000 lease saat ini yang ingin anda periksa. Atau mungkin
anda ingin memeriksa seluruh alamat IP kecuali bagi mereka untuk mencari host yang
menggunakan alamat IP statik tidak terotorisasi. Cukup buat daftar host yang ingin
diperiksa dan berikan namafilenya ke Nmap sebagai sebuah argumen bagi opsi -iL.
Entrinya dapat dalam beragam format yang diterima oleh Nmap di perintah baris (alamat
IP, nama host, CIDR, IPv6, atau rentang oktet). Setiap entri harus dipisahkan dengan satu
atau lebih spasi, tab, atau baris baru. Anda dapat menspesifikasikan sebuah tanda hubung
(hyphen) (-) sebagai nama file jika anda ingin Nmap membaca host dari input standar
alih-alih dari sebuah file.

-iR <num hosts> (Pilih target acak)

Untuk survei dan riset lain skala-Internet, anda mungkin ingin memilih target secara
acak. Argumen <num hosts> memberitahu Nmap berapa banyak IP yang ingin
dihasilkan. IP yang tidak diinginkan seperti dalam rentang alamat privat, multicast, atau
tidak dialokasi secara otomatis akan dilewati. Argumen 0 dapat dispesifikasikan untuk
pemeriksaan yang tidak pernah berakhir. Perhatikan bahwa beberapa administrator
jaringan tidak suka terhadap pemeriksaan yang tidak terotorisasi terhadap jaringan
mereka dan mungkin mengeluh. Gunakan opsi ini dengan risiko anda! Jika anda benar-
benar merasa bosan di sore hari yang hujan, coba perintah nmap -sS -PS80 -iR 0 -p 80
untuk mencari server web acak untuk browsing.

--exclude <host1>[,<host2>[,...]] (Kecualikan host/jaringan)

Spesifikasikan daftar target yang ingin dikecualikan dari pemeriksaan meskipun mereka
merupakan bagian dari rentang jaringan yang anda spesifikasikan. Daftar yang anda
berikan menggunakan sintaks Nmap normal, sehingga ia dapat mencakup nama host,
blok CIDR, rentang oktet, dsb. Hal ini dapat bermanfaat ketika jaringan yang ingin anda
periksa menyertakan server-server kritis, sistem yang diketahui terganggu dengan port
scan, atau subnet yang dikelola oleh pihak lain.

--excludefile <exclude_file> (Daftar pengecualian dari file)

Opsi ini memberikan fungsionalitas yang sama dengan opsi --exclude, namun target
yang dikecualikan diberikan dalam sebuah <exclude_file> alih-alih diberikan pada
perintah baris.

Pencarian Host (Host Discovery)


Salah satu langkah pertama dalam misi network reconnaissance adalah mengurangi satu rentang
IP (biasanya besar) ke sebuah daftar host yang aktif atau menarik. Memeriksa setiap port dari
setiap alamat IP adalah lambat dan biasanya tidak perlu. Tentu saja apa yang membuat sebuah
host menarik tergantung pada tujuan pemeriksaan. Administrator jaringan mungkin hanya
tertarik pada host yang menjalankan layanan tertentu, sementara auditor keamanan ingin
mengetahui semua device dalam satu alamat IP. Administrator mungkin nyaman cukup dengan
menggunakan ping ICMP untuk menemukan host pada jaringan internalnya, sementara
penetration tester eksternal mungkin menggunakan beragam probe dalam usahanya menghindari
pembatasan firewall.

Oleh karena kebutuhan pencarian host sangat beragam, Nmap menawarkan sejumlah opsi untuk
kustomisasi teknik yang dibutuhkan. Pencarian host seringkali disebut ping scan, namun ia lebih
daripada sekedar melakukan pengiriman paket echo request ICMP yang diasosiasikan dengan
tool terkenal ping. Pengguna dapat melewati langkah ping dengan list scan (-sL) atau dengan
meniadakan ping (-PN), atau melakukan kombinasi probe multi-port TCP SYN/ACK, UDP, dan
ICMP. Tujuan probe ini adalah memperoleh respon yang menunjukkan bahwa alamat IP sedang
aktif (sedang digunakan oleh host atau device jaringan). Pada banyak jaringan, hanya sejumlah
kecil persentase alamat IP yang aktif pada satu waktu. Hal ini terutama umum terjadi pada
alamat IP privat seperti 10.0.0.0/8. Jaringan tersebut memiliki 16 juta IP, namun saya telah
melihatnya digunakan oleh perusahaan dengan mesin berjumlah kurang dari seribu. Pencarian
host dapat menemukan mesin-mesin dalam lautan alamat IP.

Jika tidak diberikan opsi pencarian host, Nmap mengirimkan sebuah paket TCP ACK yang
ditujukan ke port 80 dan sebuah query ICMP echo request ke setiap mesin target. Pengecualian
atas hal ini adalah scan ARP digunakan untuk sembarang target yang ada pada jaringan ethernet
lokal. Untuk user shell Unix biasa, sebuah paket SYN dikirimkan alih-alih paket ACK dengan
menggunakan system call connect. Nilai-nilai baku ini sama dengan opsi -PA -PE. Pencarian
host ini seringkali cukup ketika melakukan pemeriksaan jaringan lokal, namun disarankan untuk
melakukan probe pencarian yang lebih komprehensif ketika melakukan audit keamanan.

Opsi-opsi -P* (yang memilih tipe ping) dapat digabungkan. Anda dapat meningkatkan peluang
anda menyusup firewall yang ketat dengan mengirimkan banyak jenis probe dengan
menggunakan berbagai macam port/flag TCP dan kode ICMP. Perhatikan pula bahwa pencarian
ARP discovery (-PR) secara baku dilakukan terhadap target pada jaringan ethernet lokal bahkan
bila anda menspesifikasikan opsi -P* lain, karena ia selalu lebih cepat dan lebih efektif.

Secara baku, Nmap melakukan pencarian host dan lalu melakukan scan port terhadap setiap host
yang ditentukan online. Hal ini benar bahkan bila anda menspesifikasikan tipe pencarian host
yang tidak baku seperti probe UDP (-PU). Bacalah mengenai opsi -sP untuk mempelajari
bagaimana melakukan hanya pencarian host, atau gunakan -PN untuk melewati pencarian host
dan melakukan scan port untuk seluruh host. Opsi-opsi berikut ini mengendalikan pencarian
host:

-sL (List Scan)

Scan daftar (list scan) merupakan sebuah bentuk pencarian host yang hanya menampilkan
setiap host pada jaringan yang dispesifikasikan, tanpa mengirimkan paket ke host target.
Secara baku, Nmap tetap melakukan resolusi reverse-DNS pada host untuk mengetahui
namanya. Seringkali mengejutkan berapa banyak informasi berharga yang diberikan
nama host. Sebagai contoh, fw.chi adalah nama firewall satu perusahaan di Chicago.
Nmap juga melaporkan jumlah total alamat IP pada bagian akhir. Scan daftar merupakan
sebuah pemeriksaan untuk memastikan anda memiliki alamat IP yang tepat untuk target
anda. Jika host menemukan nama domain yang tidak anda kenali, maka anda perlu
melakukan penyelidikan lanjutan untuk mencegah pemeriksaan jaringan perusahaan yang
tidak tepat.

Karena gagasannya adalah hanya menampilkan daftar host target, opsi untuk
fungsionalitas lebih tinggi misalnya pemeriksaan port, deteksi sistem operasi, atau
scanning ping tidak dapat dikombinasikan dengan opsi ini. Jika anda ingin meniadakan
pemeriksaan ping namun masih ingin melakukan fungsionalitas tingkat tinggi, bacalah
opsi -PN.

-sP (Ping Scan)

Opsi ini memberitahu Nmap untuk hanya melakukan scan ping (host discovery), lalu
menampilkan host yang menanggapi pemeriksaan. Skrip host traceroute dan NSE juga
dijalankan jika diminta, namun tidak dilakukan pemeriksaan lebih lanjut (seperti scan
port atau deteksi SO). Opsi ini secara baku satu langkah lebih intrusif daripada list scan,
dan seringkali dapat digunakan untuk tujuan yang sama. Ia memungkinkan
reconnaissance ringan atas jaringan target tanpa menarik banyak perhatian. Mengetahui
berapa banyak host yang up lebih bermanfaat bagi penyerang daripada daftar yang
dihasilkan oleh list scan atas setiap IP dan nama host.

Administrator sistem juga sering menganggap opsi ini bermanfaat. Ia dapat digunakan
untuk menghitung mesin-mesin yang tersedia pada jaringan atau memonitor ketersediaan
server. Hal ini seringkali disebut ping sweep, dan lebih handal daripada mem-ping alamat
broadcast karena banyak host tidak akan melakukan reply terhadap query broadcast.
Opsi -sP secara baku mengirimkan sebuah request ICMP echo dan sebuah paket TCP
ACK ke port 80. Ketika dilakukan oleh user biasa, hanya sebuah paket SYN yang
dikirimkan (dengan menggunakan call connect) ke port 80 pada target. Ketika user
dengan privilege berusaha memeriksa target pada jaringan ethernet lokal, request ARP
digunakan kecuali dispesifikasikan --send-ip. Opsi -sP dapat dikombinasikan dengan
tipe probe pencarian lainnya (opsi-opsi -P*, kecuali -PN) untuk fleksibilitas yang lebih
tinggi. Jika digunakan sembarang opsi tipe probe dan nomor port, probe baku (ACK dan
echo request) akan di-override. Ketika terdapat firewall ketat di antara host sumber yang
menjalankan Nmap dan jaringan target, direkomendasikan untuk menggunakan teknik
lanjutan di atas. Jika tidak host dapat luput ketika firewall men-drop probe atau
responnya.

-PN (No ping)

Opsi ini melompati tahap pencarian Nmap secara utuh. Secara normal, Nmap
menggunakan tahap ini untuk menentukan mesin aktif untuk pemeriksaan lebih lanjut.
Secara baku, Nmap hanya melakukan probe lanjutan seperti scan port, pemeriksaan versi,
atau pemeriksaan SO terhadap host yang ditemukan up. Peniadaan pencarian host dengan
opsi -PN menyebabkan Nmap melakukan fungsi pemeriksaan yang diminta terhadap
setiap alamat IP target yang dispesifikasikan. Jadi bila pada perintah baris
dispesifikasikan sebuah alamat target kelas B (/16), maka semua alamat IP yang
berjumlah 65.536 akan diperiksa. Pencarian host yang tepat akan dilewati sebagaimana
dengan list scan, namun alih-alih berhenti dan menampilkan daftar target, Nmap lalu
melakukan fungsi-fungsi yang diminta sebagaimana bila setiap IP target aktif. Untuk
mesin-mesin pada jaringan ethernet lokal, pemeriksaan ARP akan tetap dilakukan
(kecuali diberikan opsi --send-ip) karena Nmap butuh alamat MAC untuk melakukan
pemeriksaan lanjutan atas host target. Flag opsi ini dulunya adalah P0 (menggunakan
nol), namun kemudian diganti untuk menghindari kerancuan dengan flag protokol ping
PO (menggunakan huruf O).

-PS <port list> (TCP SYN Ping)

Opsi ini mengirimkan sebuah paket TCP kosong dengan flag SYN diset. Port tujuan baku
adalah 80 (dapat dikonfigurasi pada waktu kompilasi dengan merubah
DEFAULT_TCP_PROBE_PORT_SPEC dalam nmap.h). Port-port alternatif dapat
dispesifikasikan sebagai parameter. Sintaksnya sama dengan opsi -p kecuali specifier
jenis port seperti T: tidak diperbolehkan. Contohnya adalah -PS22 dan -PS22-
25,80,113,1050,35000. Perhatikan bahwa tidak boleh ada spasi antara -PS dan daftar
port. Jika dispesifikasikan banyak probe mereka akan dikirim secara paralel.

Flag SYN memberitahu sistem remote bahwa anda berusaha membuat sebuah koneksi.
Normalnya port tujuan tertutup, dan sebuah paket RST (reset) akan dikirimkan. Jika port
terbuka, target akan melakukan langkah kedua dari TCP three-way-handshake dengan
mengirimkan paket SYN/ACK TCP. Mesin yang menjalankan Nmap lalu memutuskan
koneksi tersebut dengan mengirimkan sebuah paket RST alih-alih mengirimkan sebuah
paket ACK yang akan melengkapi three-way-handshake dan membuat koneksi penuh.
Paket RST dikirim oleh kernel mesin yang menjalankan Nmap sebagai tanggapan atas
SYN/ACK yang tidak diharapkan, bukan oleh Nmap sendiri.

Nmap tidak peduli apakah port terbuka atau tertutup. Tanggapan RST atau SYN/ACK
yang didiskusikan di atas memberitahu Nmap bahwa host tersedia dan menanggapi.

Pada mesin Unix, umumnya hanya user privilege root yang dapat mengirim dan
menerima paket-paket TCP raw. Untuk user tanpa privilege, secara otomatis sebuah
workaround akan dijalankan yaitu system call connect akan digunakan untuk setiap port
target. Hal ini mempunyai efek mengirimkan paket SYN ke host target, dalam usaha
membuat koneksi. Jika connect memberikan sukses cepat atau kegagalan
ECONNREFUSED, stack TCP di bawahnya telah menerima sebuah SYN/ACK atau RST
dan host ditandai sebagai tersedia. Jika usaha koneksi dibiarkan hingga tercapai timeout,
host ditandai sebagai down. Workaround ini juga digunakan untuk koneksi IPv6, karena
dukungan untuk pembuatan paket raw IPv6 belum tersedia di Nmap.

-PA <port list> (TCP ACK Ping)

Ping TCP ACK hampir serupa dengan ping SYN yang baru didiskusikan. Perbedaannya
adalah, sebagaimana dapat anda duga, bahwa flag TCP ACK diset alih-alih flag SYN.
Paket ACK tersebut memberitahu data pada koneksi TCP yang telah tercipta, namun
tidak ada koneksi. Sehingga host remote harus selalu menanggapi dengan sebuah paket
RST, yang akan memberitahukan keberadaan mereka.

Opsi -PA menggunakan port baku yang sama dengan probe SYN (80) dan dapat
menerima daftar port tujuan dalam format yang sama. Jika user tanpa privilege
mencobanya, atau dispesifikasikan target IPv6, workaround connect yang didiskusikan
sebelumnya akan digunakan. Workaround ini tidak sempurna karena connect sebenarnya
mengirimkan paket SYN dan bukan paket ACK.

Alasan menyertakan probe ping SYN dan ACK adalah memaksimalkan peluang melewati
firewall. Banyak administrator mengkonfigurasi router dan firewall sederhana untuk
memblokir paket SYN incoming kecuali yang ditujukan untuk layanan publik seperti
server website atau mail perusahaan. Hal ini mencegah koneksi incoming lainnya ke
organisasi, namun tetap membolehkan user melakukan koneksi outgoing ke Internet.
Pendekatan non-stateful ini membutuhkan sedikit sumber daya pada firewall/router dan
didukung luas oleh filter hardware dan software. Software firewall Linux
Netfilter/iptables memberikan opsi --syn untuk mengimplementasikan pendekatan
stateless ini. Ketika rule firewall stateless seperti ini digunakan, probe ping SYN (-PS)
kemungkinan akan diblokir ketika dikirim ke port target yang tertutup. Dalam kasus ini,
probe ACK akan bersinar karena ia dapat mengatasi rule tersebut.

Jenis firewall umum lainnya menggunakan rule stateful yang akan men-drop paket tidak
diharapkan. Fitur ini mulanya hanya ditemukan pada firewall high-end, namun sekarang
telah umum digunakan. Sistem Linux Netfilter/iptables mendukungnya melalui opsi
--state, yang mengkategorikan paket berdasarkan status koneksi. Probe SYN
kemungkinan berfungsi untuk sistem tersebut, karena paket ACK yang tidak diharapkan
umumnya dikenali sebagai palsu dan di-drop. Solusi untuk masalah ini adalah dengan
mengirimkan probe SYN dan ACK secara bersamaan dengan memberikan opsi -PS and
-PA.

-PU <port list> (UDP Ping)

Opsi pencarian host lainnya adalah ping UDP, yang mengirim paket UDP kosong (kecuali
--data-length dispesifikasikan) ke port yang diberikan. Daftar port menggunakan
format yang sama dengan yang telah didiskusikan pada opsi -PS dan -PA. Jika tidak ada
port yang dispesifikasikanya, bakunya adalah 31338. Port baku ini dapat dikonfigurasi
pada waktu kompilasi dengan merubah DEFAULT_UDP_PROBE_PORT_SPEC dalam nmap.h.
Port tinggi yang tidak umum, digunakan secara baku karena mengirim ke port terbuka
seringkali tidak diharapkan untuk jenis pemeriksaan ini.

Ketika menemui port tertutup pada mesin target, probe UDP seharusnya menerima paket
ICMP port unreachable. Hal ini memberitahu Nmap bahwa mesin up dan tersedia.
Banyak jenis kesalahan ICMP lainnya, seperti host/network unreachables atau TTL
exceeded menandakan host down atau tidak dapat dihubungi. Tidak ada respon juga
termasuk di dalamnya. Jika ditemukan sebuah port terbuka, kebanyakan layanan akan
mengabaikan paket kosong dan gagal mengirim tanggapan. Inilah alasan mengapa port
probe bakunya adalah 31338, yang kemungkinan tidak digunakan. Beberapa layanan,
seperti protokol Character Generator (chargen), akan menanggapi paket UDP kosong, dan
karenanya memberitahu Nmap bahwa mesin tersedia.

Keuntungan utama jenis scan ini adalah ia melewati firewall dan filter yang hanya
memeriksa TCP. Sebagai contoh, saya pernah memiliki Linksys BEFW11S4 wireless
broadband router. Interface external device ini secara baku memfilter seluruh port TCP,
namun probe UDP tetap memberikan pesan port unreachable dan karenanya memberitahu
mengenai device ini.

-PE; -PP; -PM (ICMP Ping Types)

Selain tipe pencarian host TCP dan UDP yang tidak umum di atas, Nmap dapat
mengirimkan paket dengan menggunakan program ping. Nmap mengirim sebuah paket
ICMP tipe 8 (echo request) ke alamat IP target, mengharapkan balasan paket tipe 0 (echo
reply) dari host yang ada. Sayangnya bagai pengeksplorasi jaringan, saat ini banyak host
dan firewall yang memblokir paket-paket ini, alih-alih menanggapi sebagaimana yang
ditentukan oleh RFC 1122. Karena alasan ini, scan ICMP-only relatif tidak handal
terhadap target tak dikenal pada Internet. Namun untuk administrator sistem yang
memonitor jaringan internal, mereka mungkin merupakan pendekatan yang praktis dan
efisien. Gunakan opsi -PE untuk menggunakan perilaku echo request ini.

Meski echo request merupakan standar query ping ICMP, Nmap tidak berhenti di sana.
Standar ICMP (RFC 792) juga menspesifikasikan paket timestamp request, information
request, dan address mask request dengan kode 13, 15, dan 17. Walaupun tujuan query-
query ini adalah untuk memperoleh informasi seperti address masks dan waktu saat ini,
mereka dapat dengan mudah digunakan sebagai pencarian host. Sistem yang memberi
tanggapan adalah up dan tersedia. Nmap tidak mengimplementasikan paket information
request, karena mereka tidak didukung luas. RFC 1122 berkeras bahwa sebuah host
TIDAK SEHARUSNYA mengimplementasikan pesan ini. Query timestamp dan address
mask dapat dikirim dengan opsi -PP and -PM. Reply timestamp (ICMP kode 14) atau
reply address mask (kode 18) memberitahukan bahwa host tersedia. Kedua query ini
bermanfaat ketika administrator secara khusus memblokir paket-paket echo request
namun lupa bahwa query ICMP lainnya dapat digunakan untuk tujuan yang sama.

-PO <protocol list> (IP Protocol Ping)

Opsi pencarian host terbaru adalah ping protokol IP, yang mengirimkan paket IP dengan
nomor port yang dispesifikasikan dalam header IP-nya. Daftar protokol menggunakan
format yang sama seperti daftar port dalam opsi pencarian host TCP dan UDP yang telah
didiskusikan sebelumnya. Jika tidak didefinisikan protokol, secara bakunya adalah
mengirimkan banyak paket IP untuk ICMP (protokol 1), IGMP (protokol 2), dan IP-in-IP
(protokol 4). Protokol baku dapat dikonfigurasi pada waktu kompilasi dengan merubah
DEFAULT_PROTO_PROBE_PORT_SPEC dalam nmap.h. Perhatikan bahwa untuk ICMP,
IGMP, TCP (protokol 6), dan UDP (protokol 17), paket dikirim dengan header protokol
yang sesuai sementara protokol lainnya dikirim tanpa data tambahan selain header IP
(kecuali diberikan opsi --data-length).

Metode pencarian host ini melihat respon yang menggunakan protokol yang sama dengan
probe, atau protokol ICMP unreachable messages yang memberitahu bahwa protokol
dimaksud tidak didukung pada host tujuan. Kedua jenis respon di atas menandakan
bahwa host target ada.

-PR (ARP Ping)

Salah satu skenario penggunaan Nmap yang umum adalah memeriksa LAN ethernet.
Pada kebanyakan LAN, terutama yang menggunakan rentang alamat privat sebagaimana
dijelaskan oleh RFC 1918, mayoritas alamat IP tidak digunakan. Ketika Nmap berusaha
mengirim paket IP raw seperti sebuah ICMP echo request, sistem operasi harus
menentukan alamat hardware tujuan (ARP) yang sesuai dengan IP target sehingga ia
dapat mengirimkan frame ethernet dengan tepat. Hal ini seringkali lambat dan
bermasalah, karena sistem operasi tidak ditulis dengan maksud mereka akan melakukan
jutaan request ARP atas host-host yang tidak ada dalam waktu yang singkat.

Scan ARP menempatkan Nmap dan algoritma teroptimisasinya untuk menangani request
ARP. Dan bila ia memperoleh respon, Nmap tidak perlu kuatir mengenai paket ping
berbasis IP karena ia telah mengetahui bahwa host up. Hal ini membuat scan ARP jauh
lebih cepat dan handal dibanding scan berbasis IP. Sehingga ia dilakukan secara baku
ketika memeriksa host ethernet yang dideteksi Nmap berada pada jaringan ethernet lokal.
Bahkan bila digunakan jenis ping (seperti -PE atau -PS), Nmap menggunakan ARP untuk
sembarang target yang berada dalam LAN yang sama. Jika anda tidak menginginkan scan
ARP, berikan opsi --send-ip.

--traceroute (Trace path to host)

Traceroute dilakukan setelah scan menggunakan informasi dari hasil sscan untuk
menentukan port dan protocol yang berpeluang besar mencapai target. Ia dapat digunakan
untuk seluruh jenis scan kecuali scan connect (-sT) dan scan idle (-sI). Seluruh
pelacakan menggunakan model pewaktuan dinamis Nmap dan dilakukan secara paralel.

Traceroute bekerja dengan mengirimkan paket dengan TTL (time-to-live) rendah agar
tidak memperoleh pesan ICMP Time Exceeded dari hop langsung antara scanner dan host
target. Implementasi standar traceroute dimulai dengan TTL 1 dan menaikkan TTL
hingga host tujuan tercapai. Traceroute Nmap dimulai dengan TTL tinggi dan kemudian
menurunkan TTL hingga nol. Dengan melakukan secara terbalik Nmap menggunakan
algoritma caching cerdas untuk mempercepat pelacakan atas banyak host. Secara rata-
rata Nmap mengirimkan paket kurang dari 510 per host, tergantung pada kondisi
jaringan. Jika dilakukan scan atas satu subnet tunggal (misal 192.168.0.0/24) Nmap
mungkin hanya perlu mengirim satu paket untuk kebanyakan host tersebut.

-n (No DNS resolution)

Memberitahu Nmap untuk tidak melakukan resolusi reverse DNS pada alamat IP aktif
yang ditemukannya. Karena DNS dapat lambat meskipun dengan menggunakan resolver
paralel built-in Nmap, opsi ini dapat mempercepat waktu pemeriksaan.

-R (DNS resolution for all targets)

Memberitahu Nmap untuk selalu melakukan resolusi reverse DNS pada alamat IP target.
Normalnya reverse DNS hanya dilakukan terhadap host yang online.

--system-dns (Use system DNS resolver)

Secara baku, Nmap meresolve alamat IP dengan mengirimkan query secara langsung ke
server DNS yang dikonfigurasi pada host anda dan mendengarkan responnya. Banyak
request (seringkali selusin) dilakukan secara paralel untuk meningkatkan kinerja.
Gunakan opsi ini untuk menggunakan resolver sistem anda (satu IP pada satu waktu
melalui call getnameinfo). Hal ini lebih lambat dan jarang bermanfaat kecuali anda
menemukan bug dalam resolver paralel Nmap (mohon beritahu kami bila demikian).
Resolver sistem selalu digunakan untuk scan IPv6.

--dns-servers <server1>[,<server2>[,...]] (Servers to use for reverse DNS queries)

Secara baku, Nmap menentukan server DNS anda (untuk resolusi rDNS) dari file
resolv.conf anda (Unix) atau Registry (Win32). Selain itu, anda dapat menggunakan opsi
ini untuk menspesifikasikan server alternatif. Opsi ini tidak diindahkan bila anda
menggunakan --system-dns atau melakukan scan IPv6. Dengan menggunakan banyak
server DNS seringkali lebih cepat, terutama bila anda memilih server otoritatif untuk
ruang IP target anda. Opsi ini juga dapat meningkatkan kemampuan sembunyi (stealth),
karena request anda dapat diberikan ke sembarang server DNS rekursif di Internet.

Opsi ini juga bermanfaat ketika memeriksa jaringan privat. Terkadang hanya beberapa
name server yang memberikan informasi rDNS yang tepat, dan mungkin anda tidak tahu
di mana mereka. Anda dapat memeriksa jaringan untuk port 53 (mungkin dengan deteksi
versi), lalu coba scan list Nmap (-sL) dengan menspesifikasikan setiap name server pada
satu waktu dengan --dns-servers hingga anda menemukan yang berfungsi.

Dasar Scanning Port


Meskipun selama ini Nmap telah mengalami perkembangan fungsionalitas, namun ia bermula
sebagai sebuah scanner port yang efisien, dan hal itu tetap menjadi fungsi utamanya. Perintah
sederhana nmap <target> akan memeriksa lebih dari 1660 port TCP pada host <target>.
Ketika banyak scanner port secara tradisional membagi seluruh port ke dalam status terbuka
(open) atau tertutup (closed), Nmap lebih granular. Ia membagi port menjadi enam status : open,
closed, filtered, unfiltered, open|filtered, or closed|filtered.

Status ini bukan merupakan properti intrinsik dari port itu sendiri, namun menggambarkan
bagaimana Nmap memandang mereka. Sebagai contoh, scan Nmap dari jaringan yang sama
dengan target mungkin menampilkan port 135/tcp sebagai terbuka, sementara scan yang sama
pada waktu dan opsi yang sama dari Internet mungkin menunjukkan bahwa port tersebut
filtered.

Enam status port yang dikenali Nmap

open

Sebuah aplikasi secara aktif menerima koneksi paket TCP atau UDP pada port ini.
Menemukan port terbuka ini seringkali merupakan tujuan utama scanning port. Orang
dengan pikiran keamanan (security-minded) tahu bahwa setiap port terbuka merupakan
celah untuk serangan. Penyerang dan pen-testers ingin mengeksploitasi port terbuka,
namun administrator berusaha menutup atau melindungi mereka dengan firewall tanpa
mengganggu user yang berhak. Port terbuka juga menarik bagi scan bukan keamanan
karena mereka memberitahu layanan yang dapat digunakan pada jaringan.

closed

Port tertutup dapat diakses (ia menerima dan menanggapi paket probe Nmap), namun
tidak ada aplikasi yang mendengarkan padanya. Mereka bermanfaat dengan
menunjukkan bahwa host up pada alamat IP tersebut (host discovery, atau ping scanning),
dan sebagai bagian deteksi SO. Oleh karena port tertutup dapat dijangkau, bermanfaat
untuk mencoba scan di waktu yang lain jikalau port tersebut terbuka. Administrator
mungkin perlu mempertimbangkan untuk memblok port tersebut dengan firewall. Lalu
mereka akan muncul dalam status filtered, yang akan didiskusikan.

filtered

Nmap tidak dapat menentukan apakah port terbuka karena packet filtering mencegah
probenya mencapai port. Filter ini dapat dilakukan oleh device firewall, aturan pada
router, atau software firewall pada host. Port ini membuat penyerang frustrasi karena
mereka memberikan sedikit informasi. Terkadang mereka menanggapi dengan pesan
kesalahan ICMP misalnya tipe 3 kode 13 (tujuan tidak dapat dicapai: komunikasi
dilarang secara administratif), namun yang lebih umum adalah filter yang hanya men-
drop probe tanpa memberi tanggapan. Hal ini memaksa Nmap berusaha beberapa kali
untuk memastikan probe tidak di-drop akibat jaringan yang padat. Hal ini sangat
memperlambat proses scan.

unfiltered

Status unfiltered berarti bahwa port dapat diakses, namun Nmap tidak dapat menentukan
apakah ia open atau closed. Hanya scan ACK, yang digunakan untuk mengetahui aturan
firewall, menggolongkan port ke dalam status ini. Pemeriksaan port unfiltered dengan
tipe pemeriksaan lain seperti Window scan, SYN scan, atau FIN scan, dapat membantu
mengetahui apakah port terbuka.

open|filtered

Nmap menganggap port dalam status ini bila ia tidak dapat menentukan apakah port open
atau filtered. Hal ini terjadi untuk jenis pemeriksaan ketika port terbuka tidak memberi
respon. Tidak adanya tanggapan dapat pula berarti bahwa packet filter men-drop probe
atau respon yang diberikan. Sehingga Nmap tidak dapat mengetahui dengan tepat apakah
port terbuka atau difilter. Scan UDP, IP protocol, FIN, NULL, dan Xmas
mengklasifikasikan port dengan cara ini.

closed|filtered

Status ini digunakan ketika Nmap tidak dapat menentukan apakah port tertutup atau di-
filter. Ia hanya digunakan pada scan idle ID IP.

Teknik Scanning Port


Sebagai seorang pemula yang melakukan perbaikan otomotif, saya dapat berjuang berjam-jam
untuk menyesuaikan alat sederhana saya (palu, duct tape, dsb.) untuk tugas yang ada. Ketika
saya gagal dan menyerahkannya pada mekanik sebenarnya, ia mencari dalam kotak
perangkatnya hingga menemukan alat yang tepat yang membuat pekerjaan tersebut menjadi
mudah. Seni scanning port juga serupa. Para ahli memahami beragam teknik pemindaian dan
memilih satu (atau kombinasi) yang sesuai untuk tugas yang ada. User tidak berpengalaman dan
script kiddies, di lain pihak, berusaha menyelesaikan semua masalah dengan scan SYN baku.
Oleh karena Nmap gratis, satu-satunya penghalang menguasai scanning port adalah pengetahuan.
Hal itu tentu saja mengalahkan dunia otomotif, setelah membutuhkan keahlian tinggi untuk
menentukan bahwa anda butuh kompresor pegas strut, lalu anda mesti harus membayar ribuan
dolar untuknya.

Kebanyakan jenis scan hanya tersedia untuk user privilege. Hal ini karena mereka mengirim dan
menerima paket raw, yang membutuhkan akses root pada sistem Unix. Pada sistem Windows,
menggunakan akun administrator disarankan, meski terkadang Nmap dapat bekerja untuk
unprivileged users ketika WinPcap telah dimuatkan ke SO. Kebutuhan akan privilege root
merupakan sebuah batasan serius ketika Nmap dirilis pada tahun 1997, karena banyak user hanya
mempunyai akses ke shared shell. Saat ini, hal tersebut berbeda. Komputer telah lebih murah,
lebih banyak orang memiliki akses langsung Internet always-on, dan banyak sistem Unix
desktop (termasuk Linux dan Mac OS X). Versi Nmap Windows kini tersedia, membuatnya
berjalan di lebih banyak desktop. Karena alasan-alasan ini, user memiliki sedikit alasan untuk
menjalankan Nmap dari akun shared shell yang terbatas. Ini merupakan keberuntungan, karena
opsi privilege membuat Nmap lebih powerful dan fleksibel.

Meski Nmap berusaha memberikan hasil yang akurat, namun perlu diperhatikan bahwa seluruh
pandangannya didasarkan pada paket yang dikembalikan oleh mesin target (atau firewall di
depan mereka). Host tersebut mungkin tidak dapat dipercaya dan responnya bertujuan
membingungkan atau mengacaukan Nmap. Yang lebih umum adalah host yang tidak sesuai
dengan RFC yang tidak menanggapi sebagaimana yang seharusnya atas probe Nmap. Scan FIN,
NULL, dan Xmas terutama rentan terhadap masalah ini. Isu tersebut adalah spesifik untuk jenis
scan tertentu dan didiskusikan dalam entri jenis scan individual.

Bagian ini mendokumentasikan selusin atau lebih teknik scan port yang didukung oleh Nmap.
Hanya satu metode yang boleh digunakan di satu waktu, kecuali scan UDP (-sU) dapat
digabungkan dengan sembarang jenis scan TCP. Sebagai pengingat, opsi jenis scan port adalah
dalam bentuk -s<C>, dengan <C> merupakan karakter utama dalam nama scan, biasanya yang
pertama. Satu pengecualian untuk ini adalah scan bounce FTP yang telah kuno (-b). Secara baku,
Nmap melakukan SYN Scan, meski ia menggantinya dengan scan connect bila user tidak
memiliki privilege untuk mengirim paket raw (membutuhkan akses root pada Unix) atau bila
dispesifikasikan target IPv6. Dari semua scan yang ada di bawah ini, unprivileged user hanya
dapat menjalankan scan connect dan FTP bounce.

-sS (TCP SYN scan)

SYN scan merupakan opsi scan baku dan terpopuler dengan alasan yang baik. Ia dapat
dilakukan dengan cepat, memeriksa ribuan port per detik pada jaringan yang cepat tidak
dihalangi oleh firewall yang membatasi. Scan SYN relatif tidak mengganggu dan
tersembunyi, karena ia tidak pernah melengkapi koneksi TCP. Ia juga bekerja terhadap
stack TCP yang sesuai alih-alih tergantung pada platform khusus sebagaimana scan
FIN/NULL/Xmas, Maimon dan idle. Ia juga memungkinkan pembedaan yang tegas dan
handal antara status open, closed, dan filtered.
Teknik ini seringkali diacu sebagai pemeriksaan setengah terbuka (half-open scanning),
karena anda tidak membuka seluruh koneksi TCP. Anda mengirim sebuah paket SYN,
seperti anda ingin melakukan koneksi sesungguhnya dan kemudian menunggu tanggapan.
SYN/ACK menandakan port sedang mendengarkan (open), RST (reset) menandakan
tidak sedang mendengarkan. Jika tidak ada tanggapan setelah beberapa kali pengiriman
ulang, port ditandai sebagai tersaring (filtered). Port juga ditandai sebagai tersaring bila
diterima kesalahan ICMP unreachable (tipe 3, kode 1, 2, 3, 9, 10, atau 13).

-sT (TCP connect scan)

Scan TCP connect merupakan jenis scan baku TCP ketika scan SYN tidak dapat
digunakan. Hal ini terjadi ketika user tidak memiliki privilege untuk paket raw atau
ketika melakukan pemeriksaan jaringan IPv6. Alih-alih menulis paket raw sebagaimana
dilakukan jenis scan lainnya, Nmap meminta SO membuat koneksi dengan mesin target
dan port dengan memberikan system call connect. Ini merupakan system call yang
digunakan oleh web browsers, klien P2P, dan kebanyakan aplikasi jaringan lainnya untuk
membuat koneksi. Ia merupakan bagian dari interface pemrograman yang dikenal sebagai
Berkeley Sockets API. Nmap juga menggunakan API ini untuk memperoleh informasi
status setiap usaha koneksi.

Ketika tersedia SYN scan, ia merupakan pilihan yang lebih baik. Nmap kurang memiliki
kendali atas call connect daripada paket raw, membuatnya kurang efisien. System call
membuat koneksi lengkap untuk membuka port target daripada membuat reset setengah-
terbuka (half-open reset) yang dilakukan SYN scan. Hal ini tidak saja lebih lambat dan
membutuhkan lebih banyak paket untuk memperoleh informasi yang sama, namun juga
mesin target kemungkinan mencatat koneksi. IDS yang baik akan mendeteksi hal ini,
namun kebanyakan mesin tidak memiliki sistem alarm tersebut. Kebanyakan layanan
pada sistem Unix umum akan membuat catatan ke syslog, dan seringkali pesan kesalahan
yang rumit, ketika Nmap membuka dan menutup koneksi tanpa mengirim data. Layanan
yang benar-benar buruk akan crash ketika hal ini terjadi, meskipun tidak umum.
Administrator yang melihat serangkaian usaha koneksi dari sistem tunggal di lognya
seharusnya tahu bahwa ia telah diperiksa dengan metode connect.

-sU (UDP scan)

Walau kebanyakan layanan populer di Internet menggunakan protokol TCP, layanan UDP
luas dipergunakan. DNS, SNMP, dan DHCP (port 53, 161/162, dan 67/68) adalah tiga
yang paling umum. Karena pemeriksaan UDP umumnya lebih lambat dan lebih sulit
dibanding TCP, beberapa audit keamanan mengabaikan port ini. Ini merupakan
kesalahan, karena eksploitasi layanan UDP cukup umum dan penyerang tentu saja tidak
mengabaikan seluruh protokol. Untungnya, Nmap dapat membantu inventori port UDP.

Scan UDP diaktifkan dengan opsi -sU. Ia dapat digabungkan dengan jenis scan TCP
seperti SYN scan (-sS) untuk memeriksa kedua buah protokol sekaligus.
Scan UDP bekerja dengan mengirimkan header UDP kosong (tanpa data) ke setiap port
yang diinginkan. Jika diperoleh kesalahan ICMP port unreachable (tipe 3, kode 3), port
itu closed. Kesalahan ICMP lainnya (tipe 3, kode 1, 2, 9, 10, atau 13) menandakan port
sebagai filtered. Seringkali, sebuah layanan akan menanggapi dengan paket UDP,
membuktikan bahwa ia open. Jika tidak ada tanggapan setelah transmisi ulang, port
dianggap open|filtered. Hal ini berarti bahwa port dapat berada dalam keadaan open,
atau mungkin packet filter memblokir komunikasi. Deteksi versi (-sV) dapat digunakan
untuk membantu membedakan antara port yang terbuka dengan yang disaring.

Tantangan terbesar scanning UDP adalah melakukannya dengan cepat. Port terbuka dan
tersaring jarang mengirimkan tanggapan, membuat Nmap time out dan kemudian
melakukan transmisi ulang bilamana probe atau respon hilang. Port tertutup seringkali
merupakan masalah yang lebih besar. Mereka umumnya mengirimkan ulang kesalahan
ICMP port unreachable. Namun tidak seperti paket RST yang dikirim oleh port TCP
tertutup sebagai respon atas scan SYN atau connect, banyak host secara baku membatasi
pesan ICMP port unreachable. Linux dan Solaris terutama sangat ketat mengenai hal ini.
Sebagai contoh, kernel Linux 2.4.20 membatasi pesan destination unreachable ke satu per
detik (dalam net/ipv4/icmp.c).

Nmap mendeteksi pembatasan ini dan memperlambat kerjanya untuk menghindari


pemenuhan jaringan dengan paket-paket tidak perlu yang akan di-drop oleh mesin target.
Sayangnya, pembatasan ala Linux dengan satu paket per detik membuat pemeriksaan
65.536 membutuhkan waktu lebih 18 jam. Ide untuk mempercepat scan UDP termasuk
pemeriksaan lebih banyak host secara paralel, melakukan pemeriksaan atas port-port
populer dulu, pemeriksaan di belakang firewall, dan menggunakan --host-timeout
untuk melewati host lambat.

-sN; -sF; -sX (TCP NULL, FIN, dan Xmas scan)

Ketiga jenis scan ini (bahkan kemungkinan lebih dengan adanya opsi --scanflags yang
dijelaskan pada bagian berikutnya) mengeksploitasi kelemahan dalam RFC TCP untuk
membedakan antara port open dan closed. Halaman 65 RFC 793 mengatakan bawha if
the [destination] port state is CLOSED .... an incoming segment not containing a RST
causes a RST to be sent in response. Lalu halaman berikutnya mendiskusikan paket
yang dikirim ke port terbuka tanpa bit SYN, RST, atau ACK diset, menyatakan bahwa :
you are unlikely to get here, but if you do, drop the segment, and return.

Ketika memeriksa sistem yang sesuai dengan teks RFC ini, sembarang paket yang tidak
berisikan bit SYN, RST, atau ACK akan berakibat pengembalian RST bila port tertutup
dan tidak ada respon bila port terbuka. Selama ketiga bit ini tidak disertakan, sembarang
kombinasi ketiga bit lainnya (FIN, PSH, dan URG) adalah OK. Nmap mengeksploitasi
celah ini dengan ketiga jenis scan berikut :

Null scan (-sN)

Tidak mengirimkan bit(header flag TCP adalah 0)


FIN scan (-sF)

Hanya menset bit FIN TCP.

Xmas scan (-sX)

Menset flag FIN, PSH, dan URG, menerangi paket seperti sebuah pohon Natal.

Ketiga jenis scan ini serupa perilakunya kecuali untuk flag TCP yang diset dalam paket
probe. Jika diterima paket RST, port dianggap closed, tidak ada respon berarti ia open|
filtered. Port ditandai filtered bila diterima kesalahan ICMP unreachable (tipe 3,
kode 1, 2, 3, 9, 10, atau 13).

Keuntungan utama jenis scan ini adalah bahwa mereka dapat menyusup melalui non-
stateful firewall dan router packet filtering tertentu. Keunggulan lain adalah bahwa ketiga
scan ini lebih tersembunyi bahkan bila dibandingkan dengan SYN scan. Jangan
mengandalkan hal ini karena produk IDS modern dapat dikonfigurasi untuk mendeteksi
mereka. Kelemahan utama adalah tidak semua sistem mematuhi RFC 793 secara tepat.
Sejumlah sistem mengirim respon RST atas probe tanpa perduli apakah port terbuka atau
tertutup. Hal ini membuat seluruh port dianggap sebagai closed. Sistem operasi utama
yang melakukan hal ini adalah Microsoft Windows, banyak device Cisco devices, BSDI,
dan IBM OS/400. Scan ini tidak bekerja terhadap kebanyakan sistem berbasis Unix.
Kekurangan lainnya adalah scan ini tidak dapat membedakan antara port open dengan
port tertentu yang filtered, memberikan anda tanggapan open|filtered.

-sA (TCP ACK scan)

Scan ini berbeda dengan yang telah didiskusikan sejauh ini yaitu ia tidak pernah
menentukan port open (or even open|filtered). Ia digunakan untuk memetakan aturan
firewall, menentukan apakah mereka stateful atau tidak dan port mana saja yang disaring.

Paket probe scan ACK hanya memiliki flag ACK di-set (kecuali anda menggunakan
--scanflags). Ketika memeriksa sistem yang tidak disaring, port open dan closed
keduanya akan mengembalikan paket RST. Nmap kemudian menandakan mereka sebagai
unfiltered, yang berarti mereka dapat dicapai oleh paket ACK, namun belum dapat
ditentukan apakah mereka open atau closed. Port yang tidak menanggapi, atau mengirim
kembali pesan kesalahan ICMP (tipe 3, kode 1, 2, 3, 9, 10, atau 13), dianggap sebagai
filtered.

-sW (TCP Window scan)

Window scan serupa dengan ACK scan kecuali bahwa ia mengeksploitasi detil
implementasi pada sistem tertentu yang membedakan port terbuka dengan port tertutup,
alih-alih selalu menampilkan unfiltered ketika dikembalikan RST. Ia melakukan hal ini
dengan memeriksa field TCP Window paket RST yang dikembalikan. Pada beberapa
sistem, port terbuka menggunakan ukuran jendela positif (bahkan untuk paket RST)
sementara port tertutup memiliki jendela nol. Sehingga alih-alih selalu menampilkan port
sebagai unfiltered ketika menerima kembali RST, Window scan menampilkan port
sebagai open atau closed jika nilai TCP Window dalam reset tersebut positif atau nol.

Scan ini mengandalkan detil implementasi sedikit sistem yang ada di Internet, sehingga
anda tidak dapat selalu mempercayainya. Sistem yang tidak mendukungnya biasanya
akan mengembalikan semua port sebagai closed. Tentu saja, adalah mungkin mesin
benar-benar tidak memiliki port terbuka. Jika kebanyakan port yang diperiksa adalah
closed namun beberapa angka port umum (seperti 22, 25, 53) adalah filtered,
informasi ini kemungkinan benar. Seringkali, sistem akan memberitahukan perilaku
sebaliknya. Jika scan anda menunjukkan bahwa 1000 port terbuka dan tiga port tertutup
atau disaring, maka ketiga port tersebut mungkin saja adalah port yang terbuka.

-sM (TCP Maimon scan)

Scan Maimon dinamakan dengan nama penemunya, Uriel Maimon. Ia menjelaskan


teknik ini dalam Phrack Magazine issue #49 (November 1996). Nmap, yang
menyertakan teknik ini, dirilis dua isu kemudian. Teknik ini sama persis dengan scan
NULL, FIN, dan Xmas, kecuali probenya adalah FIN/ACK. Menurut RFC 793 (TCP),
paket RST seharusnya dihasilkan sebagai tanggapan atas probe tersebut entah port
terbuka atau tertutup. Namun demikian, Uriel memperhatikan bahwa banyak sistem
berbasis BSD men-drop paket jika port terbuka.

--scanflags (Custom TCP scan)

User Nmap mahir tidak perlu membatasi dirinya pada jenis scan yang tersedia secara
baku. Opsi --scanflags memungkinkan anda merancang scan anda sendiri dengan
menspesifikasikan sembarang flag TCP.. Biarkan cairan kreatif anda mengalir, sementara
mengakali intrusion detection system yang vendornya sekedar membaca man page Nmap
menambahkan aturan khusus!

Argumen --scanflags dapat berupa nilai flag numerik seperti 9 (PSH dan FIN), namun
menggunakan nama simbolik lebih mudah. Gabungkan saja sembarang kombinasi URG,
ACK, PSH, RST, SYN, dan FIN. Sebagai contoh, --scanflags URGACKPSHRSTSYNFIN
menset semuanya, meskipun ia tidak terlalu bermanfaat untuk pemeriksaan. Urutan
spesifikasi tidaklah relevan.

Selain dengan menspesifikasikan flag yang diinginkan, anda dapat pula memberikan jenis
scan TCP (seperti -sA atau -sF). Jenis dasar tersebut memberitahu Nmap bagaimana
menginterpretasikan respon. Sebagai contoh, SYN scan menganggap no-response sebagai
indikasi port filtered, sementara FIN scan mengganggapnya sebagai open|filtered.
Nmap akan berperilaku sama dengan jenis scan dasar, kecuali ia akan menggunakan flag
TCP yang anda spesifikasikan Jika anda tidak menspesifikasikan tipe dasar, akan
digunakan SYN scan.

-sI <zombie host>[:<probeport>] (idle scan)


Metode scan tingkat tinggi ini memungkinkan scan port TCP secara tersembunyi (artinya
tidak ada paket dikirim ke target dari alamat IP anda yang sebenarnya). Alih-alih,
serangan side-channel mengeksploitasi pembuatan urutan ID fragmentasi IP yang mudah
ditebak pada host zombi untuk memperoleh informasi tentang port terbuka pada target.
Sistem IDS akan menampilkan scan berasal dari mesin zombi yang anda spesifikasikan
(yang harus up dan memenuhi beberapa kriteria). Jenis scan menarik ini terlalu kompleks
untuk dijelaskan dalam panduan referensi ini, sehingga saya menulis dan menaruh paper
informal dengan detil penuh di http://nmap.org/book/idlescan.html.

Selain sangat tersembunyi (karena sifat blind-nya), jenis scan ini mengijinkan pemetaan
relasi kepercayaan berbasis IP antar mesin. Daftar port menampilkan port terbuka dari
perspektif host zombi. Sehingga anda dapat berusaha memeriksa target dengan
menggunakan beragam zombi yang anda anggap terpercaya (melalui aturan router/packet
filter).

Anda dapat menambah tanda titik dua diikuti nomor port pada host zombi jika anda ingin
memeriksa port tertentu pada zombi untuk perubahan ID IP. Jika tidak Nmap akan
menggunakan port baku yang digunakan untuk ping TCP (80).

-sO (IP protocol scan)

Scan protokol IP memungkinkan anda menentukan protokol IP mana (TCP, ICMP, IGMP,
dsb.) yang didukung oleh mesin target. Secara teknis ini bukanlah scan port, karena ia
menggunakan nomor protokol IP alih-alih nomor port TCP atau UDP. Namun ia tetap
menggunakan opsi -p untuk memilih nomor protokol yang diperiksa, melaporkan
hasilnya dalam format tabel port normal, dan bahkan menggunakan mesin scan yang
sama dengan metode scanning port sebenarnya. Ia cukup dekat dengan scan port
sehingga berada di sini.

Selain memiliki fungsi tertentu, scan protokol mendemonstrasikan kekuatan software


open-source. Meskipun ide dasarnya cukup sederhana, saya tidak berpikir atau menerima
permintaan untuk menambah fungsionalitas semacam itu. Lalu pada musim panas tahun
2000, Gerhard Rieger menerima ide tersebut, menulis patch yang bagus untuk
mengimplementasikannya, dan mengirimnya ke milis nmap-hackers. Saya
menggabungkan patch tersebut ke Nmap dan merilis versi baru di hari berikutnya. Sedikit
software komersial memiliki user yang cukup antusias untuk merancang dan memberikan
kontribusi perbaikan!

Scan protocol bekerja dalam cara yang sama dengan scan UDP. Alih-alih beriterasi atas
field nomor port paket UDP, ia mengirim header paket IP dan beriterasi pada field
protokol IP delapan-bit. Header biasanya kosong, tidak berisi data dan bahkan tiada
header yang sesuai untuk protokol yang diklaim. Tiga pengecualian adalah TCP, UDP,
dan ICMP. Header protokol yang sesuai untuk mereka disertakan karena beberapa sistem
tidak akan mengirimnya dan karena Nmap telah memiliki fungsi untuk membuatnya.
Alih-alih mengamati pesan ICMP port unreachable, scan protocol mencari pesan ICMP
protocol unreachable. Bila Nmap menerima respon dalam sembarang protokol dari host
target, Nmap menandai protokol tersebut sebagai open. Kesalahan ICMP protocol
unreachable (tipe 3, kode 2) menyebabkan protokol ditandai sebagai closed. Kesalahan
ICMP unreachable lainnya (tipe 3, kode 1, 3, 9, 10, atau 13) menyebabkan protokol
ditandai filtered (meskipun mereka membuktikan bahwa ICMP open di waktu yang
sama). Jika tidak menerima respon setelah transmisi ulang, protokol ditandai sebagai
open|filtered

-b <FTP relay host> (FTP bounce scan)

Satu fitur menarik protokol FTP (RFC 959) mendukung koneksi FTP proxy. Hal ini
memungkinkan user untuk koneksi ke satu server FTP, lalu meminta file dikirimkan ke
server pihak ketiga. Fitur tersebut rentan terhadap penyalahgunaan di banyak tingkat,
sehingga banyak server berhenti mendukungnya. Salah satu penyalahgunaan yang
dibolehkan fitur ini adalah membuat server FTP melakukan scan port ke host lain. Cukup
minta server FTP mengirim sebuah file ke setiap port yang diinginkan pada host target.
Pesan kesalahan akan menjelaskan apakah port terbuka atau tidak. Hal ini merupakan
cara yang baik untuk melewati firewall karena server FTP organisasi biasanya lebih
memiliki akses ke host internal daripada host Internet. Nmap mendukung scan bounce
FTP dengan opsi -b option. Ia mengambil argumen dalam bentuk
<username>:<password>@<server>:<port>. <Server> adalah nama atau alamat IP
server FTP yang rentan. Sebagaimana dengan URL normal, anda dapat menghilangkan
<username>:<password>, sehingga menggunakan login anonim (user: anonymous
password:-wwwuser@) . Nomor port (dan tanda titik dua sebelumnya) dapat dihilangkan
juga, sehingga menggunakan port FTP baku (21) pada <server>.

Kerentanan ini meluas di tahun 1997 ketika Nmap dirilis, namun telah diperbaiki. Server-
server yang rentan masih ada, sehingga patut dicoba bila teknik yang lainnya gagal. Jika
tujuan anda adalah melewati firewall, scan jaringan target untuk port 21 (atau bahkan
untuk sembarang layanan FTP jika anda scan seluruh port dengan deteksi versi) yang
terbuka, lalu coba scan bounce. Nmap akan memberitahu anda apakah host rentan atau
tidak. Jika anda hanya ingin menutupi jejak anda, anda tidak perlu (dan bahkan tidak
seharusnya) membatasi diri anda pada host pada jaringan target. Sebelum anda
memeriksa alamat Internet acak untuk mencari server FTP yang rentan, pertimbangkan
bahwa sysadmin mungkin tidak akan menghargai anda menggunakan server mereka
dengan cara ini.

Spesifikasi Port dan Urutan Scan


Selain menawarkan semua metode scan yang telah dijelaskan sebelumnya, Nmap juga
memberikan opsi untuk menspesifikasikan port mana yang ingin diperiksa dan apakah urutan
scan secara acak atau berurutan. Secara baku, Nmap memeriksa 1.000 port untuk setiap protokol
yang paling umum.

-p <port ranges> (Hanya memeriksa port yang dispesifikasikan)


Opsi ini menentukan port yang ingin anda periksa dan meniadakan nilai baku. Nomor
port individu adalah OK, dan juga rentang yang dipisahkan oleh tanda sambung (misaln
1-1023). Nilai awal dan/atau akhir sebuah rentang dapat dihilangkan, Nmap lalu akan
menggunakan 1 dan 65535. Jadi anda dapat memberikan opsi -p- untuk memeriksa port
dari 1 hingga 65535. Anda diperbolehkan memeriksa port nol jika anda
menspesifikasikannya secara eksplisit. Untuk pemeriksaan protokol IP (-sO), opsi ini
menspesifikasikan nomor protokol yang ingin anda periksa (0255).

Ketika memeriksa port TCP dan UDP, anda dapat menentukan protokol tertentu dengan
menambahkan T: atau U: di depan nomor port. Qualifier ini berlaku hingga anda
menspesifikasikan qualifier lain. Sebagai contoh, argumen -p U:53,111,137,T:21-
25,80,139,8080 akan memeriksa port UDP 53, 111,dan 137, dan juga port TCP yang
disebutkan. Untuk memeriksa UDP dan TCP, anda harus menspesifikasikan -sU dan
paling tidak satu jenis scan TCP (seperti -sS, -sF, atau -sT). Jika tidak diberikan
qualifier protokol, nomor port akan ditambahkan ke seluruh daftar protokol.

Port dapat juga dispesifikasikan dengan nama sesuai dengan apa yang diacu dalam file
nmap-services. Anda bahkan dapat menggunakan wildcard * dan ? dengan nama.
Sebagai contoh, untuk memeriksa port FTP dan seluruh port yang namanya dimulai
dengan http, gunakan -p ftp,http*. Berhati-hatilah dengan ekspansi shell dan berilah
tanda kutip pada argumen -p jika tidak yakin.

Rentang port dapat dikelilingi oleh tanda kurung siku (square bracket) untuk
mengindikasikan port yang berada di dalam rentang tersebut yang ada dalam nmap-
services. Sebagai contoh, opsi berikut ini akan memeriksa seluruh port dalam nmap-
services yang kurang dari sama dengan 1024: -p [-1024]. Berhati-hatilah dengan
ekspansi shell dan berilah tanda kutip pada argumen -p jika tidak yakin.

-F (Fast (limited port) scan)

Memberitahukan bahwa anda ingin memeriksa lebih sedikit port daripada jumlah baku.
Normalnya Nmap memeriksa 1.000 port umum untuk setiap protokol yang diperiksa.
Dengan -F, jumlahnya dikurangi menjadi 100.

Nmap membutuhkan file nmap-services dengan informasi frekuensi untuk mengetahui


port yang paling umum . Jika informasi frekuensi port tidak tersedia, mungkin karena
penggunaan file nmap-services kustom, -F berarti memeriksa hanya port yang ada di
dalam file services (normalnya Nmap memeriksa seluruh port yang memiliki nama dan
port 11024).

-r (Jangan randomisasi port)

Secara baku, Nmap merandomisasi urutan port yang diperiksa (kecuali port tertentu yang
biasa diakses dipindahkan ke awal untuk alasan efisiensi). Randomisasi ini biasanya
diinginkan,namun anda dapat memberikan opsi -r untuk pemeriksaan port secara
berurutan.
--port-ratio <angka desimal antara 0 dan 1>

Memeriksa seluruh port dalam file nmap-services dengan rasio lebih daripada angka
yang diberikan sebagai argumen.

--top-ports <integer 1 atau lebih>

Memeriksa port-port dengan rasio tertinggi N yang ditemukan dalam file nmap-
services.

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 http://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.

Deteksi SO
Salah satu fitur Nmap yang paling dikenal adalah deteksi SO dengan menggunakan fingerprint
stack TCP/IP. Nmap mengirimkan serangkaian paket TCP dan UDP ke host remote dan menguji
setiap bit paket responnya. Setelah melakukan serangkaian test seperti sampling TCP ISN,
dukungan dan urutan opsi TCP, sampling ID IP, dan pemeriksaan ukuran jendela awal, Nmap
membandingkan hasilnya ke database nmap-os-db yang berisi lebih dari seribu fingerprint SO
yang dikenal dan mencetak detil SO bila terjadi kesesuaian. Setiap fingerprint menyertakan
deskripsi SO tekstual dalam format bebas, klasifikasi yang memberikan nama vendor (misalnya
Sun), SO di bawahnya (misalnya Solaris), generasi OS (misalnya 10), dan jenis device (fungsi
umum, router, switch, konsol game, dsb.).

Jika Nmap tidak dapat menduga SO mesin, dan kondisinya bagus (misalnya paling tidak
ditemukan satu port terbuka dan tertutup), Nmap akan memberikan URL yang dapat anda
gunakan untuk menyerahkan fingerprint jika anda tahu (dengan pasti) SO yang berjalan di mesin
itu. Dengan melakukan hal ini anda berkontribusi ke database sistem operasi yang dikenali Nmap
dan karenanya ia akan lebih akurat.

Deteksi SO mengaktifkan beberapa tes lain yang menggunakan informasi yang dikumpulkan
selama proses. Salah satunya adalah TCP Sequence Predictability Classification. Ukuran ini
menentukan seberapa sulit memalsukan koneksi TCP ke host remote. Ia bermanfaat dalam
mengeksploitasi relasi trust berbasis IP-sumber (rlogin, filter firewall, dsb) atau untuk
menyembunyikan sumber serangan. Spoofing jenis ini jarang dilakukan lagi, namun banyak
mesin masih rentan terhadapnya. Angka kesulitan aktualnya berdasarkan pada sampling statistik
dan mungkin berfluktuasi. Umumnya lebih baik menggunakan klasifikasi bahasa Inggris seperti
worthy challenge or trivial joke. Hal ini hanya dilaporkan dalam output normal dalam mode
verbose (-v). Ketika digunakan mode verbose bersama dengan -O, pembuatan urutan ID IP ID
juga dilaporkan. Kebanyakan mesin berada dalam kelas incremental, yang berarti mereka
menaikkan field ID dalam header IP untuk setiap paket yang mereka kirim. Hal ini membuat
mereka rentan atas beberapa serangan spoofing dan pengumpulan informasi tingkat tinggi.
Informasi ekstra lain yang disertakan dalam deteksi SO adalah menduga waktu uptime target.
Tekniknya menggunakan opsi timestamp TCP (RFC 1323) untuk menduga waktu terakhir mesin
direboot. Dugaan dapat tidak akurat akibat counter timestamp tidak diinisialisasi ke nol atau
counter overflow dan kembali ke awal, sehingga ia hanya dicetak dalam mode verbose.

Sebuah paper yang mendokumentasikan cara kerja, penggunaan, dan kustomisasi deteksi SO
tersedia di http://nmap.org/book/osdetect.html.

Deteksi SO diaktifkan dan dikendalikan dengan opsi-opsi berikut:

-O (Aktifkan deteksi SO)

Aktifkan deteksi SO, seperti didiskusikan di atas. Anda dapat juga menggunakan -A
untuk mengaktifkan deteksi SO dan hal lainnya.

--osscan-limit (Batasi deteksi SO untuk target yang menjanjikan)

Deteksi SO jauh lebih efektif bila ditemukan paling tidak satu port TCP terbuka dan
tertutup. Set opsi ini dan Nmap tidak akan melakukan deteksi SO terhadap host yang
tidak memenuhi kriteria ini. Hal ini dapat menghemat waktu, terutama pada pemeriksaan
-PN atas banyak host. Ia hanya penting ketika deteksi SO diminta dengan opsi -O atau -A.

--osscan-guess; --fuzzy (Duga hasil deteksi SO)

Ketika Nmap tidak dapat mendeteksi SO secara tepat, ia terkadang memberikan


kemungkinan terdekat. Tebakan yang cocok harus sangat dekat agar dilakukan secara
baku oleh Nmap. Semua opsi ekivalen ini membuat Nmap menduga dengan lebih agresif.
Nmap tetap akan memberitahu anda ketika kecocokan tidak sempurna dicetak dan
menampilkan tingkat kepercayaan (persentase) untuk setiap dugaan.

--max-os-tries (Menset jumlah usaha maksimum deteksi SO atas target)

Ketika Nmap melakukan deteksi SO terhadap target dan gagal menemukan kecocokan
sempurna, ia biasanya mengulang usahanya. Secara baku, Nmap berusaha lima kali jika
kondisi memungkinkan penyerahan fingerprint SO, dan dua kli ketika kondisi tidak
begitu baik. Menspesifikasikan nilai --max-os-tries yang lebih rendah (seperti 1)
mempercepat Nmap, meski anda kehilangan usaha yang secara potensial dapat
mengindentifikasi SO. Anda dapat pula menset perulangan yang lebih banyak ketika
kondisi lebih baik. Hal ini jarang dilakukan, kecuali untuk menghasilkan fingerprint yang
lebih baik untuk penyerahan dan integrasi ke database SO Nmap.

Nmap Scripting Engine (NSE)


Nmap Scripting Engine (NSE) adalah salah satu fitur Nmap yang paling powerful dan fleksibel.
Ia memungkinkan user untuk menulis (dan membagi) skrip sederhana (menggunakan bahasa
pemrograman Lua, ) untuk mengotomasi beragam tugas jaringan. Skrip-skrip tersebut dieksekusi
secara parale dengan kecepatan dan efisiensi yang anda harapkan dari Nmap. User dapat
mengandalkan beragam skrip yang didistribusikan dengan Nmap, atau menulis sendiri sesuai
kebutuhan.

Tugas-tugas yang kami pikirkan ketika membuat sistem termasuk penemuan jaringan, deteksi
versi yang lebih canggih, deteksi kerentanan. NSE bahkan dapat digunakan untuk eksploitasi
kerentanan.

Untuk mencerminkan penggunaan yang berbeda dan untuk memudahkan pilihan skrip yang
diinginkan, setiap skrip berisi field yang mengasosiasikannya dengan satu atau lebih kategori.
Kategori yang ada saat ini adalah safe, intrusive, malware, version, discovery, vuln, auth,
and default. These are all described at http://nmap.org/book/nse-usage.html#nse-categories.

Nmap Scripting Engine dijelaskan lebih rinci di http://nmap.org/book/nse.html dan dikendalikan


oleh opsi-opsi berikut ini:

-sC

Melakukan scan skrip menggunakan sejumlah skrip baku. Ia merupakan ekivalen


--script=default. Beberapa skrip dalam kategori ini dianggap intrusif dan tidak
seharusnya dijalankan terhadap jaringan target tanpa ijin.

--script <script-categories>|<directory>|<filename>|all

Menjalankan scan skrip (seperti -sC) menggunakan daftar kategori skrip, skrip
individual, atau direktori berisikan skrip, aih-alih menggunakan set baku. Nmap akan
mencoba dulu menginterpretasikan argumen sebagai kategori, kemudian sebagai file atau
direktori. Skrip atau direktori skrip dapat dispesifikasikan dengan path absolut atau
relatif. Path absolut digunakan seperti yang diberikan. Path relatif akan dicari dalam
tempat-tempat berikut hingga ditemukan : --datadir/; $NMAPDIR/; ~/.nmap/ (tidak
dicari pada Windows); NMAPDATADIR/ or ./. A scripts/ subdirektori juga dicari untuk
setiap direktori ini.

Jika diberikan sebuah direktori dan ditemukan, Nmap memuat seluruh skrip NSE (semua
nama file yang berakhiran dengan .nse) dari direktori tersebut. Nama file tanpa ekstensi
nse akan diabaikan. Nmap tidak mencari secara rekursif ke subdirektori untuk mencari
skrip. Jika diberikan nama file individual, ekstensi file tidak perlu harus nse.

Skrip Nmap secara baku disimpan dalam subdirektori scripts direktori data Nmap (lihat
http://nmap.org/book/data-files.html). Demi efisiensi, skrip diindeks dalam database yang
disimpan dalam scripts/script.db. yang mendaftar kategori atau kategori-kategori
yang dimiliki skrip. Berikan argumen all untuk menjalankan seluruh skrip dalam
database skrip Nmap.
Skrip berbahaya tidak dijalankan dalam sandbox dan karenanya dapat merusak sistem
anda atau menggangu privasi anda. Jangan pernah menjalankan skrip dari pihak ketiga
kecuali anda mempercayai penulisnya atau telah mengaudit skrip tersebut dengan cermat.

--script-args <name1>=<value1>,<name2>={<name3>=<value3>},<name4>=<value4>

Membolehkan anda memberik argumen ke skrip NSE. Argument diberikan sebagai


pasangan name=value. Argumen yang diberikan diproses dan disimpan dalam tabel Lua,
yang dapat diakses oleh semua skrip. Nama-nama dianggap sebagai string (yang harus
berupa nilai alfanumerik) dan digunakan sebagai kunci dalam argument-table. Nilai
dapat berupa string atau tabel (dilingkupi oleh { dan }). Sebagai contoh, anda dapat
memberikan argumen : user=bar,pass=foo,whois={whodb=nofollow+ripe}.
Argumen string secara potensial digunakan oleh beberapa skrip; subtables normalnya
hanya digunakan oleh satu skrip. Dalam skrip yang menggunakan subtable, ia dinamakan
sesuai dengan nama skripnya (seperti whois dalam contoh ini).

--script-trace

Opsi ini melakukan apa yang dilakukan oleh --packet-trace, namun satu tingkat ISO
lebih tinggi. Jika diberikan opsi ini seluruh komunikasi incoming dan outgoing yang
dilakukan skrip akan dicetak. Informasi yang ditampilkan mencakup protokol
komunikasi, sumber, target dan data yang ditransmisikan. Jika lebih dari 5% seluruh data
yang ditransmisikan tidak dapat dicetak, maka output trace dalam format hex. --packet-
trace juga mengaktifkan tracing skrip.

--script-updatedb

Opsi ini mengupdate database skrip yang ditemukan dalam scripts/script.db yang
digunakan Nmap untuk menentukan skrip baku dan kategori yang tersedia. Opsi ini
digunakan bila anda menambah atau mengurangi skrip NSE dari direktori baku scripts
atau bila anda merubah kategori sembarang skrip. Opsi ini biasanya digunakan sendirian:
nmap --script-updatedb.

Pewaktuan dan Kinerja


Salah satu prioritas pengembangan tertinggi Nmap adalah kinerja. Scan baku (nmap
<hostname>) sebuah host pada jaringan lokal saya membutuhkan seperlima detik. Hal tersebut
cukup cepat, namun tambahkan bila anda memeriksa ratusan atau ribuan host. Terlebih lagi,
beberapa opsi scan seperti pemeriksaan UDP dan deteksi versi dapat meningkatkan waktu
pemeriksaan secara substansial. Begitu pula dengan beberapa konfigurasi firewall, terutama
pembatasan rate respon. Meskipun Nmap menggunakan paralelisme dan algoritma canggih
untuk mempercepat scan ini, user memiliki kendali penuh atas jalannya Nmap. User ahli secara
cermat memberikan perintah Nmap yang hanya mengambil informasi yang dibutuhkan dengan
batasan waktu yang sesuai.
Teknik-teknik untuk memperbaiki waktu pemeriksaan mencakup menghilangkan tes-tes yang
tidak kritikal, dan mengupgrade ke versi terakhir Nmap (perbaikan kinerja dibuat secara rutin).
Optimisasi parameter pewaktuan juga dapat memberikan perbedaan yang substansial. Opsi-opsi
tersebut diberikan di bawah ini.

Beberapa opsi menerima sebuah parameter waktu. Ia dispesifikasikan secara baku dalam
milidetik, meskipun anda dapat menambahkan s, m, atau h ke nilai untuk menspesifikasikan
detik, menit, atau jam. Sehingga argumen --host-timeout 900000, 900s, dan 15m semuanya
melakukan hal yang sama.

--min-hostgroup <numhosts>; --max-hostgroup <numhosts> (Adjust parallel scan group


sizes)

Nmap memiliki kemampuan untuk melakukan scan port atau versi ke banyak host secara
paralel. Nmap melakukan hal ini dengan membagi ruang IP target ke dalam kelompok
dan kemudian memeriksa satu kelompok pada satu waktu. Secara umum, kelompok yang
lebih besar lebih efisien. Kelemahannya adalah hasilnya tidak dapat disediakan hingga
seluruh kelompok selesai. Jadi bila Nmap dimulai dengan kelompok berukuran 50, user
tidak akan menerima laporan (kecuali update yang diberikan dalam mode verbose)
hingga seluruh 50 host pertama selesai.

Secara baku, Nmap menggunakan pendekatan kompromi untuk konflik in. Ia mulai
dengan ukuran kelompok paling kecil lima sehingga dapat segera diperoleh hasil dan
kemudian menaikkan ukuran kelompok hingga maksimum 1024. Angka baku tergantung
pada opsi yang diberikan. Demi alasan efisiensi, Nmap menggunakan ukuran kelompok
yang lebih besar untuk scan UDP atau sedikit-port TCP.

Ketika ukuran kelompok maksimum diberikan dengan --max-hostgroup, Nmap tidak


akan melampaui ukuran tersebut. Berikan ukuran minimum dengan --min-hostgroup
dan Nmap akan berusaha ukuran kelompok di atas angka tersebut. Nmap mungkin akan
menggunakan kelompok lebih kecil daripada yang anda spesifikasikan jika tidak terdapat
cukup target pada interface yang diberikan untuk memenuhi ukuran minimum. Kedua
opsi dapat digunakan untuk menset ukuran kelompok dalam rentang tertentu, namun hal
ini jarang diperlukan.

Opsi-opsi ini tidak memiliki efek ketika melalukan fase penemuan host dalam sebuah
pemeriksaan. Ini mencakup scan ping biasa (-sP). Penemuan host selalu bekerja dalam
kelompok host besar untuk meningkatkan kecepatan dan akurasi.

Penggunaan utama opsi ini adalah untuk menspesifikasikan ukuran kelompok minimum
yang besar sehingga scan penuh dapat dilakukan lebih cepat. Pilihan umum adalah 256
untuk memeriksa jaringan dalam Kelas C. Untuk scan dengan banyak port, melampaui
angka tersebut tidak berarti banyak. Untuk scan terhadap beberapa port saja, ukuran
kelompok host 2048 atau lebih mungkin bermanfaat.
--min-parallelism <numprobes>; --max-parallelism <numprobes> (Adjust probe
parallelization)

Opsi-opsi ini mengendalikan jumlah total probe yang dapat dilakukan untuk sekelompok
host. Mereka digunakan untuk pemeriksaan port dan penemuan host. Secara baku, Nmap
menghitung nilai paralel yang ideal berdasarkan kinerja jaringan. Jika paket di-drop,
Nmap mengurangi dan membolehkan lebih sedikit probe yang tersisa. Angka probe ideal
akan meningkat seiring dengan membaiknya jaringan. Opsi ini menempatkan batas
minimum atau maksimum pada variabel tersebut. Secara baku, nilai idealnya dapat
menurun ke angka satu bila jaringan ternyata tidak handal dan meningkat ke beberapa
ratus dalam kondisi sempurna.

Penggunaan paling umum adalah menset --min-parallelism ke angka lebih tinggi


daripada satu untuk mempercepat scan host atau jaringan yang lambat. Ini adalah opsi
berisiko untuk dimainkan, karena bila mensetnya terlalu tinggi akan mempengaruhi
akurasi. Dengan menset opsi ini juga akan mengurangi kemampuan Nmap untuk
mengendalikan paralelisme secara dinamis berdasarkan kondisi jaringan. Nilai sepuluh
adalah cukup, meskipun saya hanya menyesuaikan nilai ini sebagai usaha terakhir.

Opsi --max-parallelism seringkali diset ke satu untuk mencegah Nmap mengirimkan


lebih dari satu probe di satu waktu ke host. Opsi ini dapat bermanfaat saat berkombinasi
dengan --scan-delay (akan didiskusikan kemudian), meskipun yang terakhir biasanya
dapat digunakan sendiri.

--min-rtt-timeout <time>, --max-rtt-timeout <time>, --initial-rtt-timeout


<time> (Adjust probe timeouts)

Nmap memelihara sebuah nilai timeout untuk menentukan berapa lama ia harus
menunggu atas respon probe sebelum ia menyerah atau mentransmisi ulang probe. Nilai
ini dihitung berdasarkan waktu respon probe sebelumnya. Jika latensi jaringan
menunjukkan signifikan dan bervariasi, nilai timeout ini dapat meningkat ke beberapa
detik. Ia juga dimulai dari nilai konservatif (tinggi) dan tetap untuk sementara waktu
ketika Nmap memeriksa host yang tidak responsif.

Menspesifikasikan nilai --max-rtt-timeout dan --initial-rtt-timeout lebih kecil


daripada nilai baku dapat mempercepat waktu pemeriksaan secara signifikan. Hal ini
terutama benar untuk scan tanpa ping (-PN), dan terhadap jaringan yang disaring secara
ketat. Meskipun jangan terlalu agresif. Pemeriksaan dapat lebih lama jika anda
menspesifikasikan nilai rendah sehingga banyak probe timeout dan dilakukan transmisi
ulang ketika respons sedang dalam transit.

Bila seluruh host berada pada jaringan lokal, 100 milidetik adalah nilai --max-rtt-
timeout agresif yang wajar. Jika melibatkan routing, ping host pada jaringan terlebih
dulu dengan utilitas ping ICMP, atau dengan pembuat paket kustom seperti hping2 yang
lebih mungkin melewati firewall. Lihat maximum round trip time out dari sepuluh paket
atau lebih. Anda mungkin ingin menggandakannya untuk --initial-rtt-timeout dan
mengalikan tiga atau empat untuk --max-rtt-timeout. Umumnya saya tidak menset
nilai maksimum RTT di bawah 100 ms, berapapun waktu ping. Ataupun melebihi
1000 ms.

--min-rtt-timeout merupakan opsi yang jarang digunakan yang berguna ketika


jaringan tidak handal, yang bahkan nilai baku Nmap terlalu agresif. Karena Nmap hanya
mengurangi timeout ke minimum ketika jaringan tampaknya handal, kebutuhan ini tidak
umum dan seharusnya dilaporkan sebagai bug ke nmap-dev mailing list.

--max-retries <numtries> (Specify the maximum number of port scan probe


retransmissions)

Ketika Nmap tidak menerima respon atas probe scan port, hal ini dapat berarti bahwa
port disaring. Atau mungkin probe atau respon hilang dalam jaringan. Mungkin juga host
target melakukan pembatasan sehingga memblokir respon sementara. Sehingga Nmap
mencoba kembali mentransmisi probe awal. Jika Nmap mendeteksi kehandalan jaringan
yang buruk, ia akan mencoba beberapa kali sebelum menyerah. Meskipun hal ini
bermanfaat untuk akurasi, namun akan memperpanjang waktu pemeriksaan. Ketika
kinerja lebih diutamakan, pemeriksaan dapat dipercepat dengan membatasi jumlah
transmisi ulang yang dibolehkan. Anda bahkan dapat menspesifikasikan --max-retries
0 untuk mencegah terjadinya transmisi ulang, meskipun hanya direkomendasikan bagi
situasi seperti survei informal ketika terjadi port dan host yang tidak didata tidak menjadi
masalah.

Bakunya (dengan template tanpa -T) adalah membolehkan sepuluh transmisi ulang. Jika
jaringan tampak handal dan host target tidak membatasi, Nmap biasanya melakukan
hanya satu transmisi ulang. Sehingga kebanyakan pemeriksaan target tidak terpengaruh
dengan mengurangi nilai --max-retries ke nilai yang rendah seperti tiga. Nilai tersebut
dapat secara substansial mempercepat pemeriksaan host-host lambat (rate limited). Anda
biasanya kehilangan beberapa informasi ketika Nmap menyerah dengan mudah,
meskipun hal tersebut lebih disukai daripada membiarkan --host-timeout berakhir dan
kehilangan seluruh informasi mengenai target.

--host-timeout <time> (Give up on slow target hosts)

Beberapa host membutuhkan banyak waktu untuk diperiksa. Hal ini mungkin disebabkan
hardware atau software yang tidak berkinerja baik atau tidak handal, adanya pembatasan
paket, atau firewall yang terlalu ketat. Beberapa persen host paling lambat yang diperiksa
dapat menghabiskan sebagian besar waktu pemeriksaan. Terkadang adalah hal baik
mengurangi kerugian dan melewati host-host tersebut. Berikan --host-timeout dengan
waktu maksimum anda ingin menunggu. Sebagai contoh, berikan 30m untuk memastikan
bahwa Nmap tidak menghabiskan lebih dari setengah jam pada satu host. Perhatikan
bahwa Nmap mungkin memeriksa host lain pada waktu yang sama dalam waktu tersebut,
sehingga itu bukan kerugian lengkap. Host yang timeout akan dilewati. Tidak ada hasil
tabel port, deteksi SO, atau deteksi versi akan dicetak untuk host tersebut.
--scan-delay <time>; --max-scan-delay <time> (Adjust delay between probes)

Opsi ini menyebabkan Nmap menunggu selama waktu yang diberikan antara setiap probe
yang dikirimkan ke host yang diberikan. Hal ini terutama bermanfaat dalam hal
pembatasan. Mesin-mesin Solaris (di antara yang lainnya) akan menanggapi paket probe
scan UDP dengan hanya satu pesan ICMP per detik. Bila dikirimkan oleh Nmap lebih
dari itu akan percuma. Nilai --scan-delay 1s akan membuat Nmap tetap pada rate
lambat tersebut. Nmap berusaha untuk mendeteksi pembatasan rate dan menyesuaikan
delay scan, namun tidaklah rugi untuk menspesifikasikannya secara eksplisit bila anda
telah tahu rate terbaik.

Ketika Nmap menyesuaikan delay scan lebih tinggi untuk menanggapi pembatasn rate,
scan akan melambat secara dramatis. Opsi --max-scan-delay menspesifikasikan delay
terbesar yang dibolehkan Nmap. Nilai --max-scan-delay rendah akan mempercepat
Nmap, namun berisiko. Dengan menset nilai ini terlalu rendah dapat menyebabkan
transmisi ulang paket yang tidak perlu dan mungkin port-port luput ketika target
mengimplementasikan pembatasan rate ketat.

Penggunaan lain --scan-delay adalah untuk menghindari sistem deteksi dan


pencegahan intrusi (IDS/IPS) yang berbasis pembatasan

--min-rate <number>; --max-rate <number> (Directly control the scanning rate)

Pewaktuan dinamis Nmap melakukan pekerjaan yang baik dalam menemukan kecepatan
yagn tepat untuk melakukan pemeriksaan. Namun terkadang, anda mungkin mengetahui
rate pemeriksaan jaringan yang tepat, atau anda harus memastikan bahwa pemeriksaan
akan selesai pada waktu tertentu. Atau mungkin anda harus menjaga Nmap dari
melakukan pemeriksaan terlalu cepat. Opsi --min-rate dan --max-rate dirancang
untuk situasi ini.

Ketika opsi --min-rate diberikan Nmap akan melakukan yang terbaik untuk mengirim
paket secepat atau lebih cepat daripada rate yang diberikan. Argumen merupakan angka
real positif mewakili rate paket per detik. Sebagai contoh, dengan menspesifikasikan
--min-rate 300 berarti bahwa Nmap akan berusaha menjaga rate pengiriman pada atau
di atas 300 paket per detik. Penspesifikasian rate minimum tidak mencegah Nmap
mengirimkan lebih cepat bila kondisi memungkinkan.

Demikian pula, --max-rate membatasi rate pengiriman ke nilai maksimum yang


diberikan. Gunakan --max-rate 100, misalnya, untuk membatasi pengiriman 100 paket
per detik pada jaringan yang cepat. Gunakan --max-rate 0.1 untuk scan lambat satu
paket setiap sepuluh detik. Gunakan --min-rate dan --max-rate bersama untuk
menjaga rate pada rentang tertentu.

Kedua opsi ini bersifat global, mempengaruhi seluruh pemeriksaan, bukan host
individual. Mereka hanya mempengaruhi scan port dan pencarian host Fitur lain seperti
deteksi SO mengimplementasikan pewaktuan mereka sendiri.
Terdapat dua kondisi ketika rate pemeriksaan aktual kurang dari nilai minimum yang
diminta. Pertama adalah bila nilai minimum lebih cepat daripada rate tercepat pengiriman
Nmap, yang tergantung pada hardware. Dalam kasus ini Nmap akan mengirim paket
secepat mungkin, namun waspadai bahwa rate tinggi tersebut kemungkinan akan
menyebabkan kehilangan akurasi. Kasus kedua adalah ketika Nmap tidak memiliki
sesuatu untuk dikirim, sebagai contoh di akhir pemeriksaan ketika probe terakhir telah
dikirim dan Nmap menunggu mereka time out atau mendapat respon. Adalah normal
melihat rate pemeriksaan menurun pada akhir pemeriksaan atau di antara kelompok host.
Rate pengiriman mungkin melebihi nilai maksimum untuk sementara waktu untuk
mengimbangi delay yang tak terduga, namun secara rata-rata rate akan tetap pada atau di
bawah nilai maksimum.

Menspesifikasikan nilai rate minimum harus dilakukan dengan hati-hati. Pemeriksaan


yang lebih cepat daripada yang dapat didukung oleh jaringan akan menyebabkan
hilangnya akurasi. Dalam beberapa kasus, dengan menggunakan rate yang lebih cepat
dapat membuat pemeriksaan menjadi lebih lama daripada bila menggunakan rate yang
lebih lambat. Hal ini karena algoritma adaptive retransmission Nmap akan mendeteksi
kepadatan jaringan yang disebabkan oleh rate pemeriksaan yang berlebihan dan
meningkatkan angka transmisi ulang untuk memperbaiki akurasi. Jadi meskipun paket
dikirim pada rate yang lebih tinggi, namun secara keseluruhan lebih banyak paket yang
dikirimkan. Batasi angka transmisi ulang dengan opsi --max-retries jika anda ingin
menset batas atas waktu scan total.

--defeat-rst-ratelimit

Banyak host telah lama menggunakan pembatasan rate untuk mengurangi jumlah pesan
kesalahan ICMP (seperti kesalahan port-unreachable) yang mereka kirim. Saat ini
beberapa sistem menggunakan pembatasan limit ke paket RST (reset) yang mereka
hasilkan. Hal ini akan memperlambat Nmap secara dramatis karena ia akan
menyesuaikan pewaktuannya untuk mencerminkan batas rate tersebut. Anda dapat
memberitahu Nmap untuk mengabaikan limit rate tersebut (untuk scan port seperti SYN
scan yang tidak memperlakukan port non-responsiv sebagai open) dengan
menspesifikasikan --defeat-rst-ratelimit.

Dengan menggunakan opsi ini akan mengurangi akurasi, karena beberapa port akan
tampak non-responsiv karena Nmap tidak menunggu cukup lama untuk respon RST yang
rate-limited. Dengan SYN scan, hasil non-respon dalam port akan ditandai dengan status
filtered alih-alih closed ketika menerima paket RST. Tambahan ini berguna ketika
anda hanya perlu port terbuka, dan beda antara port closed dan filtered tidak cukup
berharga.

-T paranoid|sneaky|polite|normal|aggressive|insane (Set a timing template)

Meski kendali waktu fine-grained yang didiskusikan dalam bagian sebelumnya adalah
powerful dan efektif, beberapa orang menganggapnya membingungkan. Terlebih lagi,
memilih nilai yang tepat terkadang membutuhkan waktu lebih lama daripada
pemeriksaan yang ingin dioptimisasi. Sehingga Nmap menawarkan pendekatan yang
lebih mudah, dengan enam template waktu. Anda dapat menspesifikasikannya dengan
opsi -T dan angkanya (05) atau namanya. Nama templatenya adalah paranoid (0),
sneaky (1), polite (2), normal (3), aggressive (4), dan insane (5). Dua yang pertama
adalah untuk menghindari IDS. Mode Polite memperlambat scan untuk menggunakan
lebih sedikit bandwidth dan sumber daya mesin target. Mode Normal adalah bakunya
sehingga -T3 tidak melakukan apapun. Mode Aggressive mempercepat scan dengan
membuat asumsi bahwa anda berada pada jaringan yang cepat dan handal. Akhirnya,
mode insane mengasumsikan bahwa anda berada pada jaringan yang sangat cepat atau
rela mengorbankan akurasi demi kecepatan.

Kesemua template ini memungkinkan user menspesifikasikan seberapa mereka ingin


agresif, dan membiarkan Nmap memilih nilai pewaktuan yang tepat. Template juga
membuat beberapa penyesuaian kecepatan minor yang tidak dimiliki oleh kendali fine-
grained saat ini. Sebagai contoh, -T4 melarang delay scan dinamis melebihi 10 ms untuk
port TCP dan -T5 membatasi nilai tersebut di 5 ms. Template dapat digunakan dalam
kombinasi dengan kendali fine-grained, dan kendali fine-grained yang anda berikan akan
mengambil alih template pewaktuan baku untuk parameter tersebut. Saya
merekomendasikan penggunaan -T4 ketika memeriksa jaringan modern dan handal.
Pertahankan opsi tersebut bahkan ketika anda menambah kendali fine-grained sehingga
anda memperoleh manfaat dari optimisasi minor yang diberikan.

Bila anda berada pada koneksi broadband atau ethernet yang memadai, saya akan
merekomendasikan untuk selalu menggunakan -T4. Beberapa orang mencintai -T5
meskipun itu terlalu agresif untuk selera saya. Orang terkadang memberikan -T2 karena
mereka pikir ia lebih tidak mungkin akan menyebabkan host crash atau karena mereka
mengganggap dirinya secara umum sopan. Mereka terkadang tidak menyadari betapa
lambatnya -T polite. Scan mereka akan membutuhkan waktu sepuluh kali lebih lama
daripada scan baku. Mesin crash dan masalah bandwidth adalah jarang dengan opsi
pewaktuan baku (-T3) sehingga normalnya saya merekomendasikan untuk pemeriksa
yang berhati-hati. Menghilangkan deteksi versi lebih efektif daripada bermain dengan
nilai pewaktuan dalam mengurangi masalah ini.

Meski -T0 dan -T1 mungkin berguna untuk menghindari alert IDS, mereka akan
membutuhkan waktu yang sangat lama untuk memeriksa ribuan mesin atau port. Untuk
scan yang demikian lama, anda mungkin lebih menyukai menset nilai pewaktuan secara
tepat anda butuhkan alih-alih bergantung pada nilai template -T0 and -T1.

Efek utama T0 adalah serialisasi scan sehingga hanya satu port yang diperiksa pada satu
waktu, dan menunggu lima menit antara pengiriman setiap probe. T1 dan T2 adalah
serupa namun mereka hanya menunggu 15 detik dan 0.4 detik, antar probe. T3
merupakan perilaku baku Nmap, yang mencakup paralelisasi. -T4 ekivalen dengan
--max-rtt-timeout 1250 --initial-rtt-timeout 500 --max-retries 6 dan
menset delay scan TCP maksimum ke 10 milidetik. T5 ekivalen dengan --max-rtt-
timeout 300 --min-rtt-timeout 50 --initial-rtt-timeout 250 --max-retries
2 --host-timeout 15m dan juga menset delay scan TCP maksimum ke 5 md.
Firewall/IDS Evasion and Spoofing
Banyak pionir Internet mempunyai visi jaringan terbuka global dengan ruang alamat IP universal
yang memungkinkan koneksi virtual antara dua node. Hal ini membuat host bertindak sebagai
peer sebenarnya, menyajikan dan mengambil informasi satu sama lain. Orang dapat mengakses
sistem di rumah mereka dari tempat kerja, merubah seting kendali iklim atau membuka pintu
bagi tamu yang datang awal. Visi konektivitas universal ini telah dibatasi dengan kekurangan
ruang alamat dan masalah keamanan. Di awal tahun 1990-an, organisasi mulai menggunakan
firewall dengan tujuan mengurangi konektivitas. Jaringan besar dibatasi dari Internet oleh proxy
aplikasi, network address translation, dan filter paket. Aliran informasi yang tidak terbatas
berubah menjadi regulasi ketat atas kanal komunikasi dan isi yang melaluinya.

Penghalang jaringan seperti firewall dapat membuat pemetaan jaringan sukar. Ia tidak akan
menjadi lebih mudah, karena mengurangi reconnaissance umum adalah tujuan utama
implementasi device tersebut. Namun demikian, Nmap menawarkan banyak fitur untuk
membantu memahami jaringan yang kompleks ini, dan untuk memverifikasi bahwa filter bekerja
sebagaimana yang diharapkan. Ia bahkan mendukung mekanisme untuk melewati pertahanan
yang diimplementasikan dengan buruk. Salah satu metode terbaik untuk memahami postur
keamanan jaringan anda adalah dengan berusaha mengalahkannya. Tempatkan diri anda dalam
pola pikir penyerang, dan gunakan teknik-teknik dari bagian ini terhadap jaringan anda. Lakukan
scan FTP bounce, scan idle, serangan fragmentasi, atau berusaha melakukan tunnel melalui salah
satu proxy anda.

Selain membatasi aktivitas jaringan, perusahaan semakin meningkatkan pemantauan lalu lintas
dengan intrusion detection systems (IDS). Seluruh IDS utama menyertakan aturan yang
dirancang untuk mendeteksi scan Nmap karena scan terkadang merupakan awal serangan.
Banyak dari produk-produk ini yang sekarang berubah menjadi intrusion prevention systems
(IPS) yang secara aktif memblokir lalu lintas yang dianggap berbahaya. Sayangnya bagi
administrator jaringan dan vendor IDS, mendeteksi tujuan jahat dengan menganalisis data paket
merupakan masalah yang berat. Penyerang dengan kesabaran, keahlian, dan bantuan opsi-opsi
Nmap tertentu biasanya dapat melewati IDS tanpa terdeteksi. Selain itu, administrator harus
berurusan dengan hasil false positive dalam jumlah besar sehingga aktivitas yang tidak
berbahaya salah didiagnosa dan di-alert atau diblokir.

Terkadang orang menyarankan bahwa Nmap tidak seharusnya menawarkan fitur-fitur untuk
melewati aturan firewall atau menyelinap dari IDS. Mereka berargumen bahwa fitur-fitur ini
akan disalahgunakan oleh penyerang alih-alih digunakan oleh administrator untuk memperbaiki
keamanan. Permasalahan dengan logika ini adalah metode-metode tersebut tetap akan digunakan
oleh penyerang, yang akan mencari tool lain atau menambahkan fungsionalitas tersebut ke dalam
Nmap. Sedangkan, administrator akan merasa lebih sulit melakukan pekerjaan mereka.
Menggunakan server FTP yang telah dipatch dan modern adalah pertahanan yang jauh lebih baik
daripada mencegah penyebaran tool implementasi serangan FTP bounce.

Tidak ada peluru ajaib (atau opsi Nmap) untuk mendeteksi dan menghindari firewall dan sistem
IDS. Ia membutuhkan kemampuan dan pengalaman. Tutorial adalah di luar cakupan panduan
referensi ini, yang hanya mendaftarkan opsi-opsi yang relevan dan menjelaskan apa yang mereka
lakukan.

-f (fragment packets); --mtu (using the specified MTU)

Opsi -f menyebabkan scan yang diminta (termasuk ping scan) untuk menggunakan paket
IP terfragmentasi kecil. Idenya adalah membagi header TCP ke beberapa paket untuk
membuat filter paket, IDS, dan gangguan lain kesulitan mendeteksi apa yang sedang anda
lakukan. Hati-hatilah dengan ini! Beberapa program memiliki kesulitan menangani paket-
paket kecil ini. Sniffer old-school bernama Sniffit akan menjadi segmentation faulted
segera setelah menerima fragmen pertama. Spesifikasikan opsi ini sekali, dan Nmap
membagi paket ke dalam delapan byte atau kurang setelah header IP. Sehingga paket
header TCP 20-byte akan dibagi ke dalam tiga paket. Dua paket dengan delapan byte
header TCP, dan satu paket dengan empat byte akhir. Tentu saja setiap fragmen juga
memiliki header IP. Spesifikasikan -f lagi untuk menggunakan fragmen 16 byte
(mengurangi jumlah fragmen). Atau anda dapat menspesifikasikan ukuran offset anda
sendiri dengan opsi --mtu. Jangan berikan opsi -f bila anda menggunakan --mtu. Offset
harus merupakan kelipatan delapan. Meskipun paket fragmented tidak akan melewati
filter paket dan firewall yang membuat antrian seluruh fragment IP, seperti opsi
CONFIG_IP_ALWAYS_DEFRAG dalam kernel Linux, beberapa jaringan tidak dapat
mengatasi kerugian kinerja yang disebabkannya dan membiarkan opsi tersebut tidak
aktif. Yang lain tidak dapat mengaktifkannya karena fragmen dapat mengambil rute yang
berbeda ke jaringan mereka. Beberapa sistem sumber mendeframentasi paket outgoing
dalam kernel. Linux dengan modul pelacakan koneksi iptable adalah salah satu
contohnya. Lakukan scan ketika sniffer seperti Wireshark berjalan untuk memastikan
bahwa paket yang dikirim terfragmentasi. Jika OS host anda menyebabkan masalah,
cobalah opsi --send-eth untuk melewati lapisan IP dan mengirim frame ethernet raw.

Fragmentasi hanya didukung oleh fitur paket raw Nmap, yang mencakup scan port TCP
dan UDP (kecuali scan connect dan FTP bounce scan) dan deteksi SO. Fitur seperti
deteksi versi dan Nmap Scripting Engine umumnya tidak mendukung fragmentasi karena
mereka tergantung pada stack TCP host anda untuk berkomunikasi dengan layanan target.

-D <decoy1>[,<decoy2>][,ME][,...] (Cloak a scan with decoys)

Menyebabkan dilakukannya decoy scan, yang membuat host remote menganggap bahwa
host-host yang anda berikan sebagai umpan (decoy) juga melakukan pemeriksaan
jaringan target. Karenanya IDS mereka mungkin melaporkan scan port sebanyak 510
dari alamat IP yang unik, tetapi mereka tidak akan tahu IP mana yang memeriksa mereka
dan mana yang umpan. Meski hal ini dapat dikalahkan dengan router path tracing,
response-dropping, dan mekanisme aktif lainnya, namun ia umumnya merupakan teknik
efektif untuk menyembunyikan alamat IP anda.

Pisahkan setiap host umpan dengan koma, dan anda dapat secara opsional menggunakan
ME sebagai salah satu umpan untuk mewakili posisi alamat IP real anda. Jika anda
menempatkan ME pada posisi keenam atau lebih, beberapa detektor scan port umum
(seperti Solar Designer's Scanlogd yang bagus) tidak akan menampilkan alamat IP anda
sama sekali. Jika anda tidak menggunakan ME, Nmap akan menempatkan anda pada
posisi acak. Anda dapat juga menggunakan RND untuk menghasilkan alamat IP acak dan
non-reserved, atau RND:<number> untuk menghasilkan alamat <number>

Perhatikan bahwa host yang anda gunakan sebagai umpan harus hidup atau anda akan
secara tidak sengaja mebanjiri target anda dengan SYN. Juga mudah menentukan host
mana yang memeriksa jika hanya satu host saja yang hidup pada jaringan. Anda mungkin
ingin menggunakan alamat IP alih-alih nama (sehingga jaringan umpan tidak melihat
anda dalam log DNS mereka).

Umpan digunakan dalam scan ping awal (menggunakan ICMP, SYN, ACK, atau apapun)
dan selama fase pemeriksaan port. Umpan juga digunakan selama deteksi SO (-O).
Umpan tidak bekerja dengan deteksi versi atau scan connect TCP. Ketika berlaku scan
delay, delay ditegakkan antara setiap batch probe palsu, tidak antara setiap probe
invididual. Karena umpan dikirim sebagai satu batch keseluruhan, mereka mungkin
melanggar batasan kendali kongesti secara sementara.

Penting diperhatikan bahwa penggunaan terlalu banyak umpan mungkin memperlambat


scan anda dan secara potensial membuatnya kurang akurat. Dan juga, beberapa ISP akan
menyaring paket-paket palsu anda, namun banyak juga yang tidak membatasi paket IP
palsu.

-S <IP_Address> (Spoof source address)

Dalam beberapa keadaan, Nmap mungkin tidak dapat menentukan alamat sumber anda
(Nmap akan memberitahu anda hal ini). Dalam situasi ini, gunakan -S dengan alamat IP
interface yang ingin anda gunakan untuk mengirim paket.

Kemungkinan lain penggunaan flag ini adalah untuk memalsukan scan untuk membuat
target berpikir bahwa orang lain sedang memeriksa mereka. Bayangkan sebuah
perusahaan sedang diperiksa portnya secara berulang-ulang oleh pesaing! Opsi -e dan
-PN umumnya dibutuhkan untuk penggunaan seperti ini. Perhatikan bahwa anda biasanya
tidak menerima paket reply (mereka akan ditujukan ke alamat IP yang anda palsukan),
sehingga Nmap tidak akan menghasilkan laporan yang berguna.

-e <interface> (Use specified interface)

Memberitahu Nmap interface untuk mengirim dan menerima paket. Nmap seharusnya
dapat mendeteksinya secara otomatis, namun ia akan memberitahu anda bila ia tidak
dapat melakukannya.

--source-port <portnumber>; -g <portnumber> (Spoof source port number)

Salah satu kesalahan konfigurasi umum yang mengagetkan adalah mempercayai lalu
lintas hanya berdasarkan nomor port sumber. Adalah mudah memahami bagaimana hal
ini terjadi. Administrator akan mensetup firewall baru, hanya untuk dibanjiri dengan
keluhan user yang aplikasinya berhenti bekerja. Secara khusus, DNS mungkin tidak
berfungsi karena reply UDP DNS dari server eksternal tidak dapat lagi memasuki
jaringan. FTP adalah contoh umum lainnya. Dalam transfer FTP aktif, server remote
berusaha membuka koneksi ke klien untuk mengirim file yang diminta.

Terdapat solusi aman untuk masalah ini, seringkali berupa proxy level-aplikasi atau
modul firewall protocol-parsing. Sayangnya terdapat pula solusi yang lebih mudah dan
tidak aman. Dengan memperhatikan bahwa balasan DNS datang dari port 53 dan active
FTP dari port 20, banyak aadministrator terjebak dengan membolehkan lalu lintas
incoming dari port-port ini. Mereka terkadang berasumsi bahwa tidak ada penyerang
akan memperhatikan dan memanfaatkan lubang firewall ini. Dalam kasus lain,
administrator menganggap ini sebagai solusi sementara hingga mereka dapat
mengimplementasikan solusi yang lebih aman. Lalu mereka lupa melakukan upgrade
keamanan.

Administrator jaringan yang terlalu banyak kerja bukan satu-satunya yang jatuh dalam
jebakan ini. Sejumlah produk dikirim dengan rule tidak aman ini. Bahkan Microsoft telah
bersalah. Filter IPsec yang disertakan dengan Windows 2000 dan Windows XP berisikan
sebuah rule implisit yang membolehkan semua lalu lintas TCP atau UDP dari port 88
(Kerberos). Dalam kasus terkenal lain, firewall personal Zone Alarm hingga versi 2.1.25
membolehkan sembarang paket UDP incoming dengan port sumber 53 (DNS) atau 67
(DHCP).

Nmap menawarkan opsi -g dan --source-port (mereka ekivalen) untuk


mengeksploitasi kelemahan ini. Cukup berikan nomor port dan Nmap akan mengirim
paket dari port itu bila memungkinkan. Nmap harus menggunakan nomor port yang
berbeda bagi beberapa tes deteksi SO tertentu agar bekerja dengan benar, dan request
DNS mengabaikan flag --source-port karena Nmap mengandalkan pada librari sistem
untuk menangani hal ini. Kebanyakan scan TCP, termasuk SYN scan, mendukung opsi
secara penuh, demikian pula scan UDP.

--data-length <number> (Append random data to sent packets)

Normalnya Nmap mengirim paket minimalis yang hanya berisi header. Sehingga paket
TCP umumnya berukuran 40 byte dan request ICMP echo cuma 28. Opsi ini
memberitahu Nmap untuk menambahkan random byte sejumlah tertentu untuk
kebanyakan paket yang dikirimnya. Paket deteksi SO (-O) tidak terpengaruh karena
akurasinya membutuhkan konsistensi probe, namun kebanyakan paket ping dan portscan
mendukung opsi ini. Ia sedikit memperlambat, namun dapat membuat scan tidak terlalu
mencurigakan.

--ip-options <S|R [route]|L [route]|T|U ... >; --ip-options <hex string> (Send
packets with specified ip options)
Protokol IP menawarkan beberapa opsi yang dapat ditempatkan pada header paket. Tidak
seperti opsi TCP yang umum, opsi IP jarang ditemukan karena masalah kepraktisan dan
keamanan. Nyatanya, banyak router Internet memblokir opsi yang paling berbahaya
seperti source routing. Namun opsi dapat tetap berguna dalam beberapa kasus untuk
menentukan dan memanipulasi rute jaringan ke mesin target. Sebagai contoh, anda
mungkin dapat menggunakan opsi record route untuk menentukan path ke target bahkan
ketika pendekatan tradisional bergaya traceroute gagal. Atau bila paket anda di-drop oleh
firewall tertentu, anda mungkin dapat menspesifikasikan rute yang berbeda dengan opsi
source routing yang ketat atau longgar.

Cara paling powerful untuk menspesifikasikan opsi IP adalah cukup dengan memberikan
nilainya sebagai argumen ke --ip-options. Dahului setiap angka hex dengan \x lalu
dua digit. Anda dapat mengulang karakter tertentu dengan menambahkan tanda bintang
dan diikuti jumlah perulangan yang anda inginkan. Sebagai contoh,
\x01\x07\x04\x00*36\x01 adalah sebuah string hex berisi 36 NUL byte.

Nmap juga menawarkan mekanisme shortcut untuk menspesifikasikan opsi. Cukup


berikan huruf R, T, atau U untuk meminta record-route, record-timestamp, atau keduanya,
Source routing ketat atau longgar dapat dispesifikasikan dengan tanda L atau S diikuti
oleh spasi dan kemudian daftar alamat IP yang dipisah-spasi.

Jika anda ingin melihat opsi dalam paket yang dikirim dan diterima, berikan --packet-
trace. Informasi dan contoh lebih lanjut tentang penggunaan opsi IP dengan Nmap,
dapat dilihat di http://seclists.org/nmap-dev/2006/q3/0052.html.

--ttl <value> (Set IP time-to-live field)

Set field time-to-live IPv4 dalam paket yang dikirim ke nilai yang diberikan.

--randomize-hosts (Randomize target host order)

Beritahu Nmap untuk mengacak setiap kelompok hingga 16384 host sebelum memeriksa
merekaa. Hal ini dapat membuat scan kurang mencurigakan bagi berbagai sistem
monitoring jaringan, terutama bila anda menggabungkannya dengan opsi pewaktuan yang
lambat. Jika anda ingin mengacak dalam ukuran yang lebih besar, naikkan nilai
PING_GROUP_SZ dalam nmap.h dan kompilasi ulang. Solusi alternatif adalah
menghasilkan daftar IP target dengan list scan (-sL -n -oN <filename>), acaklah
dengan skrip Perl, lalu berikan seluruh daftar ke Nmap dengan -iL.

--spoof-mac <MAC address, prefix, or vendor name> (Spoof MAC address)

Meminta Nmap untuk menggunakan alamat MAC yang diberikan untuk seluruh frame
ethernet raw yang dikirimkan. Opsi ini mengimplikasikan --send-eth untuk memastikan
bahwa Nmap benar-benar mengirim paket level-ethernet. MAC yang diberikan dapat
dalam beragam format. Jika berupa angka 0, Nmap memilih alamat MAC yang acak
untuk sesi itu. Jika string yang diberikan adalah angka genap digit hex (setiap digit
berpasangan dipisahkan oleh tanda titik dua), Nmap akan menggunakannya sebagai
MAC. Jika diberikan kurang dari 12 digit hex, Nmap mengisi sisa 6 byte-nya dengan
nilai acak. Jika argumen bukanlah nol atau string hex, Nmap mencari melalui file nmap-
mac-prefixes untuk menemukan nama vendor berisikan string yang diberikan (tidak
case sensitive). Jika ditemukan kecocokan, Nmap menggunakan OUI (three-byte prefix)
vendor dan mengisi tiga byte sisanya secara random. Contoh argumen yang valid
--spoof-mac adalah Apple, 0, 01:02:03:04:05:06, deadbeefcafe, 0020F2, dan
Cisco. Opsi ini hanya mempengaruhi scan paket raw seperti SYN scan atau deteksi SO,
dan tidak berlaku pada fitur berorientasi-koneksi seperti deteksi versi atau Nmap
Scripting Engine.

--badsum (Send packets with bogus TCP/UDP checksums)

Meminta Nmap untuk menggunakan checksum TCP atau UDP tidak valid untuk paket
yang dikirimkan ke host target. Karena secara virtual seluruh stack IP host akan secara
tepat men-drop paket ini, sembarang respon yang diterima adalah kemungkinan berasal
dari firewall atau IDS yang tidak peduli untuk memverifikasi checksum. Detil lebih lanjut
mengenai teknik ini, dapat dilihat pada http://nmap.org/p60-12.html

Output
Manfaat tool keamanan ditentukan oleh output yang dihasilkannya. Algoritma dan tes yang
kompleks tidaklah berguna bila mereka tidak dipresentasikan dalam cara yang terorganisir dan
lengkap. Dengan beragamnya cara penggunaan Nmap oleh orang dan software lainnya, tidak ada
format yang dapat memuaskan semuanya. Sehingga Nmap memberikan beberapa format,
termasuk mode interaktif agar manusia dapat membaca secara langsung dan XML untuk
memudahkan parsing oleh software.

Selain memberikan beragam format output, Nmap juga menyediakan opsi untuk mengendalikan
verbositas output dan pesan debug. Tipe output dapat dikirim ke output standar atau ke file. File
output dapat pula digunakan untuk meresume scan.

Nmap menyediakan output dalam lima format berbeda. Bakunya disebut interactive output, dan
dikirimkan ke output standar (stdout). Terdapat juga normal output, yang serupa dengan
interaktif kecuali ia memberikan lebih sedikit informasi runtime dan peringatan karena ia diharap
akan dianalisis setelah scan setelah alih-alih secara interaktif.

XML output adalah salah stau tipe output paling penting, karena ia dapat dikonversi ke HTML,
dapat secara mudah diparse oleh program seperti Nmap graphical user interfaces, atau diimpor
ke database.

Dua output terakhir adalah grepable output sederhana yang menyertakan informasi host target
pada satu baris tunggal, dan sCRiPt KiDDi3 0utPUt bagi user yang mengganggap dirinya
sebagai |<-r4d.
Meskipun output interaktif merupakan bakunya dan tidak memiliki opsi command-line, opsi
keempat format lainnya menggunakan sintaks yang sama. Mereka mengambil satu argumen,
nama file tempat menampung hasil. User dapat menspesifikasikan banyak format, namun setiap
format hanya boleh dispesifikasikan satu kali. Sebagai contoh, anda mungkin ingin menyimpan
output normal untuk review anda dan output XML untuk analisis programatik. Anda dapat
melakukan hal ini dengan opsi -oX myscan.xml -oN myscan.nmap. Walau bab ini
menggunakan nama sederhana seperti myscan.xml untuk singkatnya, disarankan untuk
menggunakan nama yang lebih deskriptif. Nama yang dipilih merupakan masalah preferensi
personal, meski saya menggunakan nama panjang yang menyertakan tanggal scan dan kata yang
menjelaskan scan, ditempatkan dalam sebuah direktori dengan nama perusahaan yang saya
periksa.

Meski opsi-opsi ini menyimpan hasil ke file, Nmap tetap mencetak output interaktif ke stdout
seperti biasa. Sebagai contoh, perintah nmap -oX myscan.xml target mencetak XML ke
myscan.xml dan mengisi seluruh output standar dengan hasil interaktif yang sama dengan yang
akan dicetaknya bila -oX tidak diberikan. Anda dapat merubahnya dengan memberikan karakter
hyphen sebagai argumen ke salah satu tipe format. Hal ini membuat Nmap menonaktifkan output
interaktif, dan mencetak hasilnya dalam format yang anda spesifikasikan ke stream output
standar. Sehingga perintah nmap -oX - target hanya akan mengirim output XML ke stdout.
Kesalahan serius akan tetap dicetak ke stream kesalahan normal, stderr.

Tidak seperti beberapa argumen Nmap, spasi antara flag opsi logfile (seperti -oX) dan namafile
atau hyphen adalah wajib. Jika anda menghilangkan flag dan memberi argumen seperti -oG- or
-oXscan.xml, fitur kompatibiltas backward Nmap akan menyebabkan pembuatan normal format
file output bernama G- dan Xscan.xml.

Seluruh argumen ini mendukung konversi strftime-like dalam namafile. %H, %M, %S, %m, %d, %y,
dan %Y semuanya serupa seperti dalam strftime. %T sama dengan %H%M%S, %R sama dengan %H
%M, dan %D sama dengan %m%d%y. Sebuah % diikuti dengan sembarang karakter hanya
menghasilkan karakter itu (%% memberikan simbol persentase. Sehingga -oX 'scan-%T-
%D.xml' akan menggunakan file XML dalam bentuk scan-144840-121307.xml.

Nmap juga menawarkan opsi untuk mengendalikan verbositas scan dan untuk menambah file
output daripada menghapusnya. Seluruh opsi ini dijelaskan di bawah.

Format Output Nmap

-oN <filespec> (normal output)

normal output akan diarahkan ke nama file yang diberikan. Seperti yang didiskusikan
di atas, opsi ini sedikit berbeda dari interactive output.

-oX <filespec> (XML output)

XML output diarahkan ke namafile yang diberikan. Nmap menyertakan document type
definition (DTD) yang memungkinkan parser XML memvalidasi output XML Nmap.
Walau utamanya ditujukan untuk penggunaan programatik, ia dapat juga membantu
manusia menginterpretasikan output XML Nmap. DTD mendefinisikan elemen legal
format, dan seringkali merinci atribut dan nilai yang dapat mereka terima. Versi terakhir
selalu tersedia di http://nmap.org/data/nmap.dtd.

XML memberikan format stabil yang dapat secara mudah diparse oleh software. Parser
XML yang bebas tersedia untuk bahasa pemrograman utama, termasuk C/C++, Perl,
Python, dan Java. Orang bahkan telah menulis binding untuk kebanyakan bahasa ini
untuk menangani output Nmap dan dijalankan secara khusus. Contohnya adalah
Nmap::Scanner and Nmap::Parser dalam Perl CPAN. Dalam kebanyakan kasus bagi
interface aplikasi dengan Nmap yang sulit, XML merupakan format yang lebih disukai.

Output XML mengacu ke XSL stylesheet yang dapat digunakan untuk memformat
hasilnya sebagai HTML. Cara termudah menggunakan file ini adalah dengan memuat
output XML dalam sebuah browser web seperti Firefox atau IE. Secara baku, ini hanya
bekerja pada mesin tempat anda menjalankan Nmap (atau yang dikonfigurasi serupa)
akibat path sistem file nmap.xsl yang di-hardcoded. Gunakan opsi --webxml atau
--stylesheet untuk membuat file XML portabel yang dibaca sebagai HTML pada
semua mesin yang dapat terkoneksi ke web.

-oS <filespec> (ScRipT KIdd|3 oUTpuT)

Output ini seperti output interaktif, kecuali kemudian ia diprose lagi agar sesuai dengan
l33t HaXXorZ yang sebelumnya merendahkan Nmap karena kapitalisasi dan ejaan yang
konsisten. Perlu diperhatikan bahwa opsi ini mengolok-olok script kiddies alih-alih
membantu mereka.

-oG <filespec> (grepable output)

Format output ini dijelaskan terakhir karena telah didepresiasi. Format output XML jauh
lebih powerful, dan juga cukup nyaman bagi pengguna berpengalaman. XML merupakan
standar yang memiliki lusinan parser bagus, sementara output grepable merupakan hack
sederhana buatan saya. XML dapat dikembangkan untuk mendukung fitur baru Nmap
ketika dirilis, sementara saya seringkali harus menghilangkan fitur-fitur tersebut dari
output grepable karena tidak ada tempat untuk menaruh mereka.

Namun demikian, output grepable masih cukup populer. Ia merupakan format sederhana
yang mendaftar setiap host pada satu baris dan dapat secara mudah dicari dan diparse
dengan tool standar Unix seperti grep, awk, cut, sed, diff, dan Perl. Bahkan saya
menggunakannya untuk test sekali yang dilakukan pada perintah beris. Menemukan
seluruh host dengan port SSH terbuka atau yang menjalankan Solaris hanya
membutuhkan satu grep sederhana untuk mengidentifikasikan host, yang di-pipe ke
perintah awk atau cut untuk mencetak field yang diinginkan.

Output grepable terdiri dari komentar (baris yang dimulai dengan tanda pound (#)) dan
baris target. Sebuah baris target menyertakan kombinasi enam field berlabel, yang
dipisahkan oleh tab dan diikuti oleh tanda titik dua. Field-fieldnya adalah Host, Ports,
Protocols, Ignored State, OS, Seq Index, IP ID, dan Status.

Field yang paling penting umumnya adalah Ports, yang memberikan detil pada setiap
port yang menarik. Ia merupakan daftar entri port yang dibatasi koma. Setiap entri port
mewakili satu port menarik, dan memiliki bentuk subfield yang dibatasi oleh tujuh garis
miring (/). Subfieldnya adalah: Port number, State, Protocol, Owner, Service,
SunRPC info, dan Version info.

Sebagaimana dengan output XML, man page ini tidak memungkinkan untuk
mendokumentasi seluruh format. Rincian lebih lanjut mengenai format output grepable
Nmap tersedia dari http://nmap.org/book/output-formats-grepable-output.html.

-oA <basename> (Output to all formats)

Sebagai kenyamanan, anda dapat menspesifikasikan -oA <basename> untuk menyimpan


hasil scan dalam format normal, XML, dan grepable sekaligus. Mereka disimpan dalam
<basename>.nmap, <basename>.xml, dan <basename>.gnmap. Seperti kebanyakan
program, anda dapat memberi awalan nama file dengan path direktori, seperti
~/nmaplogs/foocorp/ pada Unix atau c:\hacking\sco pada Windows.

Opsi verbositas dan debugging

-v (Increase verbosity level)

Peningkatan level verbositas, menyebabkan Nmap mencetak lebih banyak informasi


tentang scan yang sedang berjalan. Port terbuka ditunjukkan saat ditemukan dan
prakiraan waktu selesai disediakan ketika Nmap berpikir scan akan membutuhkan lebih
dari beberapa menit. Gunakan dua kali atau lebih untuk lebih meningkatkan verbositas.

Kebanyakan perubahan hanya mempengaruhi output interaktif, dan beberapa juga


mempengaruhi output normal dan script kiddie. Tipe output lainnya ditujukan untuk
diproses oleh mesin, sehingga Nmap dapat memberikan detil yang substansial dalam
format tersebut tanpa melelahkan user. Namun demikian, terdapat beberapa perubahan
dalam mode lainnya ketika ukuran output dapat dikurangi secara berarti dengan
meniadakan beberapa detil. Sebagai contoh, baris perintah dalam output grepable yang
memberikan daftar seluruh port yang discan hanya dicetak dalam mode verbose karena ia
cukup panjang.

-d [level] (Increase or set debugging level)

Ketika mode verbose tidak memberikan data yang cukup bagi anda, tersedia debugging
untuk membanjiri anda dengan data! Sebagaimana dengan opsi verbositas (-v),
debugging diaktifkan dengan flag perintah baris (-d) dan level debug dapat ditingkatkan
dengan menspesifikasikannya berulang kali. Selain itu, anda dapat menset level debug
dengan memberikan argumen ke -d. Sebagai contoh, -d9 menset level sembilan. Itu
adalah level efektif tertinggi dan akan menghasilkan ribuan baris kecuali anda
menjalankan scan yang sangat sederhana dengan sedikit port dan target.

Debugging output berguna ketika diduga terdapat bug dalam Nmap, atau anda bingung
mengenai apa yang dilakukan Nmap dan alasannya. Karena fitur ini lebih ditujukan bagi
pengembang, baris debug tidak selalu jelas. Anda mungkin akan menemui sesuatu seperti
: Timeout vals: srtt: -1 rttvar: -1 to: 1000000 delta 14987 ==> srtt:
14987 rttvar: 14987 to: 100000. Jika anda tidak memahami sebuah baris, anda
dapat mengabaikannya, mencarinya dalam kode sumber, atau meminta bantuan dari list
pengembangan (nmap-dev). Beberapa baris cukup jelas, namun pesannya dapat semakin
tidak jelas ketika level debug dinaikkan.

--reason (Host and port state reasons)

Tampilkan alasan setiap port diset ke status khusus dan alasan setiap host up atau down.
Opsi ini menampilkan tipe paket yang menentukan status port atau host. Sebagai contoh,
sebuah paket RST dari port tertutup atau echo reply dari host yang hidup. Informasi yang
disediakan Nmap ditentukan oleh jenis scan atau ping. Scan SYN dan ping SYN (-sS dan
-PS) sangat rinci, namun TCP connect scan (-sT) dibatasi oleh implementasi system call
connect. Fitur ini secara otomatis diaktifkan oleh opsi debug (-d) dan hasilnya disimpan
dalam file log XML bahkan bila opsi ini tidak diberikan.

--stats-every <time> (Print periodic timing stats)

Mencetak status waktu secara periodik setelah setiap interval <time>. Waktu adalah
spesifikasi yang dijelaskan dalam the section called Pewaktuan dan Kinerja; sehingga
sebagai contoh, gunakan --stats-every 10s untuk memperoleh update status setiap 10
detik. Update dicetak ke output interaktif (layar) dan output XML.

--packet-trace (Trace packets and data sent and received)

Menyebabkan Nmap untuk mencetak ringkasan seiap paket yang dikirim atau diterima.
Opsi ini seringkali digunakan untuk debugging, namun juga bermanfaat bagi user baru
untuk memahami secara tepat apa yang sebenarnya dilakukan oleh Nmap. Untuk
menghindari pencetakan ribuan baris, anda mungkin ingin membatasi jumlah port yang
ingin discan, seperti -p20-30. Jika anda hanya mementingkan proses subsistem deteksi
versi, gunakan --version-trace. Jika anda hanya peduli dengan script tracing, berikan
--script-trace. Dengan --packet-trace, anda memperoleh semua hal di atas.

--open (Show only open (or possibly open) ports)

Terkadang anda hanya peduli tentang port yang benar-benar dapat dikoneksi (open ones),
dan tidak ingin mengacaukan hasilnya dengan port closed, filtered, dan closed|
filtered. Kustomisasi output normalnya dilakukan setelah scan dengan menggunakan
tool seperti grep, awk, dan Perl, namun fitur ini ditambahkan karena banyaknya
permintaan. Berikan --open untuk hanya melihat port open, open|filtered, dan
unfiltered. Ketiga port ini diperlakukan seperti normalnya, yang berarti bahwa open|
filtered dan unfiltered dapat digabungkan bila terdapat dalam jumlah banyak.

--iflist (List interfaces and routes)

Cetak daftar interface dan rute sitem yang dideteksi oleh Nmap. Opsi ini berguna untuk
debugging masalah routing atau kesalahan karakterisasi device (seperti Nmap
memperlakukan koneksi PPP sebagai ethernet).

--log-errors (Log errors/warnings to normal mode output file)

Peringatan dan kesalahan dicetak oleh Nmap biasanya hanya ke layar (output interaktif),
membiarkan file output format normal (biasanya dispesifikan dengan -oN) tidak
terganggu. Ketika anda ingin melihat pesan-pesan tersebut dalam file output normal yang
anda spesifikasikan, tambahkan opsi ini. Ia berguna ketika anda tidak melihat output
interaktif atau ketika anda ingin merekam kesalahan saat men-debug masalah. Pesan
kesalahan dan peringatan akan tetap muncul dalam mode interaktif. Hal ini tidak bekerja
banyak kebanyakan kesalahan yang terkait dengan argumen perintah baris yang buruk
karena Nmap mungkin belum menginisialisasi file outputnya. Sebagai tambahan,
beberapa pesan kesalahan dan peringatan Nmap menggunakan sistem yang berbeda yang
beum mendukung opsi ini.

Sebagai alternatif bagi --log-errors adalah dengan mengarahkan output interaktif


(termasuk stream standard error) ke file. Kebanyakan shell Unix menjadikan pendekatan
ini mudah, meskipun ia dapat sukar dilakukan pada Windows.

Miscellaneous output options

--append-output (Append to rather than clobber output files)

Ketika anda menspesifikasikan nama file ke flag format output seperti -oX atau -oN, file
tersebut secara baku akan ditimpa. Jika anda ingin menjaga isi file yang ada dan
menambahkan hasil baru, spesifikasikan opsi --append-output. Seluruh nama file
output yang dispesifikasikan dalam eksekusi Nmap tersebut kemudian akan ditambahkan
alih-alih ditimpa. Hal ini tidak bekerja baik untuk data scan XML (-oX) karena file yang
dihasilkan umumnya tidak akan dapat diparse dengan tepat hingga anda memperbaikinya
secara manual.

--resume <filename> (Resume aborted scan)

Beberapa penggunaan Nmap ekstensif membutuhkan waktu hingga dalam hitungan hari.
Scan semacam itu tidak selalu berjalan hingga selesai. Pembatasan mungkin mencegah
Nmap dijalankan ketika waktu kerja, jaringan dapat down, mesin yang menjalankan
Nmap mungkin mengalami reboot terencana atau tidak, atau bahkan Nmap mengalami
crash. Administrator yang menjalankan Nmap dapat membatalkannya demi alasan
lainnya, ctrl-C. Memulai seluruh scan dari awal mungkin tidak diinginkan. Untungnya,
bila log normal (-oN) atau grepable (-oG) disimpan, user dapat meminta Nmap
melanjutkan scanning dengan target yang sedang dikerjakannya ketika eksekusi berhenti.
Cukup berikan opsi --resume dan berikan argumen file output normal/grepable. Tidak
boleh ada argumen lainnya, karena Nmap memparse file output yang sama dengan yang
digunakan sebelumnya. Cukup panggil Nmap dengan nmap --resume <logfilename>.
Nmap akan menambahkan hasil baru ke file data yang dispesifikasikan dalam eksekusi
sebelumnya. Opsi ini tidak dapat dilakukan untuk format output XML karena
penggabungan dua buah penjalanan Nmap ke satu file XML yang valid adalah sulit.

--stylesheet <path or URL> (Set XSL stylesheet to transform XML output)

Nmap menyertakan sebuah stylesheet XSL bernama nmap.xsl untuk melihat atau
menerjemahkan output XML ke HTML. Output XML menyertakan sebuah direktif xml-
stylesheet yang mengarah ke nmap.xml tempat awalnya ia diinstalasi oleh Nmap (atau
pada direktori kerja saat ini pada Windows). Cukup buka output Nmap pada browser
modern dan ia seharusnya mengambil nmap.xsl dari filesystem dan menggunakannya
untuk merender hasil. Jika anda ingin menggunakan stylesheet yang berbeda, berikan ia
sebagai argumen bagi --stylesheet. Anda harus memberikan nama path atau URL
lengkap. Cara pemanggilan umum adalah --stylesheet
http://nmap.org/data/nmap.xsl. Cara ini memberitahu browser untuk memuat versi
terakhir stylesheet dari Nmap.Org. Opsi --webxml melakukan hal yang sama dengan cara
yang lebih singkat. Memuatkan XSL dari Nmap.Org memudahkan melihat hasil pada
mesin yang tidak memiliki Nmap (dan karenanya tidak memiliki nmap.xsl). Jadi URL
seringkali lebih bermanfaat, namun lokasi filesistem lokal nmap.xsl digunakan secara
baku demi alasan privasi.

--webxml (Load stylesheet from Nmap.Org)

Opsi kenyamanan ini adalah sekedar alias bagi --stylesheet


http://nmap.org/data/nmap.xsl.

--no-stylesheet (Omit XSL stylesheet declaration from XML)

Berikan opsi ini untuk mencegah Nmap dari mengasosiasikan sembarang sytlesheet XSL
dengan output XML-nya. Direktif xml-stylesheet ditiadakan.

Opsi Lain-lain
Bagian ini menjelaskan beberapa opsi penting (dan tidak begitu penting) yang tidak tercakup di
manapun.

-6 (Enable IPv6 scanning)

Sejak tahun 2002, Nmap memberikan dukungan IPv6 untuk fiturnya yang paling populer.
Terutama, scanning ping (hanya-TCP), connect scanning, dan deteksi versi semuanya
mendukung IPv6. Sintaks perintahnya sama dengan yang biasa kecuali anda juga
menambahkan opsi -6. Tentu saja anda harus menggunakan sintaks IPv6 jika anda
menspesifikasikan sebuah alamat alih-alih nama host. Sebuah alamat mungkin terlihat
seperti 3ffe:7501:4819:2000:210:f3ff:fe03:14d0, sehingga disarankan untuk
menggunakan nama host. Outputnya tampak sama dengan yang biasa, dengan alamat
IPv6 pada baris port menarik.

Meskipun IPv6 belum tersebar luas, ia telah digunakan secara signifikan di beberapa
negara (biasanya Asia) dan kebanyakan sistem operasi modern mendukungnya. Untuk
menggunakan Nmap dengan IPv6, sumber dan target scan anda harus dikonfigurasi untuk
IPv6. Jika ISP anda (seperti kebanyakan) tidak mengalokasikan alamat IPv6 bagi anda,
broker tunnel bebas tersedia luas dan bekerja baik dengan Nmap. Saya menggunakan
layanan broker tunnel IPv6 gratis di http://www.tunnelbroker.net. Broker tunnel lainnya
adalah di daftar Wikipedia. 6to4 tunnels adalah pendekatan gratis dan populer lainnya.

-A (Aggressive scan options)

Opsi ini mengaktifkan opsi agresive dan advance tambahan. Saya belum memutuskan
kepanjangannya. Saat ini ia mengaktifkan deteksi SO (-O), scanning versi (-sV), scanning
script (-sC) dan traceroute (--traceroute). Fitur lebih banyak mungkin ditambahkan di
masa mendatang. Tujuannya adalah mengaktifkan set opsi scan yang lengkap tanpa perlu
mengingat sejumlah besar flag. Namun demikian, karena scanning script dengan set baku
dianggap mengganggu, anda tidak seharusnya menggunakan -A terhadap jaringan target
tanpa ijin. Opsi ini hanya mengaktifkan fitur, dan tidak opsi pewaktuan (seperti -T4) atau
opsi verbositas (-v) yang mungkin anda inginkan pula.

--datadir <directoryname> (Specify custom Nmap data file location)

Nmap memperoleh beberapa data khusus pada runtime dalam file bernama nmap-
service-probes, nmap-services, nmap-protocols, nmap-rpc, nmap-mac-prefixes,
dan nmap-os-db. Jika lokasi file-file ini telah dispesifikasikan (dengan menggunakan
opsi --servicedb atau --versiondb), lokasi tersebut digunakan untuk file itu. Setelah
itu, Nmap mencari file-file ini dalam direktori yang dispesifikasikan dengan opsi
--datadir (bila ada). File yang tidak ditemukan di sana, akan dicari pada direktori yang
dispesifikasikan oleh variabel lingkungan NMAPDIR . Kemudian ~/.nmap untuk UID ril
dan efektif (sistem POSIX) atau lokasi eksekutabel Nmap (Win32), dan kemudian lokasi
yang digunakan saat kompilasi seperti /usr/local/share/nmap atau
/usr/share/nmap . Dan terakhir, Nmap akan mencari dalam direktori saat ini.

--servicedb <services file> (Specify custom services file)

Beritahu Nmap untuk menggunakan file service yang diberikan alih-alih file nmap-
services yang disertakan dalam Nmap. Dengan menggunakan opsi ini juga
menyebabkan opsi scan cepat (-F) digunakan. Lihat deskripsi untuk --datadir untuk
informasi lebih lanjut mengenai file data Nmap.
--versiondb <service probes file> (Specify custom service probes file)

Minta Nmap untuk menggunakan file pro be service yang diberikan alih-alih file nmap-
service-probes yang disertakan dalam Nmap. Lihat deskripsi untuk --datadir untuk
informasi lebih lanjut mengenai file data Nmap.

--send-eth (Use raw ethernet sending)

Minta Nmap mengirim paket pada layer ethernet raw (data link) alih-alih layer IP
(jaringan) yang lebih tinggi. Secara baku, Nmap memilih satu yang umumnya terbaik
untuk platform yang digunakan. Socket Raw (layer IP layer) umumnya paling efisien
pada mesin-mesin Unix, sementara frame ethernet dibutuhkan bagi operasi Windows
karena Microsoft meniadakan dukungan socket raw. Nmap tetap menggunakan paket IP
raw pada Unix ketika tidak ada pilihan lainnya (seperti koneksi non-ethernet).

--send-ip (Send at raw IP level)

Minta Nmap untuk mengirim paket melalui soket IP raw alih-alih mengirimkan frame
ethernet level lebih rendah. Ia merupakan komplemen opsi --send-eth yang
didiskusikan sebelumnya.

--privileged (Assume that the user is fully privileged)

Beritahu Nmap untuk mengasumsikan bahwa ia memiliki cukup privilege untuk


melakukan pengiriman socket raw, packet sniffing, dan operasi sejenis yang biasanya
membutuhkan root privileges pada sistem Unix. Secara baku Nmap berhenti bila operasi
itu diminta namun geteuid tidaklah nol. --privileged berguna dengan kapabilitas
kernel Linux dan sistem serupa yang mungkin dikonfigurasi untuk membolehkan user
unprivileged melakukan scan raw-packet. Pastikan untuk memberikan flag opsi ini
sebelum flag lainnya bagi opsi yang membutuhkan privilege (SYN scan, deteksi SO,
dsb.). Variabel lingkungan NMAP_PRIVILEGED dapat juga diset sebagai alternatif ekivalen
bagi --privileged.

--unprivileged (Assume that the user lacks raw socket privileges)

Opsi ini merupakan lawan --privileged. Ia memberitahu Nmap untuk memperlakukan


user sebagai tidak memiliki privilege network raw socket dan sniffing. Hal ini berguna
untuk testing, debugging, atau ketika fungsionalitas jaringan raw pada sistem operasi
anda tampaknya rusak. Variabel lingkungan NMAP_UNPRIVILEGED dapat diset sebagai
alternatif ekivalen bagi --unprivileged.

--release-memory (Release memory before quitting)

Opsi ini hanya berguna untuk memory-leak debugging. Ia membuat Nmap merilis
memori yang telah dialokasikan sebelum ia berhenti sehingga kebocoran memori
sebenarnya mudah ditemukan. Normalnya Nmap melewati langkah ini karena SO
melakukannya setelah penghentian proses.

--interactive (Start in interactive mode)

Mulai Nmap dalam mode interaktif, yang memberikan prompt interaktif Nmap yang
memudahkan peluncuran multiple scan (baik secara synchronous atau di latar belakang).
Opsi ini bermanfaat bagi orang yang melakukan scan dari sistem multi-user karena
mereka ingin memeriksa keamanan mereka tanpa memberitahu yang lain sistem apa yang
mereka periksa. Gunakan --interactive untuk mengaktifkan mode ini dan kemudian
ketik h untuk bantuan. Opsi ini jarang digunakan karena shell yang sesuai biasanya lebih
dikenal dan lebih lengkap fiturnya. Opsi ini menyertakan operator bang (!) untuk
mengeksekusi perintah shell, yang menjadi salah satu alasan tidak menginstalasi Nmap
setuid root.

-V; --version (Print version number)

Mencetak angka versi Nmap dan keluar.

-h; --help (Print help summary page)

Mencetak layar bantuan singkat dengan flag-flag yang paling umum. Menjalankan Nmap
tanpa argumen melakukan hal yang sama.

Interaksi Runtime
Selama eksekusi Nmap, seluruh kunci yang ditekan direkam. Hal ini memungkinkan anda
beriteraksi dengan program tanpa membatalkan dan memulai ulang. Beberapa kunci khusus akan
merubah opsi, sementara kunci lain akan mencetak pesan status yang memberitahu anda
mengenai scan. Konvensinya adalah huruf kecil meningkatkan jumlah yang dicetak, dan huruf
kapital mengurangi yang dicetak. Anda dapat juga menekan ? untuk bantuan.

v/V

Naikkan / kurangi level verbositas

d/D

Naikkan / kurangi level debugging

p/P

Aktifkan/Non-aktifkan packet tracing

?
Cetak layar bantuan interaksi runtime

Lainnya

Cetak pesan satus seperti ini:

Stats: 0:00:08 elapsed; 111 hosts completed (5 up), 5 undergoing Service Scan

Service scan Timing: About 28.00% done; ETC: 16:18 (0:00:15 remaining)

Contoh-contoh

Berikut ini adalah beberapa contoh penggunaan Nmap, dari yang mudah dan rutin hingga yang
sedikit kompleks dan canggih. Beberapa alamat IP dan nama domain aktual digunakan untuk
membuatnya menjadi lebih kongkrit. Anda harus merubah alamat/nama dengan jaringan anda
sendiri.. Meskipun saya tidak menganggap scanning port jaringan lain adalah atau seharusnya
ilegal, beberapa administrator jaringan tidak menghargai scanning jaringan mereka sembarangan
dan akan mengajukan keluhan. Pendekatan terbaik adalah memperoleh ijin terlebih dulu.

Untuk tujuan pengujian, anda memperoleh ijin untuk memeriksa host scanme.nmap.org. Ijin ini
hanya mencakup pemeriksaan dengan Nmap dan tidak menguji eksploit atau serangan denial of
service. Untuk menghemat bandwidth, mohon tidak menggunakan lebih dari selusin scan
terhadap host tersebut per hari. Jika layanan target scanning gratis ini disalahgunakan, ia akan
dinonaktifkan dan Nmap akan melaporkan Failed to resolve given hostname/IP:
scanme.nmap.org. Ijin ini juga berlaku untuk host-host scanme2.nmap.org,
scanme3.nmap.org, dan seterusnya, meskipun host-host ini belum ada.

nmap -v scanme.nmap.org

Opsi ini memeriksa seluruh port TCP reserved pada mesin scanme.nmap.org . Opsi -v
mengaktifkan mode verbose.

nmap -sS -O scanme.nmap.org/24

Meluncurkan scan stealth SYN terhadap setiap mesin yang up dari 256 IP pada jaringan
berukuran kelas C tempat Scanme berada. Ia juga berusaha menentukan sistem operasi yang
digunakan pada setiap host yang hidup dan berjalan. Hal ini membutukan privilege root karena
scan SYN dan deteksi SO.

nmap -sV -p 22,53,110,143,4564 198.116.0-255.1-127

Meluncurkan enumerasi host dan scan TCP pada setengah bagian pertama dari subnet dalam
alamat kelas B 198.116. Scan ini menguji apakah sistem menjalankan SSH, DNS, POP3, atau
IMAP pada port standarnya, atau apapun pada port 4564. Pada sembarang port yang ditemukan
terbuka, akan digunakan deteksi versi untuk menentukan aplikasi apa yang berjalan.

nmap -v -iR 100000 -PN -p 80

Meminta Nmap memilih 100.000 host secara acak dan memeriksanya untuk web server (port
80). Enumerasi host ditiadakan dengan -PN karena mengirim beberapa probe untuk menentukan
apakah host hidup adalah sia-sia ketika anda hanya memprobe satu port pada setiap host target.

nmap -PN -p80 -oX logs/pb-port80scan.xml -oG logs/pb-port80scan.gnmap


216.163.128.20/20

Memeriksa 4096 IP untuk sembarang web server (tanpa mem-ping mereka) dan menyimpan
hasilnya dalam format grepable dan XML.

Bugs

Seperti penulisnya, Nmap tidaklah sempurna. Namun anda dapat membantu membuatnya lebih
baik dengan mengirimkan laporan bug atau bahkan menulis patch. Jika Nmap tidak berlaku
sesuai yang anda harapkan, pertama upgrade ke versi terakhir yang tersedia dari http://nmap.org.
Jika masalah masih tetap, lakukan riset untuk menentukan apakah ia telah ditemukan dan
diselesaikan. Cobalah mencari pesan kesalahan pada halaman pencarian kami
http://insecure.org/search.html atau di Google. Juga cobalah membrowsing arsip nmap-dev di
http://seclists.org/. Bacalah juga halaman manual ini dengan baik. Jika masih belum selesai juga,
kirimkan laporan bug ke <dev@nmap.org>. Mohon sertakan semua yang anda telah pelajari
mengenai masalah, dan juga versi Nmap dan sistem operasi yang anda gunakan. Laporan
kesalahan dan pertanyaan penggunaan Nmap yang dikirim ke <dev@nmap.org> akan lebih
mungkin dijawab daripada yang dikirimkan secara langsung ke Fyodor. Jika anda berlangganan
ke list nmap-dev sebelum posting, pesan anda akan melewati moderasi dan akan lewat dengan
lebih cepat. Berlangganan di http://nmap.org/mailman/listinfo/dev.

Patch code untuk memperbaiki bug adalah lebih baik daripada laporan kesalahan. Instruksi dasar
untuk membuat file patch dengan perubahan anda tersedia di http://nmap.org/data/HACKING.
Patch dapat dikirim ke nmap-dev (direkomendasikan) atau langsun ke Fyodor.

Penulis

Fyodor <fyodor@nmap.org> (http://insecure.org)

Selama ini, ratusan orang telah memberikan kontribusi berharga ke Nmap. Hal ini dirinci dalam
file CHANGELOG yang didistribusikan bersama Nmap dan juga tersedia dari
http://nmap.org/changelog.html.

Anda mungkin juga menyukai