O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

Farejamento de pacotes usando Extcap

Extcap é um plugin para o Wireshark que lhe permite usar o binário Pyspinel como uma interface de captura. Wireshark é uma ferramenta de código aberto que pode decodificar protocolos de rede na pilha de Thread, como IEEE 802.15.4, 6LoWPAN, IPv6, MLE (Mesh Link Establishment), UDP e CoAP. Extcap reduz a instalação e configuração necessária para farejar pacotes de Thread usando Wireshark, uma vez que não requer gravação em um arquivo de captura.

Este guia cobre como configurar extcap para Wireshark para farejar pacotes de uma rede Thread.

Para usar Pyspinel para packet sniffing sem extcap, consulte packet sniffing com Pyspinel .

Requisitos

Hardware:

  • Uma máquina host para servir como um NCP e executar o Pyspinel e o Wireshark:
    • macOS - OS X 10.6 de 64 bits ou posterior
    • Linux
    • Windows - 10 ou posterior
  • Um dispositivo OpenThread brilhou com um ot-ncp-ftd ou ot-rcp compilação.

Programas:

  • Python 3 para a execução de Pyspinel
  • Wireshark 3.0.6 ou mais recente para extcap apoio

Verificação

Este guia foi verificada com o Zolertia Firefly ( Texas Instruments CC2538 SoC ) nos seguintes sistemas host:

  • Debian 4.19.37 - Wireshark 3.0.4
  • macOS Mojave 10.14.6 - Wireshark 3.0.5
  • Windows 10 de 64 bits versão 17134 - Wireshark 3.0.6

Instale o Wireshark

Linux

Abra um terminal e execute os seguintes comandos para baixar e instalar o Wireshark:

sudo add-apt-repository ppa:wireshark-dev/stable
sudo apt-get update
sudo apt-get install wireshark

Recomendamos executar o Wireshark como um usuário não root. Para fazer isso, reconfigure o pacote:

sudo dpkg-reconfigure wireshark-common

Quando você começa o diálogo perguntando "deve não-superusuários ser capaz de capturar pacotes?", Selecione Sim, em seguida, adicione os wireshark permissões de usuário e arquivo de atualização:

sudo adduser $USER wireshark
sudo chmod +x /usr/bin/dumpcap

Mac OS

Baixe e instale Wireshark para MacOS.

Construir e atualizar o farejador

As instruções de construção e atualização variam de acordo com a plataforma.

Para obter instruções sobre a construção e piscando o CC2538, veja o exemplo CC2538 README no GitHub.

Para obter instruções gerais de compilação, consulte Como construir OpenThread .

Configure o ambiente sniffer

  1. Abra o Wireshark. Ir para Ajuda> Sobre o Wireshark e selecione a guia pastas. A entrada de caminho Extcap lista a localização extcap. Anote este local.
  2. Instalar dependências:
    sudo apt install python3-pip
    pip3 install --user pyserial ipaddress
  3. Clonar o repositório Pyspinel:
    git clone https://github.com/openthread/pyspinel
  4. Instalar Pyspinel, utilizando o caminho de extcap Wireshark:
    cd pyspinel
    python3 setup.py install --extcap-path=extcap-path

Como alternativa, configure o ambiente instalando o pacote pyspinel:

pip3 install pyspinel --install-option="--extcap-path=extcap-path"

Configuração do Wireshark - protocolos

O Wireshark deve ser configurado para mostrar os pacotes Thread de maneira adequada.

Selecione Preferências ... no Wireshark e expanda a seção Protocolos.

6LoWPAN

Selecione 6LoWPAN da lista de protocolos e verificar ou alterar as seguintes definições:

  1. Desmarque Derive ID de acordo com RFC 4944.
  2. Atualização Contexto 0 com a malha de prefixo local para a rede alvo Thread.
OT Sniffer Wireshark 6LoWPAN

O Wireshark usa configurações de contexto para analisar o endereço IPv6 compactado e exibir a origem e os endereços de destino IPv6 corretamente.

Para mostrar os endereços de outros prefixos em malha configurados no gateway, atualize outros IDs de contexto com esses prefixos.

Para obter o ID de contexto para um prefixo específico na malha, visualize o Thread Network Data TLV em qualquer mensagem de resposta de dados MLE. Por exemplo:

Context 1: fd00:7d03:7d03:7d03::/64

CoAP

Selecione Coap da lista de protocolos e definir Coap porta UDP para 61631. Isso garante mensagens TMF (como SOLICIT endereço) são exibidos.

IEEE 802.15.4

Selecione IEEE 802.15.4 da lista de protocolos e verificar ou alterar as seguintes definições:

  1. Definir 802.15.4 Ethertype (em hex) para "0x809a".
  2. Defina o Security Suite para "AES-128 criptografia, proteção de Integridade de 32 bits".
  3. Clique no botão Editar ... ao lado de descriptografia Chaves, que é onde você adicionar à rede Tópico Master Key para o pacote de descriptografia.
    1. Clique em + para adicionar uma chave de decodificação.
    2. Entrar na rede da linha Master Key na coluna Chave de decodificação.
    3. Digite "1" como o índice de chave descriptografia.
    4. Escolha um hash de rosca na caixa de listagem coluna de hash Key.
    5. OT Sniffer Wireshark IEEE 802.15.4
    6. Clique em OK para salvar a chave de decodificação.

