macOS Red Teaming
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:
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.
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
:
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
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
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