Почему зарегистрированное доменное имя «localtest.me» разрешается до 127.0.0.1?

30

Я читал статью о подделке запросов на стороне сервера . В той статье злоумышленник обнаружил, что 127.0.0.1открыт для интернета. Затем жертва заблокировалась 127.0.0.1, но поскольку многие другие IP-адреса и, по-видимому, также некоторые домены также были настроены на это, включая таинственный localtest.me, он смог обойти слабый текстовый фильтр.

  1. Что такого особенного localtest.me?

  2. Есть ли другие? (А как их найти?)


ОБНОВИТЬ

Я нашел: http://readme.localtest.me/

Видимо, кто-то решил забавно зарегистрировать этот домен для тестирования:

Вот как это работает. Полное доменное имя localtest.me и все подстановочные знаки указывают на 127.0.0.1. Таким образом, без каких-либо изменений в вашем хост-файле вы можете немедленно начать тестирование с локальным URL.

Тем не менее, я все еще не уверен, как вы можете зарегистрировать внешний домен на локальный. Это сбивает с толку, так как tracert localtest.meникогда не покидает машину. Как это обрабатывается на низком уровне?

Затем я нашел еще несколько в этих комментариях и в других местах:

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

И в похожих вопросах по переполнению стека.

not2qubit
источник
22
Это действительно просто: регистрация доменного имени и назначение IP-адреса - это две разные вещи. Любой может зарегистрировать любое доменное имя по любой причине. Нужно просто заплатить регистратору домена, пройдя через виртуальную «бумажную работу», и тогда, как по волшебству, у вас есть доменное имя. Но тогда присвоение IP-адреса этому домену - это совсем другой зверь. Любой может назначить любой IP-адрес доменному имени. Доменное имя - это просто указатель, который облегчает жизнь.
JakeGould
Одно из таких доменных имен, которое в последнее время связано с довольно bealocalhost.de
Хаген фон

Ответы:

69

Тем не менее, я все еще не уверен, как вы можете зарегистрировать внешний домен на локальный. Это сбивает с толку, так как tracert localtest.me никогда даже не покидает машину. Как это обрабатывается на низком уровне?

Нет ничего, что «привязывало бы» домен к его адресу так, как вы себе представляете. DNS, как и телефонная книга, просто сообщает вам, что это за адрес, но на этом его участие заканчивается. (Вы не набираете «Pizza Hut» на телефоне; вы ищите их номер и набираете номер.)

Поэтому, когда кто-то регистрирует доменное имя, он просто получает возможность редактировать записи телефонной книги. Но чтобы на самом деле «указать» имя домена где-нибудь - скажем так 127.0.0.1- они добавляют эту строку в его базу данных:

localtest.me.   A   127.0.0.1

Вот и все. Тот, кто спрашивает localtest.meсейчас, получает ответ "О, это в 127.0.0.1".

Поэтому, когда вы печатаете tracert localtest.me., он сначала спрашивает DNS о связанном адресе; получает ответ 127.0.0.1; а затем ведет себя точно так же, как если бы вы бежали tracert 127.0.0.1вместо этого. Никакой магии.

Есть ли другие? (А как их найти?)

На этом этапе должно быть ясно, что любой владелец домена может сделать это вообще без каких-либо усилий, поэтому всегда существует вероятность того, что другие такие домены существуют в любой момент времени. Из-за того, что данные DNS распределяются по многим системам (иногда даже динамически генерируемым), вы действительно не можете найти их все или даже ожидать, что ваши результаты останутся точными через несколько секунд.

Но в целях безопасности вам не нужно искать их все. Некоторые распознаватели DNS на самом деле уже имеют своего рода фильтрацию для таких записей (называемую «защита повторного связывания DNS»), и они не ищут конкретные вопросы - они только смотрят на ответ . Функция защиты просто блокирует ответы, которые указывают на любой локальный адрес.

Однако, прежде чем вы спросите, это нельзя запретить глобально - указание доменных имен на частные адреса все еще является совершенно законным использованием DNS и используется на практике во многих сетях.

