Skip to content

Minggu 4: Enumeration & Attack Surface Mapping

1. Pendahuluan

Enumeration adalah proses aktif untuk mengekstrak informasi secara sistematis dari sistem target — berbeda dari passive recon, pada fase ini kita sudah melakukan interaksi langsung dengan target untuk mendapatkan data yang lebih konkret.

Attack Surface Mapping adalah proses memetakan seluruh titik masuk (entry point) yang berpotensi dapat dieksploitasi oleh attacker. Dua proses ini berjalan beriringan:

  • Enumeration → mengumpulkan data teknis secara aktif
  • Attack Surface Mapping → menganalisis dan memetakan data tersebut menjadi potensi kelemahan

2. Tujuan Enumeration & Attack Surface Mapping

Tujuan Enumeration

  • Mengidentifikasi port dan service yang berjalan pada target
  • Menentukan versi software dan OS yang digunakan
  • Menemukan endpoint, direktori, dan file tersembunyi
  • Mengekstrak user, group, dan resource yang tersedia
  • Memvalidasi hipotesis dari fase passive recon

Tujuan Attack Surface Mapping

  • Membuat inventaris lengkap seluruh entry point
  • Menilai luas dan kompleksitas permukaan serangan
  • Memprioritaskan area yang paling rentan untuk diuji
  • Mendokumentasikan infrastruktur target secara visual

3. Konsep Attack Surface

Attack surface adalah keseluruhan area di mana attacker dapat berinteraksi dengan sistem target untuk mencoba mengeksploitasinya.

Kategori Attack Surface

KategoriContoh
Network Attack SurfacePort terbuka, service terekspos, firewall misconfiguration
Web Attack SurfaceEndpoint API, form input, autentikasi, file upload
Software Attack SurfaceVersi CMS, plugin, library outdated
Human Attack SurfaceAkun karyawan, email pattern, social engineering vector
Cloud Attack SurfaceS3 bucket publik, misconfigured IAM, exposed storage

Prinsip Dasar

Semakin besar attack surface → semakin tinggi potensi risiko
Semakin spesifik pemetaan → semakin efisien pengujian

4. Workflow Enumeration & Attack Surface Mapping

⚠️ Semua aktivitas pada fase ini adalah active — pastikan sudah ada izin tertulis (scope engagement) sebelum memulai.


4.1 Network Enumeration

Tujuan: Menemukan host aktif, port terbuka, dan service yang berjalan.

📌 Teknik dan perintah Nmap (host discovery, SYN scan, UDP scan, version detection, flag lengkap) sudah dibahas secara mendalam di Minggu 3. Gunakan cheat sheet dari minggu tersebut sebagai referensi utama.

Sebagai pengingat cepat, urutan scan standar yang digunakan dalam konteks enumeration ini adalah:

bash
# 1. Host discovery
nmap -sn 192.168.1.0/24

# 2. Full port scan + service + version detection
sudo nmap -sS -sV -sC -p- <target>

# 3. UDP scan pada port populer
sudo nmap -sU --top-ports 100 <target>

Output yang perlu dicatat untuk Attack Surface Mapping:

PORT     STATE  SERVICE  VERSION
22/tcp   open   ssh      OpenSSH 8.2p1
80/tcp   open   http     Apache httpd 2.4.41
443/tcp  open   ssl/http nginx 1.18.0
3306/tcp open   mysql    MySQL 5.7.32

Tools tambahan untuk network scanning skala besar:

ToolFungsiInstall
MasscanPort scanning ultra-cepat (internet-scale)sudo apt install masscan
RustscanFast port scanner (wrapper Nmap)cargo install rustscan
FpingHost discovery & ping sweepsudo apt install fping

4.2 Service Enumeration

Setelah mengetahui port yang terbuka, langkah selanjutnya adalah mengekstrak informasi detail dari setiap service.

SSH Enumeration (Port 22)

SSH enumeration bertujuan untuk mengidentifikasi versi server SSH yang berjalan dan konfigurasi keamanannya. Dengan melakukan banner grabbing, kita bisa mengetahui apakah versi tersebut memiliki kerentanan (CVE) yang diketahui, sementara pengecekan algoritma membantu menentukan apakah ada metode enkripsi lemah yang bisa didekripsi atau dieksploitasi.

Selain itu, teknik ini digunakan untuk memvalidasi metode autentikasi yang diizinkan, seperti penggunaan password atau public key. Pada versi lama, terkadang kita bahkan bisa melakukan enumerasi username untuk memetakan akun pengguna yang valid di sistem target.

