Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
pyshark — Wrapper de Python para tshark, permitiendo el análisis de paquetes en Python usando los disectores de Wireshark | Kitploit
Herramientas/GitHubGitHub/kiminewt/pyshark
Sniffing y Análisis de PaquetesAuditoría Wi-FiHerramientas de Cifrado/DescifradoForensia de RedAnálisis ForenseSeguridad de RedesSeguridad InalámbricaForensia Digital
GitHubkiminewt/pyshark

pyshark

Wrapper de Python para tshark, permitiendo el análisis de paquetes en Python usando los disectores de Wireshark

Ver Repositorio
2.5k4528hace 5 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

pyshark

Envoltorio de Python para tshark, que permite el análisis de paquetes en Python utilizando los disectores de Wireshark.

Documentación extendida: http://kiminewt.github.io/pyshark

Buscando contribuyentes - por varias razones me resulta difícil encontrar tiempo para mantener y mejorar el paquete en este momento. Cualquier pull-request será revisado y si alguien está interesado y es adecuado, estaré encantado de incluirlo en el proyecto. No dudes en enviarme un correo a dorgreen1 at gmail.

Existen bastantes módulos de análisis de paquetes en Python, este es diferente porque en realidad no analiza ningún paquete, simplemente utiliza la capacidad de tshark (la utilidad de línea de comandos de Wireshark) para exportar XMLs y usar su análisis.

Este paquete permite analizar desde un archivo de captura o una captura en vivo, utilizando todos los disectores de Wireshark que tengas instalados. Probado en Windows/Linux.

Installation

Soporte de versiones

Se admite Python 3.7+. Existe una versión no soportada de Python 2 como pyshark-legacy.

Admite todas las versiones modernas de tshark/Wireshark, pero ciertas funciones pueden no estar disponibles en versiones antiguas.

Todas las plataformas

Simplemente ejecuta lo siguiente para instalar la última versión desde pypi

root@kitploit:~
pip install pyshark

O instala desde el repositorio de git:

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

Mac OS X

Puede que necesites instalar libxml, lo cual puede ser inesperado. Si recibes un error de clang o un mensaje de error sobre libxml, ejecuta lo siguiente:

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

Probablemente tengas que aceptar un EULA de XCode, así que prepárate para hacer clic en un diálogo de "Aceptar" en la GUI.

Uso

Lectura desde un archivo 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
  ...

Otras opciones

  • param keep_packets: Si mantener los paquetes después de leerlos mediante next(). Se usa para conservar memoria al leer capturas grandes.
  • param input_file: Una ruta o un objeto similar a un archivo que contenga un archivo de captura de paquetes (PCAP, PCAP-NG..) o un xml de TShark.
  • param display_filter: Un filtro de visualización (Wireshark) para aplicar sobre la captura antes de leerla.
  • param only_summaries: Solo producir resúmenes de paquetes, mucho más rápido pero incluye muy poca información.
  • param disable_protocol: Deshabilitar la detección de un protocolo (tshark > versión 2).
  • param decryption_key: Clave utilizada para cifrar y descifrar el tráfico capturado.
  • param encryption_type: Estándar de cifrado utilizado en el tráfico capturado (debe ser 'WEP', 'WPA-PWD' o 'WPA-PWK'. El valor predeterminado es WPA-PWK).
  • param tshark_path: Ruta del binario de tshark.

Lectura desde una interfaz en 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)

Otras opciones

  • param interface: Nombre de la interfaz a escuchar. Si no se especifica, toma la primera disponible.
  • param bpf_filter: Filtro BPF a usar en los paquetes.
  • param display_filter: Filtro de visualización (Wireshark) a usar.
  • param only_summaries: Solo producir resúmenes de paquetes, mucho más rápido pero incluye muy poca información.
  • param disable_protocol: Deshabilitar la detección de un protocolo (tshark > versión 2).
  • param decryption_key: Clave utilizada para cifrar y descifrar el tráfico capturado.
  • param encryption_type: Estándar de cifrado utilizado en el tráfico capturado (debe ser 'WEP', 'WPA-PWD' o 'WPA-PWK'. El valor predeterminado es WPA-PWK).
  • param tshark_path: Ruta del binario de tshark.
  • param output_file: Además, guardar los paquetes capturados en este archivo.

