Você está na página 1de 15

Introduo ao Analisador de

Protocolos Wireshark
1. Instalao
A instalao da GUI (Graphics User Interface) do wireshark no Ubuntu realizada atravs
do seguinte comando:
sudo apt-get install wireshark
A instalao da CLI (command-line interface) do wireshark, feita atravs do comando
abaixo:
sudo apt-get install tshark

1.1 Executando o wireshark


No terminal digite:
sudo wireshark

2. GUI (Graphics User Interface)


O interface grfica do wireshark dividida em 5 partes:
1) Menu de comandos e barra de ferramentas:
O menu de comandos localizado no topo da janela, os cones dispostos na barra so
as aes mais utilizadas, entre elas: escolher interface, opes de captura, iniciar uma
captura, parar e reiniciar captura, abrir um arquivo salvo, salvar captura atual, impresso e
busca.

Menu File: aes bsicas de abrir um arquivo de captura, salvar, exportar para os formatos

suportados pelo wireshark.


Menu Edit: marcao de pacotes, avano, busca, e alteraes na configurao do
wireshark.
Menu View: painis e menus que podem ser visualizados e ocultados, configurao do
tempo relativo, a adio de colunas no painel de pacotes capturados e definir as cores por
protocolos capturados.
Menu Analyze: Filtros, e protocolos que podem ser utilizados tanto na captura quando na
visualizao.
Menu Capture: Lista as interface disponveis para captura, opes de captura, iniciar,
parar, reiniciar e filtros de captura.
Menu Statistics: Estatsticas por protocolo, pacotes capturados, mdias, filtro por
tamanho do pacote, grficos, contadores de pacotes, grficos de fluxo, etc.
Menu Telephony: voltado para os protocolos utilizados em voz sobre ip, estatsticas,
streams, contadores, e qualidade da chamada.
Menu Tools: ferramentas para criar regras de filtro de pacotes ( pf, iptables, pf, ipfw, etc..)
Menu Internals: protocolos e todos os filtros suportados pelo wireshark.
Menu Help: ajuda online, exemplos de capturas, e verso da ferramenta.
2) Filtros:

A aba filtro responsvel por receber os filtros disponveis para o wireshark. Existem
diversos filtros e estes podem ser conhecidos no site oficial do wireshark ordenados por
protocolos. Nesta aba inserido os filtros e estes aplicados no painel de pacotes
visualizados.
Display Filter Reference: http://www.wireshark.org/docs/dfref/
Exemplos: http://wiki.wireshark.org/DisplayFilters
3) Painel pacotes capturados:

Neste painel apresentado um resumo em uma linha para cada pacote capturado. As
colunas contm o nmero do pacote, tempo relativo, origem e destino do pacote, protocolo

do pacote, tamanho e informaes gerais do pacote.


personalizadas.

Estas colunas podem ser

4) Painel detalhes do pacote:

Mostra os detalhes dos pacotes selecionados no painel pacotes capturados de forma


hierrquica. A quantidade de informaes exibidas relacionada com o protocolo
selecionado. Caso seja um pacote TCP ou UDP detalhes destes so apresentados.

5) Painel viso em bytes do pacote

Mostra o frame inteiro capturado nos formatos ASCII ou hexadecimal.

3. Capturando
Menu Capture , clique em Interfaces. (CTRL+I)

Selecione a(s) interface(s) que deseja capturar.


Em Options (CTRL+K) algumas opes como, modo promscuo, resolver nomes, salvar em
mltiplos arquivos.

Aps as configuraes, clique em Start (CTRL+E) para iniciar a captura. Caso exista algum
pacote chegando ou saindo pela interface selecionada, estes so ilustrados no painel de
pacotes capturados.

4. Salvando, Importando, Exportando


Para salvar uma captura realizada necessrio interromper a captura, clicando no cone
na barra de ferramentas ou no menu Capture em Stop (CTRL+E) .
Dica: Caso o arquivo contenha um perodo de anlise muito grande, pode ser vivel marcar
a opo de compresso do arquivo, na janela salvar (Compress with gzip).
Para abrir um arquivo salvo, basta clicar no menu File, em Open e apontar para o arquivo
salvo.
A exportao pode ser realizada para os formatos: texto plano, CSV, PostScript, XML e
Array C. A opo exportar pode ser realizada para todos os pacotes capturados, somente os
selecionados, ou ento para um determinado intervalo de pacotes.