bash
# Banner grabbing
nc -v <target> 22

# Cek algoritma yang didukung
nmap --script ssh2-enum-algos <target>

# Enumerasi user (jika versi lama)
nmap --script ssh-auth-methods --script-args="ssh.user=root" <target>

HTTP/HTTPS Enumeration (Port 80/443)

Enumerasi pada protokol web sangat krusial karena seringkali menjadi pintu masuk utama serangan. Proses ini fokus pada pengumpulan informasi dari header HTTP untuk mengidentifikasi jenis web server (seperti Apache atau Nginx), framework yang digunakan, serta kebijakan keamanan seperti Content Security Policy (CSP) atau cookie flags.

Analisis SSL/TLS juga dilakukan untuk memastikan enkripsi yang digunakan kuat dan sertifikatnya valid. Melalui fingerprinting teknologi web, kita dapat memetakan seluruh tumpukan teknologi (tech stack) yang digunakan aplikasi, yang nantinya sangat berguna dalam menentukan strategi eksploitasi yang spesifik.

bash
# Header grabbing
curl -I http://<target>

# Web server fingerprinting
whatweb http://<target>

# SSL/TLS analysis
sslscan <target>
testssl.sh <target>

FTP Enumeration (Port 21)

FTP enumeration dilakukan untuk mencari akses yang tidak aman pada layanan pengiriman file. Salah satu fokus utamanya adalah memeriksa apakah fitur 'anonymous login' diaktifkan, yang memungkinkan siapa saja masuk tanpa kredensial dan berpotensi mengunduh file sensitif atau mengunggah file berbahaya ke server.

Melalui banner grabbing, kita juga bisa mengidentifikasi software FTP yang digunakan (seperti vsftpd atau ProFTPD). Informasi versi ini sangat penting untuk mencari exploit spesifik yang dapat menyebabkan kebocoran data atau bahkan eksekusi perintah jarak jauh (RCE).

bash
# Cek anonymous login
nmap --script ftp-anon <target>

# Banner grabbing
nc -v <target> 21

SMB Enumeration (Port 445)

Protokol SMB seringkali menyimpan informasi yang sangat kaya mengenai struktur jaringan internal dan hak akses pengguna. Enumerasi SMB bertujuan untuk menemukan share folder yang terekspos, daftar pengguna sistem, serta informasi grup yang dapat memberikan gambaran tentang peran server tersebut di dalam domain atau workgroup.

Dengan alat seperti enum4linux atau script Nmap, kita bisa mendapatkan detail teknis seperti versi OS dan kebijakan password. Informasi ini sangat berharga dalam fase lateral movement, di mana penyerang mencoba berpindah dari satu mesin ke mesin lain di dalam jaringan.

bash
# Cek share yang tersedia
smbclient -L //<target> -N

# Enumerasi user, group, share
enum4linux -a <target>

# Nmap SMB scripts
nmap --script smb-enum-shares,smb-enum-users <target>

SNMP Enumeration (Port 161/UDP)

SNMP seringkali menjadi 'tambang emas' informasi karena protokol ini dirancang untuk manajemen dan monitoring perangkat jaringan. Jika dikonfigurasi dengan community string yang lemah (seperti 'public'), penyerang dapat mengekstrak informasi detail mulai dari daftar software yang terinstal, tabel routing, hingga informasi hardware dan uptime sistem.

Proses enumerasi ini membantu penyerang memahami kondisi internal target secara mendalam tanpa harus masuk ke dalam sistem terlebih dahulu. Data yang didapat dari SNMP seringkali memberikan petunjuk krusial mengenai titik lemah infrastruktur yang tidak terlihat dari luar.

bash
# Enumerasi dengan community string default
snmpwalk -v2c -c public <target>

# Brute force community string
onesixtyone -c /usr/share/seclists/Discovery/SNMP/snmp.txt <target>

Tools Service Enumeration:

ToolTarget ServicePerintah Dasar
NetcatSemua portnc -v <target> <port>
WhatWebHTTPwhatweb <url>
SSLScanHTTPS/TLSsslscan <target>
Enum4linuxSMB/Sambaenum4linux -a <target>
SNMPWalkSNMPsnmpwalk -v2c -c public <target>
NiktoHTTPnikto -h <url>

4.3 Web Enumeration

