12 votos

¿Por qué puedo abrir Wireshark y capturar paquetes en MacOS sin privilegios de Root?

Por lo que sé, la captura de paquetes con Wireshark requiere privilegios de Root/administrador. En Windows, pide la elevación del UAC y se ejecuta con privilegios administrativos. Lo mismo en Ubuntu; pide una contraseña para autorizar el acceso antes de mostrarme las interfaces.

Sin embargo, en MacOS no se requiere autorización. No tengo que introducir una contraseña. En cambio, Wireshark me muestra directamente las interfaces y puedo capturar paquetes.

¿Cómo puede Wireshark hacer esto en MacOS? ¿Qué tiene de especial MacOS para permitir la monitorización de interfaces y paquetes? sin ¿acceso administrativo?

0 votos

¿Qué tipo de wireshark estás utilizando? ¿GUI (aplicación) o línea de comandos?

0 votos

¿Has entrado como usuario estándar o como usuario administrador?

0 votos

La pregunta del título y la del cuerpo de tu post no son lo mismo. La razón por la que puedes abrir Wireshark sin privilegios de Root es porque puedes usarlo para analizar los volcados de paquetes, que son archivos normales.

21voto

Jose Chavez Puntos 645

La razón es que el instalador de Wireshark instala un LaunchDaemon (es decir, algo que se ejecuta con privilegios de superusuario en el arranque) para establecer permisos especiales para capturar paquetes de red. Más concretamente puedes mirar el archivo /Library/LaunchDaemon/org.wireshark.ChmodBPF.plist para ver qué hace y cuándo se ejecuta.

Como la creación de estos LaunchDaemons requiere privilegios de superusuario en sí mismo, el instalador de Wireshark requiere que seas un superusuario (es decir, tienes que introducir una contraseña de usuario administrador para instalar el software).

Si se observa el actual script ejecutado por el LaunchDaemon en /Library/Application Support/Wireshark/ChmodBPF/ChmodBPF Verás que crea 256 entradas de dispositivos /dev/bpf0 a /dev/bpf255 y establece que todos en el grupo access_bpf pueden leer y escribir en estos archivos de dispositivos.

Los grupos access_bpf también son creados por el instalador de Wireshark. Esto también requiere privilegios de superusuario. Si abre las Preferencias del Sistema y luego Usuarios y Grupos, podrá desplegar la parte de "Grupos" del árbol y ver "access_bpf" listado allí. A continuación, puede añadir/quitar usuarios de ese grupo para dar o quitar el permiso para capturar paquetes de red dentro de Wireshark.

0 votos

¿Cómo es que estos bpf ¿funcionan exactamente los dispositivos? ¿Implica esto que hay un coste de rendimiento por tener wireshark instalado, incluso cuando no se captura?

1 votos

¿A qué nivel quiere la explicación? (Es decir, ¿es usted un usuario doméstico, un programador, un desarrollador del núcleo?) En términos generales, funcionan como cualquier otro dispositivo. Un programa lee del dispositivo y recibe datos. En este caso los datos son paquetes de red. El programa utiliza ioctl() para configurar en qué NIC escuchar, establecer filtros de paquetes, etc. BPF es un sistema común que también está disponible en otros sistemas como FreeBSD, Linux, etc. Esto no significa que haya un coste de rendimiento por tener Wireshark instalado. BPF no es una parte de Wireshark, es una parte estándar del kernel de MacOS (Darwin).

0 votos

Soy un dev, pero no un kernel dev. Lo que estaba pensando era "¿todo el tráfico de red tiene que ser canalizado a través de estos dispositivos, para que pueda ser interceptado para el registro por wireshark, ya sea que wireshark esté capturando o no?

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X