Panduan komprehensif tentang tahap pengintaian (recon) dalam penetration testing β teknik, metodologi, tools, dan best practices.
Reconnaissance hanya boleh dilakukan pada target yang Anda miliki izin tertulis (authorized pentest / bug bounty). Melakukan recon tanpa izin termasuk pelanggaran hukum (UU ITE di Indonesia, CFAA di US, dll). Gunakan ilmu ini secara etis dan bertanggung jawab.
Reconnaissance (recon) adalah tahap pertama dan paling krusial dalam penetration testing. Tujuannya adalah mengumpulkan sebanyak mungkin informasi tentang target sebelum melakukan eksploitasi. Semakin banyak informasi yang dikumpulkan, semakin besar peluang menemukan kerentanan.
Analogi: Bayangkan Anda seorang arsitek yang diminta mengevaluasi keamanan sebuah gedung. Sebelum masuk, Anda akan mengelilinginya, memperhatikan pintu, jendela, CCTV, pagar, dan pola penjaga. Itulah recon β mengamati sebelum bertindak.
| Aspek | Passive Recon | Active Recon |
|---|---|---|
| Interaksi dengan target | Tidak langsung | Langsung |
| Deteksi oleh target | Tidak terdeteksi | Bisa terdeteksi (log, IDS/IPS) |
| Sumber data | Publik (internet, cache, registry) | Target langsung (scanning, crawling) |
| Risiko legal | Rendah | Lebih tinggi (butuh izin) |
| Contoh | WHOIS, Google Dorking, Shodan | Nmap, Nikto, directory bruteforce |
Passive recon adalah pengumpulan informasi tanpa berinteraksi langsung dengan target. Data diambil dari sumber publik yang sudah tersedia di internet. Target tidak tahu bahwa mereka sedang di-recon.
Active recon melibatkan interaksi langsung dengan target β mengirim paket, crawling website, scanning port. Ini menghasilkan log di server target dan bisa terdeteksi oleh IDS/IPS/WAF. Selalu lakukan active recon setelah passive recon dan hanya dengan izin tertulis.
OSINT adalah pengumpulan dan analisis informasi dari sumber terbuka (publicly available). Dalam konteks web recon, OSINT digunakan untuk menemukan data tentang organisasi, karyawan, infrastruktur, dan teknologi yang digunakan tanpa menyentuh target langsung.
Subdomain seringkali menjadi entry point utama karena: subdomain dev/staging sering kurang dilindungi, admin panel tersembunyi di subdomain, service internal (Jenkins, Grafana, phpMyAdmin) sering terekspos via subdomain, dan subdomain lama yang terlupakan mungkin punya vulnerability yang belum di-patch.
Kombinasikan beberapa tool untuk hasil maksimal: subfinder -d target.com -silent | dnsx -silent | httpx -title -status-code -tech-detect β ini menemukan subdomain β resolve DNS β cek yang hidup.
Setiap port terbuka adalah "pintu masuk" potensial. Port scanning mengidentifikasi port apa yang terbuka, service apa yang berjalan, dan versi berapa. Informasi ini digunakan untuk mencari CVE atau misconfiguration pada service tersebut.
| Port | Service | Catatan |
|---|---|---|
80 | HTTP | Web server standar |
443 | HTTPS | Web server + SSL/TLS |
8080 | HTTP Alt | Sering dipakai proxy, dev server, Tomcat |
8443 | HTTPS Alt | Alternatif HTTPS |
3306 | MySQL | Jika terbuka ke publik = masalah besar |
5432 | PostgreSQL | Database terekspos |
27017 | MongoDB | Sering tanpa auth di default |
6379 | Redis | Sering tanpa password |
22 | SSH | Remote access, cek versi & auth method |
21 | FTP | Cek anonymous login |
9200 | Elasticsearch | Sering tanpa auth |
8888 | Jupyter Notebook | RCE jika tanpa password |
| Tujuan | Command |
|---|---|
| Quick scan top 1000 ports | nmap target.com |
| Full port scan | nmap -p- target.com |
| Service version detection | nmap -sV target.com |
| OS detection | nmap -O target.com |
| Aggressive scan (lengkap) | nmap -A target.com |
| Script scan (vuln check) | nmap --script=vuln target.com |
| UDP scan | nmap -sU --top-ports 100 target.com |
| Output semua format | nmap -oA output target.com |
Mengetahui teknologi yang digunakan target membantu menentukan attack vector yang relevan. Informasi yang dicari meliputi:
Content discovery (directory/file bruteforcing) bertujuan menemukan halaman, file, direktori, dan endpoint tersembunyi yang tidak di-link di website tapi tetap bisa diakses. Ini sering mengungkap admin panel, backup files, config files, API docs, dan lain-lain.
/admin, /wp-admin, /dashboard β Admin panel/backup, /db.sql, /backup.zip β Database dump & backup/.env, /config.php, /wp-config.php.bak β Config file berisi credentials/.git, /.svn β Version control terekspos (bisa download source code)/api/docs, /swagger, /graphql β API documentation/phpinfo.php, /server-status β Server information disclosure/robots.txt, /sitemap.xml β Sering mengungkap path sensitif/.well-known/ β Security.txt, OpenID configSecLists oleh Daniel Miessler adalah koleksi wordlist terlengkap: /usr/share/seclists/Discovery/Web-Content/. Wordlist populer: raft-medium-directories.txt, common.txt, big.txt. Untuk API: api-endpoints.txt.
Selain menemukan halaman, penting juga menemukan parameter tersembunyi (query string, POST body, headers) dan API endpoints. Parameter tersembunyi sering menjadi celah untuk IDOR, SQLi, XSS, dan mass assignment.
Google Dorking menggunakan operator pencarian lanjutan Google untuk menemukan informasi sensitif yang tidak sengaja terekspos ke publik. Ini adalah bentuk passive recon yang sangat efektif.
| Dork | Fungsi |
|---|---|
site:target.com | Semua halaman yang diindeks Google untuk domain target |
site:target.com filetype:pdf | Menemukan file PDF (bisa berisi info sensitif) |
site:target.com filetype:sql | Database dump yang terekspos |
site:target.com filetype:env | File environment berisi credentials |
site:target.com filetype:log | Log file yang mungkin berisi info sensitif |
site:target.com inurl:admin | Halaman admin |
site:target.com inurl:login | Halaman login |
site:target.com intitle:"index of" | Directory listing terbuka |
site:target.com intext:"sql syntax" | Halaman dengan SQL error (potensi SQLi) |
site:target.com ext:php inurl:config | File konfigurasi PHP |
site:target.com "password" filetype:xlsx | Spreadsheet berisi password |
"target.com" site:github.com | Mentions di GitHub (API keys, source code) |
"target.com" site:pastebin.com | Leaked data di Pastebin |
site:target.com -www | Menemukan subdomain (exclude www) |
inurl:target.com intext:@gmail.com | Email yang terekspos |
Mengumpulkan email karyawan dan informasi personal membantu untuk social engineering assessment, password spraying, dan memahami struktur organisasi target.
Berikut beberapa one-liner chain yang menggabungkan tools untuk efisiensi:
Selalu pastikan Anda memiliki izin tertulis sebelum melakukan active recon. Untuk latihan, gunakan platform legal seperti HackTheBox, TryHackMe, PortSwigger Web Security Academy, atau program bug bounty resmi (HackerOne, Bugcrowd, Intigriti). Passive recon pada data publik umu