Sequestro de sessão em redes

Antes de prosseguir com o tema, é importante saber alguns conceitos:

Blind Hijacking descreve um tipo de sequestro de sessão em que o invasor não pode capturar o tráfego de retorno a partir da conexão do host. Isso significa que o invasor está injetando cegamente pacotes maliciosos ou manipuladores sem ver a confirmação do efeito desejado através da captura de pacotes. O invasor deve tentar prever os números de sequência dos pacotes TCP atravessando a conexão. A razão para essa previsão volta ao conceito básico do TCP three-way-handshake.

Spoofing de IP refere-se à tentativa de um invasor de se disfarçar como o usuário legítimo, falsificando o endereço IP da vítima. O conceito de spoofing pode se aplicar a uma variedade de ataques em que um invasor falsifica as informações de identificação de um usuário. Entenda que spoofing é uma abordagem diferente do ataque de sequestro de sessão; Entretanto, elas estão relacionadas, pois ambas abordam usando uma sessão autenticada existente para ter acesso a um sistema de outra forma inacessível.

Spoffing

Source Routing (Roteamento de Origem) – Em contraste com o roteamento de pacotes normal, o roteamento de origem garante que os pacotes injetados sejam enviados através de um caminho de roteamento selecionado. Ao usar o roteamento de origem, um invasor escolhe o caminho de roteamento que é mais vantajoso para o ataque pretendido. Por exemplo, um invasor tentando falsificar ou mascarar como um host legítimo pode usar o roteamento de origem para direcionar pacotes para o servidor em um caminho idêntico ao da máquina da vítima.

Source Routing

Spoofing de DNS é uma técnica na qual um invasor altera os mapeamentos de endereço IP de uma vítima em um esforço para direcionar o tráfego da máquina vítima para um endereço especificado pelo invasor. Esta é uma explicação bastante simples, mas o conceito e a intenção são os mesmos em todas as variações desta técnica. Você verá como o DNS spoofing também se aplica ao sequestro de aplicativos web vulneráveis.

ARP Cache Poisoning (Envenenamento de Cache ARP) – O ARP é responsável pela tradução de endereços MAC para endereços IP ou vice-versa (conhecido como ARP reverso ou RARP). Um ataque de envenenamento de cache ARP sobrescreve o cache de ARP de uma vítima, redirecionando o tráfego para um mapeamento de endereço físico incorreto, geralmente a máquina do invasor. Isso, por sua vez, coloca a máquina do atacante no meio de todas as comunicações entre a máquina da vítima e o host autenticado. Esta técnica é conceitualmente muito semelhante ao DNS spoofing. O objetivo é manipular o fluxo de tráfego baseado em dados direcionais armazenados no host.

Dessincronizando a Conexão refere-se mais uma vez ao TCO three-way-handshake, quando um cliente e um host estão inicializando uma conexão, eles trocam pacotes que definem a sequência para a transferência de dados adicionais. Cada pacote nesta transferência contínua tem um número de sequência e números de confirmação subsequentes. Conexões TCP começam o sequenciamento de pacotes com um número de sequência inicial (ISN). O ISN é basicamente um ponto de partida no qual todos os pacotes a seguir podem incrementar e sequenciar adequadamente. A dessincronização de uma conexão envolve a sequência linear entre a vítima e o hospedeiro, dando assim ao atacante a oportunidade, pelo menos em sequência, de saltar e assumir a conexão com o host.

Dessincronizando uma conexão

Por exemplo, suponha que um invasor configurando um ataque de sequestro de sessão esteja rastreando a sequência da conexão e esteja pronto para iniciar um ataque. Para facilitar o trabalho e, ao mesmo tempo, remover a vítima do ataque, o atacante pode injetar um grande volume de pacotes nulos direcionados para a máquina host. Isso, por sua vez, incrementa os números de sequência dos pacotes do host sem a confirmação ou o alcance da máquina vítima. Agora, o atacante dessincroniza com êxito a conexão e organizou os números de sequência de pacotes do host para uma contagem previsível com base no número de pacotes nulos enviados.

Sequestro de sessão de rede

O sequestro de sessão em nível de rede é um método que se concentra em explorar uma conexão TCP/IP após a inicialização ou autenticação ocorrer. Existem algumas técnicas específicas de sequestro nesta categoria de ataque. Alguns métodos comuns que vamos discutir são TCP/IP hijacking, man-in-the-middle e sequestro de sessão UDP.

