Pourquoi le nom de domaine enregistré «localtest.me» se résout-il en 127.0.0.1?

30

Je lisais un article sur la contrefaçon de demande côté serveur . Dans cet article, l'attaquant a découvert qu'il 127.0.0.1était ouvert à Internet. La victime a ensuite bloqué 127.0.0.1, mais parce que de nombreuses autres adresses IP et apparemment aussi certains domaines sont également résolus à cela, y compris le mystérieux localtest.me, il a pu contourner un filtre textuel faible.

  1. Qu'est-ce qui est si spécial localtest.me?

  2. Y en a-t-il d'autres? (Et comment les trouver?)


MISE À JOUR

J'ai trouvé: http://readme.localtest.me/

Apparemment, quelqu'un a décidé d'enregistrer ce domaine de manière amusante, à des fins de test:

Voici comment cela fonctionne. Le nom de domaine entier localtest.me et toutes les entrées génériques pointent vers 127.0.0.1. Ainsi, sans aucune modification de votre fichier hôte, vous pouvez immédiatement commencer à tester avec une URL locale.

Cependant, je ne sais toujours pas comment enregistrer un domaine externe sur un domaine local. C'est déroutant car tracert localtest.mejamais même ne quitte la machine. Comment est-ce géré à bas niveau?

J'en ai ensuite trouvé plusieurs autres dans ces commentaires et ailleurs:

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

Et dans des questions similaires sur Stack Overflow.

not2qubit
la source
22
C'est très simple: enregistrer un nom de domaine et attribuer une adresse IP sont deux choses différentes. N'importe qui peut enregistrer n'importe quel nom de domaine pour n'importe quelle raison. Il faut simplement payer le registraire de domaine, en passant par la «paperasse» virtuelle, puis, comme par magie, vous avez un nom de domaine. Mais attribuer une adresse IP à ce domaine est une toute autre bête. N'importe qui peut attribuer n'importe quelle adresse IP à un nom de domaine. Un nom de domaine est simplement un pointeur qui facilite la vie.
JakeGould
Un de ces noms de domaine qui est récemment lié à une certaine perturbation de la force estbealocalhost.de
Hagen von Eitzen

Réponses:

69

Cependant, je ne sais toujours pas comment enregistrer un domaine externe sur un domaine local. C'est déroutant car un localtest.me de tracert ne quitte même jamais la machine. Comment est-ce géré à bas niveau?

Il n'y a rien qui "lie" le domaine à son adresse de la manière que vous imaginez. Tout comme un annuaire téléphonique, DNS vous indique simplement quelle est l'adresse - mais c'est là que son implication se termine. (Vous ne composez pas "Pizza Hut" sur le téléphone; vous recherchez leur numéro de téléphone et composez le numéro.)

Ainsi, lorsque quelqu'un enregistre un nom de domaine, il a juste la possibilité de modifier ces enregistrements de répertoire. Mais pour "pointer" un nom de domaine quelque part - disons 127.0.0.1- ils ajoutent cette ligne à sa base de données:

localtest.me.   A   127.0.0.1

C'est ça. Celui qui pose des questions localtest.meobtient maintenant la réponse "Oh, c'est à 127.0.0.1."

Ainsi, lorsque vous tapez tracert localtest.me., il demande d'abord à DNS l'adresse associée; obtient la réponse 127.0.0.1; puis se comporte exactement comme si vous aviez couru à la tracert 127.0.0.1place. Pas de magie du tout.

Y en a-t-il d'autres? (Et comment les trouver?)

À ce stade, il doit être clair que tout propriétaire de domaine peut le faire sans aucun effort, il existe donc toujours une probabilité que d'autres domaines de ce type existent à un moment donné. Étant donné que les données DNS sont réparties sur de nombreux systèmes (parfois même générées dynamiquement), vous ne pouvez vraiment pas toutes les trouver, ou même vous attendre à ce que vos résultats restent précis après quelques secondes.

Mais pour des raisons de sécurité, vous n'avez pas besoin de les trouver tous. Certains résolveurs DNS ont déjà en fait une sorte de filtrage pour ces entrées (appelé «protection de reliure DNS»), et ils ne recherchent pas de questions spécifiques - ils ne regardent que la réponse . La fonction de protection bloque simplement les réponses qui pointent vers n'importe quelle adresse locale.

Cependant, avant de demander, cela ne peut pas être interdit à l'échelle mondiale - le fait de pointer des noms de domaine vers des adresses privées est toujours une utilisation parfaitement légitime du DNS et est utilisé dans la pratique dans de nombreux réseaux.

