Konteks Etis & Legal
Google Dorks memanfaatkan mesin pencari Google untuk menemukan informasi yang terindeks secara publik. Tidak ada eksploitasi, tidak ada bypass otentikasi, tidak ada akses ilegal. Namun, informasi yang ditemukan bisa sangat sensitif (dokumen internal, kredensial, database backup). Menggunakan informasi itu untuk mengakses sistem tanpa izin adalah ilegal. Pembahasan ini sepenuhnya defensif: agar defender tahu apa yang bisa dilihat penyerang dan bagaimana menutup celah.
𧬠Apa Itu Google Dorks?
Google Dorks (atau βGoogle Hackingβ) adalah penggunaan operator pencarian lanjutan Google untuk menemukan informasi yang tidak dimaksudkan untuk publik, tetapi secara tidak sengaja terindeks oleh crawler Google. Ini adalah teknik OSINT paling sederhana namun paling mematikan: tanpa mengirim satu byte pun ke server target, penyerang dapat menemukan halaman login, file konfigurasi, backup database, kamera pengawas, dokumen rahasia pemerintah, dan banyak lagi.
Inti dari Google Dorks adalah search operators β kata kunci sintaks yang mempersempit pencarian ke parameter spesifik:
site:β membatasi pencarian ke domain tertentu.filetype:β mencari jenis file tertentu (pdf, xls, sql, bak, log, env).intitle:β mencari kata dalam tag<title>halaman.inurl:β mencari string di dalam URL.intext:β mencari string di dalam body halaman.cache:β melihat versi tersimpan Google dari suatu halaman.link:β (deprecated) mencari halaman yang menautkan ke URL tertentu.related:β mencari situs yang mirip.before:/after:β filter tanggal...β range numerik (misal:site:target.com port: 1..65535).
Operator-operator ini bisa dikombinasikan untuk membuat query yang sangat presisi dan kuat.
π Operator Esensial & Kombinasinya
1. site: β Membidik Satu Domain atau TLD
Membatasi pencarian ke domain atau top-level domain tertentu.
site:target.comβ semua halaman dari target.com yang diindeks Google.site:go.idβ seluruh situs pemerintah Indonesia.site:milβ situs militer AS.site:ac.idβ universitas di Indonesia.
2. filetype: β Mencari File yang Tidak Seharusnya Publik
Membatasi hasil ke tipe file tertentu. Google mendukung puluhan ekstensi: pdf, doc, xls, ppt, sql, bak, log, txt, env, cfg, conf, ini, dbf, mdb, rar, zip, tar, tgz, php, asp, aspx, jsp, json, xml, rss, wsdl, wadl.
filetype:sqlβ file dump database SQL.filetype:bakβ file backup.filetype:envβ file environment variables (sering mengandung API keys, database passwords).filetype:logβ file log aplikasi.filetype:pemataufiletype:keyβ kunci privat SSL.filetype:pdf intext:"classified"β dokumen rahasia.
3. intitle: / allintitle: β Judul Halaman yang Memberi Petunjuk
Mencari teks di dalam <title> HTML.
intitle:"Index of"β listing direktori Apache/Nginx.intitle:"phpMyAdmin"β panel admin database.intitle:"Dashboard [Jenkins]"β Jenkins CI/CD.intitle:"Webcam"β antarmuka webcam.intitle:"login"β halaman login apa pun.
4. inurl: / allinurl: β String di URL
Mencari kata atau pola di URL. Sangat berguna untuk menemukan panel admin, file konfigurasi, atau endpoint API.
inurl:adminβ halaman dengan βadminβ di URL.inurl:loginβ halaman login.inurl:phpmyadminβ instalasi phpMyAdmin.inurl:wp-contentβ direktori upload WordPress.inurl:api/v1β endpoint API.inurl:backupβ direktori atau file backup.
5. intext: β Pencarian di Body Halaman
Mencari teks di dalam konten halaman.
intext:"password" filetype:txtβ file teks yang berisi kata βpasswordβ.intext:"SELECT * FROM" filetype:phpβ kode PHP dengan query SQL.intext:"API_KEY"β halaman yang secara tidak sengaja menampilkan API key.
6. Operator Logika & Wildcard
OR(atau|) β Gabungan alternatif:site:target.com (filetype:pdf OR filetype:docx)-(minus) β Mengecualikan kata:site:target.com -filetype:html*β Wildcard:site:target.com inurl:"*backup*"(mencari backup, backups, backup-old, dll.)..β Range numerik:site:target.com inurl:"id=1..1000"" "β Kutip untuk frasa persis:"Index of /backup"
β οΈ Dorks Paling Mematikan: Kategorisasi & Contoh Nyata
Kategori A: File Konfigurasi & Kredensial
| Query | Tujuan |
|---|---|
intitle:"Index of" ".env" | File environment Laravel/Symfony yang mengandung DB password, APP_KEY, API secret. |
filetype:sql "password" | Dump database dengan hash atau plaintext password. |
filetype:pem intext:"BEGIN RSA PRIVATE KEY" | Kunci privat SSL. |
intitle:"index of" "config.php" | File konfigurasi PHP dengan kredensial database. |
inurl:/.git/config | File konfigurasi Git repositori, mungkin mengandung remote origin dengan token. |
filetype:tfstate | Terraform state file, sering berisi AWS keys, IP internal, arsitektur cloud. |
filetype:yml intext:"password" | File YAML dengan password (Ansible playbook, docker-compose). |
filetype:json intext:"private_key" | JSON yang memuat private key. |
Kategori B: Panel Administrasi & Layanan Terbuka
| Query | Tujuan |
|---|---|
intitle:"phpMyAdmin" intext:"Welcome to phpMyAdmin" | Instalasi phpMyAdmin tanpa proteksi. |
intitle:"Dashboard [Jenkins]" | Jenkins CI/CD tanpa otentikasi. |
intitle:"Grafana" | Dashboard monitoring Grafana publik. |
intitle:"Kibana" | Instalasi Kibana elastis. |
inurl:admin intitle:login | Halaman login panel admin. |
intitle:"Apache Tomcat" | Apache Tomcat console. |
intitle:"Internet Information Services" | IIS server default page. |
intitle:"MongoDB Express" | Mongo Express panel. |
intitle:"RabbitMQ" | RabbitMQ management interface. |
Kategori C: Informasi Pribadi & Data Breach
| Query | Tujuan |
|---|---|
filetype:xls intext:"email" intext:"password" | Spreadsheet Excel berisi daftar email dan password. |
filetype:csv "credit card" | Data kartu kredit dalam CSV. |
intitle:"index of" "passport" | Scan paspor yang tersimpan di direktori publik. |
filetype:pdf "social security number" | Dokumen PDF dengan nomor SSN (AS). |
site:pastebin.com intext:"@target.com" "password" | Kredensial target yang bocor di Pastebin. |
Kategori D: Informasi Infrastruktur & Jaringan Internal
| Query | Tujuan |
|---|---|
site:target.com intitle:"networking" "IP address" | Diagram jaringan internal. |
intitle:"index of" "network" | Listing direktori yang berisi peta jaringan. |
filetype:vsd intext:"firewall" | Diagram Visio infrastruktur. |
filetype:pdf "internal use only" | Dokumen yang ditandai internal. |
inurl:server-status | Halaman status Apache, mengungkapkan request URL, IP klien, dan path internal. |
intitle:"index of" "ssh" | Kunci SSH yang terpapar. |
Kategori E: Perangkat IoT & Kamera Publik
| Query | Tujuan |
|---|---|
intitle:"Live View" intitle:"Webcam" | Webcam publik. |
intitle:"Network Camera" | Kamera jaringan. |
inurl:view.shtml | Kamera IP. |
intitle:"WebcamXP" | WebcamXP software. |
intitle:"scada" | Perangkat SCADA (industri). |
intitle:"BACnet" | Perangkat BACnet (building automation). |
inurl:"/cgi-bin/webproc" | Router/modern interface. |
π¬ Teknik Lanjutan: Menggabungkan Dorks untuk Presisi
Query Bertingkat
Daripada satu dork besar, kombinasikan secara presisi:
site:target.com (filetype:bak OR filetype:old OR filetype:backup) intext:"<?php"Mencari file backup PHP yang mengandung kode sumber.
site:target.com inurl:backup filetype:sqlMencari file backup database di domain target.
site:target.com intitle:"index of" "parent directory" "wp-config"Mencari direktori terbuka yang mengandung file konfigurasi WordPress.
Wildcard & Ranges untuk Fuzzing
site:target.com inurl:"page=*"Mencari parameter page yang mungkin rentan terhadap LFI/RFI.
site:target.com inurl:"id=1..999"Enumerasi ID numerik pada parameter URL.
Google Dorks untuk Bug Bounty & Red Team
- Subdomain Enumeration:
site:*.target.com -wwwβ menemukan subdomain selain www. - File Upload Discovery:
site:target.com inurl:uploadβ menemukan endpoint upload file. - Backend Technology:
site:target.com inurl:jspatauinurl:aspatauinurl:phpβ mengidentifikasi teknologi backend. - Error Messages:
site:target.com intext:"SQL syntax"β SQL errors yang bocor struktur database. - Debug Mode:
site:target.com intext:"Debug mode"β aplikasi dalam mode debug.
π‘οΈ Countermeasures: Mengurangi Eksposur di Google
1. Robots.txt β Bukan Solusi Utama
File robots.txt meminta crawler untuk tidak mengindeks direktori tertentu. Namun, Google Dorks seringkali justru menargetkan file yang ada di Disallow karena penyerang bisa menggunakan inurl: untuk melihat URL yang diblokir. Contoh:
User-agent: *
Disallow: /admin/
Disallow: /backup/
Penyerang akan mencari site:target.com inurl:/admin/ untuk melihat apakah direktori ini memiliki file index. Robots.txt tidak mencegah pengindeksan sepenuhnya jika ada link eksternal menuju direktori tersebut.
2. Meta Tag noindex
Lebih kuat dari robots.txt. Tambahkan di <head>:
<meta name="robots" content="noindex, nofollow" />Ini mencegah Google mengindeks halaman meskipun ada tautan dari luar. Namun, harus dikonfigurasi per halaman.
3. .htaccess / Nginx Authentication
Proteksi direktori sensitif dengan password (HTTP Basic Auth) sehingga Google tidak bisa mengaksesnya (kode status 401/403). Cek header response: jika server mengembalikan 403, Google tidak akan mengindeks.
4. Google Search Console β Remove URL
Jika data sensitif sudah terlanjur terindeks:
- Hapus file dari server.
- Kembalikan status 404 atau 410.
- Gunakan Google Search Console > Removals > Temporary Removals untuk menghapus URL dari indeks dengan cepat.
- Untuk penghapusan permanen, pastikan server mengembalikan 404/410 dan halaman tidak lagi di-link.
5. Data Leak Monitoring (Self-Dorking)
Lakukan pencarian dork terhadap domain Anda sendiri secara berkala:
site:domainanda.com filetype:sql
site:domainanda.com filetype:env
site:domainanda.com intitle:"index of"
site:domainanda.com inurl:backup
Ini adalah bagian dari External Attack Surface Management (EASM). Jika menemukan data sensitif, segera hapus dan de-indeks.
6. Harden Konfigurasi Server
- Matikan directory listing (Options -Indexes di Apache,
autoindex offdi Nginx). - Jangan biarkan file backup dengan ekstensi
.bak,.old,.backupdi direktori publik. - Jangan commit file
.envatauconfig.phpke repositori publik. - Gunakan
.gitignoreyang tepat, dan jika perlu, blokir akses ke/.git/via server config. - Matikan server-status atau batasi akses ke IP internal.
7. Audit Sertifikat SSL
Google mengindeks isi sertifikat SSL melalui Certificate Transparency. Jangan cantumkan hostname internal di SAN sertifikat publik. Gunakan wildcard atau internal CA.
βοΈ Dual-Use Spectrum
DEFENSE ββββββββββββββββββββββββββββββββββββββββββΊ OFFENSE
Self-Dorking Bug Bounty Data Thief
β β β
Memeriksa eksposur Menemukan endpoint Mencari file .sql
aset sendiri rentan di program bocor untuk dijual
β bug bounty β
β β βΌ
βΌ βΌ Identity Thief
Security audit Red team: Mencari spreadsheet
eksternal tanpa menemukan email:password untuk
biaya sepeser pun dokumen internal credential stuffing
Google Dorks adalah OSINT murni: tidak ilegal, tidak invasive, tidak meninggalkan jejak di server target (semua query ke Google, bukan ke target). Namun, hasilnya bisa digunakan untuk serangan yang sangat merusak.
π Koneksi dalam Vault
- shodan β Shodan mencari perangkat; Google Dorks mencari file dan direktori. Keduanya saling melengkapi: Shodan menemukan IP yang terbuka, Google Dorks menemukan apa yang ada di balik IP tersebut.
- maltego β Maltego dapat menggunakan Google Dorks sebagai bagian dari transform untuk menemukan dokumen terkait domain atau email.
- metasploit β Google Dorks dapat menemukan aplikasi rentan (misal:
inurl:/struts/untuk Apache Struts), yang kemudian dieksploitasi dengan Metasploit. - bloodhound β Tidak langsung, tetapi informasi dari dorks (dokumen internal, nama karyawan) bisa digunakan untuk social engineering dan mendapatkan akses awal ke AD.
- burp-suite β Setelah menemukan aplikasi web dengan Google Dorks, Burp Suite digunakan untuk mengaudit dan mengeksploitasi lebih dalam.
- pegasus β Operator Pegasus bisa menggunakan dorks untuk menemukan nomor telepon atau email target.
π Referensi
- Long, J. (2004). Google Hacking for Penetration Testers. Syngress.
- GHDB (Google Hacking Database) oleh Exploit-DB: https://www.exploit-db.com/google-hacking-database
- Google Search Central Documentation: https://developers.google.com/search/docs
- OWASP: Testing for Information Leakage (WSTG-INFO-04)
- MITRE ATT&CK: T1593 (Search Open Websites/Domains), T1591 (Gather Victim Org Information)
Google Dorks Deep Dive | Advanced Search Operators for Exposed Data | Passive Reconnaissance OSINT