Sequestro de sessão TCP/IP – O atacante tenta prever os números de sequência dos pacotes que fluem da máquina da vítima para o recurso conectado. Se bem sucedido, o atacante pode então começar a injetar pacotes que estão em sequência com a sequência de pacotes do tráfego do usuário legítimo.

TCP three-way handshake

Conforme a figura, uma vez que o processo de handshake inicial está completo, os pacotes subsequentes permanecem em uma sequência geral entre a vítima e o recurso. Cada pacote em uma conversa em andamento por TCP é incrementado em 1. Esta regra se aplica a ambos os números de sequência SYN e ACK.

A implementação desse tipo de ataque começa com o invasor usando um sniffer no tráfego entre a máquina da vítima e a máquina host. Uma vez que o invasor sniffa com êxito a conexão e prevê os números de sequência de pacotes, eles podem injetar pacotes personalizados para o fio que têm um IP falsificado da máquina vítima, bem como um número de sequência incrementado adequadamente com base no pacotes capturados. Um invasor falsifica o endereço IP da máquina da vítima para tentar assumir a identidade da vítima sequestrando a conexão ea sessão atual. Do ponto de vista do servidor ou do host, os pacotes são provenientes de um endereço IP legítimo, bem como ter um número de sequência corretamente incrementado, são considerados um tráfego legítimo.

Vamos ver as etapas básicas de um ataque de sequestro de sessão TCP:

  1. Você deve ter um meio de sniffar ou capturar o tráfego entre as máquinas vítimas. Isso coloca você na posição necessária para executar o sequestro;
  2. Prever os números de sequência dos pacotes atravessando a rede. Lembre-se de que pacotes nulos podem ser usados ??para incrementar os números de sequência do host, dessincronizando a conexão da vítima e facilitando a previsão do número de sequência;
  3. Execute um ataque de negação de serviço na máquina da vítima ou redefina sua conexão de alguma forma para que você possa assumir a função da vítima como o cliente legítimo. Lembre-se que em um sequestro passivo, a conexão da vítima não é necessariamente cortada; O tráfego entre a vítima e o hospedeiro é simplesmente monitorado, e você espera o momento oportuno para agir;
  4. Depois de assumir a sessão da vítima, você pode começar a injetar pacotes no servidor, imitando o cliente autenticado.

Vamos voltar ao blind hijacking por um momento. No sequestro cego, o atacante não é capaz de ver o resultado dos pacotes injetados, nem são capazes de cheirar os pacotes com êxito. Isso cria um grande desafio para o atacante porque sequenciar pacotes corretamente é uma etapa crítica no lançamento de um sequestro de sessão baseado em TCP com êxito. Lembre-se de que há um desafio logístico ao sniffar o tráfego de outras redes ou domínios de colisão. Isto é porque cada switchport é um domínio de colisão isolado. Um invasor que tenta executar um ataque de sequestro de sessão em uma máquina vítima fora da rede do atacante ou segmento de rede cria um desafio semelhante ao que você enfrentou no sniffing de tráfego. O atacante entrará cegamente porque eles não serão capazes de receber uma confirmação de tráfego de retorno com sucesso.

Man-in-the-middle

Os ataques Man-in-the-middle (MITM) é uma das versões mais conhecidas de um ataque de sequestro de sessão. Essencialmente, um ataque MITM coloca atacantes diretamente entre uma vítima e uma conexão de host. Uma vez que os invasores se colocarem com sucesso no meio da conexão através de uma técnica como o ARP Poisoning, eles têm liberdade para monitorar passivamente o tráfego ou podem injetar pacotes maliciosos na máquina da vítima ou na máquina anfitriã. Vamos continuar com o ARP Poisoning em nosso exemplo. Primeiro o atacante irá farejar o tráfego entre a vítima e máquinas host, o que os coloca em uma posição passiva, mas ainda estratégica. A partir daqui, o atacante pode enviar à vítima respostas ARP falsas ou “envenenadas” que mapeiam o tráfego da vítima para a máquina do atacante. Por sua vez, o atacante pode então encaminhar o tráfego da vítima para a máquina host. Durante este encaminhamento, o atacante pode manipular e reenviar os pacotes enviados da vítima à vontade.

Ataque MITM

Existem várias ferramentas especialmente concebidas para executar um ataque MITM. Essas ferramentas são particularmente eficientes em ambientes de rede LAN (OSI).

  • PacketCreator
  • Ettercap
  • Dsniff
  • Cain & Abel

