Guia e cábula para Wireshark

Mesmo um conhecimento superficial do Wireshark e seus filtros economizará uma ordem de grandeza na solução de problemas de rede ou da camada de aplicativos. O Wireshark é útil para muitas tarefas no trabalho de um engenheiro de rede, especialista em segurança ou administrador de sistemas. Aqui estão alguns exemplos de uso:

Solução de problemas de conectividade de rede


  • Exibição visual de perda de pacotes
  • Análise de retransmissão TCP
  • Gráfico de pacotes atrasados

Explorando sessões no nível do aplicativo (mesmo ao criptografar com SSL / TLS, veja abaixo)


  • Visualização completa de sessões HTTP, incluindo todos os cabeçalhos e dados para solicitações e respostas
  • Ver sessões Telnet, ver senhas, comandos e respostas inseridos
  • Visualize tráfego SMTP e POP3, leia e-mails

Solucionar problemas de DHCP com dados em nível de pacote


  • Explorando traduções de difusão DHCP
  • A segunda etapa da troca DHCP (oferta DHCP) com o endereço e os parâmetros
  • Solicitação do cliente no endereço proposto
  • Confirmar a partir do servidor confirmando a solicitação

Extrair arquivos de sessões HTTP


  • Exportando objetos de HTTP, como JavaScript, imagens ou até executáveis

Extrair arquivos de sessões SMB


  • Semelhante à opção de exportação HTTP, mas extraindo arquivos transferidos via SMB, o protocolo de compartilhamento de arquivos no Windows

Detecção e verificação de malware


  • Detecção de comportamento anormal que pode indicar malware
  • Pesquise domínios incomuns ou IPs finais
  • Gráficos de E / S para detectar conexões persistentes (beacons) com servidores de gerenciamento
  • Filtrando dados “normais” e detectando dados incomuns
  • Recupere respostas DNS grandes e outras anomalias que podem indicar malware

Verificando varreduras de portas e outros tipos de varreduras quanto a vulnerabilidades


  • Entendendo o tráfego de rede proveniente dos scanners
  • Análise de procedimentos de verificação de vulnerabilidade para distinguir entre falso positivo e falso negativo

Estes exemplos são apenas a ponta do iceberg. No guia, mostraremos como usar uma ferramenta tão poderosa.

Instale o Wireshark


O Wireshark roda em vários sistemas operacionais e é fácil de instalar. Mencione apenas Ubuntu Linux, Centos e Windows.

Instale no Ubuntu ou Debian


#apt-get update #apt-get install wireshark tshark 

Instale no Fedora ou CentOS


 #yum install wireshark-gnome 

Instalação do Windows


A página de download contém o arquivo executável para instalação. O driver de captura de pacotes também é bastante simples de instalar, com a ajuda da qual a placa de rede entra no modo "inaudível" (o modo promíscuo permite receber todos os pacotes, independentemente de quem eles são endereçados).

Introdução aos filtros


Com a primeira interceptação, você verá um modelo padrão e detalhes do pacote na interface do Wireshark.

Depois de capturar uma sessão HTTP, pare a gravação e brinque com os filtros e configurações básicos de Analyze | Siga | Fluxo HTTP .

Os nomes dos filtros falam por si. Basta digitar as expressões apropriadas na linha de filtro (ou na linha de comando, se estiver usando o tshark). A principal vantagem dos filtros é a remoção de ruído (tráfego que não é interessante para nós). Você pode filtrar o tráfego por endereço MAC, endereço IP, sub-rede ou protocolo. O filtro mais fácil é inserir http , portanto, apenas o tráfego HTTP será exibido (porta TCP 80) .

Exemplos de filtro IP


 ip.addr == 192.168.0.5 !(ip.addr == 192.168.0.0/24) 

Exemplos de filtro de protocolo


 tcp udp tcp.port == 80 || udp.port == 80 http not arp and not (udp.port == 53) 

Tente uma combinação de filtros que mostre todo o tráfego de saída, exceto HTTP e HTTPS, que é roteado para fora da rede local . Essa é uma boa maneira de detectar software (mesmo malware) que interage com a Internet por meio de protocolos incomuns.

