
Nmap adalah alat pemindaian jaringan yang kuat untuk audit keamanan dan pengujian penetrasi. Ini adalah salah satu alat penting yang digunakan oleh administrator jaringan untuk memecahkan masalah konektivitas jaringan dan pemindaian port.
Nmap juga dapat mendeteksi alamat Mac, jenis OS, versi layanan, dan banyak lagi.
Artikel ini menjelaskan dasar-dasar cara menggunakan nmap
perintah untuk melakukan berbagai tugas jaringan.
Menginstal Nmap #
Nmap adalah program multi-platform yang dapat diinstal pada semua sistem operasi utama. Awalnya dirilis sebagai alat khusus Linux, dan kemudian di-porting ke sistem lain seperti BSD, Windows, dan macOS.
Jika Anda lebih suka GUI daripada baris perintah, Nmap juga memiliki antarmuka pengguna grafis yang disebut Zenmap.
Paket biner resmi tersedia untuk diunduh dari halaman unduhan Nmap.
Prosedur penginstalan sangat mudah dan bervariasi sesuai dengan sistem operasi Anda.
Menginstal Nmap di Ubuntu dan Debian #
Nmap tersedia dari repositori default Ubuntu dan Debian. Untuk menginstalnya, jalankan:
sudo apt update
sudo apt install nmap
Menginstal Nmap di CentOS dan Fedora #
Di CentOS dan turunan Red Hat lainnya, jalankan:
sudo dnf install nmap
Menginstal Nmap di macOS #
pengguna macOS dapat menginstal Nmap dengan mengunduh paket instalasi “.dmg” dari situs Nmap atau melalui Homebrew:
brew install nmap
Menginstal Nmap di Windows #
Nmap versi Windows memiliki beberapa keterbatasan, dan umumnya sedikit lebih lambat daripada versi UNIX.
Opsi termudah untuk menginstal Nmap di Windows adalah mengunduh dan menjalankan file exe penginstalan sendiri.
Anda dapat menjalankan Nmap di Windows baik dari baris perintah atau dengan meluncurkan program Zenmap. Untuk informasi lebih lanjut tentang cara menggunakan Nmap di Windows, periksa petunjuk penggunaan pasca-instal.
Menggunakan Nmap #
Nmap biasanya digunakan untuk mengaudit keamanan jaringan, pemetaan jaringan, mengidentifikasi port yang terbuka, dan mencari perangkat online.
Sintaks sederhana dari nmap
perintahnya adalah sebagai berikut:
nmap [Options] [Target...]
Contoh paling dasar dalam menggunakan Nmap adalah memindai satu target sebagai pengguna standar tanpa menentukan opsi apa pun:
nmap scanme.nmap.org
Saat dipanggil sebagai pengguna non-root yang tidak memiliki hak paket mentah, nmap
menjalankan pemindaian koneksi TCP. (-sT
) diaktifkan secara default dalam mode unprivileged.
Outputnya akan terlihat seperti ini, termasuk informasi dasar tentang pemindaian dan daftar port TCP yang terbuka dan terfilter.
Starting Nmap 7.91 ( https://nmap.org ) at 2020-12-16 20:19 CET
Nmap scan report for cast.lan (192.168.10.121)
Host is up (0.048s latency).
Not shown: 981 closed ports
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
25/tcp open smtp
53/tcp open domain
80/tcp open http
110/tcp open pop3
143/tcp open imap
443/tcp open https
587/tcp open submission
993/tcp open imaps
995/tcp open pop3s
1025/tcp open NFS-or-IIS
1080/tcp open socks
8080/tcp open http-proxy
8081/tcp open blackice-icecap
Nmap done: 1 IP address (1 host up) scanned in 1.78 seconds
Opsi pemindaian paling populer adalah pemindaian TCP SYN (-sS
) yang lebih cepat daripada opsi koneksi dan bekerja melawan semua tumpukan TCP yang sesuai.
-sS
diaktifkan secara default saat nmap
dipanggil sebagai pengguna dengan hak administratif:
sudo nmap 192.168.10.121
Untuk hasil yang lebih detail, gunakan peningkatan verbositas dengan -v
atau -vv
:
sudo nmap -vv 192.168.10.121
Untuk melakukan pemindaian UDP, jalankan perintah dengan (-sU
) opsi sebagai pengguna root:
sudo nmap -sU 192.168.10.121
Untuk daftar lengkap metode pemindaian port, kunjungi halaman dokumentasi Nmap.
Nmap juga mendukung alamat IPv6. Untuk menentukan host IPv6 gunakan -6
pilihan:
sudo nmap -6 fd12:3456:789a:1::1
Menentukan Host Target #
Nmap memperlakukan semua argumen yang bukan opsi sebagai host target.
Argumen dianggap opsi jika dimulai dengan tanda hubung tunggal atau ganda (-
, --
). Opsi paling sederhana adalah meneruskan satu atau beberapa alamat target atau nama domain:
nmap 192.168.10.121 host.to.scan
Anda dapat menggunakan notasi CIDR untuk menentukan rentang jaringan:
nmap 192.168.10.0/24
Untuk menentukan rentang oktet gunakan karakter tanda hubung. Misalnya, untuk memindai 192.168.10.1
, 192.168.11.1
, dan 192.168.12.1
:
nmap 192.168.10-12.1
Karakter lain yang dapat Anda gunakan untuk menentukan target adalah koma. Perintah berikut menargetkan host yang sama dengan yang di atas:
nmap 192.168.10,11,12.1
Anda dapat menggabungkan semua formulir:
nmap 10.8-10.10,11,12.0/28 192.168.1-2.100,101
Untuk memastikan Anda menentukan host yang benar sebelum memindai, gunakan opsi pemindaian daftar (-sL
), yang hanya mencantumkan target tanpa menjalankan pemindaian:
nmap -sL 10.8-10.10,11,12.0/28 192.168.1-2.100,101
Jika Anda ingin mengecualikan target yang termasuk dalam rentang yang Anda tentukan, gunakan --exclude
pilihan:
nmap 10.8-10.10,11,12.0/28 --exclude 10.10.12.12
Menentukan dan Memindai Port #
Secara default, Nmap melakukan pemindaian cepat untuk 1000 port paling populer. Port ini bukan 1.000 port pertama yang berurutan, tetapi 1.000 port yang paling umum digunakan mulai dari 1 hingga 65389.
Untuk memindai semua port dari 1 hingga 65535, gunakan -p-
pilihan:
nmap -p- 192.168.10.121
Setiap port dapat berada dalam salah satu status berikut:
- buka - Program yang berjalan pada port merespons permintaan.
- ditutup - Tidak ada program yang berjalan di port, dan tuan rumah membalas permintaan.
- difilter - Tuan rumah tidak membalas permintaan.
Misalnya, untuk memindai hanya port 443, Anda akan menggunakan perintah berikut:
nmap -p 443 192.168.10.121
Untuk menentukan lebih dari satu port, pisahkan port target dengan koma:
nmap -p 80,443 192.168.10.121
Rentang port dapat ditentukan dengan simbol tanda hubung. Misalnya, untuk memindai semua port UDP mulai dari 1 hingga 1024, Anda akan menjalankan:
sudo nmap -sU -p 1-1024 192.168.10.121
Semua digabungkan:
nmap -p 1-1024,8080,9000 192.168.10.121
Port juga dapat ditentukan menggunakan nama port. Misalnya, untuk memindai port 22, ssh, Anda dapat menggunakan:
nmap -p ssh 192.168.10.121
Ping Scanning #
Untuk melakukan pemindaian ping atau penemuan host, aktifkan nmap
perintah dengan -sn
pilihan:
sudo nmap -sn 192.168.10.0/24
-sn
option memberitahu Nmap hanya untuk menemukan host online dan tidak melakukan scan port. Ini berguna saat Anda ingin dengan cepat menentukan host mana yang aktif dan berjalan.
Menonaktifkan Resolusi Nama DNS #
Perilaku default Nmap adalah melakukan resolusi reverse-DNS untuk setiap host yang ditemukan, yang meningkatkan waktu pemindaian.
Saat memindai jaringan besar, sebaiknya nonaktifkan resolusi DNS terbalik dan percepat pemindaian. Untuk melakukannya, jalankan perintah dengan -n
pilihan:
sudo nmap -n 192.168.10.0/16
OS, Layanan, dan Deteksi Versi #
Nmap dapat mendeteksi sistem operasi host jarak jauh menggunakan sidik jari tumpukan TCP/IP. Untuk menjalankan deteksi OS, jalankan perintah dengan -O
pilihan:
sudo nmap -O scanme.nmap.org
Jika Nmap dapat mendeteksi OS host, itu akan mencetak sesuatu seperti di bawah ini:
...
Device type: general purpose
Running: Linux 5.X
OS CPE: cpe:/o:linux:linux_kernel:5
OS details: Linux 5.0 - 5.4
Network Distance: 18 hops
OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 26.47 seconds
Biasanya, layanan sistem mendengarkan pada port standar yang terkenal dan dicadangkan untuk mereka. Misalnya, jika port 22 yang sesuai dengan layanan SSH terbuka, Anda akan menganggap bahwa server SSH berjalan di host. Namun, Anda tidak dapat benar-benar yakin karena orang dapat menjalankan layanan pada port apa pun yang mereka inginkan.
Dengan deteksi layanan dan versi, Nmap akan menunjukkan kepada Anda program apa yang didengarkan pada port dan versi program.
Untuk memindai layanan dan versi, gunakan -sV
pilihan:
sudo nmap -sV scanme.nmap.org
...
PORT STATE SERVICE VERSION
19/tcp filtered chargen
22/tcp open ssh OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.13 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.7 ((Ubuntu))
135/tcp filtered msrpc
139/tcp filtered netbios-ssn
445/tcp filtered microsoft-ds
9929/tcp open nping-echo Nping echo
31337/tcp open tcpwrapped
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
...
Anda juga dapat memindai OS, Versi, dan menjalankan traceroute dalam satu perintah menggunakan -A
pilihan:
sudo nmap -A 192.168.10.121
Keluaran Nmap #
Secara default, Nmap mencetak informasi ke output standar (stdout).
Jika Anda memindai jaringan besar atau memerlukan informasi untuk penggunaan nanti, Anda dapat menyimpan hasilnya ke file.
Nmap menyediakan beberapa tipe keluaran. Untuk menyimpan output dalam format normal, gunakan -oN
pilihan diikuti dengan nama file:
sudo nmap -sU -p 1-1024 192.168.10.121 -oN output.txt
Opsi paling populer adalah menyimpan output dalam format XML. Untuk melakukannya, gunakan -oX
pilihan:
sudo nmap -sU -p 1-1024 192.168.10.121 -oX output.xml
Format lain yang berguna adalah keluaran grepable, yang dapat diuraikan dengan alat Unix standar seperti grep
, awk
dan cut
. Output grepable ditentukan dengan -oG
pilihan:
sudo nmap -sU -p 1-1024 192.168.10.121 -oG output
Mesin Skrip Nmap #
Salah satu fitur Nmap yang paling kuat adalah mesin skripnya. Nmap dikirimkan dengan ratusan skrip, dan Anda juga dapat menulis skrip Anda sendiri dalam bahasa Lua.
Anda dapat menggunakan skrip untuk mendeteksi malware dan backdoor, melakukan serangan brute force, dan banyak lagi.
Misalnya, untuk memeriksa apakah host tertentu telah disusupi, Anda dapat menggunakan:
nmap -sV --script http-malware-host scanme.nmap.org
Kesimpulan #
Nmap adalah alat sumber terbuka yang digunakan terutama oleh administrator jaringan untuk menemukan host dan port pemindaian.
Harap perhatikan bahwa di beberapa negara, memindai jaringan tanpa izin adalah tidak sah.