macOS Network Services & Protocols
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Questi sono i comuni servizi macOS per accedervi da remoto.
Puoi 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)
Controlla se qualcuno è abilitato eseguendo:
Apple Remote Desktop (ARD) è una versione avanzata di Virtual Network Computing (VNC) progettata per macOS, che offre funzionalità aggiuntive. Una vulnerabilità notevole in ARD è il suo metodo di autenticazione per la password dello schermo di controllo, che utilizza solo i primi 8 caratteri della password, rendendolo suscettibile a brute force attacks 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 agli attacchi di forza bruta a causa della troncatura della password a 8 caratteri.
Per abilitare ARD per vari compiti amministrativi come l'escalation dei privilegi, l'accesso GUI o il monitoraggio degli utenti, utilizzare il seguente comando:
ARD fornisce livelli di controllo versatili, inclusi osservazione, controllo condiviso e controllo completo, con sessioni che persistono anche dopo le modifiche della password dell'utente. Consente di inviare comandi Unix direttamente, eseguendoli come root per gli utenti amministrativi. La pianificazione dei compiti e la ricerca remota di Spotlight sono caratteristiche notevoli, che facilitano ricerche remote a basso impatto per file sensibili su più macchine.
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 trasmettere i propri servizi ad 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 nome-indirizzo senza richiedere un server DNS.
Scoprire i servizi disponibili sulla rete.
I dispositivi che utilizzano Bonjour si assegneranno un indirizzo IP dall'intervallo 169.254/16 e verificheranno la sua unicità sulla rete. I Mac mantengono un'entrata nella tabella di routing per questa subnet, verificabile tramite netstat -rn | grep 169
.
Per DNS, Bonjour utilizza il protocollo Multicast DNS (mDNS). mDNS opera su porta 5353/UDP, impiegando query DNS standard ma mirate 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.
All'unirsi alla rete, ogni dispositivo seleziona autonomamente un nome, che di solito termina in .local, il quale può derivare dal nome host o essere generato casualmente.
La scoperta dei servizi all'interno della rete è facilitata da DNS Service Discovery (DNS-SD). Sfruttando il formato dei record DNS SRV, DNS-SD utilizza record DNS PTR per abilitare l'elenco di più servizi. Un client che cerca un servizio specifico richiederà un record PTR per <Service>.<Domain>
, ricevendo in cambio un elenco di record PTR formattati come <Instance>.<Service>.<Domain>
se il servizio è disponibile da più host.
L'utilità dns-sd
può essere impiegata per scoprire e pubblicizzare i servizi di rete. Ecco alcuni esempi del suo utilizzo:
Per cercare servizi SSH sulla rete, viene utilizzato il seguente comando:
Questo comando avvia la ricerca di servizi _ssh._tcp e restituisce dettagli come timestamp, flag, interfaccia, dominio, tipo di servizio e nome dell'istanza.
Per pubblicizzare un servizio HTTP, puoi usare:
Questo comando registra un servizio HTTP chiamato "Index" sulla porta 80 con un percorso di /index.html
.
Per cercare quindi servizi HTTP sulla rete:
Quando un servizio si avvia, annuncia la sua disponibilità a tutti i dispositivi sulla subnet multicasting la sua presenza. I dispositivi interessati a questi servizi non devono inviare richieste, ma semplicemente ascoltare questi annunci.
Per un'interfaccia più user-friendly, l'app Discovery - DNS-SD Browser disponibile su Apple App Store può visualizzare i servizi offerti sulla tua rete locale.
In alternativa, possono essere scritti script personalizzati per navigare 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:
Se ci sono preoccupazioni riguardo alla sicurezza o altre ragioni per disabilitare Bonjour, può essere disattivato utilizzando il seguente comando:
Impara e pratica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Impara e pratica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)