Mengapa nama domain terdaftar "localtest.me" memutuskan untuk 127.0.0.1?

30

Saya sedang membaca artikel tentang Pemalsuan Permintaan Sisi-Server . Dalam artikel itu penyerang menemukan bahwa 127.0.0.1itu terbuka untuk internet. Korban kemudian diblokir 127.0.0.1, tetapi karena banyak IP lain dan tampaknya juga beberapa domain juga memutuskan untuk itu, termasuk yang misterius localtest.me, ia mampu melewati filter berbasis teks yang lemah.

  1. Apa yang istimewa tentang ini localtest.me?

  2. Apakah ada yang lain? (Dan bagaimana menemukannya?)


MEMPERBARUI

Saya menemukan: http://readme.localtest.me/

Tampaknya seseorang memutuskan untuk mendaftarkan domain itu dengan cara yang lucu, untuk tujuan pengujian:

Begini cara kerjanya. Seluruh nama domain localtest.me — dan semua entri wildcard — arahkan ke 127.0.0.1. Jadi tanpa ada perubahan pada file host Anda, Anda dapat segera mulai menguji dengan URL lokal.

Namun, saya masih tidak yakin bagaimana Anda bisa mendaftarkan domain eksternal ke domain lokal. Ini membingungkan karena tracert localtest.mebahkan tidak pernah meninggalkan mesin. Bagaimana ini ditangani pada level rendah?

Saya kemudian menemukan beberapa lagi di komentar ini dan di tempat lain:

lvh.me 
vcap.me
fuf.me - IPv4 and IPv6
ulh.us
127-0-0-1.org.uk
ratchetlocal.com
smackaho.st
42foo.com
beweb.com
yoogle.com
ortkut.com
feacebook.com

Dan dalam pertanyaan serupa tentang Stack Overflow.

not2qubit
sumber
22
Ini sangat sederhana: Mendaftarkan nama domain dan menetapkan alamat IP adalah dua hal yang berbeda. Siapa pun dapat mendaftarkan nama domain apa pun dengan alasan apa pun. Orang hanya harus membayar pendaftar domain, melalui "dokumen" virtual dan kemudian, seperti sulap, Anda memiliki nama domain. Tapi kemudian menetapkan alamat IP ke domain itu adalah binatang yang sama sekali berbeda. Siapa pun dapat menetapkan alamat IP apa pun ke nama domain. Nama domain hanyalah sebuah penunjuk yang membuat hidup lebih mudah.
JakeGould
Salah satu nama domain yang terhubung ke beberapa gangguan gaya baru-baru ini adalahbealocalhost.de
Hagen von Eitzen

Jawaban:

69

Namun, saya masih tidak yakin bagaimana Anda bisa mendaftarkan domain eksternal ke domain lokal. Ini membingungkan sebagai localtest tracert. Aku bahkan tidak pernah meninggalkan mesin. Bagaimana ini ditangani pada level rendah?

Tidak ada yang "mengikat" domain ke alamatnya seperti yang Anda bayangkan. Sama seperti buku telepon, DNS hanya memberi tahu Anda apa alamatnya - tetapi di situlah keterlibatannya berakhir. (Anda tidak menekan "Pizza Hut" di telepon; Anda mencari nomor telepon mereka, dan memutar nomor itu.)

Jadi, ketika seseorang mendaftarkan nama domain, mereka hanya mendapatkan kemampuan untuk mengedit catatan buku telepon itu. Tetapi untuk benar-benar "menunjuk" nama domain di suatu tempat - katakanlah 127.0.0.1- mereka menambahkan baris ini ke basis datanya:

localtest.me.   A   127.0.0.1

Itu dia. Siapa pun yang bertanyalocaltest.me sekarang mendapat jawaban "Oh, itu di 127.0.0.1."

Jadi saat Anda mengetik tracert localtest.me., pertama-tama ia bertanya kepada DNS tentang alamat yang terkait; mendapat jawaban 127.0.0.1; dan kemudian berperilaku persis seolah-olah Anda tracert 127.0.0.1malah berlari Tidak ada sihir sama sekali.

Apakah ada yang lain? (Dan bagaimana menemukannya?)

Pada titik ini harus jelas bahwa setiap pemilik domain dapat melakukan ini tanpa upaya sama sekali, sehingga selalu ada kemungkinan bahwa domain tersebut ada pada waktu tertentu. Karena data DNS didistribusikan di banyak sistem (kadang-kadang bahkan dihasilkan secara dinamis), Anda benar - benar tidak dapat menemukan semuanya, atau bahkan mengharapkan hasil Anda tetap akurat setelah hanya beberapa detik.

Tetapi untuk tujuan keamanan, Anda tidak perlu menemukan semuanya. Beberapa penyelesai DNS sebenarnya sudah memiliki semacam pemfilteran untuk entri semacam itu (disebut "perlindungan rebinding DNS"), dan mereka tidak mencari pertanyaan spesifik - mereka hanya melihat jawabannya . Fitur perlindungan hanya memblokir jawaban yang mengarah ke alamat lokal mana pun.

Namun, sebelum Anda bertanya, ini tidak dapat dilarang secara global - menunjuk nama domain ke alamat pribadi masih merupakan penggunaan DNS yang sangat sah, dan digunakan dalam praktik di banyak jaringan.

