SlideShare uma empresa Scribd logo
Ethernet Sniffer in
Visual Studio C#
BARRAMENTOS E PROGRAMAÇÃO DE ENTRADA E SAÍDA
PROFESSOR: IVAN MULLER
MAX JEISON PRASS
OSI – Camada de Enlace de
Dados
 Controle de Enlace Lógico (LLC)
 Networking Interface:
 Filtros de Drivers: NDIS (Network Driver Interface
Specification);
 Programação de aplicação de interface (API);
 Constitui a subcamada LLC (Controle de Acesso
Lógico);
 Representa a sub-camada superior da camada de
Ligação de Dados OSI (camada 2);
 Atua entre a sub-camada MAC (Media Access
Control), que é a sub-camada inferior da camada de
Ligação de Dados, e a camada de rede (camada 3);
Aplicação
Transporte
Protocolos Internet (TCP/IP)
Rede
Enlace
Física
HTTP, SMTP, FTP, POP3 ...
TCP, UDP, RTP ...
IP (IPv4, IPv6), ARP, RARP ...
Ethernet, WiFi, VLAN ...
Modem, USB, Bluetooth ...
Enlace
• Subcamada LLC
• Subcamada MAC
Apresentação TLS, XDR ...
Sessão NetBIOS ...
WDK – Windows Drivers Kit
 Para construção de drivers no windows é necessário o kit de desenvolvimento de
drivers da microsoft;
 Windows Development Drivers Kit (WDK ou DDK);
 Permite desenvolver, construir, implantar, testar e depurar drivers;
 USB, impressão, networking, filtros do sistema de arquivos (TODOS);
 Todos os arquivos (C e C++) necessários para geração dos drivers;
 Arquivos de exemplos;
 Utilitário para compilar;
 Utilitário para testar e depurar.
WDK – Versão atual 8.1
 Facilidade na compilação usando Visual Studio 2012 ou superior;
 Total integração com o ambiente de desenvolvimento Visual Studio (MSBuild.exe);
 Ou seja, arquivos Makefile.inc, Makefile.new e outros arquivos de compilação não
são mais usados;
 Nesta atualização:
 Microsoft Windows Assessment and Deployment Kit;
 Microsoft Windows Driver Kit
 Microsoft Windows Hardware Certification Kit
 Microsoft Windows Software Development Kit for Windows 8
WDF – Windows Driver Frameworks and
Visual Studio Projects
 Applications:
 Empty Desktop Application for Drivers
 Empty DLL for Drivers
 Empty Static Library for Drivers
 Package : Driver Install Package
 Applications : Desktop, DLL, Library
 Print : Driver V4, XPS Render Filter
 Storage : Filter Driver : Filesystem Mini-filter
 Tests : WDTF Simple I/O Action Plug-in, Windows Driver Test in C++
 USB : KMDF, UMDF, Win USB Application
 WDF : KMDF and UMDF Templates
WDF – Windows Driver Frameworks and
Visual Studio Projects
 Networking : NDIS – Network Driver Interface Specification
 É uma biblioteca de funções que oculta a complexidade de hardware da Placa de rede
(NICs);
 Serve como interface padrão para drivers de protocolo de rede, nível 3, e controladores
de nível MAC.
 Outra LLC é a Open Data-Link Interface (ODI).
WDK – Windows Driver Kit Samples
 Audio Processing Objects Driver Sample
 Bluetooth Serial HCI Bus Driver
 CDROM Storage Class Driver
 Driver Install Frameworks API (DIFxAPI) Sample
 Generic Text-Only Driver
 HID client sample driver
 Keyboard Input WDF Filter Driver (Kbfiltr)
 KMDF filter driver for a HID device
 NDIS 6.0 Filter Driver (ESTE PODERIA TER USADO)
 RAMDisk Storage Driver
 E vários outros....
C# - System.Net.Sockets;
 Surpresa!!! Socket é um API;
 Ser um socket puro, da família de endereços do tipo “redes” e protocolo “IP”;
 Como usar essa classe para sniffer:
 Estanciar ela com os parâmetros acima (Raw, InterNetWork, IP);
 Chamar o método Bind;
 Configurações através do método “SetSocketOption” :
 SocketOptionLevel : IP, IPV6, Socket, Tcp, Udp;
 SocketOptionName : HeaderIncluded, MulticastInterface, e outros vários;
 True ou False.
 IOControl :
 ReceiveAll, ReceiveAllMulticast, entre outros;
 BeginReceive :
 Passado a variável byte[4096];
 Método de recebimento Assincrono;