5. Filtros
No site do wireshark ( http://www.wireshark.org/docs/dfref/ ) existe a documentao
online de todos os filtros suportados na ferramenta. Com a adio de novos protocolos,
novos filtros so inseridos.
Segue a relao de alguns operadores lgicos que podem ser utilizados junto aos filtros
conhecidos:
Operadores
eq

==

Igual

ne

!=

Diferente

gt

>

Maior

lt

<

Menor

ge

>=

Maior ou Igual

le

<=

Menor ou Igual

and

&&

Lgico AND

or

||

Lgico OR

xor

^^

Logico XOR

not

Logico NOT

Lgicos

Exemplos:
eth.dst eq ff:ff:ff:ff:ff:ff
eth.src == ff:ff:ff:ff:ff:ff

ip.addr == 192.168.1.10
ip.dst == 200.199.229.66
http.host == "www.uol.com.br"
http.host eq "www.uol.com.br"
tcp.port == 80 and ip.src == 192.168.1.1
tcp.port eq 80 && ip.src eq 192.168.1.1
not ip or ip.dst ne 192.168.1.1
!ip || ip.dst != 192.168.1.1

Fonte: http://www.wireshark.org/docs/man-pages/wireshark-filter.html

Adicionando colunas
Clicar no menu Edit Preferences (shift+ctrl+P). Clique em Columns.

1) Portas de origem e destino no resolvidas para o nome do servio:


Adicionar uma nova coluna e escolher a opo src port (unresolved).
Adicionar uma nova coluna e escolher a opo dst port (unresolved).
2) Adicionar a soma acumulativa dos pacotes filtrados.
Adicionar uma nova coluna e escolher a opo Cumulative Bytes
3) Adicionar a diferena entre a marcao de tempo do pacote atual e o anterior
capturado.
Adicionar uma nova coluna e escolher em field type escolher a opo custom e em field
name adicionar frame.time_delta
4) Para adicionar a diferena entre os pacotes visualizados e no capturados use a field
frame.time_delta_displayed
5) icmp.type mostra o tipo de pacote icmp 8 = echo request e 0 = echo reply

6. Grficos

Menu statistics - > Protocol Hierarchy

Mostra de forma hierrquica a cadeia de protocolos capturados, bem como a quantidade,


porcentagem e taxa de transferncia. Usado para conhecer a proporo de protocolos na
captura.
Menu statistics - > Endpoints

Mostra estatsticas de pacotes capturados entre todos os endereos envolvidos. Mostra


por protocolos, sentido da comunicao.

Menu Statistics - > Packet Lenghts ( Tamanho dos Pacotes )


Mostra a quantidade de pacotes por intervalo de tamanhos em bytes

Menu Statistics - > IO Graphs


Permite criar grficos dos pacotes capturados. possvel aplicar os mesmos filtros de
visualizao do wireshark. Os grficos podem ser exportados para formatos png, jpeg, bmp.
Limite de 5 filtros.

Menu Statistics - > Flow Graph ( grfico de fluxo )


Mostra o fluxo das conexes entre os hosts envolvidos.

7. Praticando
Protocolo HTTP
Protocolo utilizado na World Wide Web (www) para distribuio e recuperao da
informao. A forma de conversao no estilo pedido-resposta entre o cliente (browser) e o
servidor (apache, tomcat, etc)
Usa o protocolo TCP para transporte.
Toda conversao entre cliente e servidor realizada em texto plano (ASCII) atravs de
comandos simples. Atravs de mtodos os objetos podem ser acessados. GET, POST so os
mais utilizados.
GET
Solicita algum recurso como um arquivo ou um script CGI (qualquer dado que estiver
identificado pelo URI) por meio do protocolo HTTP.
POST
Envia dados para serem processados (por exemplo, dados de um formulrio HTML) para o
recurso especificado.
Filtra trfego http:
http

Filtra os dados recebidos


http.content_type
Filtra todas requisies do mtodo GET
http.request.method==GET
Filtra respostas de pginas no encontradas
http.response.code == 404

Fonte: http://www.wireshark.org/docs/dfref/h/http.html

Protocolo ICMP
ICMP utilizado para verificar se um host est ativo ou no. Um pacote ICMP no contm
porta de origem nem porta de destino porque foi projetado para comunicao entre hosts e
roteadores diretamente na camada de rede.
Cada pacote ICMP tem um tipo e cdigo. As combinaes especificam a mensagem a ser
recebida.

1) Inicie a captura no wireshark


2) Abra um terminal do linux e digite:
ping -c 4 www.google.com.br
3) Pare a captura e vamos filtrar os pacotes do tipo ICMP, digitando no filtro "icmp"
4) Analise os pacote e encontre os valores do tempo de resposta encontrado pelo
aplicativo ping.
Resposta: o tempo de resposta uma informao contida no pacote do tipo echo reply.
Filtro: icmp.type == 0
Campo Response Time(icmp.resptime)