Fase ini berfokus pada pengujian aplikasi web secara lebih mendalam.

Directory & File Bruteforcing

bash
# Gobuster — directory brute force
gobuster dir -u http://<target> -w /usr/share/wordlists/dirb/common.txt

# Gobuster dengan ekstensi file
gobuster dir -u http://<target> \
  -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt \
  -x php,html,txt,bak,zip

# Feroxbuster — recursive brute force
feroxbuster -u http://<target> -w /usr/share/wordlists/dirb/common.txt

# FFuf — flexible fuzzer
ffuf -u http://<target>/FUZZ -w /usr/share/wordlists/dirb/common.txt

Subdomain Enumeration (Active)

bash
# Gobuster — subdomain mode
gobuster dns -d target.com -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt

# FFuf — vhost fuzzing
ffuf -u http://<target>/ -H "Host: FUZZ.target.com" \
  -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt

# Amass — comprehensive subdomain enumeration
amass enum -d target.com

Web Technology Fingerprinting

bash
# WhatWeb
whatweb -v http://<target>

# Wappalyzer (CLI)
wappalyzer http://<target>

# Curl untuk melihat response headers
curl -I -L http://<target>

API Endpoint Discovery

bash
# Cari endpoint API dengan wordlist khusus
gobuster dir -u http://<target>/api \
  -w /usr/share/seclists/Discovery/Web-Content/api/api-endpoints.txt

# FFuf untuk parameter fuzzing
ffuf -u http://<target>/api/v1/FUZZ \
  -w /usr/share/seclists/Discovery/Web-Content/burp-parameter-names.txt

Tools Web Enumeration:

ToolFungsiInstall
GobusterDirectory, DNS, VHost brute forcesudo apt install gobuster
FFufFast web fuzzersudo apt install ffuf
FeroxbusterRecursive directory brute forcesudo apt install feroxbuster
DirbDirectory brute force (klasik)sudo apt install dirb
WhatWebWeb technology fingerprintingsudo apt install whatweb
NiktoWeb vulnerability scannersudo apt install nikto
AmassSubdomain enumerationsudo apt install amass

4.4 DNS Enumeration (Active)

bash
# Query DNS records
dig A target.com
dig MX target.com
dig TXT target.com
dig NS target.com
dig ANY target.com

# Zone transfer (jika server tidak dikonfigurasi dengan benar)
dig axfr target.com @ns1.target.com

# Reverse DNS lookup
dig -x <IP>

# DNSRecon — comprehensive DNS enumeration
dnsrecon -d target.com -t std
dnsrecon -d target.com -t axfr

# Fierce — DNS reconnaissance
fierce --domain target.com

Tools DNS Enumeration:

ToolFungsi
DigQuery DNS manual
DNSReconAutomated DNS enumeration
FierceDNS recon & subdomain discovery
HostSimple DNS lookup
DNSEnumComprehensive DNS info gathering

4.5 OS & Version Fingerprinting

bash
# OS detection dengan Nmap
nmap -O <target>

# Aggressive scan (OS + version + scripts)
nmap -A <target>

# Banner grabbing manual
nc -v <target> 80
HEAD / HTTP/1.0

# Metasploit auxiliary scanner
use auxiliary/scanner/portscan/tcp

Yang dianalisis:

  • Nama dan versi OS
  • Patch level (apakah sudah diupdate?)
  • Service version yang berpotensi vulnerable
  • TTL value (indikasi OS dari network level)

4.6 OSINT Aktif (Validasi Hipotesis)

Berbeda dari passive OSINT di minggu 2, pada fase ini kita memvalidasi temuan dengan interaksi langsung.

bash
# Cek email dengan SMTP enumeration
smtp-user-enum -M VRFY -U users.txt -t <target>

# Whois lookup untuk verifikasi kepemilikan IP
whois <IP>

# Shodan CLI — cari informasi host dari perspektif publik
shodan host <IP>

5. Attack Surface Mapping

Setelah data terkumpul melalui enumeration, langkah selanjutnya adalah memetakan seluruh temuan ke dalam attack surface map.

5.1 Komponen Attack Surface Map

Sebuah attack surface map yang baik harus mencakup:

