¿Cómo volver a montar los paquetes TCP en Python? ¿Hay alguna herramienta existente para esto?¿Cómo volver a montar los paquetes TCP en Python?
Gracias! :-)
¿Cómo volver a montar los paquetes TCP en Python? ¿Hay alguna herramienta existente para esto?¿Cómo volver a montar los paquetes TCP en Python?
Gracias! :-)
Para hacer realizar el reensamblaje TCP tendrá que usar algo como pynids http://jon.oberheide.org/pynids/.
También puedes construir tu propio pylibpcap, dpkt o scapy.
El rearmado de TCP es muy complicado con MUCHOS casos de borde. No recomendaría hacerlo usted mismo si necesita una solución robusta.
Sí ... el protocolo TCP garantiza que la capa de aplicación solo verá los paquetes ensamblados y en orden. Ahora bien, si está hablando de construir una interfaz de bajo nivel que analice el paquete IP en sí, puede atacarlo con RAW sockets, que debería darle acceso a la información del encabezado IP. He aquí un ejemplo:
import socket
# the public network interface
HOST = socket.gethostbyname(socket.gethostname())
# create a raw socket and bind it to the public interface
s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_IP)
s.bind((HOST, 0))
# Include IP headers
s.setsockopt(socket.IPPROTO_IP, socket.IP_HDRINCL, 1)
# receive all packages
s.ioctl(socket.SIO_RCVALL, socket.RCVALL_ON)
# receive a package
print s.recvfrom(65565)
# disabled promiscuous mode
s.ioctl(socket.SIO_RCVALL, socket.RCVALL_OFF)
levantado descaradamente de la documentación del módulo de toma de pitón: http://docs.python.org/library/socket.html
tenga en cuenta que este ejemplo solo funcionará en Windows – lunixbochs
volver a montar desde qué fuente de datos? –
se necesitan más detalles para una respuesta precisa. – lunixbochs