Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
pyshark — Wrapper Python para tshark, permitindo análise de pacotes Python usando os dissecadores do Wireshark. | Kitploit
Ferramentas/GitHubGitHub/kiminewt/pyshark
Sniffing e Análise de PacotesAuditoria de Wi-FiFerramentas de Criptografia/DescriptografiaForensia de RedeAnálise ForenseSegurança de RedeSegurança Sem FioForensia Digital
GitHubkiminewt/pyshark

pyshark

Wrapper Python para tshark, permitindo análise de pacotes Python usando os dissecadores do Wireshark.

Ver Repositório
2.5k4528há 5 mesesRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

pyshark

Wrapper Python para tshark, permitindo análise de pacotes Python usando os dissecadores do wireshark.

Documentação estendida: http://kiminewt.github.io/pyshark

Procurando por contribuidores – por várias razões, estou com dificuldades para encontrar tempo para manter e aprimorar o pacote no momento. Todos os pull-requests serão revisados e, se alguém tiver interesse e for adequado, ficarei feliz em incluí-lo no projeto. Sinta-se à vontade para me enviar um e-mail para dorgreen1 at gmail.

Existem vários módulos de análise de pacotes Python; este é diferente porque na verdade não analisa nenhum pacote, apenas utiliza a capacidade do tshark (utilitário de linha de comando do wireshark) de exportar XMLs para usar sua análise.

Este pacote permite a análise a partir de um arquivo de captura ou de uma captura ao vivo, usando todos os dissecadores wireshark que você tiver instalados. Testado no Windows/Linux.

Instalação

Suporte de versão

Python 3.7+ é suportado. Uma versão Python 2 não suportada existe como pyshark-legacy.

Suporta todas as versões modernas do tshark/wireshark, mas certos recursos podem não estar disponíveis em versões mais antigas.

Todas as plataformas

Simplesmente execute o seguinte para instalar a versão mais recente do pypi

root@kitploit:~
pip install pyshark

Ou instale a partir do repositório git:

root@kitploit:~
git clone https://github.com/KimiNewt/pyshark.git
cd pyshark/src
python setup.py install

Mac OS X

Talvez seja necessário instalar o libxml, o que pode ser inesperado. Se você receber um erro do clang ou uma mensagem de erro sobre o libxml, execute o seguinte:

root@kitploit:~
xcode-select --install
pip install libxml

Provavelmente você terá que aceitar um EULA do XCode, então esteja pronto para clicar em um diálogo "Aceitar" na GUI.

Uso

Lendo de um arquivo de captura:

root@kitploit:~
>>> import pyshark
>>> cap = pyshark.FileCapture('/tmp/mycapture.cap')
>>> cap
<FileCapture /tmp/mycapture.cap (589 packets)>
>>> print cap[0]
Packet (Length: 698)
Layer ETH:
        Destination: BLANKED
        Source: BLANKED
        Type: IP (0x0800)
Layer IP:
        Version: 4
        Header Length: 20 bytes
        Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00: Not-ECT (Not ECN-Capable Transport))
        Total Length: 684
        Identification: 0x254f (9551)
        Flags: 0x00
        Fragment offset: 0
        Time to live: 1
        Protocol: UDP (17)
        Header checksum: 0xe148 [correct]
        Source: BLANKED
        Destination: BLANKED
  ...

Outras opções

  • param keep_packets: Se deve manter os pacotes após lê-los via next(). Usado para economizar memória ao ler capturas grandes.
  • param input_file: Um caminho ou um objeto semelhante a arquivo contendo um arquivo de captura de pacotes (PCAP, PCAP-NG..) ou um xml do TShark.
  • param display_filter: Um filtro de exibição (wireshark) para aplicar na captura antes de lê-la.
  • param only_summaries: Produzir apenas resumos de pacotes, muito mais rápido, mas inclui muito pouca informação.
  • param disable_protocol: Desabilitar a detecção de um protocolo (tshark > versão 2)
  • param decryption_key: Chave usada para criptografar e descriptografar o tráfego capturado.
  • param encryption_type: Padrão de criptografia usado no tráfego capturado (deve ser 'WEP', 'WPA-PWD' ou 'WPA-PWK'. O padrão é WPA-PWK).
  • param tshark_path: Caminho do binário tshark

Lendo de uma interface ao vivo:

root@kitploit:~
>>> capture = pyshark.LiveCapture(interface='eth0')
>>> capture.sniff(timeout=50)
>>> capture
<LiveCapture (5 packets)>
>>> capture[3]
<UDP/HTTP Packet>

for packet in capture.sniff_continuously(packet_count=5):
    print('Just arrived:', packet)

Outras opções

  • param interface: Nome da interface para capturar. Se não for informado, assume a primeira disponível.
  • param bpf_filter: Filtro BPF a ser usado nos pacotes.
  • param display_filter: Filtro de exibição (wireshark) a ser usado.
  • param only_summaries: Produzir apenas resumos de pacotes, muito mais rápido, mas inclui muito pouca informação.
  • param disable_protocol: Desabilitar a detecção de um protocolo (tshark > versão 2)
  • param decryption_key: Chave usada para criptografar e descriptografar o tráfego capturado.
  • param encryption_type: Padrão de criptografia usado no tráfego capturado (deve ser 'WEP', 'WPA-PWD' ou 'WPA-PWK'. O padrão é WPA-PWK).
  • param tshark_path: Caminho do binário tshark
  • param output_file: Além disso, salvar os pacotes capturados neste arquivo.

