Roubo de endereço IP (Mystification/Spoofing)

Agosto 2017

Como acontece a usurpação de endereço IP

A usurpação de endereço IP (spoofing IP) é uma técnica que consiste em substituir o endereço IP do remetente de um pacote IP pelo endereço IP de outra máquina. Esta técnica permite que o hacker envie pacotes anonimamente. Não se trata de mudar o endereço IP, mas de um disfarce do endereço IP ao enviar os pacotes.

Algumas pessoas tendem a assimilar o uso de um proxy (que permite, de certa forma, mascarar o endereço IP) com o spoofing IP. No entanto, os proxys só enviam os pacotes. Assim, ainda que o endereço esteja aparentemente mascarado, você pode encontrar facilmente um hacker graças ao arquivo de registos do proxy.

Ataque por usurpação

A técnica da usurpação de endereço IP pode permitir que um hacker envie pacotes a uma rede sem que estes sejam interceptados pelo sistema de filtragem de pacotes (firewalls).

Na verdade, os sistemas de firewall se baseiam em regras de filtragem que indicam os endereços IP autorizados a se comunicarem com a rede das máquinas internas:

Using spoofing to break through a firewall

Assim, um pacote usurpado com o endereço IP de uma máquina interna parecerá provir da rede interna e será retransmitido à máquina alvo, enquanto um pacote que contém um endereço IP externo será automaticamente rejeitado pelo firewall.

Contudo, o protocolo TCP (protocolo que basicamente garante o transporte fiável de dados pela Internet) se baseia em relações de autenticação e de confiança entre a rede das máquinas. Isto significa que para aceitar o pacote, o receptor deve acusar recepção do emissor, e este, deve acusar recepção da confirmação.

Como modificar o cabeçalho TCP

Na Internet, as informações circulam graças ao protocolo IP, que garante o encapsulamento de dados em estruturas chamadas pacotes (ou, mais exatamente, datagramas IP). Veja a estrutura de um datagrama:


Versão Longitude do cabeçalho Tipo de serviço Longitude total
IdentificaçãoIndicadorCompensação de fragmento
Tempo de vidaProtocolo Soma de verificação do cabeçalho
Endereço IP de origem
Endereço IP de destino
Dados

Usurpar um endereço IP consiste em alterar o campo fonte a fim de simular um datagrama que provém de outro endereço IP. Contudo, na Internet, os pacotes são geralmente transportados pelo protocolo TCP, que garante uma transmissão confiável.

Antes de aceitar um pacote, uma máquina deve acusar recepção deste junto à máquina emissora, e esperar que ela confirme a boa recepção da acusação.

Os links de aprovação

O protocolo TCP é um dos principais protocolos da camada transporte do modelo TCP/IP. Ele permite, a nível das aplicativos, gerenciar os dados oriundos (ou com destino) da camada inferior do modelo (ou seja, o protocolo IP).


O protocolo TCP assegura a transferência dos dados de modo fiável, embora utilize o protocolo IP (que não integra nenhum controle de entrega de datagrama) graças a um sistema de avisos de recepção (ACK) que permitem ao cliente e ao servidor verificarem a boa recepção dos dados.

As unidades datagramas IP introduzem pacotes TCP (chamados segmentos), cuja estrutura é:

012345678910111213141516171819202122232425262728293031
Porta Fonte Porta destino

Número de ordem

Número de aviso de recepção

Desfasamento de dados
dados

reservado
URG ACK PSH RST SYN FIN
Janela

Soma de controle

Ponteiro de emergência
Opções

Dados

Na emissão de um segmento, um número de ordem (também chamado de número de sequência) é associado, e uma troca de segmentos com campos específicos (chamados bandeiras - flags) permite sincronizar o cliente e o servidor. Este diálogo (chamado aperto de mãos em três tempos) permite iniciar a comunicação, ele se apresenta em três tempos, como o seu nome indica:

Inicialmente, a máquina emissora (o cliente) transmite um segmento cuja bandeira SYN é de 1 (para assinalar que se trata de um segmento de sincronização), com um número de ordem N, que chamamos de número de ordem inicial do cliente;

Em segundo lugar, a máquina receptora (o servidor) recebe o segmento inicial que provém do cliente, em seguida ele envia um alerta de recepção, ou seja, um segmento cuja bandeira ACK é ‘não nula’ (aviso de recepção) e a bandeira SYN é de 1 (porque ainda se trata de uma sincronização). Este segmento contém um número de sequência igual ao número de ordem inicial do cliente. O campo mais importante deste segmento é o aviso de recepção (ACK), que contém o número de ordem inicial do cliente, incrementado de 1.

Por último, o cliente transmite ao servidor uma acusação de recepção, isto é, um segmento onde a bandeira ACK não seja nula e, cuja bandeira SYN está em zero (não se trata mais de um segmento de sincronização). Seu número de ordem é incrementado e o número de aviso de recepção representa o número de sequência inicial do servidor incrementado de 1.

A máquina usurpada vai responder com um pacote TCP cuja bandeira RST (reset) é não nula, o que cortará a conexão.

Distruir a máquina usurpada

No contexto de um ataque por usurpação de endereço IP, o atacante não tem nenhuma informação de retorno porque as respostas da máquina alvo vão para outra máquina da rede (blind attack - ataque às cegas):


The spoofed machine responds to the ACK with an RST

Além disso, a máquina usurpada priva o hacker de qualquer tentativa de conexão, porque envia sistematicamente uma bandeira RST à máquina alvo. O trabalho do hacker consiste em invalidar a máquina falsificada tornando-a inacessível durante o ataque.

Como prever os números de sequência

Quando a máquina falsificada for invalidada, a máquina alvo espera um pacote que contenha o aviso de recepção e o número de sequência correto. O trabalho do hacker consistirá, então, em adivinhar o número de sequência a enviar ao servidor para que a relação de confiança seja estabelecida.

Para isso, os hackers utilizam a fonte routing, ou seja, eles utilizam o campo Opção do cabeçalho IP para indicar um caminho de retorno específico para o pacote. Assim, graças ao sniffing, o hacker poderá ler o conteúdo das tramas de retorno:

Search for sequence numbers
Assim sendo, conhecendo o último número de sequência emitido, o hacker estabelece estatísticas relativas ao seu incremento e envia avisos de recepção até obter o número de sequência correto.

Veja também


IP address spoofing
IP address spoofing
Suplantación de dirección IP
Suplantación de dirección IP
Vortäuschung einer IP Adresse (Verschleierung / Spoofing)
Vortäuschung einer IP Adresse (Verschleierung / Spoofing)
Usurpation d'adresse IP (Mystification / Spoofing)
Usurpation d'adresse IP (Mystification / Spoofing)
Spoofing di indirizzo IP
Spoofing di indirizzo IP
Última modificação: 9 de julho de 2017 às 07:26 por ninha25.
Este documento, intitulado 'Roubo de endereço IP (Mystification/Spoofing)', está disponível sob a licença Creative Commons. Você pode copiar e/ou modificar o conteúdo desta página com base nas condições estipuladas pela licença. Não se esqueça de creditar o CCM (br.ccm.net) ao utilizar este artigo.