Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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
pypacker — :package: La biblioteca de manipulación de paquetes más rápida y simple para Python | Kitploit
Herramientas/GitLabGitLab/mike01/pypacker
Sniffing y Análisis de PaquetesProxies Web e InterceptaciónSeguridad de RedesPruebas de PenetraciónUtilidades y FrameworksRed Teaming
GitLabmike01/pypacker

pypacker

📦 La biblioteca de manipulación de paquetes más rápida y simple para Python

Ver Repositorio
281814hace 23 díasRevisado 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

Información general

Este es Pypacker: la biblioteca de manipulación de paquetes de bajo nivel más rápida y simple para Python. Vea los ejemplos a continuación para ver qué puede hacer con ella.

Si desea apoyar este proyecto puede Donate with PayPal a través de PayPal.

Qué puedes hacer con Pypacker

  • Crear paquetes personalizados mediante palabras clave o a partir de bytes sin procesar y leer/cambiar sus datos con Python: examples/create_packets.py
  • Leer/escribir paquetes desde/hacia archivos pcap (soporte solo para formato pcap de Wireshark/tcpdump): examples/pcap_read_write.py
  • Fusionar múltiples archivos pcap en uno solo. Intenta leer archivos pcap corruptos y permite filtrar mediante callback: examples/pcap_merge.py
  • Enviar/recibir paquetes de capa 2: examples/send_receive_l2.py
  • Interceptar (y modificar) paquetes, por ejemplo para MITM: examples/interceptor3.py

