Foro de elhacker.net

Comunicaciones => Redes => Mensaje iniciado por: Schaiden en 25 Mayo 2017, 10:05 am



Título: Capturar trama ethernet completa
Publicado por: Schaiden en 25 Mayo 2017, 10:05 am
Que tal, estuve capturando los paquetes que entran y salen de mi pc, y noté que en la sección de la trama ethernet solo figuran la MAC destino, origen y el ethertype, pero nunca veo el preámbulo, ni el CRC que según leí también forman parte de una trama ethernet. Quería saber por qué no me llegan dichos campos. Saludos


Título: Re: Trama ethernet
Publicado por: animanegra en 25 Mayo 2017, 10:38 am
Si te llegan lo que pasa es que no los ves porque la tarjeta de red no se los pasa al espacio del Kernel y el esnifer o el espacio de usuario no los ve.

https://serverfault.com/questions/521443/can-wireshark-capture-an-entire-ethernet-frame-including-preamble-crc-and-inter (https://serverfault.com/questions/521443/can-wireshark-capture-an-entire-ethernet-frame-including-preamble-crc-and-inter)

Es parecido a lo que pasa cuando capuras cosas del loockback (o paquetes que genera tu ordenador hacia un servidor), que nunca vas a ver los paquetes con padding porque no llegan a enviarse por la tarjeta de red y esta es la encargada de hacer el padding. Tambien a veces pasan algunas cosas curiosas como que el IPID se cambie o que el crc de alguna capa salga erroneo, ya que muchas veces es la propia tarjeta la que los rellena y el soft del ordenador lo deja a ceros (o lo que tenga estipulado el driver) para que se rellene posteriormente.

No se si se ha entendido.


Título: Re: Trama ethernet
Publicado por: Schaiden en 28 Mayo 2017, 02:39 am
Creo que te entiendo! Es decir, el adaptador de red usa los bytes del preámbulo para identificar una nueva trama y el CRC para verificar que la trama sea válida, pero una vez identificado el inicio de la trama y verificado que dicha trama sea válida, no tiene ninguna necesidad de enviárselos al kernel, ya que éste trabajo es realizado por el adaptador y no por el kernel, entonces la aplicacion, el sniffer, como vos decis, que sería el espacio de usuario, cuando hace las system calls correspondientes, obtiene lo que le llego al kernel, ni más ni menos, x eso es que desde wireshark no se pueden visualizar dichos campos