TDCTF Academy Logo TDCTF ACADEMY

8.2.1 Port Scanning

Port scanning adalah teknik fundamental dalam fase scanning yang digunakan untuk mengidentifikasi port terbuka (open ports) pada target. Setiap port yang terbuka merepresentasikan sebuah layanan jaringan yang berjalan - dan setiap layanan adalah permukaan serang potensial. Menguasai port scanning berarti mampu memetakan footprint jaringan target secara akurat tanpa menimbulkan deteksi yang tidak perlu.

Tujuan Port Scanning

  • Menentukan port open, filtered, closed, atau unfiltered pada target
  • Mengidentifikasi protokol (TCP, UDP, SCTP) yang aktif
  • Memetakan topology jaringan dan firewall rules
  • Menemukan live hosts dalam sebuah range IP (host discovery)
  • Menyusun attack surface awal sebelum enumerasi layanan

Konsep Dasar Port dan Protokol

Setiap koneksi jaringan menggunakan port - numerik 16-bit (0 - 65535). Port dibagi tiga rentang:

  • Well-known ports (0 - 1023): HTTP (80), HTTPS (443), SSH (22), FTP (21)
  • Registered ports (1024 - 49151): Database, aplikasi enterprise
  • Dynamic/private ports (49152 - 65535): Koneksi ephemeral client

Protokol utama yang dipindai:

Protokol Sifat Contoh Port
TCP Connection-oriented, handshake 3-way 80, 443, 22, 21
UDP Connectionless, tidak ada handshake 53 (DNS), 161 (SNMP), 67 (DHCP)

Nmap - Tools Port Scanning Paling Populer

Nmap (Network Mapper) adalah standar industri untuk port scanning. Dibuat oleh Gordon Lyon (Fyodor), Nmap tersedia di semua platform dan menjadi senjata utama setiap penetration tester.

Instalasi Nmap

# Debian/Ubuntu
sudo apt install nmap

# Arch
sudo pacman -S nmap

# macOS (Homebrew)
brew install nmap

# Dari source
git clone https://github.com/nmap/nmap.git
cd nmap && ./configure && make && sudo make install

Teknik Port Scanning Nmap

1. SYN Scan (Half-open Scan) - Default

Teknik paling cepat dan paling umum. Mengirim SYN, menunggu SYN-ACK (open), lalu mengirim RST, tanpa menyelesaikan handshake.

nmap -sS target.com
nmap -sS -p 22,80,443 192.168.1.1
nmap -sS -p- 10.10.10.1 # Semua 65535 port (lambat)

Keuntungan: Lebih stealth daripada TCP Connect scan, tidak tercatat di beberapa aplikasi log. Kerugian: Membutuhkan root privileges. Beberapa firewall modern bisa mendeteksi SYN scan.

2. TCP Connect Scan (Full Handshake)

Menyelesaikan koneksi TCP tiga arah penuh (SYN → SYN-ACK → ACK). Tidak perlu root.

nmap -sT target.com
nmap -sT -p 1-1000 192.168.1.1

Keuntungan: Bisa dijalankan tanpa root. Lebih akurat di beberapa lingkungan. Kerugian: Lebih lambat, mudah terdeteksi, tercatat di aplikasi.

3. UDP Scan

Memindai port UDP yang sering diabaikan padahal kritis (DNS, SNMP, DHCP).

nmap -sU target.com
nmap -sU -p 53,161,500 192.168.1.1
nmap -sU -sS target.com # Gabung TCP SYN + UDP

Keuntungan: Mendeteksi layanan UDP yang sering terlewat. Kerugian: Sangat lambat karena UDP tidak memiliki handshake. Bergantung pada ICMP Port Unreachable untuk menentukan status.

4. FIN Scan

Mengirim paket TCP dengan flag FIN aktif. RFC 793 menyatakan host harus mengirim RST untuk port closed.

nmap -sF target.com

Keuntungan: Melewati beberapa firewall yang hanya memblokir SYN packet. Bisa menembus non-stateful firewall. Kerugian: Tidak bekerja di Windows. Hanya host yang mematuhi RFC 793 yang memberikan respons benar.

5. Xmas Scan

Mengirim paket dengan flag FIN, URG, dan PTH (menyalakan seperti pohon Natal - semua lampu menyala).

nmap -sX target.com

Keuntungan: Melewati beberapa filter packet stateless. Kerugian: Sama seperti FIN scan - tidak bekerja di Windows. Beberapa IDS/IPS modern mendeteksi Xmas scan dengan mudah.

6. Null Scan

Mengirim paket TCP tanpa flag sama sekali (header TCP dengan flag bits = 0).

nmap -sN target.com

Keuntungan: Naluri melewati beberapa filter karena paket terlihat "aneh". Kerugian: Sama seperti FIN/Xmas - tidak akurat di Windows, mudah ditandai oleh anomaly detection.

7. Ping Sweep (Host Discovery)

Menemukan host hidup dalam suatu subnet tanpa memindai port.

nmap -sn 192.168.1.0/24
nmap -sn -PR 192.168.1.0/24 # ARP ping di LAN
nmap -sn -PE target.com # ICMP echo ping
nmap -sn -PS22,80 192.168.1.0/24 # TCP SYN ping ke port tertentu
nmap -sn -PA80,443 192.168.1.0/24 # TCP ACK ping
nmap -sn -PU53 192.168.1.0/24 # UDP ping

Timing dan Stealth di Nmap

Nmap memiliki 6 template timing (-T0 sampai -T5):

