Sniffing de paquetes usando Raw Sockets en Linux en C
-
08-07-2019 - |
Pregunta
Necesito escribir un sniffer de paquetes en Linux que detecte los paquetes HTTPS que se envían y guarde la URL de la solicitud. Encontré código para esto en security-freak y lo ejecuté . Este código se ejecuta y solo detecta el paquete recibido, pero necesito obtener el paquete enviado en el sniffer. ¿Cómo obtengo el paquete enviado en este código?
No puedo usar ninguna biblioteca como libcap (prohibido). El código es: sniffer.c
Solución
Debería usar ETH_P_ALL en lugar de ETH_P_IP como protocolo. ETH_P_IP solo escucha los paquetes IP entrantes.
Otros consejos
Con libpcap o uso de DNET Debería poder obtener toda la red tráfico en la capa deseada (protocolo - 5) (también este saliente). Pero ya deberías saber eso.
Debe revisar los manuales de las bibliotecas anteriores y encontrar el filtro adecuado.