Dizem que não é bom escutar. No entanto, ouvir o tráfego de rede para muitos não é um hobby, mas uma verdadeira profissão. Por alguma razão, acredita-se que isso exija algum equipamento caro especial, mas vou lhe dizer como organizar a escuta do tráfego na rede usando terminais de crocodilo comuns.
Este artigo faz parte de uma série de postagens sobre hacking e práticas de hacking e ataque locais. Nesses materiais, revelamos maneiras simples de obter acesso não autorizado a informações protegidas e mostramos como protegê-las de tais ataques. Artigo anterior da série: Ataque de inicialização a frio. Despejar RAM usando uma unidade flash.
Existe um ataque que é muito bonito em sua simplicidade e originalidade, que consiste em ouvir o tráfego de par trançado RJ45 em half-duplex. Isso significa que apenas metade do tráfego está ouvindo, seja de entrada ou de saída.
O sniffing de par trançado não é um tópico novo, mas ainda é relevante hoje devido à sua extrema prevalência: apesar do fato de que a ótica agora é onipresente, o bom e velho cabo de par trançado ainda é encontrado em quase todas as entradas ou corredores de um prédio de escritórios. Em edifícios residenciais, você pode encontrar esses fios estendidos em quase todos os apartamentos. E às vezes parece assim.
Par trançado em um local desprotegido (entrada)
Portanto, o tráfego de sua casa, como veremos mais adiante, é bastante fácil de ouvir. Sim, e em escritórios modernos, você também pode encontrar pares trançados.
Cabo de par trançado em local desprotegido (escritório)
Em outras palavras, um ataque pode ser realizado de uma sala onde há acesso desimpedido a fios de par trançado: o corredor de um prédio de escritórios ou a entrada mais comum.
Na maioria das vezes, o par trançado é encontrado na última milha, próximo aos dispositivos do assinante. Mas entre casas, escritórios territoriais de empresas, ou seja, em longas distâncias, provavelmente será utilizada ótica, então, claro, não será possível ouvir uma casa inteira, empresa ou mesmo uma cidade.
TEORIA
O fio RJ45 consiste em quatro pares de núcleos que diferem em cores. Cada par é dois fios trançados juntos.
Folha de dados do conector RJ45
Cada par tem sua própria função:
verde - recepção de dados;
laranja - transferência de dados;
marrom - PoE-, dados 1000 Mbps;
azul - PoE+, dados 1000 Mbps.
O tráfego de rede de entrada e saída passa por um determinado par de núcleos, e os próprios bytes são codificados simplesmente alterando as características do sinal elétrico neles.
EQUIPAMENTO
Para implementar um ataque, precisamos de uma placa de rede Ethernet regular e um segmento de par trançado composto por apenas dois núcleos. Esse fio pode ser feito de forma independente, comprando-o em uma loja especializada ou você pode modificar o patch cord acabado.
Estaremos interessados apenas no par RX (o primeiro e segundo núcleos), implementado na forma de um conector RJ45 convencional, conforme mostrado na figura a seguir.
Folha de dados do fio do atacante
No verso, conectamos o primeiro e o segundo núcleo com os crocodilos mais comuns. O resultado é um fio mostrado na figura a seguir.
Fio do atacante
Neste caso, o jacaré branco é o contato positivo, e o preto é o negativo. Vamos conectar este fio modificado diretamente à placa de rede do invasor.
OPERAÇÃO
A escuta do próprio tráfego é implementada conectando esses mesmos crocodilos ao par laranja ou verde, conforme mostrado na figura a seguir.
Conectando a um par trançado
O invólucro externo do fio ao qual conectamos é ligeiramente cortado com uma faca de escritório. Cortamos ao longo das veias, para que as veias não sejam danificadas. Não é necessário retirar o isolamento diretamente dos próprios núcleos, basta apertar levemente os crocodilos, e eles próprios vão empurrar o isolamento nos pontos de contato.
Pressionamos até que os pacotes sejam exibidos no sniffer da placa de rede, onde conectamos a ponta reversa do nosso fio, conforme mostra a figura a seguir.
Farejando tráfego com tcpdump
Aqui, para tornar o ataque ainda mais espetacular, estamos executando-o em um telefone Android. Algumas placas de rede externas podem ser reconhecidas automaticamente pelo Android, então você não precisa fazer nada além de ser root. A figura a seguir mostra como esse ataque pode parecer em uma posição.
Stand
Phone remove com sucesso o tráfego de um laptop para outro (apenas em uma direção). Ao mesmo tempo, o fato da escuta telefônica não pode ser revelado de forma alguma, uma vez que nenhum salto adicional (traceroute) aparece entre os laptops. Vamos usar utilitários que extraem contas e arquivos baixados do tráfego:
rj45/sniff.sh
#!/bin/bash
sudo ethtool -s eth0 speed 100 duplex half autoneg off
sudo ethtool eth0 | grep Speed
sleep 1
dumpfile=out-$(date +'%H:%M:%S_%d.%m.%Y').pcap
sudo tcpdump -i eth0 -nn -w $dumpfile &
tcpdump=$!
tmux new-session -d -s rj45 'sudo tcpdump -i eth0 -nn'
tmux split-window -v -t rj45 'sudo /opt/net-creds/net-creds.py -i eth0'
tmux split-window -v -t rj45 'sudo tcpxtract -d eth0'
tmux a -t rj45
sudo kill $tcpdump
ls -lh $dumpfile
Este script não apenas salvará o tráfego em um arquivo para análise posterior, mas também dividirá convenientemente a tela do telefone em três áreas, em cada uma das quais veremos as informações relevantes, conforme mostrado na figura a seguir
O primeiro terço da tela mostra a metade do tráfego sendo ouvido usando o tcpdump . O segundo terço é o utilitário net-creds, que extrai as credenciais do tráfego. E, por um momento, extraímos aqui o hash NetNTLM no momento em que o computador foi conectado à unidade de rede com simples crocodilos! O último terço da tela é tcpxtract, que simplesmente extrai arquivos por assinatura, independentemente do protocolo de transferência de dados. E, neste caso, ao baixar uma foto via FTP, nosso telefone a salvou com sucesso.
Durante a demonstração, nenhuma Internet doméstica ou corporativa foi afetada. Mas, é claro, entendemos a facilidade com que os componentes de teste de nosso estande podem ser substituídos por alvos reais.
Vale ressaltar que tal sniffing só é possível em uma conexão com velocidade de 10 ou 100 Mbps, quando quatro fios (pares laranja e verde) estão envolvidos - um fio de quatro fios. Com um fio de oito fios, os dados são transmitidos de forma diferente (a uma velocidade de 1000 Mbps). No entanto, mesmo se houver todos os oito núcleos no fio, muitas vezes as placas de rede não concordam no modo de 1000 Mbps. Por exemplo, na figura acima, onde o fio tem apenas alguns metros de comprimento e todos os oito núcleos estão disponíveis, as placas de rede continuam a operar no modo de 100 Mbps que é vulnerável a escutas telefônicas.
Se tivermos um par trançado com conexão ativa de 1000 Mbps, torna-se impossível ouvir o tráfego com dois crocodilos. No entanto, foi estabelecido experimentalmente que, se um dos pares adicionais de fios necessários para fornecer uma velocidade de 1000 Mbps (azul ou marrom) for cortado, após alguns segundos haverá um downgrade automático para 100 Mbps e poderemos novamente conectar crocodilos e ouvir o tráfego.
Algumas empresas em suas redes costumam usar PoE para alimentar telefones IP sobre par trançado, para isso, são usados os mesmos núcleos adicionais (azul e marrom). Por causa disso, uma conexão a uma velocidade de 1000 Mbps em tal rede não é possível.
O ataque demonstrado é uma escuta passiva do tráfego em tempo real sem modificá-lo. Tentativas de intervir ativamente no tráfego transmitido e, por exemplo, um ataque SSLsplit (substituição de certificado) também são possíveis, mas exigirão que o invasor tenha prestidigitação suficiente para cortar o fio muito rapidamente, crimpá-lo de ambos os lados e, em seguida, prenda-o no meio. Mas esse método é bastante "sujo" e pouco sofisticado, por isso não o consideramos.
O método descrito com crocodilos também não pode ser considerado idealmente limpo, pois ainda cortamos, embora ligeiramente, a proteção externa do par trançado. Embora isso não afete de forma alguma o funcionamento do fio, e não haja quebras na conexão com a execução correta dessa manipulação.
CONCLUSÕES
O perigo dessa espionagem passiva é bastante reduzido na era do uso generalizado de SSL/TLS. No entanto, vários protocolos ainda usam autenticação aberta - são unidades de rede conhecidas, FTP, autenticação de proxy HTTP-Basic e muito mais. E tudo isso é frequentemente encontrado em redes corporativas.
Portanto, vale a pena prestar atenção à colocação de cabos de alta qualidade. No caso de estarmos lidando com empresas, é inaceitável colocar fios abertos em local descontrolado. Também seria útil usar caixas, canais de cabo ou roteamento de cabo oculto.