Attack Surface Map
├── Network Layer
│   ├── Open Ports
│   ├── Exposed Services
│   └── Network Segmentation
├── Web Application Layer
│   ├── Public Endpoints
│   ├── Authentication Points
│   ├── File Upload Points
│   ├── API Endpoints
│   └── Admin Panels
├── Software Layer
│   ├── CMS & Version
│   ├── Frameworks & Libraries
│   └── Outdated Components
└── Infrastructure Layer
    ├── Cloud Services
    ├── CDN
    └── Third-party Integrations

5.2 Format Tabel Attack Surface

Gunakan tabel berikut untuk mendokumentasikan setiap entry point:

Entry PointTypeLocationTechnologyRisk LevelNotes
Port 22/SSHNetwork192.168.1.10OpenSSH 7.4HighVersi lama, CVE tersedia
/adminWebhttp://target.com/adminWordPressHighAdmin panel terekspos
/api/v1/usersAPIhttp://target.comREST APIMediumButuh auth, belum divalidasi
Port 8080Network192.168.1.10Tomcat 9.0MediumDev server terekspos
dev.target.comSubdomainDNSUnknownMediumSubdomain dev terekspos

5.3 Risk Level Classification

LevelKriteria
CriticalLangsung dapat dieksploitasi tanpa autentikasi
HighBerpotensi memberikan akses signifikan
MediumMemerlukan kondisi tertentu untuk dieksploitasi
LowDampak terbatas atau memerlukan banyak prasyarat
InformationalTidak langsung berbahaya namun perlu dicatat

5.4 Entry Point Categories

Authentication Entry Points:

  • Login form
  • Admin panel
  • API key/token authentication
  • OAuth endpoints
  • Password reset mechanism

Data Input Entry Points:

  • Form fields (search, register, contact)
  • File upload
  • URL parameters
  • HTTP headers
  • Cookies

Infrastructure Entry Points:

  • Exposed management ports (SSH, RDP, Telnet)
  • Database ports (MySQL, PostgreSQL, MongoDB)
  • Cache services (Redis, Memcached)
  • Message brokers (RabbitMQ, Kafka)

6. Tools Lengkap

6.1 Network Scanning

📌 Referensi lengkap flag dan teknik Nmap tersedia di Minggu 3 — Cheat Sheet Nmap. Tabel berikut hanya mencantumkan tools di luar Nmap yang relevan untuk fase enumeration ini.

ToolFungsi UtamaPerintah Contoh
MasscanUltra-fast port scannermasscan -p1-65535 <target> --rate=1000
RustscanFast scanner + Nmap integrationrustscan -a <target> -- -sC -sV
NetcatManual banner grabbingnc -v <target> <port>
ZmapInternet-wide scanningzmap -p 80 -o results.txt

6.2 Web Enumeration

ToolFungsi UtamaPerintah Contoh
GobusterDir/file/DNS/vhost brute forcegobuster dir -u <url> -w wordlist.txt
FFufFlexible web fuzzerffuf -u <url>/FUZZ -w wordlist.txt
FeroxbusterRecursive directory brute forceferoxbuster -u <url>
DirbDirectory brute forcedirb <url>
DirsearchWeb path discoverydirsearch -u <url>
NiktoWeb vulnerability scannernikto -h <url>
WhatWebTechnology fingerprintingwhatweb -v <url>
WfuzzWeb fuzzerwfuzz -u <url>/FUZZ -w wordlist.txt

6.3 DNS & Subdomain

ToolFungsi UtamaPerintah Contoh
AmassComprehensive subdomain enumamass enum -d target.com
DNSReconDNS record enumerationdnsrecon -d target.com
FierceDNS recon & subdomainfierce --domain target.com
DigManual DNS querydig ANY target.com
SubfinderPassive subdomain discoverysubfinder -d target.com
AssetfinderFast asset discoveryassetfinder target.com

6.4 Service-Specific

ToolTargetPerintah Contoh
Enum4linuxSMB/Windowsenum4linux -a <target>
SMBMapSMB sharessmbmap -H <target>
SNMPWalkSNMPsnmpwalk -v2c -c public <target>
SSLScanSSL/TLSsslscan <target>
TestSSLSSL/TLS analysistestssl.sh <target>
SMTP-user-enumSMTPsmtp-user-enum -M VRFY -U users.txt -t <target>

6.5 Wordlists

Wordlist adalah komponen kunci dalam enumeration. Gunakan dari SecLists:

bash
# Install SecLists
sudo apt install seclists
# atau
git clone https://github.com/danielmiessler/SecLists

# Lokasi umum
/usr/share/seclists/Discovery/Web-Content/common.txt
/usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt
/usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt
/usr/share/wordlists/dirb/common.txt
/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

