macOS Network Services & Protocols
Servizi di accesso remoto
Questi sono i servizi comuni di macOS per accedervi in remoto.
È possibile abilitare/disabilitare questi servizi in Impostazioni di sistema
--> Condivisione
VNC, conosciuto come "Condivisione schermo" (tcp:5900)
SSH, chiamato "Accesso remoto" (tcp:22)
Apple Remote Desktop (ARD), o "Gestione remota" (tcp:3283, tcp:5900)
AppleEvent, conosciuto come "Evento Apple remoto" (tcp:3031)
Verifica se uno di questi è abilitato eseguendo:
Pentesting ARD
Apple Remote Desktop (ARD) è una versione migliorata di Virtual Network Computing (VNC) adattata per macOS, che offre funzionalità aggiuntive. Una vulnerabilità significativa in ARD è il suo metodo di autenticazione per la password dello schermo di controllo, che utilizza solo i primi 8 caratteri della password, rendendola suscettibile ad attacchi di brute force con strumenti come Hydra o GoRedShell, poiché non ci sono limiti di velocità predefiniti.
Le istanze vulnerabili possono essere identificate utilizzando lo script vnc-info
di nmap. I servizi che supportano VNC Authentication (2)
sono particolarmente suscettibili ad attacchi di brute force a causa della troncatura della password a 8 caratteri.
Per abilitare ARD per varie attività amministrative come l'escalation dei privilegi, l'accesso GUI o il monitoraggio dell'utente, utilizzare il seguente comando:
ARD fornisce livelli di controllo versatili, tra cui osservazione, controllo condiviso e controllo completo, con sessioni che persistono anche dopo la modifica della password dell'utente. Consente di inviare comandi Unix direttamente ed eseguirli come root per gli utenti amministrativi. La pianificazione delle attività e la ricerca remota di Spotlight sono funzionalità notevoli che facilitano la ricerca remota a basso impatto di file sensibili su più macchine.
Protocollo Bonjour
Bonjour, una tecnologia progettata da Apple, consente ai dispositivi sulla stessa rete di rilevare i servizi offerti l'uno dall'altro. Conosciuto anche come Rendezvous, Zero Configuration o Zeroconf, consente a un dispositivo di unirsi a una rete TCP/IP, scegliere automaticamente un indirizzo IP e diffondere i suoi servizi agli altri dispositivi di rete.
La rete Zero Configuration, fornita da Bonjour, garantisce che i dispositivi possano:
Ottenere automaticamente un indirizzo IP anche in assenza di un server DHCP.
Eseguire la traduzione del nome in indirizzo senza richiedere un server DNS.
Scoprire i servizi disponibili sulla rete.
I dispositivi che utilizzano Bonjour si assegnano automaticamente un indirizzo IP dall'intervallo 169.254/16 e ne verificano l'unicità sulla rete. I Mac mantengono una voce nella tabella di routing per questa subnet, verificabile tramite netstat -rn | grep 169
.
Per il DNS, Bonjour utilizza il protocollo Multicast DNS (mDNS). mDNS opera sulla porta 5353/UDP, utilizzando query DNS standard ma indirizzate all'indirizzo multicast 224.0.0.251. Questo approccio garantisce che tutti i dispositivi in ascolto sulla rete possano ricevere e rispondere alle query, facilitando l'aggiornamento dei loro record.
Al momento dell'ingresso nella rete, ogni dispositivo seleziona autonomamente un nome, di solito terminante con .local, che può essere derivato dal nome host o generato casualmente.
La scoperta dei servizi all'interno della rete è facilitata da DNS Service Discovery (DNS-SD). Sfruttando il formato dei record SRV DNS, DNS-SD utilizza i record PTR DNS per consentire l'elenco di più servizi. Un client che cerca un servizio specifico richiederà un record PTR per <Servizio>.<Dominio>
, ricevendo in cambio un elenco di record PTR formattati come <Istanza>.<Servizio>.<Dominio>
se il servizio è disponibile da più host.
L'utilità dns-sd
può essere utilizzata per scoprire e pubblicizzare i servizi di rete. Ecco alcuni esempi di utilizzo:
Ricerca di servizi SSH
Per cercare i servizi SSH sulla rete, viene utilizzato il seguente comando:
Questo comando avvia la ricerca dei servizi _ssh._tcp e mostra dettagli come timestamp, flag, interfaccia, dominio, tipo di servizio e nome dell'istanza.
Pubblicizzare un servizio HTTP
Per pubblicizzare un servizio HTTP, è possibile utilizzare:
Questo comando registra un servizio HTTP chiamato "Index" sulla porta 80 con un percorso di /index.html
.
Per cercare i servizi HTTP sulla rete:
Quando un servizio viene avviato, annuncia la sua disponibilità a tutti i dispositivi sulla sottorete tramite multicast. I dispositivi interessati a questi servizi non devono inviare richieste, ma semplicemente ascoltare queste segnalazioni.
Per un'interfaccia più user-friendly, l'app Discovery - DNS-SD Browser, disponibile sull'Apple App Store, può visualizzare i servizi offerti nella tua rete locale.
In alternativa, è possibile scrivere script personalizzati per esplorare e scoprire servizi utilizzando la libreria python-zeroconf
. Lo script python-zeroconf dimostra come creare un browser di servizi per i servizi _http._tcp.local.
, stampando i servizi aggiunti o rimossi:
Disabilitazione di Bonjour
Se ci sono preoccupazioni per la sicurezza o altre ragioni per disabilitare Bonjour, è possibile disattivarlo utilizzando il seguente comando:
Riferimenti
Last updated