¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!
pyshark-legacy — Wrapper de Python para tshark, que permite el análisis de paquetes en Python mediante los disectores de Wireshark (versión heredada de Python2) | Kitploit
Este repositorio es para la versión heredada de pyshark, que funciona con Python 2.7+. Solo recibe correcciones de errores
después de la versión 0.3.8.
Para la nueva versión que solo es compatible con Python 3.5+, use el repositorio principal
Wrapper de Python para tshark, que permite el análisis de paquetes de Python utilizando los disectores de wireshark.
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 (utilidad de línea de comandos de wireshark) de exportar XMLs para usar su análisis.
Este paquete permite el análisis desde un archivo de captura o una captura en vivo, utilizando todos los disectores de wireshark que tenga instalados.
Probado en Windows/Linux.
Instalación
Todas las plataformas
Simplemente ejecute lo siguiente para instalar la última versión desde pypi
root@kitploit:~
pip install pyshark-legacy
O instale desde el repositorio git:
root@kitploit:~
git clone https://github.com/KimiNewt/pyshark-legacy.git
cd pyshark/src
python setup.py install
Mac OS X
Es posible que deba instalar libxml, lo cual puede ser inesperado. Si recibe un error de clang o un mensaje de error sobre libxml, ejecute lo siguiente:
root@kitploit:~
xcode-select --install
pip install libxml
Probablemente tendrá que aceptar un CLUF de XCode, así que esté preparado para hacer clic en un cuadro de diálogo "Aceptar" en la GUI.
parámetro keep_packets: Si se deben conservar los paquetes después de leerlos mediante next().
Se usa para ahorrar memoria al leer capturas grandes.
parámetro 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.
parámetro display_filter: Un filtro de visualización (wireshark) para aplicar a la captura
antes de leerla.
parámetro only_summaries: Solo produce resúmenes de paquetes, mucho más rápido pero incluye
muy poca información.
parámetro disable_protocol: Deshabilitar la detección de un protocolo (tshark > versión 2)
parámetro decryption_key: Clave utilizada para cifrar y descifrar el tráfico capturado.
parámetro 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).
parámetro interface: Nombre de la interfaz para capturar. Si no se indica, toma
la primera disponible.
parámetro bpf_filter: Filtro BPF para usar en los paquetes.
parámetro display_filter: Filtro de visualización (wireshark) para usar.
parámetro only_summaries: Solo produce resúmenes de paquetes, mucho más rápido pero
incluye muy poca información.
parámetro disable_protocol: Deshabilitar la detección de un protocolo (tshark > versión 2)
parámetro decryption_key: Clave utilizada para cifrar y descifrar el tráfico capturado.
parámetro 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).
parámetro tshark_path: Ruta del binario tshark
parámetro output_file: Opcionalmente, guardar los paquetes capturados adicionalmente en este archivo.
Lectura desde una interfaz en vivo usando un búfer circular
parámetro ring_file_size: Tamaño del archivo del anillo en kB, el valor predeterminado es 1024
parámetro num_ring_files: Número de archivos del anillo a mantener, el valor predeterminado es 1
parámetro ring_file_name: Nombre del archivo del anillo, el valor predeterminado es /tmp/pyshark.pcap
parámetro interface: Nombre de la interfaz para capturar. Si no se indica, toma
la primera disponible.
parámetro bpf_filter: Filtro BPF para usar en los paquetes.
parámetro display_filter: Filtro de visualización (wireshark) para usar.
parámetro only_summaries: Solo produce resúmenes de paquetes, mucho más rápido pero
incluye muy poca información.
parámetro disable_protocol: Deshabilitar la detección de un protocolo (tshark > versión 2)
parámetro decryption_key: Clave utilizada para cifrar y descifrar el tráfico capturado.
parámetro 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).
parámetro tshark_path: Ruta del binario tshark
parámetro output_file: Opcionalmente, guardar los paquetes capturados adicionalmente en este archivo.
parámetro remote_host: El host remoto para capturar (IP o nombre de host).
Debe estar ejecutando rpcapd.
parámetro remote_interface: La interfaz remota en la máquina remota para
capturar. Tenga en cuenta que en Windows no es el nombre de visualización del dispositivo, sino el
nombre de interfaz real (es decir, \Device\NPF_..).
parámetro remote_port: El puerto remoto en el que el servicio rpcapd está escuchando.
parámetro bpf_filter: Un filtro BPF (tcpdump) para aplicar a la captura antes
de leer.
parámetro only_summaries: Solo produce resúmenes de paquetes, mucho más rápido pero
incluye muy poca información.
parámetro disable_protocol: Deshabilitar la detección de un protocolo (tshark > versión 2)
parámetro decryption_key: Clave utilizada para cifrar y descifrar el tráfico capturado.
parámetro 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).
parámetro tshark_path: Ruta del binario tshark
Acceso a los datos del paquete:
Los datos se pueden acceder de múltiples formas.
Los paquetes se dividen en capas; primero debe llegar a la capa adecuada y luego puede seleccionar su campo.
Para probar si una capa está en un paquete, puede usar su nombre:
root@kitploit:~
>>> 'IP' in packet
True
Para ver todos los nombres de campo posibles, use el atributo packet.layer.field_names (es decir, packet.ip.field_names) o la función de autocompletar en su intérprete.
También puede obtener los datos binarios originales de un campo, o una descripción más detallada:
root@kitploit:~
>>> p.ip.addr.showname
Source or Destination Address: 10.0.0.10 (10.0.0.10)
# Y algunos nuevos atributos también:
>>> p.ip.addr.int_value
167772170
>>> p.ip.addr.binary_value
'\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).