macOS Red Teaming

Erlernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Ausnutzen von MDMs

  • JAMF Pro: jamf checkJSSConnection

  • Kandji

Wenn es Ihnen gelingt, Admin-Anmeldeinformationen zu kompromittieren, um auf die Management-Plattform zuzugreifen, können Sie möglicherweise alle Computer kompromittieren, indem Sie Ihre Malware auf den Maschinen verteilen.

Für Red Teaming in MacOS-Umgebungen wird dringend empfohlen, ein Verständnis dafür zu haben, wie die MDMs funktionieren:

Verwendung von MDM als C2

Ein MDM hat die Berechtigung, Profile zu installieren, abzufragen oder zu entfernen, Anwendungen zu installieren, lokale Admin-Konten zu erstellen, das Firmware-Passwort festzulegen, den FileVault-Schlüssel zu ändern...

Um Ihr eigenes MDM auszuführen, benötigen Sie Ihren CSR, der von einem Anbieter signiert ist, den Sie versuchen könnten, mit https://mdmcert.download/ zu erhalten. Und um Ihr eigenes MDM für Apple-Geräte auszuführen, könnten Sie MicroMDM verwenden.

Um jedoch eine Anwendung auf einem eingeschriebenen Gerät zu installieren, muss sie immer noch von einem Entwicklerkonto signiert sein... jedoch fügt das Gerät bei der MDM-Registrierung das SSL-Zertifikat des MDM als vertrauenswürdige CA hinzu, sodass Sie jetzt alles signieren können.

Um das Gerät in einem MDM zu registrieren, müssen Sie eine mobileconfig-Datei als Root installieren, die über eine pkg-Datei bereitgestellt werden könnte (Sie könnten sie in einem Zip komprimieren und wenn sie aus Safari heruntergeladen wird, wird sie dekomprimiert).

Der Mythic-Agent Orthrus verwendet diese Technik.

Ausnutzen von JAMF PRO

JAMF kann benutzerdefinierte Skripte (von Sysadmin entwickelte Skripte), native Payloads (lokale Kontoerstellung, EFI-Passwort festlegen, Datei-/Prozessüberwachung...) und MDM (Gerätekonfigurationen, Gerätezertifikate...) ausführen.

JAMF-Selbstregistrierung

Gehen Sie zu einer Seite wie https://<Firmenname>.jamfcloud.com/enroll/, um zu sehen, ob die Selbstregistrierung aktiviert ist. Wenn ja, könnte es nach Anmeldeinformationen fragen, um darauf zuzugreifen.

Sie könnten das Skript JamfSniper.py verwenden, um einen Passwort-Spraying-Angriff durchzuführen.

Darüber hinaus könnten Sie nach dem Auffinden geeigneter Anmeldeinformationen in der Lage sein, andere Benutzernamen mit dem folgenden Formular per Brute-Force anzugreifen:

JAMF-Geräteauthentifizierung

Das jamf-Binär enthielt das Geheimnis, den Schlüsselbund zu öffnen, der zum Zeitpunkt der Entdeckung von allen geteilt wurde und es war: jk23ucnq91jfu9aj. Darüber hinaus persistiert jamf als LaunchDaemon in /Library/LaunchAgents/com.jamf.management.agent.plist

JAMF-Geräteübernahme

Die JSS (Jamf Software Server) URL, die jamf verwenden wird, befindet sich in /Library/Preferences/com.jamfsoftware.jamf.plist. Diese Datei enthält im Wesentlichen die URL:

plutil -convert xml1 -o - /Library/Preferences/com.jamfsoftware.jamf.plist

[...]
<key>is_virtual_machine</key>
<false/>
<key>jss_url</key>
<string>https://halbornasd.jamfcloud.com/</string>
<key>last_management_framework_change_id</key>
<integer>4</integer>
[...]

Daher könnte ein Angreifer ein bösartiges Paket (pkg) ablegen, das diese Datei überschreibt, wenn es installiert wird und die URL auf einen Mythic C2-Listener von einem Typhon-Agenten setzt, um nun JAMF als C2 zu missbrauchen.

# After changing the URL you could wait for it to be reloaded or execute:
sudo jamf policy -id 0

# TODO: There is an ID, maybe it's possible to have the real jamf connection and another one to the C2

JAMF-Imitation

Um die Kommunikation zwischen einem Gerät und JMF zu imitieren, benötigen Sie:

  • Die UUID des Geräts: ioreg -d2 -c IOPlatformExpertDevice | awk -F" '/IOPlatformUUID/{print $(NF-1)}'

  • Das JAMF-Schlüsselbund von: /Library/Application\ Support/Jamf/JAMF.keychain, das das Gerätezertifikat enthält