Template Nama Kecepatan Penggunaan
-T0 Paranoid Paling lambat IDS evasion ekstrem, jeda antar packet
-T1 Sneaky Sangat lambat Stealth, menghindari deteksi
-T2 Polite Lambat Mengurangi bandwidth (1 detik antar probe)
-T3 Normal Default Keseimbangan kecepatan dan stealth
-T4 Aggressive Cepat Lingkungan fast network yang dipercaya
-T5 Insane Sangat cepat Network sangat cepat, akurasi bisa menurun
nmap -T0 -sS target.com # Paranoid - sangat stealth
nmap -T4 -sS target.com # Aggressive - cepat
nmap --min-rate 1000 target.com # Minimal 1000 packet/detik
nmap --max-rate 100 target.com # Maksimal 100 packet/detik

Teknik Evasion Tambahan

# Fragmentasi paket
nmap -f target.com
nmap --mtu 16 target.com

# Decoy - menyembunyikan asal scan dengan IP palsu
nmap -D RND:10 target.com # 10 decoy acak
nmap -D 192.168.1.2,10.0.0.1 target.com # Decoy spesifik

# Spoof source IP (butuh akses ke IP tersebut)
nmap -S fake_ip target.com

# Gunakan interface atau port tertentu
nmap -e eth0 -g 53 target.com # Source port 53 (DNS)

# Randomize host order
nmap --randomize-hosts target.com

# Tambahkan delay antar probe
nmap --scan-delay 1s target.com

Output Nmap

nmap -oN scan.txt target.com # Normal output
nmap -oX scan.xml target.com # XML - untuk parsing
nmap -oG scan.gnmap target.com # Grepable
nmap -oA scan target.com # Semua format sekaligus
nmap -v -oA scan target.com # Verbose + semua format

NSE - Nmap Scripting Engine

NSE memungkinkan scanning dengan skrip kustom untuk deteksi kerentanan, brute force, atau enumerasi tambahan.

# Jalankan semua skrip default
nmap -sC target.com

# Skrip spesifik
nmap --script http-enum target.com
nmap --script smb-os-discovery target.com
nmap --script vuln target.com # Semua skrip kerentanan

# Kategori NSE:
# - auth: autentikasi brute force
# - default: skrip standar
# - discovery: service/version discovery
# - dos: denial of service (hati-hati)
# - exploit: eksploitasi
# - external: data dari sumber eksternal
# - fuzzer: fuzzing
# - intrusive: bisa mengganggu target
# - malware: deteksi malware
# - safe: aman
# - version: deteksi versi
# - vuln: deteksi kerentanan

nmap --script-help http-title # Lihat deskripsi skrip

Masscan - Scanner Port Paling Cepat

Masscan, dibuat oleh Robert David Graham, mampu memindai seluruh internet dalam hitungan menit - memproses jutaan paket per detik.

# Instalasi
sudo apt install masscan

# Scan cepat port 80 di subnet
masscan 192.168.1.0/24 -p80

# Scan banyak port
masscan 10.0.0.0/8 -p80,443,22,8080

# Scan seluruh internet untuk port 443
masscan 0.0.0.0/0 -p443 --rate=1000000

# Output ke file
masscan 192.168.1.0/24 -p1-65535 --rate=1000 -oJ masscan.json

Perbedaan utama Nmap vs Masscan:

Aspek Nmap Masscan
Kecepatan Ribuan pkt/detik Jutaan pkt/detik
Fitur Sangat kaya (NSE, OS, versi) Minimal - hanya port scanning
Stealth Banyak opsi Terbatas
Akurasi Tinggi Sedang (false positive lebih banyak)
Cocok untuk Scan detail satu target Scan range besar / seluruh internet

Unicornscan

Alternatif yang jarang digunakan tapi powerful untuk asynchronous stateless TCP scanning.

unicornscan -i eth0 192.168.1.1:1-1000

Zmap

Zmap adalah scanner cepat untuk scan satu port di banyak host - seperti massscan tapi fokus satu port.

sudo apt install zmap
zmap 10.0.0.0/8 -p 443 -o results.csv

Best Practices Port Scanning

  1. Dapatkan izin tertulis - Scanning tanpa izin adalah ilegal di banyak yurisdiksi.
  2. Mulai dari scan ringan - Gunakan host discovery (-sn) dulu, baru scan detail.
  3. Gunakan timing yang tepat - -T3 atau -T2 untuk target produksi agar tidak mengganggu.
  4. Simpan output - Format XML atau grepable untuk dokumentasi pentest.
  5. Gabungkan teknik - SYN + UDP + service detection dalam urutan yang logis.
  6. Hindari false positive - Verifikasi port terbuka dengan teknik lain.
  7. Dokumentasikan durasi - Catat kapan scan dilakukan untuk timeline engagement.

Contoh Workflow Lengkap

# 1. Host discovery
nmap -sn 192.168.1.0/24 -oA host-discovery

# 2. SYN scan port umum
nmap -sS -p 1-10000 -T4 192.168.1.10 -oA syn-scan

# 3. UDP scan port kritis
nmap -sU -p 53,123,161,500 192.168.1.10 -oA udp-scan

# 4. Full port scan (sisanya)
nmap -sS -p- -T3 192.168.1.10 -oA full-scan

# 5. Masscan untuk konfirmasi
masscan 192.168.1.10 -p1-65535 --rate=5000 -oJ masscan-confirm.json

Referensi

PADA HALAMAN INI