Mengenali Kerentanan Subdomain Takeover

Mengenali dan Mengeksploitasi Kerentanan Subdomain Takeover - Kembali lagi saya membahas mengenai kerentanan dalam aplikasi web (web apps). Kali ini kita akan membahas mengenai basic dari subdomain takeover. Subdomain takeover terjadi ketika subdomain (subdomain.example.com) mengarah ke layanan (misalnya halaman GitHub, Heroku, dll.) yang entah sengaja atau tidak dihapus oleh pemiliknya. Namun ia lupa untuk menghapus A Record atau CNAME record di DNS manager.

Apa Itu Subdomain Takeover?

Subdomain takeover adalah kerentanan keamanan yang terjadi ketika seorang penyerang mendapatkan kontrol atas subdomain dari domain target. Biasanya, ini terjadi ketika subdomain memiliki nama kanonik (CNAME) dalam Sistem Nama Domain (DNS), tetapi tidak ada host yang menyediakan konten untuk itu. Hal ini dapat terjadi karena virtual host belum dipublikasikan atau virtual host telah dihapus.

Seorang penyerang dapat mengambil alih subdomain tersebut dengan menyediakan virtual host mereka sendiri dan kemudian meng-hosting konten mereka sendiri untuk itu. Jika seorang penyerang dapat melakukannya, mereka dapat berpotensi membaca cookie yang ditetapkan dari domain utama, melakukan cross-site scripting, atau mengelabui kebijakan keamanan konten, sehingga memungkinkan mereka untuk menangkap informasi yang dilindungi (termasuk login) atau mengirimkan konten berbahaya ke pengguna yang tidak berhati-hati.

Singkatnya, kelalaian dari web admin ini memungkinkan penyerang untuk mengatur halaman pada layanan yang digunakan sebelumnya dan mengarahkan halaman mereka ke subdomain tersebut. Misalnya, jika subdomain.example.com mengarah ke laman GitHub dan pengguna memutuskan untuk menghapus laman GitHub mereka, penyerang sekarang dapat membuat laman GitHub, menambahkan file CNAME berisi subdomain.example.com, dan mengklaim subdomain.example.com. Oke sampai sini paham kan?

Dampak

Tentu ada dampak dari setiap serangan. Menurut HackerOne sendiri severity untuk kerentanan ini antara medium sampai critical



Kita ambil contoh saja eksploitasi subdomain takeover pada layanan Shopify. Misal toko online terkenal yang memiliki jutaan trafik melakukan kesalahan dimana dia lupa menghapus CNAME record dari subdomain test yang sebelumnya ia buat. Anggap saja sebelumnya tim IT dari toko online tersebut mengetes situs online nya di test.tokoonline.com dan setelah dirasa oke dia menghapus domain test.tokoonline.com di akun Shopify dan untuk kemudian menjalankannya di domain utama. 

Selang beberapa waktu, seorang hacker jahat melakukan bruteforce untuk menemukan subdomain dari tokoonline.com dan menemukan subdomain test.tokoonline.com yang mengarah ke Shopify namun belum diklaim. Selainjutnya dia mendaftarkan domain test.tokoonline.com tersebut ke Shopify, melakukan setup untuk membuat toko online palsu (scam). Tentu saja jika sampai itu terjadi yang rugi adalah pemilik toko online yang asli, karena faktanya subdomain tersebut memang berada dibawah domain utama toko yang asli. Sehingga bisa saja pelanggan mengira bahwa pemilik toko online tersebut sengaja melakukan praktek scam.

Untuk takeover domain Shopify sendiri, saya pernah membuat tool scanner. Silahkan cek disini:
  • https://github.com/yuyudhn/ShopifyTakeover

Kira-kira begitulah dampak dari subdomain takeover. Masih banyak lagi sebenarnya. Misal seperti Ak1t4 yang melakukan CSRF ke domain utama setelah melakukan takeover di subdomain.
Referensi:
  • https://medium.com/bugbountywriteup/bypassing-crossdomain-policy-and-hit-hundreds-of-top-alexa-sites-af1944f6bbf5
Untuk tutorial subdomain takeover sendiri beberapa sudah saya tulis di linuxsec. Silahkan baca-baca disini:

Mitigasi

Untuk mencegah subdomain takeover, ada beberapa tindakan yang dapat dilakukan:
  • Periksa catatan DNS secara teratur: Pemilik situs web harus secara teratur memantau catatan DNS mereka untuk mendeteksi catatan DNS yang salah dikonfigurasi atau kedaluwarsa.
  • Periksa subdomain yang tidak digunakan: Pemilik situs web harus memeriksa subdomain yang tidak digunakan dan memastikan bahwa tidak ada subdomain yang dapat diambil alih oleh penyerang.
  • Periksa entri DNS yang tidak valid: Pemilik situs web harus memeriksa entri DNS yang tidak valid dan memperbaikinya untuk mencegah penyerang mengambil alih subdomain.
  • Nonaktifkan subdomain yang tidak digunakan: Subdomain yang tidak digunakan harus dinonaktifkan untuk mencegah penyerang mengambil alih subdomain tersebut.
Oke, mungkin itu saja sharing kali ini, jika ada yang ingin ditanyakan silahkan tinggalkan komentar.

Referensi:
  • https://owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/02-Configuration_and_Deployment_Management_Testing/10-Test_for_Subdomain_Takeover
  • https://github.com/EdOverflow/can-i-take-over-xyz
  • https://developer.mozilla.org/en-US/docs/Web/Security/Subdomain_takeovers

3 komentar untuk "Mengenali Kerentanan Subdomain Takeover"

Comment Author Avatar
Simplenya, pointing domain ke situs tsb perlu ketelitian, jangan bulk subdomain.
Comment Author Avatar
Comment Author Avatar
gak juga. selama cname nya valid bisa ditakeover

Silahkan tinggalkan komentar jika ada masukan, pertanyaan, kritik ataupun dukungan. Namun pastikan untuk berkomentar secara sopan.