10 KiB
Servicios de Acceso Remoto
Estos son los servicios comunes de macOS para acceder a ellos de forma remota.
Puede habilitar/deshabilitar estos servicios en Preferencias del Sistema
--> Compartir
- VNC, conocido como "Compartir pantalla" (tcp:5900)
- SSH, llamado "Inicio de sesión remoto" (tcp:22)
- Apple Remote Desktop (ARD), o "Administración remota" (tcp:3283, tcp:5900)
- AppleEvent, conocido como "Evento remoto de Apple" (tcp:3031)
Compruebe si alguno está habilitado ejecutando:
rmMgmt=$(netstat -na | grep LISTEN | grep tcp46 | grep "*.3283" | wc -l);
scrShrng=$(netstat -na | grep LISTEN | egrep 'tcp4|tcp6' | grep "*.5900" | wc -l);
flShrng=$(netstat -na | grep LISTEN | egrep 'tcp4|tcp6' | egrep "\*.88|\*.445|\*.548" | wc -l);
rLgn=$(netstat -na | grep LISTEN | egrep 'tcp4|tcp6' | grep "*.22" | wc -l);
rAE=$(netstat -na | grep LISTEN | egrep 'tcp4|tcp6' | grep "*.3031" | wc -l);
bmM=$(netstat -na | grep LISTEN | egrep 'tcp4|tcp6' | grep "*.4488" | wc -l);
printf "\nThe following services are OFF if '0', or ON otherwise:\nScreen Sharing: %s\nFile Sharing: %s\nRemote Login: %s\nRemote Mgmt: %s\nRemote Apple Events: %s\nBack to My Mac: %s\n\n" "$scrShrng" "$flShrng" "$rLgn" "$rmMgmt" "$rAE" "$bmM";
Pentesting ARD
(Esta parte fue tomada de esta publicación de blog)
Esencialmente, es un VNC bastardizado con algunas características específicas de macOS adicionales.
Sin embargo, la opción Screen Sharing es solo un servidor VNC básico. También hay una opción avanzada de ARD o Administración remota para establecer una contraseña de pantalla de control que hará que ARD sea compatible con clientes VNC. Sin embargo, hay una debilidad en este método de autenticación que limita esta contraseña a un búfer de autenticación de 8 caracteres, lo que lo hace muy fácil de atacar por fuerza bruta con una herramienta como Hydra o GoRedShell (tampoco hay límites de velocidad por defecto).
Puede identificar instancias vulnerables de Screen Sharing o Administración remota con nmap, utilizando el script vnc-info
, y si el servicio admite Autenticación VNC (2)
es probable que sean vulnerables a ataques por fuerza bruta. El servicio truncará todas las contraseñas enviadas por cable a 8 caracteres, de modo que si establece la autenticación VNC en "contraseña", tanto "contraseña" como "contraseña123" se autenticarán.
Si desea habilitarlo para escalar privilegios (aceptar las solicitudes de TCC), acceder con una GUI o espiar al usuario, es posible habilitarlo con:
{% code overflow="wrap" %}
sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -activate -configure -allowAccessFor -allUsers -privs -all -clientopts -setmenuextra -menuextra yes
{% endcode %}
Puedes cambiar entre el modo de observación, control compartido y control total, pasando de espiar a un usuario a tomar el control de su escritorio con solo hacer clic en un botón. Además, si obtienes acceso a una sesión de ARD, esa sesión permanecerá abierta hasta que se termine, incluso si se cambia la contraseña del usuario durante la sesión.
También puedes enviar comandos unix directamente a través de ARD y puedes especificar el usuario root para ejecutar cosas como root si eres un usuario administrativo. Incluso puedes usar este método de comando unix para programar tareas remotas para que se ejecuten en un momento específico, sin embargo, esto ocurre como una conexión de red en el momento especificado (en lugar de almacenarse y ejecutarse en el servidor objetivo). Finalmente, el Spotlight remoto es una de mis características favoritas. Es realmente genial porque puedes ejecutar una búsqueda indexada de bajo impacto de manera rápida y remota. Esto es oro para buscar archivos sensibles porque es rápido, te permite ejecutar búsquedas simultáneamente en varias máquinas y no aumentará la CPU.
Protocolo Bonjour
Bonjour es una tecnología diseñada por Apple que permite a las computadoras y dispositivos ubicados en la misma red conocer los servicios ofrecidos por otras computadoras y dispositivos. Está diseñado de tal manera que cualquier dispositivo compatible con Bonjour puede conectarse a una red TCP/IP y elegir una dirección IP y hacer que otras computadoras en esa red conozcan los servicios que ofrece. A veces se hace referencia a Bonjour como Rendezvous, Zero Configuration o Zeroconf.
La Red de Configuración Cero, como la que proporciona Bonjour, ofrece:
- Debe poder obtener una dirección IP (incluso sin un servidor DHCP)
- Debe poder hacer traducción de nombre a dirección (incluso sin un servidor DNS)
- Debe poder descubrir servicios en la red
El dispositivo obtendrá una dirección IP en el rango 169.254/16 y verificará si algún otro dispositivo está usando esa dirección IP. Si no, mantendrá la dirección IP. Las Mac mantienen una entrada en su tabla de enrutamiento para esta subred: netstat -rn | grep 169
Para DNS se utiliza el protocolo Multicast DNS (mDNS). Los servicios mDNS escuchan en el puerto 5353/UDP, usan consultas DNS regulares y usan la dirección multicast 224.0.0.251 en lugar de enviar la solicitud solo a una dirección IP. Cualquier máquina que escuche estas solicitudes responderá, generalmente a una dirección multicast, para que todos los dispositivos puedan actualizar sus tablas.
Cada dispositivo seleccionará su propio nombre al acceder a la red, el dispositivo elegirá un nombre que termine en .local (puede basarse en el nombre de host o ser completamente aleatorio).
Para descubrir servicios se utiliza el Descubrimiento de Servicios DNS (DNS-SD).
El requisito final de la Red de Configuración Cero se cumple mediante el Descubrimiento de Servicios DNS (DNS-SD). El Descubrimiento de Servicios DNS utiliza la sintaxis de los registros SRV de DNS, pero utiliza registros PTR de DNS para que se puedan devolver múltiples resultados si más de un host ofrece un servicio en particular. Un cliente solicita la búsqueda PTR para el nombre <Servicio>.<Dominio>
y recibe una lista de cero o más registros PTR de la forma <Instancia>.<Servicio>.<Dominio>
.
El binario dns-sd
se puede utilizar para anunciar servicios y realizar búsquedas de servicios:
#Search ssh services
dns-sd -B _ssh._tcp
Browsing for _ssh._tcp
DATE: ---Tue 27 Jul 2021---
12:23:20.361 ...STARTING...
Timestamp A/R Flags if Domain Service Type Instance Name
12:23:20.362 Add 3 1 local. _ssh._tcp. M-C02C934RMD6R
12:23:20.362 Add 3 10 local. _ssh._tcp. M-C02C934RMD6R
12:23:20.362 Add 2 16 local. _ssh._tcp. M-C02C934RMD6R
#Announce HTTP service
dns-sd -R "Index" _http._tcp . 80 path=/index.html
#Search HTTP services
dns-sd -B _http._tcp
Cuando se inicia un nuevo servicio, el nuevo servicio difunde su presencia a todos en la subred. El oyente no tuvo que preguntar; solo tenía que estar escuchando.
Puedes usar esta herramienta para ver los servicios ofrecidos en tu red local actual.
O puedes escribir tus propios scripts en python con python-zeroconf:
from zeroconf import ServiceBrowser, Zeroconf
class MyListener:
def remove_service(self, zeroconf, type, name):
print("Service %s removed" % (name,))
def add_service(self, zeroconf, type, name):
info = zeroconf.get_service_info(type, name)
print("Service %s added, service info: %s" % (name, info))
zeroconf = Zeroconf()
listener = MyListener()
browser = ServiceBrowser(zeroconf, "_http._tcp.local.", listener)
try:
input("Press enter to exit...\n\n")
finally:
zeroconf.close()
Si sientes que Bonjour podría ser más seguro desactivado, puedes hacerlo con:
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
Referencias
- The Mac Hacker's Handbook
- https://taomm.org/vol1/analysis.html
- https://lockboxx.blogspot.com/2019/07/macos-red-teaming-206-ard-apple-remote.html
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- ¿Trabajas en una empresa de ciberseguridad? ¿Quieres ver tu empresa anunciada en HackTricks? ¿O quieres tener acceso a la última versión de PEASS o descargar HackTricks en PDF? ¡Consulta los PLANES DE SUSCRIPCIÓN!
- Descubre The PEASS Family, nuestra colección exclusiva de NFTs
- Obtén el swag oficial de PEASS y HackTricks
- Únete al 💬 grupo de Discord o al grupo de telegram o sígueme en Twitter 🐦@carlospolopm.
- Comparte tus trucos de hacking enviando PR al repositorio de hacktricks y al repositorio de hacktricks-cloud.