macOS Red Teaming
Missbrauch von MDMs
JAMF Pro:
jamf checkJSSConnection
Kandji
Wenn es dir gelingt, Admin-Anmeldeinformationen zu kompromittieren, um auf die Verwaltungsplattform zuzugreifen, kannst du potenziell alle Computer kompromittieren, indem du deine Malware auf den Maschinen verteilst.
Für Red Teaming in macOS-Umgebungen wird dringend empfohlen, ein gewisses Verständnis dafür zu haben, wie die MDMs funktionieren:
macOS MDMVerwendung von MDM als C2
Ein MDM hat die Berechtigung, Profile zu installieren, abzufragen oder zu entfernen, Anwendungen zu installieren, lokale Administratorkonten zu erstellen, das Firmware-Passwort festzulegen, den FileVault-Schlüssel zu ändern...
Um dein eigenes MDM zu betreiben, musst du dein CSR von einem Anbieter signieren lassen, was du versuchen könntest, mit https://mdmcert.download/. Und um dein eigenes MDM für Apple-Geräte zu betreiben, könntest du MicroMDM verwenden.
Um jedoch eine Anwendung auf einem registrierten Gerät zu installieren, muss sie weiterhin 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 du jetzt alles signieren kannst.
Um das Gerät in ein MDM zu registrieren, musst du eine mobileconfig
-Datei als Root installieren, die über eine pkg-Datei bereitgestellt werden könnte (du könntest sie in zip komprimieren und wenn sie von Safari heruntergeladen wird, wird sie dekomprimiert).
Mythic agent Orthrus verwendet diese Technik.
Missbrauch von JAMF PRO
JAMF kann benutzerdefinierte Skripte (Skripte, die vom Sysadmin entwickelt wurden), native Payloads (Erstellung lokaler Konten, Festlegung des EFI-Passworts, Datei-/Prozessüberwachung...) und MDM (Gerätekonfigurationen, Gerätezertifikate...) ausführen.
JAMF Selbstregistrierung
Gehe zu einer Seite wie https://<company-name>.jamfcloud.com/enroll/
, um zu sehen, ob sie Selbstregistrierung aktiviert haben. Wenn ja, könnte es nach Anmeldeinformationen fragen.
Du könntest das Skript JamfSniper.py verwenden, um einen Passwort-Spraying-Angriff durchzuführen.
Darüber hinaus könntest du nach dem Finden geeigneter Anmeldeinformationen in der Lage sein, andere Benutzernamen mit dem nächsten Formular zu brute-forcen:
JAMF Geräteauthentifizierung
Die jamf
-Binärdatei enthielt das Geheimnis, um den Schlüsselbund zu öffnen, das zum Zeitpunkt der Entdeckung unter allen geteilt wurde und 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:
Ein Angreifer könnte also 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 JAMF jetzt als C2 auszunutzen.
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)}'
Den JAMF-Schlüsselbund von:
/Library/Application\ Support/Jamf/JAMF.keychain
, der das Gerätezertifikat enthält
Mit diesen Informationen erstellen Sie eine VM mit der gestohlenen Hardware-UUID und mit deaktiviertem SIP, legen Sie den JAMF-Schlüsselbund ab, haken Sie den Jamf Agenten und stehlen Sie dessen Informationen.
Geheimnisse stehlen
Sie könnten auch den Speicherort /Library/Application Support/Jamf/tmp/
überwachen, um die benutzerdefinierten Skripte zu erfassen, die Administratoren möglicherweise über Jamf ausführen möchten, da sie hier platziert, ausgeführt und entfernt werden. Diese Skripte könnten Anmeldeinformationen enthalten.
Allerdings könnten Anmeldeinformationen diesen Skripten als Parameter übergeben werden, sodass Sie ps aux | grep -i jamf
überwachen müssten (ohne sogar root zu sein).
Das Skript JamfExplorer.py kann auf neue hinzugefügte Dateien und neue Prozessargumente hören.
macOS Remote-Zugriff
Und auch über MacOS "besondere" Netzwerk Protokolle:
macOS Network Services & ProtocolsActive 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 zu enumerieren, wie Sie es gewohnt sind. Finden Sie etwas Hilfe auf den folgenden Seiten:
389, 636, 3268, 3269 - Pentesting LDAPActive Directory Methodology88tcp/udp - Pentesting KerberosEin lokales MacOS-Tool, das Ihnen ebenfalls helfen kann, ist dscl
:
Auch gibt es einige Tools für MacOS, um automatisch das AD zu enumerieren und mit Kerberos zu arbeiten:
Machound: MacHound ist eine Erweiterung des Bloodhound-Audit-Tools, das das Sammeln und Verarbeiten 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 andere Frameworks oder Pakete auf dem Ziel erforderlich sind.
Orchard: JavaScript for Automation (JXA) Tool zur Durchführung der Active Directory-Enumeration.
Domain Information
Benutzer
Die drei Arten von MacOS-Benutzern sind:
Lokale Benutzer — Verwaltet durch den lokalen OpenDirectory-Dienst, sie 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 einer lokalen Sicherung ihrer Anmeldeinformationen und Dateien.
Die lokalen Informationen über Benutzer und Gruppen werden im Ordner /var/db/dslocal/nodes/Default. gespeichert. Zum Beispiel werden die Informationen über den Benutzer namens mark in /var/db/dslocal/nodes/Default/users/mark.plist und die Informationen über die Gruppe admin in /var/db/dslocal/nodes/Default/groups/admin.plist gespeichert.
Neben der Verwendung der HasSession- und AdminTo-Kanten fügt MacHound drei neue Kanten zur Bloodhound-Datenbank hinzu:
CanSSH - Entität, die SSH zum Host verwenden darf
CanVNC - Entität, die VNC zum Host verwenden darf
CanAE - Entität, die AppleEvent-Skripte auf dem Host ausführen darf
Mehr Informationen unter https://its-a-feature.github.io/posts/2018/01/Active-Directory-Discovery-with-a-Mac/
Computer$ Passwort
Passwörter abrufen mit:
Es ist möglich, das Computer$
Passwort im System-Schlüsselbund zuzugreifen.
Over-Pass-The-Hash
Holen Sie sich ein TGT für einen bestimmten Benutzer und Dienst:
Sobald das TGT gesammelt ist, ist es möglich, es in die aktuelle Sitzung mit einzufügen:
Kerberoasting
Mit den erhaltenen Servicetickets ist es möglich, auf Freigaben auf anderen Computern zuzugreifen:
Zugriff auf den Schlüsselbund
Der Schlüsselbund enthält höchstwahrscheinlich sensible Informationen, die, wenn sie ohne Aufforderung abgerufen werden, dazu beitragen könnten, eine Red Team-Übung voranzutreiben:
macOS KeychainExterne Dienste
MacOS Red Teaming unterscheidet sich von einem regulären Windows Red Teaming, da MacOS normalerweise direkt mit mehreren externen Plattformen integriert ist. Eine gängige Konfiguration von MacOS besteht darin, auf den Computer mit OneLogin synchronisierten Anmeldeinformationen zuzugreifen und mehrere externe Dienste (wie github, aws...) über OneLogin zu nutzen.
Verschiedene Red Team-Techniken
Safari
Wenn eine Datei in Safari 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