TCP/IP - Packets
 Pacote IP:
 VERSION (4 bits) - Informa a versão do protocolo IP sendo carregado. Atualmente a versão de IP é 4;
 HEADER LENGTH (4 Bytes) - Informa o tamanho do header IP em grupos de 4 bytes;
 TYPE OF SERVICE (1 Byte)- Informa como o pacote deve ser tratado, de acordo com sua prioridade e o tipo de serviço desejado como Baixo
Retardo, Alta Capacidade de Banda ou Alta Confiablilidade. Normalmente este campo não é utilizado na Internet;
 TOTAL LENGTH (2 Bytes) – Informa o tamanho total do pacote IP;
 IDENTIFICATION (2 Bytes) - Identifica o pacote IP unicamente entre os outros transmitidos pela máquina. Este campo é usado para identificar o
pacote IP no caso de haver fragmentação em múltiplos datagramas;
 FLAGS (3 bits) - um bit (MF - More Fragments) identifica se este datagrama é o último fragmento de um pacote IP ou se existem mais. Outro bit (DNF
- Do Not Fragment) informa aos roteadores no caminho se a aplicação exige que os pacotes não sejam fragmentados;
 FRAGMENT OFFSET (13 bits) - Informa o posicionamento do fragmento em relação ao pacote IP do qual faz parte;
 TIME-TO-LIVE (1 Byte) - Este valor é decrementado a cada 1 segundo que o pacote passa na rede e a cada roteador pelo qual ele passa. Serve
para limitar a duração do pacote IP e evitar que um pacote seja roteador eternamente na Internet como resultado de um loop de roteamento;
 PROTOCOL (1 Byte) - Informa que protocolo de mais alto-nível está sendo carregado no campo de dados. O IP pode carregar mensagens UDP,
TCP, ICMP, e várias outras;
 HEADER CHECKSUM (2 Bytes) - Valor que ajuda a garantir a integridade do cabeçalho do pacote IP;
 SOURCE ADDRESS (4 Bytes) - Endereço IP da máquina origem do pacote IP;
 DESTINATION ADDRESS (4 Bytes) - Endereço IP da máquina destino do pacote IP; (Alcança mais de 4 BILHÕES de endereços);
 OPTIONS (N Bytes)- Opções com informações adicionais para o protocolo IP. Consiste de um byte com a identificação da opção e uma
quantidade de bytes variável com as informações específicas. Um pacote IP pode transportar várias opções simultaneamente.
O que aprendi?
 Que para Sniffer nível Enlace é necessário driver para conseguir fazer;
 Que Socket é uma API nível de rede (IP);
 Que desenvolver driver é difícil paaaaakkkkkkass!!!!
 Mas legal! 
 2 livros pra ler:
 Windows Internals;
 Programming the Microsoft Windows Driver Model.
 Que é assim que se faz Engenharia reversa (KMDK e UMDK);
 Que para depurar drivers no windows... (Cataclash!!!!)
 Obs.: Me barraram!
 Mas... com a classe Socket, tudo pronto, Socket Raw uma beleza!!!
 Pude filtrar os pacotes recebidos e enviados na rede local, inclusive WiFi;
 Mas, não sei se poderia retransmitir os pacotes!!! (TESTAR)
Fontes de pesquisa:
 C/C++ : http://www.codeproject.com/Articles/17031/A-Network-Sniffer-in-C
 C# : http://www.codeproject.com/Articles/5292/Raw-Ethernet-Packet-
Sending
http://www.codeproject.com/Articles/17031/A-Network-Sniffer-in-C
 Link do projeto : https://bitbucket.org/jeisonmp/packet_sniffer
 Blog dev microsoft : http://www.1bit.com.br
 WDK Microsoft : https://msdn.microsoft.com/en-
us/library/windows/hardware/ff557573(v=vs.85).aspx
 Protocolos Visão Geral : https://pt.wikipedia.org/wiki/Modelo_OSI
 Camada de Enlace : https://pt.wikipedia.org/wiki/Camada_de_enlace_de_dados
 Camada de transporte : http://optclean.com.br/como-funciona-uma-rede-parte-4-ethernet-e-
pacotes/
 Protocolos Especificações : http://www.abusar.org.br/tcp-ip2.html

Mais conteúdo relacionado

