Introdução
No artigo passado, foi feita uma breve
introdução sobre o que vem a ser
sniffing
, mostrando a teoria que há por trás e as
potencialidades desta ferramenta (tanto para a
administração de redes como para causar o caos
nelas). Desta vez serei um pouco mais prático e falar
sobre alguns programas de
sniffing
para GNU/Linux, aproveitar para simular um ataque e, claro,
dar algumas dicas de proteção.
Programas
Como disse no artigo passado uma pesquisa rápida pela
palavra "sniffer" mostra a abundância destas ferramentas
tanto para GNU/Linux como também para outros sistemas. A
tarefa de captura de pacotes, no mundo UNIX, é
função da
BPF
(BSD Packet Filter), implementada principalmente nos BSD UNIX
e da
libpcap
, nos demais. Esta biblioteca além de independente do
sistema (leia: independente da forma com a qual o sistema
operacional se relaciona com o dispositivo da rede) é
compatível com a BPF.
Tanto ela quanto o
tcpdump
(um dos programas mais conhecidos para
sniffing
em GNU/Linux) são mantidos pelo
"The Tcpdump Group"
. Oa
tcpdump
é basicamente um programa que, como próprio nome
diz, exibe na tela (ou direciona para um arquivo) o resultado
daquilo que trafega em uma determinada interface. Sua
saída é algo como isto (só por curiosidade
isto acima é uma sessão de SSH, porta TCP 22):
22:38:48.827070 10.0.0.3.1023 > 10.0.0.1.22: F
3502340068:3502340068(0) ack 8033 57267 win 16060
<nop,nop,(452954 2426575 > (DF) [tos 0x10]
22:38:48.827203 10.0.0.1.22 > 10.0.0.3.1023: . ack 1 win
16060 >nop,nop,(2427891 452954 > (DF) [tos
0x10]
22:38:48.828988 10.0.0.1.22 > 10.0.0.3.1023: F 1:1(0)
ack 1 win 16060 >nop,nop,(2427891 452954 >
(DF) [tos 0x10]
22:38:48.829524 10.0.0.3.1023 > 10.0.0.1.22: . ack 2 win
16060 >nop,nop,(452954 2427891 > (DF) [tos
0x10]
22:38:51.253614 10.0.0.3.1022 > 10.0.0.1.22: S
3517906445:3517906445(0) win 16060 >mss
1460,sackOK,(453196[|tcp] > (DF)
22:38:51.254060 10.0.0.1.22 > 10.0.0.3.1022: S
928947415:928947415(0) ack351790 6446 win 16060 >mss
1460,sackOK,(2428133[|tcp] > (DF)
Para apenas ver o que está acontecendo na rede é
ótimo mas muitas vezes apenas ver o que está
trafegando na rede não é suficiente e a saída
de um programa como o
tcpdump
pode parecer um pouco tediosa e chata após de um tempo
de observação. Além de que tentar decodificar
o que é um pedaço de arquivo, um trecho de uma
mensagem fica bastante complicado.
Por esta razão que quando se procura por algo é
melhor usar um analisador de pacotes. Estes programas (muitas
vezes com função de sniffing embutidada) que
interpretam aquilo que foi, ou está sendo, capturado e
coloca da mais compreensível para humanos. Um analisador
que eu gosto de usar é o
ethereal
, mas existem outros (alguns comerciais) basta procurar.
Apenas estes três programas já são mais do
que suficientes para começar a fazer algumas
experiências na sua rede. Sendo assim...