8.4 KiB
Red Teaming en macOS
☁️ 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 de exclusivos NFTs
- Consigue 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 PRs al repositorio de hacktricks y al repositorio de hacktricks-cloud.
Métodos de gestión comunes
- JAMF Pro:
jamf checkJSSConnection
- Kandji
Si logras comprometer las credenciales de administrador para acceder a la plataforma de gestión, puedes potencialmente comprometer todas las computadoras distribuyendo tu malware en las máquinas.
Para el red teaming en entornos de macOS, es muy recomendable tener cierta comprensión de cómo funcionan los MDM:
{% content-ref url="macos-mdm/" %} macos-mdm {% endcontent-ref %}
Y también sobre los protocolos de red "especiales" de MacOS:
{% content-ref url="macos-protocols.md" %} macos-protocols.md {% endcontent-ref %}
Active Directory
En algunas ocasiones, encontrarás que la computadora macOS está conectada a un AD. En este escenario, debes intentar enumerar el directorio activo como estás acostumbrado. Encuentra algo de ayuda en las siguientes páginas:
{% content-ref url="../../network-services-pentesting/pentesting-ldap.md" %} pentesting-ldap.md {% endcontent-ref %}
{% content-ref url="../../windows-hardening/active-directory-methodology/" %} active-directory-methodology {% endcontent-ref %}
{% content-ref url="../../network-services-pentesting/pentesting-kerberos-88/" %} pentesting-kerberos-88 {% endcontent-ref %}
Alguna herramienta local de MacOS que también puede ayudarte es dscl
:
dscl "/Active Directory/[Domain]/All Domains" ls /
También hay algunas herramientas preparadas para MacOS para enumerar automáticamente el AD y jugar con Kerberos:
- Machound: MacHound es una extensión de la herramienta de auditoría Bloodhound que permite recopilar e ingerir relaciones de Active Directory en hosts de MacOS.
- Bifrost: Bifrost es un proyecto Objective-C diseñado para interactuar con las API de Heimdal krb5 en macOS. El objetivo del proyecto es permitir una mejor prueba de seguridad en torno a Kerberos en dispositivos macOS utilizando API nativas sin requerir ningún otro marco o paquete en el objetivo.
- Orchard: Herramienta de JavaScript para Automatización (JXA) para hacer enumeración de Active Directory.
Información del dominio
echo show com.apple.opendirectoryd.ActiveDirectory | scutil
Usuarios
Los tres tipos de usuarios de MacOS son:
- Usuarios locales - Administrados por el servicio local de OpenDirectory, no están conectados de ninguna manera al Active Directory.
- Usuarios de red - Usuarios volátiles de Active Directory que requieren una conexión al servidor DC para autenticarse.
- Usuarios móviles - Usuarios de Active Directory con una copia de seguridad local para sus credenciales y archivos.
La información local sobre usuarios y grupos se almacena en la carpeta /var/db/dslocal/nodes/Default.
Por ejemplo, la información sobre el usuario llamado mark se almacena en /var/db/dslocal/nodes/Default/users/mark.plist y la información sobre el grupo admin está en /var/db/dslocal/nodes/Default/groups/admin.plist.
Además de utilizar los bordes HasSession y AdminTo, MacHound agrega tres nuevos bordes a la base de datos Bloodhound:
- CanSSH - entidad permitida para SSH al host
- CanVNC - entidad permitida para VNC al host
- CanAE - entidad permitida para ejecutar scripts de AppleEvent en el host
#User enumeration
dscl . ls /Users
dscl . read /Users/[username]
dscl "/Active Directory/TEST/All Domains" ls /Users
dscl "/Active Directory/TEST/All Domains" read /Users/[username]
dscacheutil -q user
#Computer enumeration
dscl "/Active Directory/TEST/All Domains" ls /Computers
dscl "/Active Directory/TEST/All Domains" read "/Computers/[compname]$"
#Group enumeration
dscl . ls /Groups
dscl . read "/Groups/[groupname]"
dscl "/Active Directory/TEST/All Domains" ls /Groups
dscl "/Active Directory/TEST/All Domains" read "/Groups/[groupname]"
#Domain Information
dsconfigad -show
Más información en https://its-a-feature.github.io/posts/2018/01/Active-Directory-Discovery-with-a-Mac/
Servicios Externos
El Red Teaming en MacOS es diferente al Red Teaming regular de Windows ya que usualmente MacOS está integrado con varias plataformas externas directamente. Una configuración común de MacOS es acceder a la computadora usando credenciales sincronizadas con OneLogin, y accediendo a varios servicios externos (como github, aws...) a través de OneLogin:
Referencias
- https://www.youtube.com/watch?v=IiMladUbL6E
- https://medium.com/xm-cyber/introducing-machound-a-solution-to-macos-active-directory-based-attacks-2a425f0a22b6
- https://gist.github.com/its-a-feature/1a34f597fb30985a2742bb16116e74e0
☁️ 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? ¡Revisa 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 PRs al repositorio de hacktricks y al repositorio de hacktricks-cloud.