Prerrequisitos

  • Python 3.x (CPython, Pypy, Jython o cualquier intérprete)
  • Opcional: netifaces >=0.10.6 (para utilidades)
  • Opcional (para interceptor):
    • CPython
    • Sistema basado en Linux con soporte del kernel para el objetivo NFQUEUE. La opción de configuración del kernel está en:
      • Networking Options -> Network packet filtering -> Core Netfilter -> NFQUEUE target
    • iptables (alternativamente nftables)
      • Se pueden agregar reglas relacionadas con NFQUEUE, por ejemplo "iptables -I INPUT 1 -j NFQUEUE --queue-num 0"
    • librería libnetfilter_queue (ver http://www.netfilter.org/projects/libnetfilter_queue)

Instalación

Algunos ejemplos:

  • Clonar la versión más reciente
    • git clone https://gitlab.com/mike01/pypacker.git
    • cd pypacker
    • python setup.py install

pip/pypi ya NO tiene soporte debido a su complicado mecanismo de autenticación, lo sentimos.

Ejemplos de uso y documentación

Vea:

  • Ejemplos anteriores
  • Ejemplos en el directorio ./examples
  • Gitlab Wiki: https://gitlab.com/mike01/pypacker/-/wikis/home

Los protocolos en sí (ver layerXYZ) generalmente no tienen mucha documentación porque están documentados por sus respectivos RFCs/estándares oficiales.

Pruebas

Las pruebas se ejecutan de la siguiente manera:

  1. Agregar el directorio de Pypacker al PYTHONPATH.
  • cd pypacker
  • export PYTHONPATH=$(pwd):$PYTHONPATH
  1. Ejecutar las pruebas
  • python tests/test_pypacker.py

Resultados de las pruebas de rendimiento:

Hardware: Intel CPU, 4 Cores @ 3.2 GHz
Python: CPython v3.10

nr = new results on this machine
Rounds per test: 10000
=====================================
>>> Packet parsing (Ethernet + IP + UDP + DNS): Search UDP port
Time diff: 0.1409761905670166s
nr = 70933 p/s
>>> Packet parsing (Ethernet + IP + TCP + HTTP): Search TCP port
Time diff: 0.3157649040222168s
nr = 31669 p/s
>>> Packet parsing (Ethernet + IP + TCP + HTTP): Reading all header
Time diff: 0.5989120006561279s
nr = 16696 p/s
>>> Parsing first layer (IP + ICMP)
Time diff: 0.014587163925170898s
nr = 685534 p/s
>>> Creating/direct assigning (IP only header)
Time diff: 0.02884364128112793s
nr = 346696 p/s
>>> bin() without change (IP)
Time diff: 0.013646364212036133s
nr = 732795 p/s
>>> Output with change/checksum recalculation (IP)
Time diff: 0.07719659805297852s
nr = 129539 p/s
>>> Basic/first layer parsing (Ethernet + IP + TCP + HTTP)
Time diff: 0.019113540649414062s
nr = 523189 p/s
>>> Changing Triggerlist element value (Ethernet + IP + TCP + HTTP)
Time diff: 0.017654895782470703s
nr = 566415 p/s
>>> Changing dynamic field (Ethernet + IP + TCP + HTTP)
Time diff: 0.006037473678588867s
nr = 1656321 p/s
>>> Direct assigning and concatination (Ethernet + IP + TCP + HTTP)
Time diff: 0.2050457000732422s
nr = 48769 p/s
.>>> Performance test pypacker vs. dpkt vs. scapy
Comparing pypacker, dpkt and scapy performance (parsing Ethernet + IP + TCP + HTTP)
nr = new results on this machine
Rounds per test: 10000
>> Testing pypacker parsing speed
nr = 194382 p/s
>> Testing dpkt parsing speed
Could not execute dpkt tests: ModuleNotFoundError("No module named 'dpkt'")
>> Testing scapy parsing speed
nr = 2775 p/s

Preguntas frecuentes

Para cualquier pregunta pendiente, por favor reporte un error (será etiquetado como "questions").

P: ¿Qué tan rápido es pypacker?

R: Vea los resultados anteriores. Para obtener resultados detallados en su máquina, ejecute las pruebas: python tests/test_pypacker.py PerfTestCase

P: ¿Qué protocolos están soportados?

R: Actualmente los protocolos mínimos soportados son: Ethernet, Radiotap, IEEE80211, ARP, DNS, STP, PPP, OSPF, VRRP, DTP, IP, ICMP, PIM, IGMP, IPX, TCP, UDP, SCTP, HTTP, NTP, RTP, DHCP, RIP, SIP, Telnet, HSRP, Diameter, SSL, TPKT, Pmap, Radius, BGP

P: ¿Hay planes para soportar [xyz]?

R: Las nuevas características se agregan a Pypacker como resultado de que yo las necesite o de que la gente las contribuya; no existen planes formales para agregar soporte para características particulares en futuras versiones. Se pueden encontrar pautas generales para contribuir en el archivo HACKING.

P: ¿Cómo puedo contribuir a este proyecto?

R: Por favor, use el rastreador de errores de Gitlab para informar errores/solicitar funciones. Lea el rastreador de errores para conocer los errores ya conocidos antes de reportar uno nuevo. Los parches se pueden enviar mediante pull request.

P: Hay un problema xyz con Pypacker usando Windows 3.11/XP/7/8/mobile etc. ¿Puede solucionarlo?

R: Las funciones básicas deberían funcionar con cualquier sistema operativo. Las opcionales pueden causar problemas (por ejemplo, interceptor).

P: ¿Bajo qué licencia se distribuye Pypacker?

R: Es la licencia GPLv2 (consulte el archivo LICENSE para obtener más información).

P: Llamar a copy.deepcopy(some_packet) lanza una excepción "TypeError: can't pickle Struct objects".

R: Pruebe la siguiente solución alternativa para poder serializar objetos Struct:

import struct, copyreg
def pickle_struct(s):
	return struct.Struct, (s.format,)

copyreg.pickle(struct.Struct, pickle_struct)

Consejos de uso

Relacionado con el rendimiento

  • Para obtener el máximo rendimiento, comience a acceder a los atributos en el nivel más bajo mediante la siguiente notación de índice. Esto analizará de forma diferida solo las capas necesarias detrás de escena:
pkt_eth, pkt_ip, pkt_tcp, pkt_http = pkt[
 	None,
	(None, lambda b: b.__class__ in [ip.IP, ip6.IP6]),
	(tcp.TCP, lambda c: c.dport==80),
	http.HTTP
]
...
  • Evite convertir paquetes usando el formato "%s" o "%r" ya que activa el análisis detrás de escena:
pkt = Ethernet() + IP() + TCP()
# This parses ALL layers
packet_print = "%s" % pkt
  • Evite buscar una capa usando notación de índice de valor único mediante pkt[L] ya que analiza todas las capas hasta que se encuentra L o se alcanza la capa más alta:
packet_found = pkt[Telnet]
# Alternative: Use multi-value index-notation. This will stop parsing at any non-matching layer:
packet_found = pkt[Ethernet,IP,TCP,Telnet]
  • Use pypy (~3 veces más rápido que CPython en relación con el análisis completo de paquetes)
Descargar herramienta