grawity
sumber
4
Terima kasih teman-teman untuk klarifikasi. Ini jelas merupakan penemuan yang menarik, karena saya tidak tahu bahwa orang juga bisa mendaftarkan blok IP yang dipesan .
not2qubit
11
Iya nih. Ini bukan urusan DNS untuk menegakkan bagaimana alamat dapat digunakan.
grawity
2
@ not2qubit "... Saya tidak tahu bahwa orang juga bisa mendaftarkan blok IP yang dipesan." Anda mencampuradukkan istilah. Anda harus mendaftarkan nama domain dengan registrar; itu adalah proses yang terkendali. Anda menetapkan alamat IP ke nama domain; itu adalah proses yang tidak terkontrol. Tumpukan angka apa pun dapat ditetapkan ke nama domain terdaftar apa pun selama Anda mengontrol nama domain.
JakeGould
"Anda tidak memutar" Pizza Hut "di telepon; Anda mencari nomor telepon mereka, dan memutar nomornya." Analogi yang bagus!
Joshua Pinter
1
Harus diakui salah satu yang mungkin tidak akan bertahan lama, dengan Siri / Alexa / Google memesan pizza untuk Anda sebagai gantinya ...
grawity
16

Ada jawaban lain yang masuk ke detail yang lebih dalam, tetapi inti dari pertanyaan ini sangat sederhana untuk dijawab:

"Namun, saya masih tidak yakin bagaimana Anda bisa mendaftarkan domain eksternal ke domain lokal."

Mendaftarkan nama domain dan menetapkan alamat IP adalah dua hal yang sangat berbeda dan independen.

Siapapun dapat mendaftarkan setiap nama domain untuk alasan apapun; Anda bahkan dapat mendaftarkan nama domain tanpa memiliki alamat IP tujuan. Orang hanya harus membayar pendaftar domain, melalui "dokumen" virtual dan kemudian, seperti sulap, Anda memiliki nama domain. Yang Anda bayar ketika mendaftarkan nama domain adalah nama domain itu sendiri serta kemampuan — baca di bawah ini — untuk menetapkan alamat IP ke nama domain.

Tapi kemudian menetapkan alamat IP untuk nama domain itu adalah proses yang berbeda. Siapa pun dapat menetapkan alamat IP apa pun ke nama domain jika mereka memiliki kendali atas nama domain itu. Registrar nama domain tidak peduli atau peduli tentang tumpukan alamat mentah yang Anda tetapkan untuk nama domain.

Semua nama domain hanyalah sebuah pointer yang membuat hidup lebih mudah. Anggap saja sebagai alias sehingga orang tidak perlu mengingat tumpukan angka (IPv4) atau angka dan huruf (IPv6).

Itu dia!

Tetapi apa yang terjadi — sebagaimana dijelaskan oleh halaman yang Anda kunjungi — bukanlah “retas” dari setiap sistem di alamat lokal “127.0.0.1” di dunia, tetapi merupakan cacat pada satu sistem itu sendiri.

Tetapi untuk lebih memperjelas ini — dan ini membuat saya tersandung seperti cara Anda mengucapkannya juga — ketika Anda menyatakan:

Saya sedang membaca artikel tentang Pemalsuan Permintaan Sisi-Server . Dalam artikel itu penyerang menemukan bahwa 127.0.0.1 terbuka untuk internet.

Saya membaca artikel itu juga, dan inilah yang terjadi: Seseorang menggunakan alat online yang memungkinkan Anda mengarahkan alat itu ke alamat IP / nama host apa pun. Ketika mereka menunjuk alat 127.0.0.1itu bukan alamat IP 127.0.0.1yang terekspos ke Internet. Alih-alih, alat itu sendiri memiliki kelemahan yang memungkinkan siapa pun untuk menyelidiki server internal yang menggunakan alat itu 127.0.0.1. Dan karena alat ini secara eksplisit merupakan alat peretasan yang digunakan untuk mendeteksi port terbuka dan semacamnya, dengan menggunakan 127.0.0.1aplikasi spesifik itu dapat menyelidiki sendiri jaringan host lokal itu dan — kunci di sini — menyampaikan informasi itu kepada seseorang yang mengakses alat itu hanya melalui peramban web .

Risiko yang disajikan bukanlah bahwa setiap orang 127.0.0.1terpapar ke Internet, melainkan bahwa pengkodean yang ceroboh pada satu alat di satu situs memungkinkan hal ini terjadi.

JakeGould
sumber
8

Apa yang spesial dari localtest.me ?

Itu menunjuk ke 127.0.0.1 (localhost). Alamat ini selalu dicadangkan untuk komputer lokal.

Apakah ada yang lain? (Dan bagaimana menemukannya?)

Iya nih. Google dan Pengguna Super adalah teman Anda (seperti yang Anda ketahui).

Saya masih tidak yakin bagaimana Anda bisa mendaftarkan domain eksternal ke [IP] lokal. Ini membingungkan karena tracert localtest.mebahkan tidak pernah meninggalkan mesin. Bagaimana ini ditangani pada level rendah?

Anda melewatkan permintaan DNS (eksternal) awal . tracertmenampilkan jalur yang diambil paket tetapi sebelum paket dapat pergi ke mana pun, komputer harus mengetahui IP untuk mengirimnya. Dengan peringatan, jika Anda belum pernah mengunjungi locatest.me sebelumnya, permintaan DNS dibuat untuk resolvers eksternal untuk menemukan bahwa itu memetakan ke 127.0.0.1. Data yang dikembalikan kemudian digunakan secara lokal (misalnya untuk tracertatau menampilkan konten web). Dan ingat bahwa DNS dapat memetakan nama host apa saja ke IP apa pun - itu tidak "tahu" apakah IP lokal atau tidak.

Anaksunaman
sumber