2012-09-06 38 views
5

Antecedentes:paquete en scapy

estoy usando scapy para probar un dispositivo de red que puede selectivamente paquetes de bucle-back intercambiando MACs fuente/destino, direcciones IP, y los números de puerto capa 4. El intercambio se puede seleccionar para layer_2_only, layers_2_and_3, layers_2_3_and_4. Estoy ejecutando scapy en un servidor, transmitiendo paquetes al dispositivo y validando que los paquetes enviados devuelven los campos source/dest apropiados intercambiados dependiendo de la configuración.

Problema:

El método scapy srploop(), que envía los paquetes y recibe partidos funciona bien para tipos de mensajes como PING y ARP. Estoy descubriendo que si transmito un paquete UDP y los puertos fuente/destino no son revertidos por el dispositivo loop-back, entonces scapy no trata el paquete en bucle como una coincidencia. Cuando el dispositivo de bucle revierte los números de puerto, los paquetes se detectan como coincidencias.

Preguntas:

  1. ¿Hay una manera de anular o influir en la lógica del paquete coincidente scapy lo contrario? Por ejemplo, poder desactivar la coincidencia en la capa 4 sería útil. He revisado la documentación y no he encontrado nada que sugiera que esto sea posible.

  2. Hay otra manera de lograr esto en scapy. He experimentado con el uso de send() seguido de sniff() pero no he podido capturar las respuestas con ese método.

Respuesta

1

Para la segunda parte de la pregunta, es posible que desee probar el enfoque que he mencionado en Scapy fails to sniff packets when using multiple threads.

Básicamente, ejecute el sniffer en un hilo separado y filtre el tráfico de retorno en una cola, que luego se puede acceder desde el hilo principal que está haciendo el send(). Por lo tanto, tiene envíos y recepciones al mismo tiempo (en dos hilos).

El único problema es que en mi configuración particular, me encontré con un comportamiento extraño en el sniffer donde no se puede aplicar el filtro cuando se ejecuta en una secuencia separada. Con suerte, tendrás mejor suerte.

ACTUALIZACIÓN: Ese problema con el sniffer se resolvió (consulte mi pregunta vinculada anteriormente).

Espero que esto ayude!

Cuestiones relacionadas