Fase pengumpulan informasi — fondasi seluruh pengujian. Dari WHOIS dan DNS pasif, host discovery dan port scanning, sampai web recon terhadap DVWA dan WordPress lab-mu. Setiap perintah siap-copy, setiap output beranotasi.
Reconnaissance (pengintaian) adalah proses sistematis mengumpulkan informasi tentang target sebelum menyentuhnya lebih jauh. Dalam metodologi PTES, ini fase kedua setelah pre-engagement; dalam kill-chain, ini langkah pertama yang bisa dilakukan tanpa satu pun exploit. Prinsipnya sederhana dan brutal: tidak ada eksploitasi yang bagus di atas rekon yang buruk — 70% keberhasilan pengujian ditentukan di fase ini.
Host, layanan, domain, subdomain, orang, email, teknologi. Output-nya: inventaris.
Apache 2.4.57? OpenSSH 9.6? WordPress 6.x dengan plugin lama? Output-nya: fingerprint.
Port terbuka yang tidak perlu, direktori tersembunyi, halaman login, backup yang tertinggal. Output-nya: attack surface map — bahan utama fase vulnerability analysis.
Semakin dalam kamus dan log-mu, semakin kecil dunia target. Recon bukan sekadar menjalankan tools — tapi membaca apa yang tools kembalikan.
Mengintai tanpa izin bukan "skill" — itu pelanggaran, meski niatnya belajar. Di lab ini otorisasinya jelas dan terbatas. Patuhi kartu scope berikut tanpa pengecualian:
172.16.20.201–209 (hanya nomor milikmu).dvwaN / vulnN / wpN.abdurrozak.my.id.1) Dokumentasikan semua — pipakan setiap perintah ke tee, log adalah alibi dan bahan laporan. 2) Sesuaikan timing — -T4 di lab kecil boleh, di infrastruktur produksi jangan. 3) Berhenti di batas scope — port terbuka di IP yang bukan milikmu = temukan, catat, lapor, jangan sentuh. 4) Hormati privasi — data pribadi yang tak sengaja terlihat bukan bahan pamer.
Recon pasif mengumpulkan informasi tanpa berinteraksi langsung dengan target (kamu bertanya ke pihak ketiga: DNS resolver, search engine, database sertifikat). Recon aktif menyentuh target — paketmu sampai ke tujuan, dan bisa tercatat di log-nya. Aturan praktis: mulaipasif, eskalasi ke aktif hanya sesuai izin.
| Aspek | Recon Pasif | Recon Aktif |
|---|---|---|
| Interaksi ke target | Tidak ada / tidak langsung | Langsung (paket ke host target) |
| Terdeteksi target? | Sulit — jejak di sumber pihak ketiga saja | Ya — IDS, access log, firewall log |
| Contoh tools | whois · dig · theHarvester · crt.sh · dork | nmap · whatweb · gobuster · nikto · wpscan |
| Kekuatan data | Bisa basi (cache/index lama) | Real-time, presisi tinggi |
| Risiko | Nyaris nol | Terlihat "berisik"; wajib otorisasi |
| Di lab ini | Bab 4 | Bab 5–7 |
Nama domain utama (abdurrozak.my.id), rentang IP terizinkan, dan penugasan unit-mu. Semua sudah di tangan — tulis rapi.
Dari resolusi DNS: dvwa1… → 172.16.20.201 memberi petunjuk subnet 172.16.20.0/24.
Ping sweep / ARP scan pada rentang tersebut (Bab 5).
Port, versi, teknologi web, aplikasi (Bab 6–7). Inilah input resmi untuk fase vulnerability analysis.
Semua perintah di bab ini diamankan di Kali-mu (sudah terpasang bawaan atau via apt install). Output di bawah adalah ilustrasi format — nilai asli milik lab-mu.
whois abdurrozak.my.id Domain Name: abdurrozak.my.id Name Server: ns1.abdurrozak.my.id Name Server: ns2.abdurrozak.my.id # ANOTASI: nameserver mengungkap penyedia infrastruktur; # tanggal creation/update memberi gambaran usia aset.
DNS adalah peta domain → layanan. Kuasai lima tipe rekaman ini dulu:
| Tipe | Arti | Nilai Recon |
|---|---|---|
| A / AAAA | Domain → IPv4 / IPv6 | Menautkan target web ke IP unit |
| NS | Authoritative nameserver | Siapa yang mengelola zona |
| MX | Mail exchanger | Ada server email = permukaan tambahan |
| TXT | Data bebas (SPF, DKIM, verifikasi) | Sering membocorkan vendor cloud |
| CNAME | Alias domain | Menghubungkan subdomain ke layanan lain |
dig +short dvwa1.abdurrozak.my.id 172.16.20.201 # dvwa unit 1 → IP unit 1 host -t ns abdurrozak.my.id host -t mx abdurrozak.my.id host -t txt abdurrozak.my.id # rekaman lengkap satu tipe: dig dvwa1.abdurrozak.my.id A +noall +answer
Zone transfer (AXFR) adalah replikasi seluruh isi zona DNS ke server sekunder. Jika master tidak membatasi siapa yang boleh meminta, seluruh peta internal bocor — klasik, tapi masih muncul di audit nyata.
dig axfr abdurrozak.my.id @ns1.abdurrozak.my.id # hasil yang diharapkan (server aman): ; Transfer failed. # bila BERHASIL: catat seluruh rekaman sebagai temuan # "zone transfer tidak dibatasi" — jangan eksploitasi lebih jauh. # alternatif dengan dnsrecon (instal: apt install dnsrecon): dnsrecon -d abdurrozak.my.id -t axfr
Setiap sertifikat TLS yang diterbitkan tercatat di Certificate Transparency log — publik dan gratis untuk dikueri. Ini cara paling senyap menemukan subdomain.
# butuh jq: apt install jq curl -s "https://crt.sh/?q=%25.abdurrozak.my.id&output=json" \ | jq -r '.[].name_value' | sort -u # output: daftar subdomain yang pernah punya sertifikat. # %25 = wildcard "%" — "semua subdomain dari".
theHarvester -d abdurrozak.my.id -b duckduckgo,baidu -l 50 # memanen email, hostname, dan IP dari indeks mesin pencari. # untuk lab kecil hasilnya kecil — pola perintahnya yang penting.
Mesin pencari adalah database OSINT terbesar. Operator utama:
| Operator | Fungsi | Contoh Temuan |
|---|---|---|
| site: | Batasi ke satu domain/subdomain | Halaman mana saja yang terindeks |
| inurl: | Kata dalam URL | Path admin, backup, upload |
| intitle: | Kata dalam judul halaman | "index of", "login", dashboard |
| filetype: | Ekstensi berkas | pdf, xls, log, sql, conf |
| intext: | Kata di dalam isi halaman | password, username, internal |
| cache: | Versi tersimpan mesin pencari | Konten yang sudah dihapus |
Dork terhadap domain lab dipakai untuk melatih mata membaca permukaan serangan milikmu sendiri. Jangan menggunakannya untuk mengintai properti pihak lain.
Pertanyaan pertama fase aktif: siapa yang hidup?. Ping sweep mengirim probe ringan ke setiap alamat di rentang terizinkan dan mencatat yang menjawab.
# -sn = host discovery SAJA, tanpa pemindaian port (senyap) nmap -sn 172.16.20.201-209 Nmap scan report for 172.16.20.201 Host is up (0.0012s latency). MAC Address: 08:00:27:AB:CD:EF (Oracle VirtualBox) # baris MAC membocorkan virtualisasi host — VM VirtualBox! # alternatif cepat: fping -asgq 172.16.20.201 172.16.20.209 # di segmen LAN yang sama — ARP scan (butuh root): arp-scan --localnet
| Flag | Mekanisme | Dipakai Saat |
|---|---|---|
| -sn | Ping sweep tanpa port scan | Tahap pertama, paling senyap |
| -Pn | Lewati ping — anggap semua hidup | Host memblokir ICMP (umum!) |
| -PS<port> | TCP SYN ping (default 80) | ICMP difilter tapi TCP tidak |
| -PA<port> | TCP ACK ping | Mengelabui stateless firewall |
| -PU<port> | UDP ping | Protokol TCP diblokir penuh |
| -PR | ARP ping (LAN lokal) | Paling andal di segmen yang sama |
Banyak host menolak ICMP echo tapi tetap menjalankan web di port 80. Kalau sweep -sn sepi, ulangi dengan nmap -Pn -p22,80,443 … — kebanyakan "host mati" langsung bangun.
Builder ini hanya menyusun string perintah. Menjalankannya ke host di luar unit yang ditugaskan = pelanggaran scope Bab 2.
Setelah tahu host mana yang hidup, petakan port terbuka → layanan → versi. Tiga data inilah yang dicocokkan ke database kerentanan di fase berikutnya.
| Flag | Nama | Mekanisme Singkat | Catatan |
|---|---|---|---|
| -sS | SYN / half-open | Kirim SYN, baca SYN-ACK, kirim RST — koneksi tak pernah selesai | Default & tercepat; butuh root |
| -sT | Connect | Handshake TCP penuh via syscall connect() | Tanpa root; tercatat di log aplikasi |
| -sU | UDP | Datagram kosong; "open|filtered" bila tak ada balasan | Lambat — sabar dengan -T4 |
| -sF/-sX/-sN | FIN/Xmas/Null | Paket tanpa flag / semua flag — probe berpasangan aneh | Eva si firewall lawas; tak bekerja di Windows |
| -sA | ACK | Memetakan aturan firewall (filtered vs unfiltered) | Bukan menemukan port terbuka |
Tiga kemungkinan status port yang dilaporkan nmap:
nmap -sV -T4 --open 172.16.20.201 -oA recon/scans/unit01 PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 9.6p1 (protocol 2.0) 80/tcp open http Apache httpd 2.4.57 ((Debian)) # -sV = interogasi banner tiap port terbuka → kolom VERSION # --open = tampilkan yang terbuka saja (output bersih) # -oA = simpan tiga format (nmap/gnmap/xml) → bahan laporan # fingerprint OS (best-effort, butuh root): sudo nmap -O 172.16.20.201 # NSE — mesin skrip nmap (kategori & skrip spesifik): nmap -sV --script http-title,http-headers -p80 172.16.20.201
| Template | Nickname | Perilaku | Gunakan Untuk |
|---|---|---|---|
| -T0 | paranoid | 5 menit/probe | Eva IDS — nyaris tak dipakai |
| -T1 | sneaky | 15 detik/probe | Sangat senyap, sangat lambat |
| -T2 | polite | 0,4 detik/probe | Sistem produksi rapuh |
| -T3 | normal | Default seimbang | Default aman |
| -T4 | aggressive | Cepat, timeout pendek | LAN andal — pilihan lab |
| -T5 | insane | Brutal, mudah salah baca | Darurat; hasil bisa tak akurat |
-sn (siapa hidup) → -sV --open (apa yang jalan) → catat dengan -oA. Jangan pernah memulai dari -A ke semua host: berisik, lambat, dan 90% datanya tak akan kamu pakai.
Target web lab-mu tiga jenis per unit: DVWA (aplikasi latihan kerentanan), VULN (mesin latihan ala VulnHub), dan WordPress (CMS nyata). Pola recon-nya sama: headers → teknologi → direktori → spesifik aplikasi.
curl -sI http://dvwa1.abdurrozak.my.id HTTP/1.1 200 OK Server: Apache/2.4.57 (Debian) ← versi web server bocor X-Powered-By: PHP/8.2.7 ← runtime backend bocor Set-Cookie: PHPSESSID=…; HttpOnly ← sesi PHP; HttpOnly = baik # catat: yang TIDAK ada juga penting — # tidak ada HSTS? tidak ada X-Frame-Options? itu temuan hardening.
whatweb http://dvwa1.abdurrozak.my.id http://dvwa1… [200 OK] Country[…], HTTPServer[Debian Linux][Apache], IP[172.16.20.201], PHP[8.2.7], X-Powered-By[PHP/8.2.7] # satu baris = seluruh stack. bandingkan antar unit N.
Bandingkan URL yang diketahui dengan wordlist — kamus path umum. Wordlist bawaan Kali ada di /usr/share/wordlists/dirb/.
gobuster dir \ -u http://dvwa1.abdurrozak.my.id \ -w /usr/share/wordlists/dirb/common.txt \ -x php,txt,bak -t 30 -o recon/web/gobuster-unit01.txt /index.php (Status: 200) /login.php (Status: 200) /setup.php (Status: 200) ← halaman setup DVWA! /robots.txt (Status: 200) # -x menambahkan sufiks ekstensi · -t 30 = 30 thread paralel # selalu cek robots.txt manual — kadang menyerahkan sendiri path rahasia curl -s http://dvwa1.abdurrozak.my.id/robots.txt
# nikto — pemindai server web generik (berisik, sesuaikan scope!) nikto -h http://dvwa1.abdurrozak.my.id -o recon/web/nikto-unit01.html -Format htm # wpscan — khusus WordPress: user, tema, plugin wpscan --url http://wp1.abdurrozak.my.id --enumerate u,t,p # WP REST API — enumerasi user publik (tanpa tool tambahan): curl -s http://wp1.abdurrozak.my.id/wp-json/wp/v2/users | jq # metode HTTP yang diizinkan: curl -s -X OPTIONS -i http://dvwa1.abdurrozak.my.id | head -n 12
| Target | Yang Sering Tersembunyi | Kenapa Penting |
|---|---|---|
| DVWA (dvwaN…) | /setup.php (reset DB), level security di menu DVWA Security, struktur /vulnerabilities/… | Setup terbuka = kontrol penuh DB; level security menentukan bentuk kerentanan per modul |
| VULN (vulnN…) | Halaman login aplikasi latihan, file baca-saja di root web | Desainnya memang menyimpan "harta karun" — petakan path sebelum fase eksploitasi |
| WordPress (wpN…) | Versi di meta generator, plugin/theme via wpscan, xmlrpc.php, wp-json | Plugin usang = vektor eksploitasi paling umum di dunia nyata |
Tanpa tool khusus pun kamu bisa fingerprint: nc -nv 172.16.20.201 22 menampilkan banner OpenSSH; openssl s_client -connect host:443 menampilkan detail sertifikat (issuer, masa berlaku, SAN). Sertifikat yang hampir kadaluarsa = sinyal pemeliharaan yang buruk.
Rangkuman seluruh manual menjadi satu sesi kerja nyata pada unit yang ditugaskan. Struktur direktori dulu — recon tanpa arsip = recon yang hilang:
mkdir -p recon/{osint,dns,scans,web,shots} recon/ ├── osint/ # whois, crt.sh, dork notes ├── dns/ # hasil dig, host, dnsrecon ├── scans/ # output nmap (-oA) ├── web/ # whatweb, gobuster, nikto, wpscan └── shots/ # tangkapan layar bukti # pola logging wajib — stdout SEKALIGUS file: whois abdurrozak.my.id | tee recon/osint/whois.txt
ssh [email protected] (ganti X sesuai penugasan) — lihat ROSTER-01 untuk daftar lengkap.
whois + dig + crt.sh atas abdurrozak.my.id, semua ke tee. Catat rentang IP yang terkonfirmasi.
nmap -sn 172.16.20.20X — konfirmasi unitmu hidup. Bandingkan MAC/virtualisasi.
nmap -sV -T4 --open 172.16.20.20X -oA recon/scans/unit0X. Baca kolom VERSION perlahan.
curl → whatweb → gobuster → (wpscan bila target wp). Ketiga subdomain indeks-mu, satu per satu.
Buat satu tabel: layanan → versi → teknologi → catatan menarik. Inilah attack surface unitmu — serahkan/raporkan sesuai arahan asisten.
Recon yang sama diulang tiap unit — kerjaan mesin, bukan manusia. Skeleton berikut menggabungkan Bab 4–7; perhatikan setiap baris sudah diberi tee (Bab 8).
#!/usr/bin/env bash # quickrecon.sh — HANYA untuk unit yang DITUGASKAN ke kamu. # usage: ./quickrecon.sh <ip> <domain> # ./quickrecon.sh 172.16.20.201 dvwa1.abdurrozak.my.id set -u TARGET="${1:-}" DOMAIN="${2:-}" BASE="recon/$(date +%F)" [ -z "$TARGET" ] && { echo "usage: $0 <ip> <domain>"; exit 1; } mkdir -p "$BASE"/{dns,scans,web} echo "[1/5] DNS pasif" dig +short "$DOMAIN" | tee "$BASE/dns/a.txt" dig axfr abdurrozak.my.id | tee "$BASE/dns/axfr.txt" echo "[2/5] Host discovery" nmap -sn "$TARGET" | tee "$BASE/scans/discovery.txt" echo "[3/5] Port + versi" nmap -sV -T4 --open "$TARGET" -oA "$BASE/scans/sv" | tee "$BASE/scans/sv.txt" echo "[4/5] Web fingerprint" whatweb "http://$DOMAIN" | tee "$BASE/web/whatweb.txt" curl -sI "http://$DOMAIN" | tee "$BASE/web/headers.txt" echo "[5/5] Direktori" gobuster dir -u "http://$DOMAIN" \ -w /usr/share/wordlists/dirb/common.txt -t 20 \ -o "$BASE/web/gobuster.txt" echo "[+] Selesai — arsip: $BASE"
Skrip hanya mempercepat apa yang sudah kamu pahami manual — jangan jalankan sebelum bisa membaca output tiap langkahnya. Timing tetap -T4 maksimal untuk lab; -T5 hanya menghasilkan data sampah. Dan satu lagi: set -u membuat skrip berhenti jika variabel lupa diisi — penyelamat kecil yang sering menyelamatkan laporan.
3–5 kalimat: apa yang dipindai, apa permukaan serangan terbesar, apa rekomendasi pertama.
IP/domain yang diuji, tanggal, tools + versi, timing template. Menegaskan legalitas pengujian.
Satu sub-bab per host/aplikasi: layanan, versi, catatan konfigurasi, path menarik — setiap klaim disertai bukti.
Perintah penuh + timestamp, file -oA/tee, tangkapan layar. Aturan: pembaca harus bisa mereproduksi temuanmu.
Daftar hipotesis kerentanan untuk fase vulnerability analysis — bukan eksploitasi.
| Perintah | Fungsi |
|---|---|
| whois abdurrozak.my.id | KTP domain: registrar, nameserver, umur. |
| dig +short dvwa1.abdurrozak.my.id | Resolusi cepat domain → IP. |
| dig axfr abdurrozak.my.id @ns1… | Uji zona transfer (temuan bila berhasil). |
| dnsrecon -d domain -t std | Enumerasi DNS otomatis. |
| curl -s "https://crt.sh/?q=%25.dom&output=json" | jq -r '.[].name_value' | sort -u | Subdomain via Certificate Transparency. |
| theHarvester -d domain -b duckduckgo -l 50 | Panen email/host dari mesin pencari. |
| nmap -sn 172.16.20.201-209 | Ping sweep — host hidup, tanpa port scan. |
| arp-scan --localnet | Pemetaan LAN via ARP. |
| nmap -sV -T4 --open TARGET -oA recon/scans/x | Port + versi + arsip 3 format. |
| nmap -sV --script http-title,http-headers -p80 TARGET | NSE untuk HTTP cepat. |
| curl -sI http://target | Banner & header HTTP. |
| whatweb http://target | Fingerprint stack web. |
| gobuster dir -u URL -w /usr/share/wordlists/dirb/common.txt -x php,txt -t 30 | Brute direktori & ekstensi. |
| wpscan --url http://wpN… --enumerate u,t,p | Enumerasi WordPress: user, tema, plugin. |
REKON YANG BAIK TIDAK TERLIHAT. REKON YANG BURUK TERDENGAR DI LOG ORANG LAIN.