Lectura desde una interfaz en vivo usando un búfer 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)

Otras opciones

  • param ring_file_size: Tamaño del archivo circular en kB, el valor predeterminado es 1024.
  • param num_ring_files: Número de archivos circulares a mantener, el valor predeterminado es 1.
  • param ring_file_name: Nombre del archivo circular, el valor predeterminado es /tmp/pyshark.pcap.
  • param interface: Nombre de la interfaz a escuchar. Si no se especifica, toma la primera disponible.
  • param bpf_filter: Filtro BPF a usar en los paquetes.
  • param display_filter: Filtro de visualización (Wireshark) a usar.
  • param only_summaries: Solo producir resúmenes de paquetes, mucho más rápido pero incluye muy poca información.
  • param disable_protocol: Deshabilitar la detección de un protocolo (tshark > versión 2).
  • param decryption_key: Clave utilizada para cifrar y descifrar el tráfico capturado.
  • param encryption_type: Estándar de cifrado utilizado en el tráfico capturado (debe ser 'WEP', 'WPA-PWD' o 'WPA-PWK'. El valor predeterminado es WPA-PWK).
  • param tshark_path: Ruta del binario de tshark.
  • param output_file: Además, guardar los paquetes capturados en este archivo.

Lectura desde una interfaz remota en vivo:

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

Otras opciones

  • param remote_host: El host remoto en el que capturar (IP o nombre de host). Debe estar ejecutando rpcapd.
  • param remote_interface: La interfaz remota en la máquina remota para capturar. Ten en cuenta que en Windows no es el nombre de visualización del dispositivo, sino el nombre real de la interfaz (es decir, \Device\NPF_..).
  • param remote_port: El puerto remoto en el que el servicio rpcapd está escuchando.
  • param bpf_filter: Un filtro BPF (tcpdump) para aplicar sobre la captura antes de leer.
  • param only_summaries: Solo producir resúmenes de paquetes, mucho más rápido pero incluye muy poca información.
  • param disable_protocol: Deshabilitar la detección de un protocolo (tshark > versión 2).
  • param decryption_key: Clave utilizada para cifrar y descifrar el tráfico capturado.
  • param encryption_type: Estándar de cifrado utilizado en el tráfico capturado (debe ser 'WEP', 'WPA-PWD' o 'WPA-PWK'. El valor predeterminado es WPA-PWK).
  • param tshark_path: Ruta del binario de tshark.

Acceso a los datos del paquete:

Los datos se pueden acceder de múltiples formas. Los paquetes se dividen en capas; primero debes llegar a la capa adecuada y luego puedes seleccionar tu campo.

Todos los siguientes funcionan:

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

Para probar si una capa está en un paquete, puedes usar su nombre:

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

Para ver todos los nombres de campo posibles, usa el atributo packet.layer.field_names (por ejemplo, packet.ip.field_names) o la función de autocompletado en tu intérprete.

También puedes obtener los datos binarios originales de un campo, o una descripción legible del mismo:

root@kitploit:~
>>> p.ip.addr.showname
Source or Destination Address: 10.0.0.10 (10.0.0.10)
# And some new attributes as well:
>>> p.ip.addr.int_value
167772170
>>> p.ip.addr.binary_value
b'\n\x00\x00\n'

Descifrado de capturas de paquetes

Pyshark admite el descifrado automático de trazas utilizando los estándares WEP, WPA-PWD y WPA-PSK (WPA-PWD es el predeterminado).

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

Una tupla de estándares de cifrado admitidos, SUPPORTED_ENCRYPTION_STANDARDS, existe en cada clase de captura.

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

Lectura desde un archivo usando un filtro de visualización

Los filtros de visualización de Pyshark pueden ser útiles para analizar tráfico enfocado en aplicaciones. Los filtros BPF no ofrecen tanta flexibilidad como los filtros de visualización de Wireshark.

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

Licencia

Este proyecto está licenciado bajo MIT. Las contribuciones a este proyecto se aceptan bajo la misma licencia.

Descargar herramienta