Lendo de uma interface ao vivo usando um buffer circular

root@kitploit:~
>>> capture = pyshark.LiveRingCapture(interface='eth0')
>>> capture.sniff(timeout=50)
>>> capture
<LiveCapture (5 packets)>
>>> capture[3]
<UDP/HTTP Packet>

for packet in capture.sniff_continuously(packet_count=5):
    print('Just arrived:', packet)

Outras opções

  • param ring_file_size: Tamanho do arquivo circular em kB, o padrão é 1024
  • param num_ring_files: Número de arquivos circulares a serem mantidos, o padrão é 1
  • param ring_file_name: Nome do arquivo circular, o padrão é /tmp/pyshark.pcap
  • param interface: Nome da interface para capturar. Se não for informado, assume a primeira disponível.
  • param bpf_filter: Filtro BPF a ser usado nos pacotes.
  • param display_filter: Filtro de exibição (wireshark) a ser usado.
  • param only_summaries: Produzir apenas resumos de pacotes, muito mais rápido, mas inclui muito pouca informação.
  • param disable_protocol: Desabilitar a detecção de um protocolo (tshark > versão 2)
  • param decryption_key: Chave usada para criptografar e descriptografar o tráfego capturado.
  • param encryption_type: Padrão de criptografia usado no tráfego capturado (deve ser 'WEP', 'WPA-PWD' ou 'WPA-PWK'. O padrão é WPA-PWK).
  • param tshark_path: Caminho do binário tshark
  • param output_file: Além disso, salvar os pacotes capturados neste arquivo.

Lendo de uma interface remota ao vivo:

root@kitploit:~
>>> capture = pyshark.RemoteCapture('192.168.1.101', 'eth0')
>>> capture.sniff(timeout=50)
>>> capture

Outras opções

  • param remote_host: O host remoto para capturar (IP ou nome do host). Deve estar executando rpcapd.
  • param remote_interface: A interface remota na máquina remota para capturar. Observe que no Windows não é o nome de exibição do dispositivo, mas o nome real da interface (ou seja, \Device\NPF_..).
  • param remote_port: A porta remota na qual o serviço rpcapd está ouvindo.
  • param bpf_filter: Um filtro BPF (tcpdump) para aplicar na captura antes da leitura.
  • param only_summaries: Produzir apenas resumos de pacotes, muito mais rápido, mas inclui muito pouca informação.
  • param disable_protocol: Desabilitar a detecção de um protocolo (tshark > versão 2)
  • param decryption_key: Chave usada para criptografar e descriptografar o tráfego capturado.
  • param encryption_type: Padrão de criptografia usado no tráfego capturado (deve ser 'WEP', 'WPA-PWD' ou 'WPA-PWK'. O padrão é WPA-PWK).
  • param tshark_path: Caminho do binário tshark

Acessando dados do pacote:

Os dados podem ser acessados de várias maneiras. Os pacotes são divididos em camadas; primeiro você precisa alcançar a camada apropriada e então pode selecionar seu campo.

Todos os seguintes funcionam:

root@kitploit:~
>>> packet['ip'].dst
192.168.0.1
>>> packet.ip.src
192.168.0.100
>>> packet[2].src
192.168.0.100

Para testar se uma camada está em um pacote, você pode usar seu nome:

root@kitploit:~
>>> 'IP' in packet
True

Para ver todos os nomes de campos possíveis, use o atributo packet.layer.field_names (ou seja, packet.ip.field_names) ou a função de preenchimento automático no seu interpretador.

Você também pode obter os dados binários originais de um campo ou uma descrição bonita dele:

root@kitploit:~
>>> p.ip.addr.showname
Source or Destination Address: 10.0.0.10 (10.0.0.10)
# E também alguns novos atributos:
>>> p.ip.addr.int_value
167772170
>>> p.ip.addr.binary_value
b'\n\x00\x00\n'

Descriptografando capturas de pacotes

Pyshark suporta descriptografia automática de rastros usando os padrões WEP, WPA-PWD e WPA-PSK (WPA-PWD é o padrão).

root@kitploit:~
>>> cap1 = pyshark.FileCapture('/tmp/capture1.cap', decryption_key='password')
>>> cap2 = pyshark.LiveCapture(interface='wi0', decryption_key='password', encryption_type='wpa-psk')

Uma tupla dos padrões de criptografia suportados, SUPPORTED_ENCRYPTION_STANDARDS, existe em cada classe de captura.

root@kitploit:~
>>> pyshark.FileCapture.SUPPORTED_ENCRYPTION_STANDARDS
('wep', 'wpa-pwd', 'wpa-psk')
>>> pyshark.LiveCapture.SUPPORTED_ENCRYPTION_STANDARDS
('wep', 'wpa-pwd', 'wpa-psk')

Lendo de um arquivo usando um filtro de exibição

Os filtros de exibição do Pyshark podem ser úteis na análise de tráfego focado em aplicações. Filtros BPF não oferecem tanta flexibilidade quanto os filtros de exibição do Wireshark.

root@kitploit:~
>>> cap1 = pyshark.FileCapture('/tmp/capture1.cap', display_filter="dns")
>>> cap2 = pyshark.LiveCapture(interface='en0', display_filter="tcp.analysis.retransmission")

Licença

Este projeto está licenciado sob MIT. As contribuições para este projeto são aceitas sob a mesma licença.

Baixar ferramenta