PoisonTap - rouba cookies, expõe o roteador interno e instala backdoor web em computadores bloqueados
Criado por @SamyKamkar || https://samy.pl
Quando o PoisonTap (Raspberry Pi Zero & Node.js) é conectado a um computador bloqueado/protegido por senha, ele:
- emula um dispositivo Ethernet via USB (ou Thunderbolt)
- sequestra todo o tráfego de Internet da máquina (apesar de ser uma interface de rede de baixa prioridade/desconhecida)
- rouba e armazena cookies HTTP e sessões do navegador web para os 1.000.000 principais sites da Alexa
- expõe o roteador interno ao atacante, tornando-o acessível remotamente via WebSocket de saída e DNS rebinding (obrigado Matt Austin pela ideia de rebinding!)
- instala uma backdoor web persistente no cache HTTP para centenas de milhares de domínios e URLs comuns de CDN de Javascript, tudo com acesso aos cookies do usuário via envenenamento de cache
- permite que o atacante force remotamente o usuário a fazer requisições HTTP e encaminhe as respostas (GET e POSTs) com os cookies do usuário em qualquer domínio com backdoor
- não requer que a máquina seja desbloqueada
- as backdoors e o acesso remoto persistem mesmo após o dispositivo ser removido e o atacante se afastar

(incrível animação em canvas HTML5 por Ara)
PoisonTap contorna os seguintes mecanismos de segurança:
Demonstração
PoisonTap é construído para o Raspberry Pi Zero de US$ 5, sem quaisquer componentes adicionais além de um cabo micro-USB e um cartão microSD, ou pode funcionar em qualquer Raspberry Pi (1/2/3) com um adaptador Ethernet-para-USB/Thunderbolt, ou ainda em outros dispositivos que possam emular gadgets USB, como USB Armory e LAN Turtle.
Demonstração ao vivo e mais detalhes disponíveis no vídeo:

Ponto de contato: @SamyKamkar // https://samy.pl
Lançado em: 16 de novembro de 2016
Código-fonte e download: https://github.com/samyk/poisontap
Como o PoisonTap Funciona
PoisonTap produz um efeito em cascata ao explorar a confiança existente em vários mecanismos de uma máquina e rede, incluindo USB/Thunderbolt, DHCP, DNS e HTTP, para gerar um efeito bola de neve de exfiltração de informações, acesso à rede e instalação de backdoors semipersistentes.

Em resumo, o PoisonTap realiza o seguinte:
Sequestro de Rede
- O atacante conecta o PoisonTap (como um Raspberry Pi Zero "armado") a um computador bloqueado (mesmo que o computador esteja protegido por senha)
- O PoisonTap emula um dispositivo Ethernet (ex.: Ethernet via USB/Thunderbolt) -- por padrão, Windows, OS X e Linux reconhecem um dispositivo Ethernet, carregando-o automaticamente como um dispositivo de rede de baixa prioridade e realizando uma solicitação DHCP através dele, mesmo quando a máquina está bloqueada ou protegida por senha
- O PoisonTap responde à solicitação DHCP e fornece à máquina um endereço IP; no entanto, a resposta DHCP é criada para dizer à máquina que todo o espaço IPv4 (0.0.0.0 - 255.255.255.255) faz parte da rede local do PoisonTap, em vez de uma pequena sub-rede (ex.: 192.168.0.0 - 192.168.0.255)
- Normalmente seria irrelevante se um dispositivo de rede secundário se conectasse à máquina, pois receberia prioridade menor do que o dispositivo de rede existente (confiável) e não substituiria o gateway para tráfego de Internet, mas...
- Qualquer segurança de tabela de roteamento / prioridade de gateway / ordem de serviço da interface de rede é contornada devido à prioridade do "tráfego LAN" sobre o "tráfego de Internet"
- O PoisonTap explora esse acesso à rede, mesmo como dispositivo de rede de baixa prioridade, porque a sub-rede de um dispositivo de rede de baixa prioridade recebe prioridade maior do que o gateway (rota padrão) do dispositivo de rede de maior prioridade
- Isso significa que, se o tráfego for destinado a 1.2.3.4, enquanto normalmente esse tráfego atingiria a rota padrão/gateway do dispositivo de rede primário (não-PoisonTap), o PoisonTap na verdade recebe o tráfego porque a rede local/sub-rede do PoisonTap supostamente contém 1.2.3.4 e todos os outros endereços IP existentes ;)
- Por causa disso, todo o tráfego de Internet passa pelo PoisonTap, mesmo que a máquina esteja conectada a outro dispositivo de rede com prioridade maior e gateway adequado (o verdadeiro wifi, ethernet, etc.)