Siga o fluxo


Depois de capturar vários pacotes HTTP, é possível usar o item de menu Analisar | em um deles. Siga | Fluxo HTTP . Ele mostrará toda a sessão HTTP. Nesta nova janela, você verá uma solicitação HTTP do navegador e uma resposta HTTP do servidor.



Resolução de DNS no Wireshark


Por padrão, o Wireshark não resolve os endereços de rede no console. Isso pode ser alterado nas configurações.

Editar | Preferências Resolução de nomes | Ativar resolução de nome de rede

Assim como no tcpdump , o procedimento de resolução diminuirá a exibição dos pacotes. Também é importante entender que, quando você captura pacotes online, as consultas DNS do seu host se tornam tráfego adicional que pode ser interceptado.

Tshark para linha de comando


Se você ainda não se interessou pelo tshark , dê uma olhada no nosso guia com exemplos de filtros . Esse programa geralmente é ignorado, embora seja ótimo para capturar sessões em um sistema remoto. Diferentemente do tcpdump , ele permite capturar e visualizar sessões no nível do aplicativo em tempo real: decodificadores de protocolo Wireshark também estão disponíveis para o tshark.

Criando regras de firewall


Aqui está uma maneira rápida de criar regras a partir da linha de comando para que você não procure na Internet por sintaxe específica. Selecione a regra apropriada e vá para Ferramentas | Regras de ACL do firewall . Vários firewalls são suportados, como Cisco IOS, ipfilter , ipfw , iptables , pf e até o firewall do Windows através do netsh .



Trabalhar com GeoIP de base geográfica


Se o Wireshark for compilado com o suporte GeoIP e você tiver bancos de dados Maxmind gratuitos, o programa poderá determinar a localização dos computadores pelos respectivos endereços IP. Confira Sobre | Wireshark , que o programa é compilado com a versão que você tem disponível. Se o GeoIP estiver na lista, verifique a presença dos bancos de dados GeoLite City, Country e ASNum no disco. Especifique a localização das bases no menu Editar | Preferências Resolução de nomes .

Verifique o sistema para obter um despejo de tráfego selecionando a opção Estatísticas | Pontos finais | IPv4 . A localização e as informações do ASN para o endereço IP devem aparecer nas colunas à direita.



Outro recurso do GeoIP é filtrar o tráfego por local, usando o filtro ip.geoip . Por exemplo, dessa maneira, você pode excluir o tráfego de um ASN específico. O comando abaixo exclui pacotes da unidade de rede ASN 63949 (Linode).

 ip and not ip.geoip.asnum == 63949 

Obviamente, o mesmo filtro pode ser aplicado a cidades e países individuais . Remova o ruído e deixe apenas tráfego realmente interessante.

Descriptografia de sessões SSL / TLS


Uma maneira de descriptografar as sessões SSL / TLS é usar a chave privada do servidor ao qual o cliente está conectado.

Obviamente, você nem sempre tem acesso à chave privada. Mas há outra opção para simplesmente visualizar o tráfego SSL / TLS no sistema local. Se o Firefox ou Chrome for carregado usando uma variável de ambiente especial, as chaves simétricas das sessões SSL / TLS individuais serão gravadas em um arquivo que o Wireshark pode ler. Com essas teclas, o Wireshark mostrará uma sessão totalmente descriptografada!

1. Definindo a variável de ambiente


Linux / Mac

 export SSLKEYLOGFILE=~/sslkeylogfile.log 

Windows

Nas propriedades do sistema | Avançado, clique no botão Variáveis ​​de ambiente e adicione o nome da variável (SSLKEYLOGFILE) e o caminho para o arquivo como valor.

2. Configuração do Wireshark


No menu pop-up, selecione Editar | Preferências Protocolos | SSL (Pré) - Nome do arquivo de log secreto mestre - Navegue especificando o arquivo que você especificou na variável de ambiente.

Comece a capturar o tráfego no seu sistema local.

3. Reiniciando o Firefox ou Chrome


Depois de acessar o site HTTPS, o arquivo de log começará a crescer em tamanho, à medida que grava chaves de sessão simétricas.

