Subdomain Takeover via AWS Elastic Beanstalk
Subdomain takeover adalah salah satu celah keamanan yang sering dianggap sepele namun memiliki dampak yang sangat besar. Artikel ini membahas kasus nyata subdomain takeover via AWS Elastic Beanstalk, mulai dari konsep dasar, cara eksploitasi, hingga langkah pencegahan dan deteksinya.
Apa Itu Subdomain Takeover?
Subdomain takeover (atau domain takeover / domain hijacking) adalah celah keamanan yang terjadi ketika sebuah domain atau subdomain memiliki DNS record yang masih aktif, namun layanan pihak ketiga yang ditunjuk oleh record tersebut sudah tidak aktif atau sudah dihapus.
Kondisi ini sering disebut dangling DNS atau dangling CNAME, yaitu record DNS yang “menggantung” karena mengarah ke resource yang sudah tidak terdaftar pada penyedia layanan.
Karena resource-nya kosong, siapa pun bisa mendaftarkan ulang resource tersebut dengan nama yang sama dan secara otomatis sistem akan mengambil alih domain/subdomain yang semula milik korban.
Mengapa AWS Elastic Beanstalk Rentan?
AWS Elastic Beanstalk memberikan endpoint URL dengan format:
<nama-environment>.<region>.elasticbeanstalk.com
Ketika sebuah organisasi membuat environment Elastic Beanstalk dan mengarahkan subdomain mereka ke URL tersebut melalui CNAME record, lalu suatu saat environment tersebut dihapus, maka:
- CNAME record di DNS masih mengarah ke
*.elasticbeanstalk.com - Environment Elastic Beanstalk dengan nama tersebut sudah tidak ada
- Siapa pun bisa membuat environment baru dengan nama yang sama dan mengambil alih subdomain tersebut
Studi Kasus: Subdomain Takeover pada Domain .co.id
Berikut adalah kasus nyata subdomain takeover yang ditemukan pada sebuah domain bertld .co.id.
Langkah 1 - Identifikasi CNAME Record
Pertama, lakukan pengecekan dan verifikasi DNS record pada subdomain target. Dalam kasus ini ditemukan CNAME record yang masih mengarah ke endpoint Elastic Beanstalk.
Kita mengecek domain tersebut dengan dig ke record CNAME target.
Langkah 2 - Verifikasi A Record dari CNAME
Selanjutnya, verifikasi bahwa A record yang dihasilkan dari CNAME tersebut mengarah ke IP AWS. Dengan ini mengonfirmasi bahwa subdomain menggunakan Elastic Beanstalk sebagai backend-nya.
Serta jangan lupa lihat CNAME yang didaftarkan menggunakan nama environment apa, dalam case ini terdaftar sebagai web-env-real.
Langkah 3 - Klaim Environment Elastic Beanstalk
Dengan informasi CNAME tersebut, buat environment Elastic Beanstalk baru di AWS dengan nama yang sama dengan value CNAME record yang ditemukan. Setelah environment aktif, subdomain korban otomatis mengarah ke environment milik kita.
Langkah 4 - Subdomain Berhasil Diambil Alih
Subdomain target kini sepenuhnya dapat diakses melalui environment Elastic Beanstalk yang baru dibuat, takeover berhasil.
Pada temuan ini tidak terdapat bounty dari pemilik domain karena layanan pada subdomain tersebut sudah dipindahkan ke domain baru. Meski demikian, celah ini tetap valid secara teknis dan berbahaya jika ditemukan oleh pihak yang tidak bertanggung jawab.
Dampak Subdomain Takeover
Subdomain takeover bukan sekadar “mengakses halaman kosong”. Dampaknya bisa sangat serius:
Penyebaran Phishing
Penyerang bisa membuat halaman login palsu yang identik dengan tampilan asli. Karena domain yang digunakan adalah domain resmi milik korban, pengguna akan sangat mudah terkecoh dan mengisi kredensial mereka.
Penyebaran Malware
Dengan mengendalikan subdomain resmi, penyerang bisa menyebarkan malware melalui halaman yang tampak sah seperti menggunakan teknik seperti drive-by download, dropper, atau ClickFix.
Manipulasi Redirect
Jika masih banyak backlink atau internal link yang mengarah ke subdomain tersebut, penyerang bisa memanfaatkannya untuk mengarahkan ulang pengguna ke halaman berbahaya atau konten yang tidak diinginkan.
Kerusakan Reputasi
Subdomain yang sudah diambil alih bisa digunakan untuk aktivitas ilegal atas nama perusahaan atau individu yang memiliki domain tersebut sehingga merusak kepercayaan pengguna dan reputasi brand secara signifikan.
Cookie Hijacking
Jika aplikasi utama menggunakan cookie dengan scope domain=.namadomain.com, penyerang yang mengendalikan subdomain bisa membaca cookie tersebut dan melakukan session hijacking.
Baca juga: DNS Security, Maybe?
Cara Deteksi: Apakah Domain Saya Rentan?
Menggunakan Tool Otomatis
can-i-take-over-xyz - repositori komunitas yang berisi daftar fingerprint dari berbagai layanan pihak ketiga yang rentan terhadap subdomain takeover, termasuk AWS Elastic Beanstalk, GitHub Pages, Heroku, dan lainnya.
Nuclei - scanner vulnerability yang memiliki template khusus untuk subdomain takeover:
nuclei -l subdomains.txt -t nuclei-templates/http/takeovers/
Subzy - tool khusus subdomain takeover yang mendukung banyak service:
subzy run --targets subdomains.txt
Pengecekan Manual
- Cek ulang semua subdomain yang aktif (bisa menggunakan
subfinder,amass, ataudnsx), lebih baik melihat langsung records DNS yang terdaftar pada DNS Server. - Cek DNS record masing-masing subdomain, perhatikan records CNAME yang mengarah ke layanan eksternal.
- Akses subdomain tersebut, jika muncul halaman error khas seperti “NoSuchBucket”, “There is no app configured”, atau “404 Not Found” dari service pihak ketiga, kemungkinan besar record DNS / subdomain tersebut rentan terhadap serangan ini.
- Cocokkan fingerprint error dengan daftar di can-i-take-over-xyz untuk konfirmasi.
Layanan Pihak Ketiga yang Umum Rentan
| Layanan | Fingerprint Error |
|---|---|
| AWS Elastic Beanstalk | NXDOMAIN atau no server |
| AWS S3 | NoSuchBucket |
| GitHub Pages | There isn't a GitHub Pages site here |
| Heroku | No such app |
| Shopify | Sorry, this shop is currently unavailable |
| Fastly | Fastly error: unknown domain |
Cara Mencegah Subdomain Takeover
1. Audit DNS Record Secara Berkala
Lakukan inventarisasi seluruh DNS record secara rutin. Hapus CNAME record yang mengarah ke layanan eksternal yang sudah tidak digunakan.
2. Hapus Resource Sebelum DNS Record
Selalu hapus DNS record terlebih dahulu sebelum mematikan layanan pihak ketiga yang digunakan. Jangan biarkan CNAME menggantung.
3. Monitoring Asset Domain
Gunakan tools monitoring seperti:
- Cloudflare Radar - monitoring DNS changes
4. Gunakan Wildcard DNS dengan Hati-Hati
Wildcard DNS record (*.domain.com) bisa menyembunyikan subdomain yang tidak termonitor. Audit semua record secara eksplisit.
Kesimpulan
Subdomain takeover adalah celah yang sering ditemukan dalam program bug bounty dan sangat berbahaya jika dieksploitasi oleh pihak yang tidak bertanggung jawab. Dangling CNAME ke layanan seperti AWS Elastic Beanstalk, S3, GitHub Pages, dan Heroku adalah pola yang paling umum ditemukan.
Langkah pencegahan utama:
- Audit seluruh DNS record dan aset domain secara berkala
- Hapus DNS record segera saat layanan pihak ketiga dinonaktifkan
- Monitor subdomain secara aktif menggunakan tool otomatis
- Terapkan proses offboarding yang mencakup pembersihan DNS
Keamanan domain bukan hanya soal memperbarui sertifikat SSL atau memperpanjang masa berlaku domain, tetapi juga memastikan setiap record DNS yang ada benar-benar mengarah ke resource yang masih aktif dan terkontrol.