Aprenda a usar o sniffer Wireshark

O Wireshark é uma ferramenta de analise protocolar, que permite a captação, em tempo real, de pacotes de dados, e apresenta essa informação num formato legível para os utilizadores. O processo de captura de tráfego é realizado via placa de rede,, funcionando esta num modo especial que é designado de modo promíscuo (possibilidade de capturar todos os pacotes, independentemente do endereço de destino).

Depois de termos apresentado aqui algumas funcionalidades básicas do wireshark, Esquema de cores nas linhas e Follow TCP Stream aqui, e ensinar a detectar tráfego abusivo, hoje vamos ensinar como podem ver o processo de Three-way Handshake, responsável pelo estabelecimento de ligações TCP.

wired_000

O TCP é o protocolo mais usado isto porque fornece garantia na entrega de todos os pacotes entre um PC emissor e um PC receptor. Dentro de um segmento TCP existem vários campos e hoje destacamos os campos  ACK e SYN que são usados no inicio de uma comunicação TCP.

  • SYN – Se activo, indica um pedido de estabelecimento de ligação e a confirmação da ligação;
  • ACK – Se activo, o campo Número de Confirmação deve ser interpretado;
tcp_00
Mas o que é Three Way Handshake?

No estabelecimento de ligação entre emissor e receptor existe um “pré-acordo” denominado de Three Way Handshake (SYN, SYN-ACK, ACK).

  • A sessão entre um cliente e um servidor é sempre iniciada pelo cliente, que envia um pedido de ligação pacote com a flag SYN activada.
  • O cliente envia também um numero sequencial aleatório
  • O servidor responde com um pacote SYN,ACK com o seu próprio numero sequencial aleatório e um numero de confirmação (igual ao numero sequencial do cliente +1)
  • Para finalizar o cliente responde com um pacote ACK com o numero de confirmação (igual ao numero de sequência do servidor +1)

Na prática, temos mais ou menos isto…

way_02

Vamos a um exemplo prático?

Vamos considerar então uma ligação da nossa máquina para o site Pplware.

Primeira Fase (SYN)

O cliente (192.168.1.123) envia um pedido de sincronização (SYN) para o Pplware.com. Tal segmento tem como numero de sequencia 0 (zero).

syn

Segunda Fase (SYN, ACK)

O servidor responde com um pacote SYN,ACK, onde o ACK=1 (igual ao numero sequencial do cliente +1)

syn_ack

Terceira fase (ACK)

Para finalizar o cliente responde com um pacote ACK =1 e envia também o número de sincronização (Seq =1) – igual ao numero de sequência do servidor +1.

ack

Nota: Para facilitar a encontrar os registos, podem usar os seguintes filtros:

  • Filtro 1: tcp.flags.syn == 1 && tcp.flags.ack == 0
  • Filtro 2: tcp.flags.syn == 1 && tcp.flags.ack == 1
  • Filtro 3: tcp.seq == 1 && tcp.ack == 1 && tcp.len == 0 && !(tcp.flags.push == 1)

Nota: Para facilitar, podem também usar a funcionalidade   Follow TCP Stream. Esta funcionalidade permite visualizar streams TCP completas, isto é, com esta opção o utilizador poderá acompanhar toda uma comunicação desde o primeiro SYN até ao FIN­-ACK – ver aqui.

Esperamos que tenham gostado deste terceiro tutorial sobre o Wireshark. Por hoje resta-nos esperar pelo vosso feedback e sugestões para próximos tutoriais.

 

Fonte: https://pplware.sapo.pt/tutoriais/networking/aprenda-a-usar-o-sniffer-wireshark-parte-iv/

.