7. Nmap Scripting Engine (NSE)

📌 Pengenalan NSE dan kategori script sudah dibahas di Minggu 3 — Further Nmap. Bagian ini fokus pada penggunaan NSE spesifik untuk keperluan enumeration service.

Contoh NSE untuk Service Enumeration

bash
# HTTP enumeration
nmap --script http-enum <target>

# SMB vulnerability check
nmap --script smb-vuln-* <target>

# FTP anonymous check
nmap --script ftp-anon <target>

# SSL certificate info
nmap --script ssl-cert <target>

# MySQL enumeration
nmap --script mysql-info,mysql-enum <target>

8. Kesalahan Umum dalam Enumeration

  • Terlalu agresif di awal — scan dengan rate tinggi dapat memicu IDS/IPS dan alert tim keamanan target
  • Tidak mencatat command yang dijalankan — reproducibility sangat penting dalam pentest profesional
  • Hanya scan port TCP — banyak service berjalan di UDP (DNS, SNMP, TFTP)
  • Skip versi verification — versi software sangat krusial untuk mencari CVE yang relevan
  • Tidak melakukan rekursif — direktori yang ditemukan harus di-enumerate ulang
  • Mengabaikan non-standard port — attacker sering menaruh service di port tidak umum
  • Wordlist tidak tepat — pilih wordlist sesuai teknologi target (WordPress, PHP, Java, dll)

9. Prinsip Penting

Enumeration = Ketelitian, bukan kecepatan.

Beberapa prinsip yang harus selalu diikuti:

  1. Catat semua perintah yang dijalankan, bukan hanya hasilnya
  2. Verifikasi setiap temuan — false positive sering terjadi pada automated tools
  3. Kontekstualisasi hasil — sebuah temuan baru bermakna jika dipahami dalam konteks sistem target
  4. Iteratif — temuan baru membuka jalur enumeration baru yang harus diikuti
  5. Jaga scope — jangan keluar dari batas engagement yang telah disepakati

10. Lab TryHackMe

Gunakan lab berikut untuk mempraktikkan materi minggu ini secara langsung:

10.1 Fundamental Enumeration

RoomTopikLinkDifficulty
Network ServicesSMB, Telnet, FTP, NFS enumerationtryhackme.com/room/networkservicesEasy
Network Services 2SMTP, MySQL enumerationtryhackme.com/room/networkservices2Easy
NmapNmap fundamentals & NSEtryhackme.com/room/furthernmapEasy
Nmap Live Host DiscoveryHost discovery techniquestryhackme.com/room/nmaplayerhostEasy

10.2 Web Enumeration

RoomTopikLinkDifficulty
Web EnumerationGobuster, Nikto, WhatWebtryhackme.com/room/webenumerationv2Easy
Content DiscoveryManual & automated content discoverytryhackme.com/room/contentdiscoveryEasy
Subdomain EnumerationPassive & active subdomain discoverytryhackme.com/room/subdomainenumerationEasy
DNS in DetailDNS records & enumerationtryhackme.com/room/dnsindetailEasy

10.3 Attack Surface & Practical

RoomTopikLinkDifficulty
Passive ReconnaissanceKombinasi passive & awal active recontryhackme.com/room/passivereconEasy
Active ReconnaissanceTraceroute, Ping, Nmap, Telnettryhackme.com/room/activereconEasy
Bounty HunterReal-world web enumeration practicetryhackme.com/room/cowboyhackerEasy
Basic PentestingFull enumeration → exploitation flowtryhackme.com/room/basicpentestingjtEasy
LookupEnumeration practice end-to-endtryhackme.com/room/lookupEasy

10.4 Urutan Lab yang Disarankan

1. DNS in Detail          → Pahami DNS sebagai fondasi
2. Passive Reconnaissance → Review dari minggu lalu + transisi ke active
3. Nmap (Further Nmap)    → Kuasai tool utama network enum
4. Active Reconnaissance  → Praktik teknik active recon dasar
5. Network Services       → Enum service per protokol (SMB, FTP, Telnet)
6. Network Services 2     → Lanjutan (SMTP, MySQL)
7. Web Enumeration        → Tools web enum (Gobuster, Nikto)
8. Content Discovery      → Teknik web content discovery
9. Subdomain Enumeration  → DNS brute force & passive enum
10. Basic Pentesting      → Integrasi semua teknik