osint

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:

JenisContohMenyentuh server target?
Pasiflog CT, DNS publik, arsip, search engine, data mesin pencari perangkattidak
Aktifport scan, brute force direktori, fuzzingya

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:

Subdomain dari crt.sh
curl -s 'https://crt.sh/?q=%25.domain-anda.com&output=json' \
  | jq -r '.[].name_value' | tr 'A-Z' 'a-z' | sort -u

Hasilnya 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:

Catatan DNS yang paling informatif
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.com

Catatan 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:

Tanggal pendaftaran dan registrar lewat RDAP
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:

URL unik yang pernah diarsipkan
curl -s 'https://web.archive.org/cdx/search/cdx?url=domain-anda.com/*&fl=original&collapse=urlkey' \
  | sort -u | head -50

Daftar 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:

Contoh operator pencarian
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 domain

Pencarian 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:

Filter Shodan
hostname:domain-anda.com
ssl.cert.subject.cn:domain-anda.com

Hasilnya 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.
Format catatan temuan
[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.