grawity
la source
4
Merci les gars d'avoir clarifié. C'était certainement une découverte intéressante, car je ne savais pas que l'on pouvait également enregistrer des blocs IP réservés .
not2qubit
11
Oui. Il n'appartient pas au DNS d'appliquer la manière dont les adresses peuvent être utilisées.
grawity
2
@ not2qubit «… je ne savais pas que l'on pouvait également enregistrer des blocs IP réservés.» Vous mélangez les termes. Vous devez enregistrer un nom de domaine auprès d'un registraire; c'est un processus contrôlé. Vous attribuez une adresse IP à un nom de domaine; c'est un processus non contrôlé. N'importe quelle pile de numéros peut être attribuée à n'importe quel nom de domaine enregistré tant que vous contrôlez le nom de domaine.
JakeGould
"Vous ne composez pas" Pizza Hut "au téléphone; vous recherchez leur numéro de téléphone et composez le numéro." Belle analogie!
Joshua Pinter
1
Certes, qui ne durera probablement pas longtemps, avec Siri / Alexa / Google qui vous commande une pizza à la place ...
grawity
16

Il existe d'autres réponses qui entrent dans les détails, mais le cœur de cette question est vraiment simple à répondre:

"Cependant, je ne sais toujours pas comment enregistrer un domaine externe sur un domaine local."

L'enregistrement d'un nom de domaine et l'attribution d'une adresse IP sont deux choses complètement différentes et indépendantes.

N'importe qui peut enregistrer n'importe quel nom de domaine pour n'importe quelle raison; vous pouvez même enregistrer un nom de domaine sans avoir d'adresse IP de destination en place. Il faut simplement payer le registraire de domaine, en passant par la «paperasse» virtuelle, puis, comme par magie, vous avez un nom de domaine. Tout ce que vous payez lorsque vous enregistrez un nom de domaine est le nom de domaine lui-même ainsi que la possibilité (voir ci-dessous) d'attribuer une adresse IP à un nom de domaine.

Mais ensuite, attribuer une adresse IP à ce nom de domaine est un tout autre processus. N'importe qui peut attribuer n'importe quelle adresse IP à un nom de domaine s'il contrôle ce nom de domaine. Le registraire de nom de domaine n'a aucun souci ou préoccupation concernant la pile d'adresses brutes que vous attribuez à un nom de domaine.

Tout un nom de domaine est simplement un pointeur qui facilite la vie. Considérez-le comme un alias pour que les gens n'aient pas à mémoriser des piles de chiffres (IPv4) ou des chiffres et des lettres (IPv6).

C'est ça!

Mais ce qui s'est passé - comme l'explique la page que vous avez visitée - n'était pas un «hack» de chaque système dans l'adresse locale «127.0.0.1» du monde, mais plutôt une faille sur ce système spécifique lui-même.

Mais pour clarifier davantage cela - et cela m'a aussi fait trébucher comme vous l'avez dit - lorsque vous dites:

Je lisais un article sur la contrefaçon de demande côté serveur . Dans cet article, l'attaquant a découvert que 127.0.0.1 était ouvert à Internet.

J'ai également lu cet article , et voici ce qui s'est passé: quelqu'un utilisait un outil en ligne qui vous permettait de pointer cet outil vers n'importe quelle adresse IP / nom d'hôte. Quand ils ont pointé cet outil, 127.0.0.1ce n'était pas que l'adresse IP 127.0.0.1était exposée à Internet. Au contraire, l'outil lui-même avait une faille qui permettait à quiconque de sonder le serveur interne sur lequel l'outil s'exécutait en utilisant 127.0.0.1. Et puisque cet outil était explicitement un outil de piratage qui a été utilisé pour détecter les ports ouverts et autres, en utilisant 127.0.0.1cette application spécifique, il a pu sonder son propre réseau local et, clé ici, transmettre ces informations à quelqu'un qui accède à l'outil via un simple navigateur Web .

Le risque présenté n'était pas que tout le monde 127.0.0.1soit exposé à Internet, mais plutôt qu'un codage bâclé sur un seul outil sur un seul site permettait que cela se produise.

JakeGould
la source
8

Quelle est la particularité de localtest.me ?

Il pointe vers 127.0.0.1 (localhost). Cette adresse est toujours réservée à l'ordinateur local.

Y en a-t-il d'autres? (Et comment les trouver?)

Oui. Google et Super User sont vos amis (comme vous l'avez découvert).

Je ne sais toujours pas comment enregistrer un domaine externe sur un [IP] local. C'est déroutant car tracert localtest.mejamais même ne quitte la machine. Comment est-ce géré à bas niveau?

Vous manquez la demande DNS initiale (externe) . tracertaffiche le chemin emprunté par un paquet, mais avant qu'un paquet ne puisse aller n'importe où, l'ordinateur doit connaître l'adresse IP à laquelle l'envoyer. Avec des mises en garde, si vous n'avez jamais visité locatest.me auparavant, une demande DNS est faite aux résolveurs externes pour découvrir qu'il correspond à 127.0.0.1. Les données renvoyées sont ensuite utilisées localement (par exemple pour tracertou afficher du contenu Web). Et rappelez-vous que DNS peut mapper n'importe quel nom d'hôte à n'importe quelle IP - il ne "sait" pas si une IP est locale ou non.

Anaksunaman
la source