Subdomain Takeover via AWS Elastic Beanstalk

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:

  1. CNAME record di DNS masih mengarah ke *.elasticbeanstalk.com
  2. Environment Elastic Beanstalk dengan nama tersebut sudah tidak ada
  3. 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.

CNAME Record Check untuk subdomain takeover
CNAME Record Check

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.

A Record Check dari CNAME untuk konfirmasi subdomain takeover
A Record Check from CNAME

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.

Membuat AWS Elastic Beanstalk environment baru untuk subdomain takeover
AWS Change Environment Information

Langkah 4 - Subdomain Berhasil Diambil Alih

Subdomain target kini sepenuhnya dapat diakses melalui environment Elastic Beanstalk yang baru dibuat, takeover berhasil.

Subdomain takeover via AWS Elastic Beanstalk berhasil
Taken Over

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.

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

  1. Cek ulang semua subdomain yang aktif (bisa menggunakan subfinder, amass, atau dnsx), lebih baik melihat langsung records DNS yang terdaftar pada DNS Server.
  2. Cek DNS record masing-masing subdomain, perhatikan records CNAME yang mengarah ke layanan eksternal.
  3. 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.
  4. 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:

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.