PDF
Modelo osi
PPT
13 ligações inter-redes
PPT
TcpiP redes internas externas
PPTX
[Antero Jesus] Principais Protocolos de Rede
PPT
PDF
Protocolos de Rede para Internet das Coisas
PPT
Protocolos de Redes
Modelo osi
13 ligações inter-redes
TcpiP redes internas externas
[Antero Jesus] Principais Protocolos de Rede
Protocolos de Rede para Internet das Coisas
Protocolos de Redes

Mais procurados (20)

ODP
FISL7 - Padrões Abertos e Software Livre para Vídeoconferência
ODP
Redes Avançadas - 2.IPv6
PPTX
Protocolos de aplicação
PPT
Multimídia: Protocolos de transmissão de áudio e vídeo
PDF
Redes de computadores 2 - Protocolos
PPTX
Redes de computadores
PPTX
Aula1 protocolos
PPT
Redes De Computadores Internet
PPTX
Protocolos
PPTX
Protocolos
PPTX
Serviços e protocolos
PDF
Artigo IPv6
PPTX
PPT
Conceitos associado às redes
PPTX
Principais protocolos da internet
PPTX
Aula2 protocolos
PDF
Protocolo IPv6
PPTX
Diferenças entre IPV4 e IPV6
PDF
Artigo ipv6
PDF
Samba, Squid, FTP, DHCP3
FISL7 - Padrões Abertos e Software Livre para Vídeoconferência
Redes Avançadas - 2.IPv6
Protocolos de aplicação
Multimídia: Protocolos de transmissão de áudio e vídeo
Redes de computadores 2 - Protocolos
Redes de computadores
Aula1 protocolos
Redes De Computadores Internet
Protocolos
Protocolos
Serviços e protocolos
Artigo IPv6
Conceitos associado às redes
Principais protocolos da internet
Aula2 protocolos
Protocolo IPv6
Diferenças entre IPV4 e IPV6
Artigo ipv6
Samba, Squid, FTP, DHCP3
Anúncio

Semelhante a Conceito Ethernet Sniffer em Visual Studio C# (20)

ODP
Redes I -7.Introdução ao TCP/IP
ODP
Redes de computadores II - 1.Arquitetura TCP/IP
PPTX
Configuração de Drivers
PDF
Redes - Camada de Inter-Redes
PPTX
Apresentação - IT Specialist
PPT
Arquitetura TCP/IP - 02 Camadas (Rede e Transporte)
PDF
PPT
S2 B 2007 Infra Aula 01 V1.00
PPT
Curso de redes_cisco
PDF
PPTX
Acesso a área de trabalho remota
PDF
Modelos TCP/IP e OSI para CCNA
PPTX
Gestão de Redes de Computadores e Serviços.pptx
PDF
Referencia de redes.pdf
PPT
Protocolos 2ªversão
PPT
Protocolos OSI/TCP-IP
PDF
Aula 6 infraestrutura - 04022012
PDF
Modelo osi
DOC
Apostila sobre montagem de redes
PPT
Mini curso redes_computadores
Redes I -7.Introdução ao TCP/IP
Redes de computadores II - 1.Arquitetura TCP/IP
Configuração de Drivers
Redes - Camada de Inter-Redes
Apresentação - IT Specialist
Arquitetura TCP/IP - 02 Camadas (Rede e Transporte)
S2 B 2007 Infra Aula 01 V1.00
Curso de redes_cisco
Acesso a área de trabalho remota
Modelos TCP/IP e OSI para CCNA
Gestão de Redes de Computadores e Serviços.pptx
Referencia de redes.pdf
Protocolos 2ªversão
Protocolos OSI/TCP-IP
Aula 6 infraestrutura - 04022012
Modelo osi
Apostila sobre montagem de redes
Mini curso redes_computadores
Anúncio

Último (7)

PPTX
Curso de Windows 11 resumido na prática.pptx
DOC
COMO AUTOMATIZR JOGOS SUPER NINTENDO ATRAVES DA PROGRAMAÇÃO
DOC
CODIGO PARA AUTOMATIZAR A JOGABILIDADE SUPER MARIO
PDF
Evolução em código: algoritmos genéticos com PHP
PPTX
Mapeamento de Objeto para Tabela Relacional
PDF
Dos requisitos ao código: como criar código rastreável em PHP
PDF
apresentacao introducao computacao ead.pdf
Curso de Windows 11 resumido na prática.pptx
COMO AUTOMATIZR JOGOS SUPER NINTENDO ATRAVES DA PROGRAMAÇÃO
CODIGO PARA AUTOMATIZAR A JOGABILIDADE SUPER MARIO
Evolução em código: algoritmos genéticos com PHP
Mapeamento de Objeto para Tabela Relacional
Dos requisitos ao código: como criar código rastreável em PHP
apresentacao introducao computacao ead.pdf