Fio

Selecione Tópico da lista de protocolos e verificar ou alterar as seguintes definições:

  1. Enter "00000000" para o contador seqüência Thread.
  2. Desmarque a opção Use PAN ID como o primeiro dois octetos de chave mestra.
  3. Verificar automaticamente adquirir Tópico contador de sequência.

Clique no botão OK para salvar as alterações de protocolo.

Algum tráfego de Thread pode ser analisado como o protocolo ZigBee. Para exibir corretamente esses dois protocolos, edite os protocolos habilitados no Wireshark:

  1. No Wireshark, vá para Analisar> Protocolos habilitados.
  2. Desmarque os seguintes protocolos:
    1. LwMesh
    2. ZigBee
    3. ZigBee Green Power

Configuração Wireshark - RSSI

Para exibir RSSI no Wireshark:

  1. Vá para Preferências> Protocolos> IEEE 802.15.4.
  2. Defina o formato de FCS:
    • Se IEEE 802.15.4 TAP desativado: TI CC24xx metadados.
    • Se IEEE 802.15.4 TAP habilitado: ITU-T CRC-16.
  3. Clique em OK para salvar e voltar ao menu Preferências.
  4. Em Preferências, selecione Aparência> Colunas.
  5. Adicione uma nova entrada:
    • Título: RSSI
    • Tipo: personalizado
    • Campos: wpan.rssi
OT Sniffer Wireshark RSSI

Use o farejador

A tela de captura do Wireshark é exibida quando o Wireshark é iniciado pela primeira vez. Ele deve listar as interfaces de hardware conectadas a um sniffer OpenThread.

Capture de uma única interface

Se esta é sua primeira vez usando uma interface, clique no botão Opções para a esquerda da interface:

Captura OT Sniffer Wireshark Extcap

  1. Definir o canal para o valor desejado.
  2. Verifique IEEE 802.15.4 TAP para garantir que as informações do canal está incluído na saída pcap e pode ser exibida no Wireshark GUI.
  3. Verifique Salvar parâmetros na captura de começar a garantir que estes parâmetros são salvos após o início da captura, para evitar ter de configurá-lo novamente na próxima vez que você usar a interface (a menos que você precisa para mudar de canal).
  4. Clique em Iniciar.

Opções OT Sniffer Wireshark Extcap

Se seus parâmetros já estiverem salvos, comece a farejar selecionando a interface de hardware e clicando no ícone Wireshark no canto superior esquerdo.

Captura de múltiplas interfaces

Selecione todas as interfaces de hardware listadas na tela de captura e clique no ícone Wireshark no canto superior esquerdo.

Use estes campos para identificar sniffers individuais ao capturar de várias interfaces:

  • Interface ID (frame.interface_id) - Interface Identificador usado por Wireshark para identificar uma interface de captura
  • Nome de interface (frame.interface_name) - nome da interface usada pelo Wireshark para identificar uma interface de captura
  • Channel (WPAN-tap.ch_num) - IEEE 802.15.4 canal de captura (intervalo: 11-26)

Pacotes OT Sniffer Wireshark Extcap

Solução de problemas

O sniffer OpenThread não está listado como uma interface Wireshark

  1. Se você tiver vários interpretadores Python instalados, certifique-se de que o interpretador Python 3 seja usado pelo script extcap. Pyspinel não é compatível com Python 2.
  2. Verifique se o hardware está enumerado no USB e se os drivers estão carregados.
  3. Verifique se o firmware correto (NCP ou RCP) foi atualizado para o hardware.
  4. Verifique se o script Python localizado no caminho extcap é executável.
    • Para OS X e Linux:
      1. Verifique se a permissão de execução está presente para o extcap_ot.py arquivo:
        ls -l extcap_ot.py
      2. Se a (x) permissão de execução está faltando, modificar as permissões:
        chmod +x extcap_ot.py
      3. Verifique a interface está listado:
        extcap_ot.py --extcap-interfaces
    • Para Windows:
      1. Verifique a interface está listado:
        extcap_ot.bat --extcap-interfaces
      2. Se este sai com um erro Python, verifique a versão Python é 3.x:
        py -3 --version

O Wireshark só permite que o usuário root capture pacotes

Durante a instalação do Wireshark no Ubuntu, o usuário será solicitado a escolher uma das seguintes opções:

  1. Criar o wireshark grupo de usuários e permitir que todos os membros desse grupo para capturar pacotes.
  2. Permitir apenas a root do usuário para capturar pacotes.

Usando o Wireshark como a root do usuário é fortemente desencorajada. Se você escolheu essa opção, altere a configuração:

sudo dpkg-reconfigure wireshark-common

Se Wireshark foi configurado para restringir a captura de membros do wireshark grupo, você pode precisar adicionar o usuário correto para o grupo:

sudo usermod -a -G wireshark user

Além disso, adicione o usuário correto ao dialout grupo:

sudo usermod -a -G dialout user

Feche e reinicie o Wireshark para aplicar as novas configurações de grupo de usuários.

Erro de formato Wireshark ao capturar em várias interfaces USB no Windows

Este é um problema conhecido para algumas versões antigas do Wireshark. Certifique-se de estar usando o Wireshark 3.0.6 ou posterior.