Apa itu NMAP
Nmap (Network Mapper) adalah tool open-source yang digunakan untuk:
- Memindai jaringan (network scanning)
- Menemukan host yang aktif (host discovery)
- Mengetahui port yang terbuka (port scanning)
- Mendeteksi layanan dan versinya (service detection)
- Mendeteksi sistem operasi (OS detection)
- Mengidentifikasi kerentanan (dengan bantuan Nmap Scripting Engine - NSE)
Nmap sangat populer digunakan oleh sysadmin, pentester, dan network engineer untuk pemetaan dan audit jaringan.
Instalasi NMAP
Instalasi NMAP di OS Linux Debian/Ubuntu
sudo apt update
sudo apt install nmap
Instalasi NMAP di OS Linux RHEL/CentOS
sudo yum install nmap
Instalasi NMAP di OS Windows
- Unduh dari: https://nmap.org/download.html
- Ikuti installer GUI-nya (biasanya disertai Zenmap, versi GUI Nmap)
Target Specification (Spesifikasi Target)
Ini adalah bagian dari Nmap, sebuah tools populer untuk melakukan port scanning dan network discovery.
Target Specification artinya kita bisa menentukan target mana yang akan kita scan.
1. Scan Single IP
nmap 192.168.1.1
👉 Digunakan untuk scan 1 alamat IP saja.
Misalnya, komputer/gateway dengan IP 192.168.1.1
.
2. Scan Specific IPs
nmap 192.168.1.1 192.168.2.1
👉 Bisa scan beberapa IP sekaligus.
Contoh: Router pertama ada di 192.168.1.1
, router kedua ada di 192.168.2.1
.
3. Scan a Range
nmap 192.168.1.1-254
👉 Nmap akan scan semua IP dari 192.168.1.1
sampai 192.168.1.254
.
Biasanya dipakai untuk memeriksa satu segmen jaringan lokal.
4. Scan a Domain
nmap scanme.nmap.org
👉 Target bisa berupa nama domain, bukan hanya IP.
Misalnya scanme.nmap.org
adalah domain resmi dari Nmap untuk belajar scanning legal.
5. Scan Using CIDR Notation
nmap 192.168.1.0/24
👉 CIDR /24
artinya range IP dari 192.168.1.0
sampai 192.168.1.255
.
Ini cara lain selain menulis manual 1-254
.
6. Scan Targets from a File
nmap -iL targets.txt
👉 Kalau banyak target, kita bisa simpan di file teks (contoh targets.txt
) lalu scan semua yang ada di daftar itu.
7. Scan Random Hosts
nmap -iR 100
👉 Nmap akan pilih 100 host random di internet untuk di-scan.
Biasanya dipakai untuk eksperimen atau penelitian (tapi hati-hati, bisa dianggap ilegal kalau bukan jaringanmu sendiri).
8. Exclude Listed Hosts
nmap -exclude 192.168.1.1
👉 Kadang kita mau scan seluruh jaringan, kecuali host tertentu.
Misalnya exclude 192.168.1.1
karena itu gateway penting yang tidak boleh diganggu.
Service and Version Detection
Nmap bisa mencari port terbuka (scan port). Selain itu, Nmap juga bisa mencoba menentukan layanan apa yang berjalan pada port itu (mis. http
, ssh
) dan versinya (mis. Apache 2.4.29
). Proses itu disebut service & version detection.
🔹-sV
- Contoh:
nmap -sV 192.168.1.1
- Fungsi: Mencoba mengenali service dan versi pada port yang terbuka.
- Catatan: Ini melakukan banner grabbing dan beberapa probe (kirim paket tertentu lalu analisis respons) untuk mencocokkan pola layanan.
--version-intensity <0-9>
- Contoh:
nmap -sV --version-intensity 8 192.168.1.1
- Fungsi: Mengatur “tingkat agresivitas” pemeriksaan versi. Nilai dari 0 (ringan) sampai 9 (paling agresif). Angka lebih tinggi → lebih banyak probe → kemungkinan deteksi benar lebih besar, tetapi:
- lebih lambat,
- lebih intrusif (mungkin memicu IDS/IPS),
- berpotensi membuat layanan terpengaruh di sistem rentan.
- Gunakan 7–9 hanya di lab atau dengan izin.
--version-light
- Contoh:
nmap -sV --version-light 192.168.1.1
- Fungsi: Mode cepat, kirim sedikit probe → cepat tapi kurang akurat.
--version-all
- Contoh:
nmap -sV --version-all 192.168.1.1
- Fungsi: Pakai hampir semua probe yang tersedia (mirip intensity=9 + semua probe) → paling mendalam, tapi paling lambat & paling berisiko memicu alarm.
-A
- Contoh:
nmap -A 192.168.1.1
- Fungsi: Scan “all-in-one” yang mengaktifkan OS detection, version detection, script scanning, dan traceroute. Singkatnya:
-A
=-O
+-sV
+ script scan + traceroute. - Catatan penting:
-A
lebih menyeluruh tapi juga paling jelas terlihat (noisy). Jangan gunakan pada jaringan yang kamu tak punya izin.
NSE (Nmap Scripting Engine)
NSE (Nmap Scripting Engine), adalah fitur tambahan di Nmap yang memungkinkan kita menjalankan script otomatis.
🔹 Script ini bisa dipakai untuk :
- Mengumpulkan informasi (discovery),
- Mengecek keamanan (vulnerability scanning),
- Bahkan melakukan eksploitasi (hati-hati, ini intrusif).
Anggap saja NSE ini seperti “ekstensi” atau “add-on” di Nmap, biar Nmap jadi lebih pintar dan fleksibel.
🔹 -sC
- Contoh:
nmap 192.168.1.1 -sC
- Fungsi: Jalankan default scripts (sekumpulan script bawaan yang dianggap aman & berguna untuk deteksi awal).
- Analogi: Seperti kalau kamu install aplikasi baru, lalu langsung pakai fitur standar/bawaannya. Aman, tapi tidak terlalu dalam.
🔹 -script default
- Contoh:
nmap 192.168.1.1 --script default
- Fungsi: Sama dengan
-sC
, yaitu jalankan default script.
Catatan:
-sC
dan--script default
hasilnya identik. Tinggal pilih mau pakai singkat atau panjang.
🔹 -script=banner
- Contoh:
nmap 192.168.1.1 --script=banner
- Fungsi: Menjalankan 1 script saja, dalam hal ini script banner (untuk membaca informasi awal dari layanan, misalnya versi software).
- Analogi: Seperti tanya “Siapa kamu?” ke server, lalu server menjawab: “Saya Apache 2.4.49.”
🔹 -script=http*
- Contoh:
nmap 192.168.1.1 --script=http*
- Fungsi: Menjalankan semua script yang diawali kata http (pakai wildcard *).
- Analogi: Daripada panggil 1-1, ini seperti bilang: “Tolong jalankan semua script yang berhubungan dengan HTTP.”
🔹 -script=http,banner
- Contoh:
nmap 192.168.1.1 --script=http,banner
- Fungsi: Jalankan lebih dari 1 script (dalam contoh: http + banner).
- Analogi: Seperti minta dua tugas sekaligus: “Cek server web-nya, sekalian baca bannernya juga.”
🔹 -script "not intrusive"
- Contoh:
nmap 192.168.1.1 --script "not intrusive"
- Fungsi: Jalankan script default tapi hilangkan script yang “intrusive” (bisa mengganggu atau memengaruhi target).
- Analogi: Hanya “nanya baik-baik”, tidak mencoba “ngoprek” server target.
🔹 -script-args
- Contoh:
nmap --script snmp-sysdescr --script-args snmpcommunity=admin 192.168.1.1
- Fungsi: Menjalankan script dengan parameter tambahan (argument).
- Analogi: Seperti kasih password/akses khusus supaya script bisa bekerja dengan benar.
🔹 Contoh Situasi di Dunia Nyata
Misalnya sekolahmu punya server 192.168.1.10:
- Kalau kamu pakai
-sC
, kamu bisa tahu port apa yang terbuka, versi layanan, dan basic info. - Kalau kamu pakai
--script=http*
, kamu bisa cek apakah ada kerentanan HTTP (misalnya XSS, directory listing, dll). - Kalau pakai
--script=banner
, kamu bisa tahu software yang dipakai, misalnya “OpenSSH 7.9p1” → ini berguna untuk cek apakah butuh update.