Existem também ferramentas projetadas para interações no nível HTTP conhecidas como ferramentas MITM proxy-only. Essas ferramentas funcionam somente com protocolos HTTP e não funcionam no OSI, portanto, os ataques baseados em TCP devem ser executados com outras ferramentas:

  • OWASP WebScarab
  • Paros Proxy
  • Burp Proxy
  • ProxyFuzz
  • Odysseus Proxy
  • Fiddler (Microsoft)

DNS Spoofing

O DNS é um serviço importante para praticamente qualquer rede hoje. Algumas redes, como aquelas que usam o Active Directory, não podem sequer funcionar sem o DNS estar presente no ambiente. Com esses pontos em mente, precisamos olhar para um ataque conhecido como DNS spoofing.

Em um ataque de DNS spoofing, o atacante modifica o servidor DNS para alterar o fluxo de tráfego para ir desde seu mapeamentos de endereços de host-para-IP que eles desejam. Em alguns casos, os sites que têm tráfego redirecionado para eles podem ser projetados para espalhar malwares.

Sequestro de sessão UDP

O sequestro de sessão UDP é conceitualmente mais simples do que seus irmãos TCP, porque o UDP não usa sequenciamento para seus pacotes. Como você se lembrará, UDP é um protocolo sem conexão, o que significa que não estabelece uma conexão verificável entre o cliente e o host. Para um atacante, isso significa que nenhuma sequência de pacotes é necessária. O objetivo de um sequestro UDP é enganar a vítima em pensar que a máquina do atacante é o servidor. O atacante deve tentar enviar uma
resposta para o cliente antes do host legítimo, assumindo assim a função do servidor. Diferentes técnicas podem ser usadas para interceptar o tráfego legítimo do servidor antes de sua resposta à vítima, mas o objetivo básico é o mesmo.

Estratégias defensivas

O sequestro de sessão depende, em parte, de muitos dos pré-requisitos necessários para usar um sniffer com sucesso na rede. Por exemplo, os ataques de sequestro de sessão aumentam a complexidade para redes externas e comutadas. Em outras palavras, estar na LAN local (por exemplo, como um funcionário descontente) é uma posição estratégica muito melhor para um ataque do que estar fora do gateway. Além de sua relação com o sniffing, vamos analisar métodos que você pode usar para ajudar a evitar o sequestro de sessão:

  • Criptografar o tráfego de rede é uma técnica preventiva viável e eficaz contra ataques de sequestro, tanto de fontes internas como externas. A criptografia dificulta seus esforços legítimos para monitorar seu próprio tráfego de rede;
  • O uso de dispositivos de monitoramento de rede, como um IPS ou IDS, pode ajudar na detecção e prevenção de anomalias de rede, como o tráfego broadcast ARP. Essas anomalias podem ser indicadores de possíveis ataques de sequestro de sessões em andamento;
  • Configure os dispositivos apropriados, tais como gateways, para verificar e filtrar informações falsas do cliente, como endereços IP;
  • Esteja ciente das vulnerabilidades do navegador local, como histórico de logs extensos e cookies. A limpeza de informações de navegação temporária pode ajudar a impedir o uso de IDs de sessão antigas;
  • Sistemas de autenticação mais fortes, como Kerberos, fornecerão proteção contra sequestros;
  • O uso de tecnologias como IPsec e SSL também proporcionará proteção contra o sequestro;
  • Defesa em profundidade, ou o uso de várias tecnologias defensivas para retardar ou deter um atacante, fornece proteção também;

O pentest para descobrir as vulnerabilidades de sequestro de sessão depende das estratégias defensivas do cliente. A criptografia deve ser implementada para tráfego de rede sensível, como servidores. Além disso, implementar políticas que limitam a geração de tokens de sessão exclusivos a recursos da intranet pode reduzir a probabilidade de um invasor roubar uma sessão ativa. Colocando dispositivos de rede de proteção como IPSs e IDSs expõe falhas críticas na identificação e prevenção de tentativas bem-sucedidas de sequestro de sessão.

Sugestões de livros:

Sou bacharel em Sistemas de Informação pela Estácio de Sá (Alagoas), especialista em Gestão Estratégica da Tecnologia da Informação pela Univ. Gama Filho (UGF) e pós-graduando em Gestão da Segurança da Informação pela Univ. do Sul de Santa Catarina (UNISUL). Certificações que possuo: EC-Council CEH, CompTIA (Security+, CySA+ e Pentest+), EXIN (EHF e ISO 27001), MCSO, MCRM, ITIL v3. Tenho interesse por todas as áreas da informática, mas em especial em Gestão e Governança de TI, Segurança da Informação e Ethical Hacking.

Deixe um comentário

O seu endereço de e-mail não será publicado.