Dê uma olhada na sessão Wireshark lançada anteriormente. Você deve ver algo semelhante à captura de tela abaixo com sessões descriptografadas. Pacotes descriptografados - na guia no painel inferior.



Outra maneira de visualizar uma sessão é através do Analysis | Siga | Stream | SSL Se a sessão for descriptografada com sucesso, você verá uma opção para SSL.

Obviamente, tenha cuidado ao escrever essas chaves e pacotes. Se um estranho obtiver acesso ao arquivo de log, ele encontrará facilmente suas senhas e cookies de autenticação.

Outra opção para acessar o tráfego HTTP básico é usar a ferramenta Burp Suite com o certificado da CA carregado no navegador. Nesse caso, o proxy descriptografa a conexão no lado do cliente e estabelece uma nova sessão SSL / TLS no servidor. Existem muitas maneiras de realizar um ataque MiTM assim, essas são duas das mais fáceis.

Extrair arquivos de pacotes usando a função de exportação (HTTP ou SMB)


Os arquivos são facilmente extraídos através do menu de exportação.

Arquivo | Exportar objetos | HTTP

Todos os arquivos encontrados serão exibidos em uma nova janela. A partir daqui, você pode salvar arquivos individuais ou todos de uma vez. Um método semelhante é usado para extrair arquivos de sessões SMB. Como já mencionamos, este é o protocolo Microsoft Server Message Block, usado para compartilhamento de arquivos no Windows.



Barra de status


A barra de status no lado direito da janela permite que você vá rapidamente para o local desejado no despejo de rede clicando no indicador de cores. Por exemplo, pacotes com erros são marcados em vermelho na barra de status.



Amostra PCAP


Quando você começa a trabalhar com o Wireshark, quero ver alguns despejos interessantes com pacotes. Eles podem ser encontrados na página Amostras do Wireshark . Haverá exemplos suficientes com protocolos diferentes para vários meses de análise, até amostras do tráfego de worms e explorações.

Configuração do ambiente


A aparência do console por padrão é altamente personalizável. Você pode adicionar ou remover colunas, adicionando coisas simples como uma coluna de horário UTC, que aumenta imediatamente o conteúdo das informações dos logs se você analisar o histórico dos pacotes.

As colunas são configuradas no menu Editar | Preferências Aparência Colunas O modelo geral, a fonte e as cores também são alteradas lá.

No vídeo - dicas úteis para configurar o ambiente, incluindo solução de problemas para números de sequência TCP.


capinfos


O Wireshark vem com uma útil capinfos linha de comando capinfos . Este utilitário gera estatísticas de despejo em lote, com tempo de gravação inicial / final e outros detalhes. Com a opção -T , ele produz texto com guias - é adequado para importação em planilhas ou análises no console.

 test@ubuntu:~$ capinfos test.pcap File name: test.pcap File type: Wireshark/tcpdump/... - pcap File encapsulation: Ethernet File timestamp precision: microseconds (6) Packet size limit: file hdr: 262144 bytes Number of packets: 341 k File size: 449 MB Data size: 444 MB Capture duration: 3673.413779 seconds First packet time: 2018-12-01 11:26:53.521929 Last packet time: 2018-12-01 12:28:06.935708 Data byte rate: 120 kBps Data bit rate: 967 kbps Average packet size: 1300.72 bytes Average packet rate: 93 packets/s SHA256: 989388128d676c329ccdbdec4ed221ab8ecffad81910a16f473ec2c2f54c5d6e RIPEMD160: 0742b6bbc79735e57904008d6064cce7eb95abc9 SHA1: d725b389bea044d6520470c8dab0de1598b01d89 Strict time order: True Number of interfaces in file: 1 

Conclusão


Este artigo foi publicado originalmente em 2011 e atualizado seriamente. Se você tiver quaisquer comentários, melhorias ou dicas para as dicas, escreva-me . O Wireshark é uma daquelas ferramentas indispensáveis ​​que muitos usam, mas poucas são fluentes. Aqui você pode ir cada vez mais fundo.

Source: https://habr.com/ru/post/pt436226/


All Articles