Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Agenda
Introduo Libpcap Network Tools Process Sniffer
Introduo
Como as redes transferem informao de um host
para outro?
Para que capturar pacotes? IDS Gerenciamento de redes Traffic Shapping
Libpcap
Introduo
O que ? Biblioteca em C para captura de pacotes Pode ser usada para... Manipular, capturar e injetar pacotes em uma rede Abstrai funes de baixo nvel dos SOs
Como Instalar
Linux http://www.tcpdump.org/release/libpcap-1.1.1.tar.gz Windows http://www.winpcap.org/install/default.htm Winpcap e Visual Studio 2008 http://geekswithblogs.net/dotnetnomad/archive/2008/01/30 /119088.aspx
O que incluir?
Geralmente esses headers
#include<netinet/in.h> #include <pcap.h> #include <netinet/ip.h> #include <stdio.h> #include <netinet/tcp.h> #include <stdlib.h> #include <arpa/inet.h> #include <sys/socket.h> #include<netinet/if_ether.h>
For Windows:
#include <winsock.h>
Capturando um pacote
packet = pcap_next(descr, &hdr); if ( packet == NULL ) { printf(Perdeu o pacote!\n"); exit(1); } else printf(capturou um pacote.\n); return 0; } //end main
Problemas???
Material
Tutoriais http://www.tcpdump.org/pcap.html http://yuba.stanford.edu/~casado/pcap/section1.html
Network Tools
Introduo
Biblioteca que contm Um prottipo de wrapper OO para a Libpcap Programas para anlise de trfego
Redes ethernet e 3G
Prottipo de Sniffer para captura de pacotes de um processo Prottipo de Sniffer que marca os pacotes com a aplicao que os gerou
As classes wrapper funcionam para windows e linux A maioria dos programas podem ser compilados no
Dicas
Para Iniciar a Utilizao do Wrapper Sugiro comear do DumpTrunc Limitaes Nem todas as operaes em cima de um pacote esto implementadas A classe PacketInputStream abre somente arquivos
Download
http://dl.dropbox.com/u/1646991/Tools.rar Obs.: Fez alguma melhoria??? Mande o novo cdigo para
rta@cin.ufpe.br
ProcessSniffer
Introduo
Idia principal Capturar pacotes gerados por um determinado processo Como fazer? O SO mantm a lista de todas conexes e os respectivos PIDs
No windows IP_HELPER API Cada pacote contm as seguintes informaes IP Src, IP Dst, Port Src, Port Dst Ento podemos casar com as seguintes informaes sobre conexes abertas no windows IP Src, IP Dst, Port Src, Port Dst, PID
Funcionamento Geral
A cada pacote capturado Verifica-se se ele UDP ou TCP Caso seja UDP
Vare-se a lista de conexes UDP Verifica-se se alguma entrada casa com os seguintes campos
IP Src, IP Dst, Port Src, Port Dst, PID
Vare-se a lista de conexes TCP Verifica-se se alguma entrada casa com os seguintes campos
IP Src, IP Dst, Port Src, Port Dst, PID
Detalhes de Implementao
Funo para obter as conexes TCP AllocateAndGetTcpExTableFromStack Funo para obter as conexes UDP AllocateAndGetUdpExTableFromStack Ambos so funes da iphlpapi.dll
Problemas
Mas se j temos o process sniffer, pra que
Captura de Pacotes
RAFAEL ANTONELLO