Conceito Ethernet Sniffer em Visual Studio C#

  • 1. Ethernet Sniffer in Visual Studio C# BARRAMENTOS E PROGRAMAÇÃO DE ENTRADA E SAÍDA PROFESSOR: IVAN MULLER MAX JEISON PRASS
  • 2. OSI – Camada de Enlace de Dados  Controle de Enlace Lógico (LLC)  Networking Interface:  Filtros de Drivers: NDIS (Network Driver Interface Specification);  Programação de aplicação de interface (API);  Constitui a subcamada LLC (Controle de Acesso Lógico);  Representa a sub-camada superior da camada de Ligação de Dados OSI (camada 2);  Atua entre a sub-camada MAC (Media Access Control), que é a sub-camada inferior da camada de Ligação de Dados, e a camada de rede (camada 3); Aplicação Transporte Protocolos Internet (TCP/IP) Rede Enlace Física HTTP, SMTP, FTP, POP3 ... TCP, UDP, RTP ... IP (IPv4, IPv6), ARP, RARP ... Ethernet, WiFi, VLAN ... Modem, USB, Bluetooth ... Enlace • Subcamada LLC • Subcamada MAC Apresentação TLS, XDR ... Sessão NetBIOS ...
  • 3. WDK – Windows Drivers Kit  Para construção de drivers no windows é necessário o kit de desenvolvimento de drivers da microsoft;  Windows Development Drivers Kit (WDK ou DDK);  Permite desenvolver, construir, implantar, testar e depurar drivers;  USB, impressão, networking, filtros do sistema de arquivos (TODOS);  Todos os arquivos (C e C++) necessários para geração dos drivers;  Arquivos de exemplos;  Utilitário para compilar;  Utilitário para testar e depurar.
  • 4. WDK – Versão atual 8.1  Facilidade na compilação usando Visual Studio 2012 ou superior;  Total integração com o ambiente de desenvolvimento Visual Studio (MSBuild.exe);  Ou seja, arquivos Makefile.inc, Makefile.new e outros arquivos de compilação não são mais usados;  Nesta atualização:  Microsoft Windows Assessment and Deployment Kit;  Microsoft Windows Driver Kit  Microsoft Windows Hardware Certification Kit  Microsoft Windows Software Development Kit for Windows 8
  • 5. WDF – Windows Driver Frameworks and Visual Studio Projects  Applications:  Empty Desktop Application for Drivers  Empty DLL for Drivers  Empty Static Library for Drivers  Package : Driver Install Package  Applications : Desktop, DLL, Library  Print : Driver V4, XPS Render Filter  Storage : Filter Driver : Filesystem Mini-filter  Tests : WDTF Simple I/O Action Plug-in, Windows Driver Test in C++  USB : KMDF, UMDF, Win USB Application  WDF : KMDF and UMDF Templates
  • 6. WDF – Windows Driver Frameworks and Visual Studio Projects  Networking : NDIS – Network Driver Interface Specification  É uma biblioteca de funções que oculta a complexidade de hardware da Placa de rede (NICs);  Serve como interface padrão para drivers de protocolo de rede, nível 3, e controladores de nível MAC.  Outra LLC é a Open Data-Link Interface (ODI).
  • 7. WDK – Windows Driver Kit Samples  Audio Processing Objects Driver Sample  Bluetooth Serial HCI Bus Driver  CDROM Storage Class Driver  Driver Install Frameworks API (DIFxAPI) Sample  Generic Text-Only Driver  HID client sample driver  Keyboard Input WDF Filter Driver (Kbfiltr)  KMDF filter driver for a HID device  NDIS 6.0 Filter Driver (ESTE PODERIA TER USADO)  RAMDisk Storage Driver  E vários outros....
  • 8. C# - System.Net.Sockets;  Surpresa!!! Socket é um API;  Ser um socket puro, da família de endereços do tipo “redes” e protocolo “IP”;  Como usar essa classe para sniffer:  Estanciar ela com os parâmetros acima (Raw, InterNetWork, IP);  Chamar o método Bind;  Configurações através do método “SetSocketOption” :  SocketOptionLevel : IP, IPV6, Socket, Tcp, Udp;  SocketOptionName : HeaderIncluded, MulticastInterface, e outros vários;  True ou False.  IOControl :  ReceiveAll, ReceiveAllMulticast, entre outros;  BeginReceive :  Passado a variável byte[4096];  Método de recebimento Assincrono;
  • 9. TCP/IP - Packets  Pacote IP:  VERSION (4 bits) - Informa a versão do protocolo IP sendo carregado. Atualmente a versão de IP é 4;  HEADER LENGTH (4 Bytes) - Informa o tamanho do header IP em grupos de 4 bytes;  TYPE OF SERVICE (1 Byte)- Informa como o pacote deve ser tratado, de acordo com sua prioridade e o tipo de serviço desejado como Baixo Retardo, Alta Capacidade de Banda ou Alta Confiablilidade. Normalmente este campo não é utilizado na Internet;  TOTAL LENGTH (2 Bytes) – Informa o tamanho total do pacote IP;  IDENTIFICATION (2 Bytes) - Identifica o pacote IP unicamente entre os outros transmitidos pela máquina. Este campo é usado para identificar o pacote IP no caso de haver fragmentação em múltiplos datagramas;  FLAGS (3 bits) - um bit (MF - More Fragments) identifica se este datagrama é o último fragmento de um pacote IP ou se existem mais. Outro bit (DNF - Do Not Fragment) informa aos roteadores no caminho se a aplicação exige que os pacotes não sejam fragmentados;  FRAGMENT OFFSET (13 bits) - Informa o posicionamento do fragmento em relação ao pacote IP do qual faz parte;  TIME-TO-LIVE (1 Byte) - Este valor é decrementado a cada 1 segundo que o pacote passa na rede e a cada roteador pelo qual ele passa. Serve para limitar a duração do pacote IP e evitar que um pacote seja roteador eternamente na Internet como resultado de um loop de roteamento;  PROTOCOL (1 Byte) - Informa que protocolo de mais alto-nível está sendo carregado no campo de dados. O IP pode carregar mensagens UDP, TCP, ICMP, e várias outras;  HEADER CHECKSUM (2 Bytes) - Valor que ajuda a garantir a integridade do cabeçalho do pacote IP;  SOURCE ADDRESS (4 Bytes) - Endereço IP da máquina origem do pacote IP;  DESTINATION ADDRESS (4 Bytes) - Endereço IP da máquina destino do pacote IP; (Alcança mais de 4 BILHÕES de endereços);  OPTIONS (N Bytes)- Opções com informações adicionais para o protocolo IP. Consiste de um byte com a identificação da opção e uma quantidade de bytes variável com as informações específicas. Um pacote IP pode transportar várias opções simultaneamente.
  • 10. O que aprendi?  Que para Sniffer nível Enlace é necessário driver para conseguir fazer;  Que Socket é uma API nível de rede (IP);  Que desenvolver driver é difícil paaaaakkkkkkass!!!!  Mas legal!   2 livros pra ler:  Windows Internals;  Programming the Microsoft Windows Driver Model.  Que é assim que se faz Engenharia reversa (KMDK e UMDK);  Que para depurar drivers no windows... (Cataclash!!!!)  Obs.: Me barraram!  Mas... com a classe Socket, tudo pronto, Socket Raw uma beleza!!!  Pude filtrar os pacotes recebidos e enviados na rede local, inclusive WiFi;  Mas, não sei se poderia retransmitir os pacotes!!! (TESTAR)
  • 11. Fontes de pesquisa:  C/C++ : http://www.codeproject.com/Articles/17031/A-Network-Sniffer-in-C  C# : http://www.codeproject.com/Articles/5292/Raw-Ethernet-Packet- Sending http://www.codeproject.com/Articles/17031/A-Network-Sniffer-in-C  Link do projeto : https://bitbucket.org/jeisonmp/packet_sniffer  Blog dev microsoft : http://www.1bit.com.br  WDK Microsoft : https://msdn.microsoft.com/en- us/library/windows/hardware/ff557573(v=vs.85).aspx  Protocolos Visão Geral : https://pt.wikipedia.org/wiki/Modelo_OSI  Camada de Enlace : https://pt.wikipedia.org/wiki/Camada_de_enlace_de_dados  Camada de transporte : http://optclean.com.br/como-funciona-uma-rede-parte-4-ethernet-e- pacotes/  Protocolos Especificações : http://www.abusar.org.br/tcp-ip2.html