
Uno sniffer e interprete mDNS.
Autori: Sebastian Garcia ([email protected], @eldracote), Veronica Valeros ([email protected], @verovaleros)
Sapito è uno sniffer e interprete per il multicast DNS (mDNS) scritto in Python. Sapito cattura pacchetti da un pcap o da un'interfaccia e ne interpreta i risultati. Ciò significa che Sapito è in grado di comprendere le domande e le risposte mDNS, dando un senso ai messaggi. Può anche identificare alcuni dispositivi, come computer MacOS e diversi tipi di iPad. L'output colorato aiuta a evidenziare informazioni importanti.
Se trovi un bug, ti preghiamo di segnalarlo insieme all'output dello strumento a [email protected]. Se hai il pcap con i pacchetti incriminati, sarebbe estremamente utile se lo inviassi insieme alla segnalazione del bug.

Sapito ha un'immagine Docker pubblica con l'ultima versione su DockerHub, che funziona bene su sistemi Linux (MacOS non ancora supportato).
Per eseguire Sapito:
docker run --rm --network host --name sapito -it stratosphereips/sapito:latest python3 sapito.py -i <interface>
Questo è un annuncio Bonjour per il servizio di rete che consente l'AirPlay di contenuti video. Cioè, questo permette ai dispositivi iOS di individuare l'Apple TV come "display remoto" su cui possono mostrare video.
Questo è uno dei servizi di rete che fa funzionare il telecomando Apple TV - cioè l'app o la funzionalità integrata nel Centro di Controllo per controllare a distanza i dispositivi Apple TV da iPhone e iPad. Questo servizio viene annunciato sulla rete tramite Bonjour per garantire che i dispositivi iOS possano individuare l'AppleTV.
Questo servizio sembra non essere documentato da Apple, ma sembra coinvolto nel far funzionare il sistema AirPlay 2.
Questo servizio di rete è chiamato Remote Audio Output Protocol. In sostanza indica che l'AppleTV funziona come ricevitore audio AirPlay. Questo annuncio Bonjour consente ai dispositivi iOS di individuare l'Apple TV come un "altoparlante" a cui inviare audio.
Questo è un Sleep Proxy Bonjour. L'idea è che l'AppleTV possa rispondere a varie query di rete per altri dispositivi che sono attualmente in modalità a basso consumo per ridurre l'uso di energia. Ad esempio, potrebbe essere un Mac che offre una libreria iTunes condivisa o una stampante condivisa. L'AppleTV può quindi rispondere alle richieste di rete per questi server mentre il Mac è in modalità sospensione - per esempio permettendo all'utente di elencare le stampanti condivise disponibili sulla rete. Tuttavia, quando l'utente sceglie di stampare qualcosa, l'AppleTV risveglierà il Mac e trasferirà la richiesta ad esso.
Questo è un servizio di rete relativo a HomeKit, il sistema di Apple per comunicare e controllare i dispositivi in casa. Pensa a lampadine controllabili, tende, campanelli, qualunque cosa. L'AppleTV funge da proxy in tale contesto, così che l'utente possa controllare i dispositivi da remoto (cioè mentre non è a casa) anche se i dispositivi sono solo Bluetooth e fuori portata. Nota che i normali dispositivi HomeKit sulla rete si annunciano come _hap._tcp.
Questo è un altro dei servizi di rete che fa funzionare il telecomando Apple TV. Questo servizio riguarda l'autenticazione del dispositivo. Cioè, se vuoi ad esempio riprodurre un video di YouTube sull'Apple TV, l'Apple TV può richiedere che il dispositivo sia autenticato prima di consentirlo. In pratica le autenticazioni funzionano con l'Apple TV che mostra un codice PIN sul televisore che l'utente inserisce sul dispositivo iOS. Questo codice PIN viene trasferito utilizzando il servizio annunciato come "touch-able" per autenticare il dispositivo.
A causa della soppressione delle risposte note (Known-Answer suppression)1:
Known-Answer Suppression
Quando un querier Multicast DNS invia una query alla quale conosce già
alcune risposte, popola la sezione delle risposte del messaggio di
query DNS con tali risposte.
In generale, questo si applica solo ai record condivisi, non ai record
unici, poiché se un querier Multicast DNS ha già almeno un record
unico nella sua cache, non dovrebbe aspettarsi ulteriori risposte
diverse a questa domanda, dato che i record unici che già possiede
costituiscono la risposta completa, quindi non ha motivo di inviare
la query. Al contrario, avere alcuni record condivisi nella cache non
implica necessariamente che un querier Multicast DNS non riceverà
ulteriori risposte a questa query, ed è in questo caso che è
vantaggioso usare l'elenco delle risposte note per sopprimere l'invio
ripetuto di risposte ridondanti che il querier già conosce.
'RFC 6762: Multicast DNS'. https://www.rfc-editor.org/rfc/rfc6762#section-7.1 (consultato il 01 ottobre 2022). ↩