Por que o nome de domínio registrado “localtest.me” é resolvido para 127.0.0.1?

24

Eu estava lendo um artigo sobre Falsificação de Solicitação do Lado do Servidor . Nesse artigo, o invasor descobriu que 127.0.0.1 estava aberto à Internet. A vítima então bloqueou 127.0.0.1 , mas como muitos outros IPs e aparentemente também alguns domínios também foram resolvidos, incluindo o misterioso localtest.me , ele conseguiu ignorar um filtro fraco baseado em texto.

  1. O que há de tão especial sobre localtest.me ?

  2. Existem outros? (e como encontrá-los?)

UPDATE

Eu encontrei: link

Aparentemente, alguém decidiu registrar esse domínio de uma maneira engraçada, para fins de teste:

Here’s how it works. The entire domain name localtest.me—and all wildcard entries—point to 127.0.0.1. So without any changes to your host file you can immediate start testing with a local URL.

No entanto, ainda não sei como você pode registrar um domínio externo em um local. Isso é confuso, pois tracert localtest.me nunca sai da máquina. Como isso é tratado no nível baixo?

Eu, então, encontrei vários outros nesses comentários e em outros lugares:

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

E em semelhante perguntas no Stack Overflow.

    
por not2qubit 29.12.2017 / 03:38

3 respostas

63

However, I'm still not sure how you can register an external domain to a local one. This is confusing as a tracert localtest.me never even leaves the machine. How is this handled on the low level?

Não há nada que "ligue" o domínio ao seu endereço da maneira que você imagina. Assim como uma lista telefônica, o DNS apenas informa a você qual é o endereço - mas é aí que o envolvimento termina. (Você não disca "Pizza Hut" no telefone; você procura o número de telefone deles e disca o número.)

Assim, quando alguém registra um nome de domínio, ele ganha a capacidade para editar os registros da lista telefônica. Mas, para realmente "apontar" um nome de domínio em algum lugar - digamos para 127.0.0.1 - eles adicionam essa linha ao seu banco de dados:

localtest.me.   A   127.0.0.1

É isso. Quem perguntar sobre localtest.me recebe a resposta "Ah, é 127.0.0.1 ".

Portanto, quando você digita tracert localtest.me. , primeiro pergunta ao DNS sobre o endereço associado; Obtém a resposta 127.0.0.1; e então se comporta exatamente como se você tivesse executado tracert 127.0.0.1 . Nenhuma mágica em tudo.

Are there others? (And how to find them?)

Neste ponto, deve ficar claro que qualquer proprietário de domínio pode fazer isso sem qualquer esforço, portanto, há sempre uma probabilidade de que outros domínios desse tipo existam em um determinado momento. Devido a dados DNS serem distribuídos em muitos sistemas (às vezes até mesmo gerados dinamicamente), você realmente não pode encontrá-los todos, ou mesmo esperar que seus resultados permaneçam precisos após alguns segundos.

Mas, por motivos de segurança, você não precisa para encontrá-los todos. Alguns resolvedores de DNS, na verdade, já têm um tipo de filtragem para essas entradas (chamado de "proteção de religação de DNS"), e não procuram por perguntas específicas - eles apenas analisam a resposta . O recurso de proteção apenas bloqueia respostas que apontam para qualquer endereço local.

No entanto, antes de perguntar, isso não pode ser proibido globalmente - apontar nomes de domínio para endereços privados ainda é um uso perfeitamente legítimo do DNS e é usado na prática em muitas redes.

    
por 29.12.2017 / 07:13
16

Existem outras respostas que entram em detalhes mais detalhados, mas o núcleo dessa pergunta é muito simples de responder:

“However, I'm still not sure how you can register an external domain to a local one.”

Registrar um nome de domínio e atribuir um endereço IP são duas coisas completamente diferentes e independentes.

Qualquer pessoa pode registrar qualquer nome de domínio por qualquer motivo; você pode até registrar um nome de domínio sem ter um endereço IP de destino no lugar. É preciso simplesmente pagar ao registrador de domínios, passando pela "papelada" virtual e então, como mágica, você tem um nome de domínio. Tudo o que você está pagando quando registra um nome de domínio é o nome de domínio em si, bem como a capacidade - leia abaixo - de atribuir um endereço IP a um nome de domínio.

Mas atribuir um endereço IP a esse nome de domínio é um processo totalmente diferente. Qualquer pessoa pode atribuir qualquer endereço IP a um nome de domínio se eles tiverem controle sobre o nome do domínio. O registrador de nomes de domínio não se preocupa nem se preocupa com a pilha de endereços brutos atribuídos a um nome de domínio.

Tudo o que um nome de domínio é é simplesmente um ponteiro que facilita a vida. Pense nisso como um alias para que as pessoas não tenham que memorizar pilhas de números (IPv4) ou números e letras (IPv6).

É isso!

Mas o que aconteceu - como explicado pela página que você visitou - não foi um "hack" de todos os sistemas no endereço "127.0.0.1" local do mundo, mas sim uma falha no próprio sistema específico.

Mas, para esclarecer melhor isso - e isso me tropeçou do jeito que você também disse - quando você diz:

I was reading an article about Server-Side Request Forgery. In that article the attacker found that 127.0.0.1 was open to the internet.

Eu li esse artigo também, e foi o que aconteceu: Alguém estava usando um ferramenta que lhe permitiu apontar essa ferramenta para qualquer endereço IP / hostname. Quando eles apontaram essa ferramenta em 127.0.0.1 , não era que o endereço IP 127.0.0.1 estivesse exposto à Internet. Em vez disso, a própria ferramenta tinha uma falha que permitia que qualquer pessoa investigasse o servidor interno em que a ferramenta estava sendo executada usando 127.0.0.1 . E como essa ferramenta era explicitamente uma ferramenta de hacking usada para detectar portas abertas e tal, usando 127.0.0.1 esse aplicativo específico era capaz de sondar a própria rede de host local e, aqui, transmitir essa informação para alguém que acessa a ferramenta por meio de um navegador da Web.

O risco apresentado não era que cada 127.0.0.1 fosse exposto à Internet, mas sim que a codificação malfeita em uma ferramenta em um site permitia que isso acontecesse. / p>     

por 29.12.2017 / 16:20
8

What is so special about localtest.me?

Aponta para 127.0.0.1 (localhost). Esse endereço é sempre reservado para o computador local.

Are there others? (And how to find them?)

Sim. Google e Super User são seus amigos (como você descobriu).

I'm still not sure how you can register an external domain to a local [IP]. This is confusing as a tracert localtest.me never even leaves the machine. How is this handled on the low level?

Você está perdendo a solicitação inicial (externa) DNS . tracert exibe o caminho que um pacote leva, mas antes que um pacote possa ir a qualquer lugar, o computador deve conhecer o IP para enviá-lo. Com ressalvas, se você nunca visitou o locatest.me antes, uma solicitação de DNS é feita aos resolvedores externos para descobrir que ele mapeia para 127.0.0.1. Os dados retornados são então usados localmente (por exemplo, para tracert ou exibição do conteúdo da web). E lembre-se de que o DNS pode mapear qualquer nome de host para qualquer IP - ele não "sabe" se um IP é local ou não.

    
por 29.12.2017 / 06:58