Mit diesen Informationen erstellen Sie eine VM mit der gestohlenen Hardware-UUID und mit deaktiviertem SIP, lassen das JAMF-Schlüsselbund fallen, hooken den Jamf-Agenten und stehlen seine Informationen.

Geheimnisse stehlen

Sie könnten auch den Ordner /Library/Application Support/Jamf/tmp/ überwachen, um die benutzerdefinierten Skripte zu sehen, die Administratoren über Jamf ausführen möchten, da sie hier platziert, ausgeführt und entfernt werden. Diese Skripte können Anmeldeinformationen enthalten.

Allerdings könnten Anmeldeinformationen als Parameter an diese Skripte übergeben werden, daher müssten Sie ps aux | grep -i jamf überwachen (ohne Root-Rechte zu haben).

Das Skript JamfExplorer.py kann auf neue hinzugefügte Dateien und neue Prozessargumente hören.

macOS Remotezugriff

Und auch über MacOS "spezielle" Netzwerk-Protokolle:

Active Directory

In einigen Fällen werden Sie feststellen, dass der MacOS-Computer mit einem AD verbunden ist. In diesem Szenario sollten Sie versuchen, das Active Directory aufzulisten, wie Sie es gewohnt sind. Finden Sie auf den folgenden Seiten Hilfe:

Ein lokales MacOS-Tool, das Ihnen auch helfen kann, ist dscl:

dscl "/Active Directory/[Domain]/All Domains" ls /

Auch gibt es einige Tools für MacOS, um automatisch das AD aufzulisten und mit Kerberos zu arbeiten:

  • Machound: MacHound ist eine Erweiterung des Bloodhound-Audit-Tools, das das Sammeln und Einlesen von Active Directory-Beziehungen auf MacOS-Hosts ermöglicht.

  • Bifrost: Bifrost ist ein Objective-C-Projekt, das entwickelt wurde, um mit den Heimdal krb5-APIs auf macOS zu interagieren. Das Ziel des Projekts ist es, bessere Sicherheitstests rund um Kerberos auf macOS-Geräten unter Verwendung nativer APIs zu ermöglichen, ohne dass ein anderes Framework oder Pakete auf dem Ziel benötigt werden.

  • Orchard: JavaScript for Automation (JXA)-Tool zur Durchführung der Active Directory-Auflistung.

Domäneninformationen

echo show com.apple.opendirectoryd.ActiveDirectory | scutil

Benutzer

Die drei Arten von MacOS-Benutzern sind:

  • Lokale Benutzer — Werden vom lokalen OpenDirectory-Dienst verwaltet und sind in keiner Weise mit dem Active Directory verbunden.

  • Netzwerkbenutzer — Flüchtige Active Directory-Benutzer, die eine Verbindung zum DC-Server benötigen, um sich zu authentifizieren.

  • Mobile Benutzer — Active Directory-Benutzer mit einem lokalen Backup für ihre Anmeldeinformationen und Dateien.

Die lokalen Informationen zu Benutzern und Gruppen werden im Ordner /var/db/dslocal/nodes/Default gespeichert. Zum Beispiel werden die Informationen zum Benutzer namens mark in /var/db/dslocal/nodes/Default/users/mark.plist gespeichert und die Informationen zur Gruppe admin befinden sich in /var/db/dslocal/nodes/Default/groups/admin.plist.

Zusätzlich zu den Verwendung von HasSession und AdminTo-Kanten fügt MacHound drei neue Kanten zur Bloodhound-Datenbank hinzu:

  • CanSSH - Entität, die zum SSH-Zugriff auf den Host berechtigt ist

  • CanVNC - Entität, die zum VNC-Zugriff auf den Host berechtigt ist

  • CanAE - Entität, die zum Ausführen von AppleEvent-Skripten auf dem Host berechtigt ist

#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

Mehr Informationen unter https://its-a-feature.github.io/posts/2018/01/Active-Directory-Discovery-with-a-Mac/

Zugriff auf den Schlüsselbund

Der Schlüsselbund enthält höchstwahrscheinlich sensible Informationen, die, wenn ohne Aufforderung abgerufen, dazu beitragen könnten, eine Red-Team-Übung voranzutreiben:

Externe Dienste

MacOS Red Teaming unterscheidet sich von einem regulären Windows Red Teaming, da MacOS in der Regel direkt mit mehreren externen Plattformen integriert ist. Eine gängige Konfiguration von MacOS besteht darin, auf den Computer mit OneLogin-synchronisierten Anmeldedaten zuzugreifen und auf mehrere externe Dienste (wie github, aws...) über OneLogin zuzugreifen.

Verschiedene Red-Team-Techniken

Safari

Wenn in Safari eine Datei heruntergeladen wird und es sich um eine "sichere" Datei handelt, wird sie automatisch geöffnet. Wenn Sie beispielsweise eine Zip-Datei herunterladen, wird sie automatisch entpackt:

Referenzen

Last updated