Perché sono in grado di aprire Wireshark e catturare pacchetti in macOS senza privilegi di root?

Domanda davvero fantastica! TL;DR...

Hai dato i privilegi di root quando lo hai installato. Wireshark crea un gruppo di accesso, ti mette dentro e ti dà accesso attraverso quello.

La risposta più lunga...

Quando installi Wireshark hai bisogno di una password di amministratore. Wireshark usa questa elevazione per installare un LaunchDaemon, che è fondamentalmente un processo in background che si avvia al boot.

Questo demone ha permessi speciali per catturare pacchetti di dati di rete, e devi essere root per installare questo demone (cioè quando installi Wireshark) ma non per usarlo ogni volta.

I dati che cattura non richiedono un'elevazione extra per essere letti perché è solo un file pcap. Maggiori informazioni qui - pcap - Wikipedia

Wireshark crea questo file plist nella cartella LaunchDaemons:

/Library/LaunchDaemons/org.wireshark.ChmodBPF.plist

  1. <?xml version="1.0" encoding="UTF-8"?> 
  2.  
  3.  
  4.  
  5. Label 
  6. org.wireshark.ChmodBPF 
  7. RunAtLoad 
  8.  
  9. Program 
  10. /Library/Application Support/Wireshark/ChmodBPF/ChmodBPF 
  11.  
  12.  

/Library/Application Support/Wireshark/ChmodBPF/ChmodBPF is a script that sets up access for the local user (i.e. you, the person who installed Wireshark) with read access to BPF devices. Wireshark uses these devices to capture the network traffic. So if you have access to the BPF devices then you have access to read the data they capture.

More info and a good writeup - cse 2410 f 13 team 7

Any user given access to those BPF devices can read network data from them. Per controllare l'accesso degli utenti, Wireshark imposta un gruppo di utenti appositamente per questo.

Se controlli Preferenze di sistema > Utenti e gruppi, ci sarà un gruppo access_bpf contenente la lista degli utenti che hanno il permesso di accedere al demone, e quindi di catturare con Wireshark. Puoi aggiungere o rimuovere utenti da questo gruppo. Qualsiasi utente in questo gruppo può ottenere l'accesso in lettura ai dati di rete di caapture senza specifici privilegi di root una tantum.

main-qimg-9ebefc700dc825cf694e55b4bfe172aa