OSINT untuk developer: memetakan jejak publik sebuah domain tanpa menyentuh servernya
Recon pasif dengan sumber terbuka: log Certificate Transparency, DNS, RDAP, Wayback Machine, search engine, dan mesin pencari perangkat, lengkap dengan perintahnya dan cara mencatat temuan agar bisa diverifikasi.
- osint
- recon
- keamanan
OSINT (open-source intelligence) adalah intelijen dari sumber yang terbuka untuk umum: situs web, catatan DNS, log sertifikat, arsip internet, media sosial, dan dokumen publik. Kuncinya bukan data rahasia, melainkan kemampuan menggabungkan potongan-potongan publik menjadi gambaran yang utuh dan bisa diverifikasi.
Bagi developer, OSINT punya dua kegunaan. Penyerang memakainya sebagai langkah pertama (reconnaissance) sebelum menyentuh target, jadi kita perlu tahu apa yang mereka lihat. Dan dalam pentest atau bug bounty, OSINT adalah cara memetakan permukaan serangan tanpa mengirim satu paket pun ke server target. Tulisan ini adalah pasangan dari OPSEC untuk developer: yang satu menutup kebocoran, yang ini membaca apa yang sudah bocor.
Pasif dan aktif
Recon dibagi dua:
| Jenis | Contoh | Menyentuh server target? |
|---|---|---|
| Pasif | log CT, DNS publik, arsip, search engine, data mesin pencari perangkat | tidak |
| Aktif | port scan, brute force direktori, fuzzing | ya |
Recon aktif, seperti port scan dengan Nmap (dibahas di proyek Auto Nmap Scanner), mengirim lalu lintas langsung ke target. Tulisan ini hanya membahas recon pasif. Semua contoh di bawah memakai domain-anda.com: latih teknik ini pada domain sendiri.
Subdomain dari log Certificate Transparency
Setiap sertifikat TLS dari CA publik tercatat di log Certificate Transparency. crt.sh menyediakan hasilnya dalam JSON, sehingga daftar subdomain bisa diambil dengan satu perintah:
curl -s 'https://crt.sh/?q=%25.domain-anda.com&output=json' \
| jq -r '.[].name_value' | tr 'A-Z' 'a-z' | sort -uHasilnya sering memunculkan nama yang tidak pernah ditautkan dari mana pun: staging., vpn., jira., atau nama proyek internal. Satu catatan: sertifikat tetap ada di log walaupun subdomainnya sudah lama mati, jadi daftar ini adalah kandidat, bukan daftar host yang hidup.
DNS dan data pendaftaran domain
Catatan DNS publik menceritakan banyak hal tentang infrastruktur:
dig +short NS domain-anda.com # penyedia DNS
dig +short MX domain-anda.com # penyedia email
dig +short TXT domain-anda.com # SPF, verifikasi layanan
dig +short TXT _dmarc.domain-anda.comCatatan TXT paling menarik. SPF (v=spf1 include:…) menyebutkan layanan yang boleh mengirim email atas nama domain, misalnya penyedia email, CRM, atau layanan newsletter. Token verifikasi seperti google-site-verification= atau MS= menandakan layanan yang dipakai organisasi itu.
Data pendaftaran domain kini diambil lewat RDAP, pengganti WHOIS yang mengembalikan JSON. rdap.org meneruskan permintaan ke registry yang tepat:
curl -sL https://rdap.org/domain/domain-anda.com \
| jq '{events: [.events[] | {(.eventAction): .eventDate}],
registrar: [.entities[] | select(.roles | index("registrar")) | .vcardArray[1][] | select(.[0] == "fn") | .[3]]}'Banyak data pemilik kini disamarkan demi privasi, tetapi tanggal pendaftaran, tanggal kedaluwarsa, dan registrar tetap terlihat. Struktur JSON RDAP bisa sedikit berbeda antar registry, jadi bila filter jq di atas gagal, lihat dulu keluaran mentahnya.
Arsip: halaman yang sudah dihapus
Wayback Machine menyimpan salinan halaman dari waktu ke waktu, dan CDX API-nya mendaftar semua URL yang pernah diarsipkan:
curl -s 'https://web.archive.org/cdx/search/cdx?url=domain-anda.com/*&fl=original&collapse=urlkey' \
| sort -u | head -50Daftar ini sering memuat endpoint API lama, file konfigurasi, dokumen PDF, atau panel admin yang sudah tidak ditautkan tetapi mungkin masih bisa diakses. Bagi pemilik situs, ini pengingat bahwa menghapus halaman tidak menghapus arsipnya.
Search engine dan pencari perangkat
Operator pencarian mempersempit hasil ke hal yang relevan:
site:domain-anda.com -www halaman di subdomain selain www
site:domain-anda.com filetype:pdf dokumen yang terindeks
site:domain-anda.com inurl:admin URL yang mengandung "admin"
"domain-anda.com" site:github.com kode publik yang menyebut domainPencarian di GitHub patut mendapat perhatian khusus: file konfigurasi, contoh kode, atau log yang menyebut domain sebuah organisasi kadang ikut membawa endpoint internal, bahkan kredensial.
Mesin pencari perangkat seperti Shodan memindai internet secara berkala dan menyimpan banner layanan yang ditemukannya. Mencari di indeksnya tidak mengirim apa pun ke target:
hostname:domain-anda.com
ssl.cert.subject.cn:domain-anda.comHasilnya memperlihatkan port terbuka, versi perangkat lunak, dan sertifikat yang dilihat Shodan saat terakhir memindai. Data itu bisa sudah usang, jadi perlakukan sebagai petunjuk, bukan fakta terkini.
Verifikasi: inti dari OSINT
Mengumpulkan data itu mudah; bagian sulitnya adalah memastikan data itu benar. Kelompok investigasi Bellingcat, misalnya, menelusuri peluncur rudal Buk yang terkait jatuhnya pesawat MH17 pada 2014 dengan mencocokkan foto dan video media sosial dengan citra satelit dan bangunan di lokasi, satu per satu. Prinsip yang sama berlaku untuk recon teknis:
- Silangkan sumber. Subdomain dari crt.sh baru bermakna bila juga punya catatan DNS yang aktif.
- Perhatikan waktu. Arsip, data Shodan, dan log sertifikat semuanya potret masa lalu.
- Catat semuanya. Simpan sumber, waktu pengambilan, dan perintah yang dipakai, sehingga temuan bisa diulang dan diverifikasi orang lain.
[2026-10-29 14:05 WIB] crt.sh: staging.domain-anda.com (sertifikat 2024-03)
dig A staging.domain-anda.com -> tidak ada jawaban (subdomain tidak aktif)Dari sisi pemilik
Jalankan semua langkah di atas pada domain sendiri, lalu tanyakan untuk setiap temuan: perlukah ini publik? Subdomain staging bisa dilindungi autentikasi, token verifikasi lama di DNS bisa dihapus, dan dokumen yang tidak perlu terindeks bisa diturunkan. Cara menutup kebocoran semacam ini dibahas lebih lengkap di OPSEC untuk developer.
Kalau Anda menemukan sesuatu yang sensitif tentang situs ini lewat cara-cara di atas, laporkan lewat security.txt.