CLI ( Command Line Interface )

1. Interfaces
1.1 Listando as interfaces de captura
tshark -D
1.
2.
3.
4.
5.

1. eth0
2. wlan0
3. nflog (Linux netfilter log (NFLOG) interface)
4. any (Pseudo-device that captures on all interfaces)
5. lo

Podemos utilizar o nome da interface ou o nmero associado a ela.


1.2 Selecionando a(s) interface(s) de captura
tshark -i eth0
tshark -i eth0 -i wlan0
tshark -i 2
1.3 Desabilitar o modo promscuo da interface
tshark -p

2. Arquivos
2.1 Lendo um arquivo de captura
tshark -r /tmp/arquivo
2.2 Salvando em um arquivo de captura
tshark -w /tmp/arquivo
obs: o arquivo deve existir.
2.3 Salvando em arquivos definindo tempo(segundos) e tamanho(kilobytes) da captura.
tshark -a duration:60 -w arquivo.pcap
tshark -a filesize:1024 -w arquivo.pcap

2.3 Salvando em um arquivo uma captura de X pacotes.


tshark -c 1000 -w arquivo.pcap

2.4 Exportando
tshark -T pdml
onde:
pdml = Exporta os detalhes do pacote capturados em formato XML.
psml = Exporta as informaes da janela de pacotes capturados em formato XML.
text = Exporta em texto plano as informaes bsicas.
fields = Exporta as colunas especificadas.
tshark -T fields -e frame.number
onde:
frame.number = nmero do frame
frame.time_relative = tempo relativo do pacote

frame.time_delta = (frame atual frame anterior , capturado .


frame.time_delta_displayed = frame atual frame anterior , mostrado no filtro/display.
frame.len = tamanho do pacote em bytes
ip.src = endereo ip de origem
ip.dst = endereo ip de destino

Imprime o cabealho da coluna


tshark -E header=y
Define um caracter separador entre as colunas
tshark -E separator=';'
onde:
/s = espao
/t = tabulao

3. Contedo dos Pacotes


3.1 Oculta os pacotes capturados na tela.
tshark -q
3.2 Mostra detalhes dos pacotes
tshark -V

4. Tempo de captura
4.1 Ajustando o timestamp dos pacotes
tshark -t ad
onde:
ad = Data e tempo absoluto da captura do pacote
a = Somente tempo absoluto da captura do pacote
r = Tempo relativo decorrido desde o primeiro pacote ( opo default)
d= Tempo transcorrido desde que o pacote anterior foi capturado
dd = Tempo transcorrido desde que o pacote anterior foi apresentado na tela
e = Diferena de tempo entre a data atual e a data 01 de janeiro de 1970 00:00:00

5. Filtros
5.1 Filtro de captura usando a sintaxe da libpcap
Dica: otimiza a captura, pois o que no satisfazer a condio do filtro no capturado e
processado.
Fonte: http://wiki.wireshark.org/CaptureFilters#CaptureFilters-1
tshark -f "filtro"
exemplos:
Captura qualquer pacotes udp que use a porta 53
1. tshark -f "udp port 53"

Captura qualquer pacote com o ip 192.168.1.1 tanto na origem como destino


1. tshark -f "host 192.168.1.1"
Captura qualquer pacote que o endereo de origem ou destino esteja na rede 192.168.0
1. tshark -f "net 192.168.0.0/24"
Captura pacotes com origem o endereo de rede especificado
1. tshark -f "src net 192.168.0.0/24"

5.2 Filtro de Leitura/Display usando a sintaxe do wireshark


Fonte: http://www.wireshark.org/docs/dfref/
tshark -R "filtro" -r arquivo.pcap
exemplos:
Filtra pacotes UDP
1. tshark -R "udp" -r arquivo.pcap
Filtra pacotes HTTP
1. tshark -R "http"
Filtra respostas HTTP 404 (pgina no encontrada)
1. tshark -R "http.response.code == 404"
Filtra respostas HTTP 200 (pgina encontrada)
1. tshark -R "http.response.code == 200"
Filtra metodos HTTP (POST e GET)
1. tshark -R "http.request.method == "POST" || http.request.method == "GET" "

Referncias Bibliogrficas
[1] http://penta2.ufrgs.br/gere96/testador/camadas.htm
[2] http://www.slideshare.net/jmmadruga/analisadores-de-protocolo-comparao-e-uso
[3] http://www.wireshark.org/docs/man-pages/wireshark-filter.html

Você também pode gostar