grawity
источник
4
Спасибо, ребята, за разъяснения. Это была определенно интересная находка, так как я понятия не имел, что можно также зарегистрировать зарезервированные блоки IP .
not2qubit
11
Да. Задача DNS - не обеспечивать соблюдение порядка использования адресов.
Гравитация
2
@ not2qubit «… я понятия не имел, что можно также зарегистрировать зарезервированные блоки IP». Вы путаете термины. Вам необходимо зарегистрировать доменное имя у регистратора; это контролируемый процесс. Вы назначаете IP-адрес для доменного имени; это неконтролируемый процесс. Любая куча номеров может быть назначена любому зарегистрированному доменному имени, если вы контролируете доменное имя.
JakeGould
«Вы не набираете« Pizza Hut »по телефону; вы ищите их номер и набираете номер». Хорошая аналогия!
Джошуа Пинтер
1
По общему признанию тот, который вероятно не продлится долго, с Siri / Alexa / Google, заказывающим пиццу вместо Вас ...
grawity
16

Есть и другие ответы, которые углубляются в детали, но суть этого вопроса очень проста:

«Однако я все еще не уверен, как вы можете зарегистрировать внешний домен на локальный».

Регистрация доменного имени и назначение IP-адреса - это две совершенно разные и независимые вещи.

Любой может зарегистрировать любое доменное имя по любой причине; Вы даже можете зарегистрировать доменное имя без указания IP-адреса назначения. Нужно просто заплатить регистратору домена, пройдя через виртуальную «бумажную работу», и тогда, как по волшебству, у вас есть доменное имя. Все, за что вы платите при регистрации доменного имени, - это само имя домена, а также возможность - см. Ниже - назначить IP-адрес для имени домена.

Но тогда присвоение IP-адреса этому доменному имени - это совсем другой процесс. Любой может назначить любой IP-адрес доменному имени, если у него есть контроль над этим доменным именем. Регистратор доменных имен не заботится и не заботится о том, какую кучу необработанных адресов вы назначаете доменному имени.

Все доменное имя - это просто указатель, который облегчает жизнь. Думайте об этом как о псевдониме, чтобы людям не приходилось запоминать стопки цифр (IPv4) или цифр и букв (IPv6).

Это оно!

Но то, что произошло - как объясняется на той странице, которую вы посетили, - было не «взломом» каждой системы с локальным адресом «127.0.0.1» в мире, а скорее недостатком этой конкретной системы.

Но для дальнейшего разъяснения этого - и это сбило меня с толку так, как вы это сформулировали, - когда вы заявляете:

Я читал статью о подделке запросов на стороне сервера . В этой статье злоумышленник обнаружил, что 127.0.0.1 был открыт для интернета.

Я также прочитал эту статью , и вот что произошло: кто-то использовал онлайн-инструмент, который позволял вам указывать этот инструмент на любой IP-адрес / имя хоста. Когда они указали на это средство 127.0.0.1, IP-адрес не 127.0.0.1был доступен для Интернета. Скорее, у самого инструмента был недостаток, который позволял кому-либо проверять внутренний сервер, на котором он работал, с помощью 127.0.0.1. И поскольку этот инструмент был явно хакерским инструментом, который использовался для обнаружения открытых портов и т. Д., С помощью 127.0.0.1этого конкретного приложения он смог исследовать свою собственную локальную сеть и - здесь ключ - передать эту информацию кому-то, получающему доступ к инструменту, через веб-браузер. ,

Риск заключался не в том, что каждый 127.0.0.1был подвержен Интернету, а в том, что небрежное кодирование на одном инструменте на одном сайте позволило этому случиться.

JakeGould
источник
8

Что такого особенного в localtest.me ?

Это указывает на 127.0.0.1 (localhost). Этот адрес всегда зарезервирован для локального компьютера.

Есть ли другие? (А как их найти?)

Да. Google и Super User - ваши друзья (как вы узнали).

Я все еще не уверен, как вы можете зарегистрировать внешний домен на локальный [IP]. Это сбивает с толку, так как tracert localtest.meникогда не покидает машину. Как это обрабатывается на низком уровне?

Вы пропускаете начальный (внешний) запрос DNS . tracertотображает путь, по которому проходит пакет, но перед тем, как пакет может отправиться куда-либо, компьютер должен знать IP-адрес для отправки. С предостережениями, если вы никогда не посещали locatest.me прежде, внешний DNS-запрос отправляется запрос на обнаружение, что он соответствует 127.0.0.1. Возвращенные данные затем используются локально (например, для tracertотображения веб-контента). И помните, что DNS может сопоставить любое имя хоста любому IP - он не «знает», является ли IP локальным или нет.

Anaksunaman
источник