macOS Red Teaming
Last updated
Last updated
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Uzyskaj perspektywę hakera na swoje aplikacje internetowe, sieć i chmurę
Znajdź i zgłoś krytyczne, wykorzystywalne luki w zabezpieczeniach, które mają rzeczywisty wpływ na biznes. Użyj naszych 20+ niestandardowych narzędzi, aby zmapować powierzchnię ataku, znaleźć problemy z bezpieczeństwem, które pozwalają na eskalację uprawnień, i użyj automatycznych exploitów, aby zebrać niezbędne dowody, przekształcając swoją ciężką pracę w przekonujące raporty.
JAMF Pro: jamf checkJSSConnection
Kandji
Jeśli uda ci się skompromentować dane logowania administratora do platformy zarządzania, możesz potencjalnie skompromitować wszystkie komputery, rozprzestrzeniając swoje złośliwe oprogramowanie na maszynach.
Dla red teamingu w środowiskach MacOS zaleca się posiadanie pewnej wiedzy na temat działania MDM:
macOS MDMMDM będzie miało uprawnienia do instalowania, zapytywania lub usuwania profili, instalowania aplikacji, tworzenia lokalnych kont administratorów, ustawiania hasła firmware, zmiany klucza FileVault...
Aby uruchomić własne MDM, musisz podpisać swój CSR przez dostawcę, co możesz spróbować uzyskać za pomocą https://mdmcert.download/. Aby uruchomić własne MDM dla urządzeń Apple, możesz użyć MicroMDM.
Jednak aby zainstalować aplikację na zarejestrowanym urządzeniu, nadal musisz, aby była podpisana przez konto dewelopera... jednak po rejestracji MDM urządzenie dodaje certyfikat SSL MDM jako zaufane CA, więc teraz możesz podpisać cokolwiek.
Aby zarejestrować urządzenie w MDM, musisz zainstalować plik mobileconfig
jako root, który można dostarczyć za pomocą pliku pkg (możesz go skompresować w zip, a po pobraniu z safari zostanie on rozpakowany).
Agent Mythic Orthrus używa tej techniki.
JAMF może uruchamiać niestandardowe skrypty (skrypty opracowane przez sysadmina), natywne payloady (tworzenie lokalnych kont, ustawianie hasła EFI, monitorowanie plików/procesów...) oraz MDM (konfiguracje urządzeń, certyfikaty urządzeń...).
Przejdź do strony takiej jak https://<nazwa-firmy>.jamfcloud.com/enroll/
, aby sprawdzić, czy mają włączoną samo-rejestrację. Jeśli tak, może poprosić o dane logowania.
Możesz użyć skryptu JamfSniper.py, aby przeprowadzić atak na hasła.
Ponadto, po znalezieniu odpowiednich danych logowania, możesz być w stanie przeprowadzić brute-force na innych nazwach użytkowników za pomocą następnej formy:
Binarne jamf
zawierało sekret do otwarcia pęku kluczy, który w momencie odkrycia był dzielony wśród wszystkich i brzmiał: jk23ucnq91jfu9aj
.
Ponadto, jamf utrzymuje się jako LaunchDaemon w /Library/LaunchAgents/com.jamf.management.agent.plist
URL JSS (Jamf Software Server), który jamf
będzie używać, znajduje się w /Library/Preferences/com.jamfsoftware.jamf.plist
.
Ten plik zasadniczo zawiera URL:
Więc, atakujący mógłby zainstalować złośliwy pakiet (pkg
), który nadpisuje ten plik, ustawiając URL do słuchacza Mythic C2 z agenta Typhon, aby móc nadużywać JAMF jako C2.
Aby podszyć się pod komunikację między urządzeniem a JMF, potrzebujesz:
UUID urządzenia: ioreg -d2 -c IOPlatformExpertDevice | awk -F" '/IOPlatformUUID/{print $(NF-1)}'
Zaufanego klucza JAMF z: /Library/Application\ Support/Jamf/JAMF.keychain
, który zawiera certyfikat urządzenia
Mając te informacje, stwórz VM z skradzionym Hardware UUID i z wyłączonym SIP, umieść klucz JAMF, podłącz agenta Jamf i skradnij jego informacje.
Możesz również monitorować lokalizację /Library/Application Support/Jamf/tmp/
w poszukiwaniu niestandardowych skryptów, które administratorzy mogą chcieć wykonać za pomocą Jamf, ponieważ są umieszczane tutaj, wykonywane i usuwane. Te skrypty mogą zawierać poświadczenia.
Jednakże, poświadczenia mogą być przekazywane do tych skryptów jako parametry, więc musisz monitorować ps aux | grep -i jamf
(nawet nie będąc rootem).
Skrypt JamfExplorer.py może nasłuchiwać nowych plików dodawanych i nowych argumentów procesów.
A także o "specjalnych" protokołach sieciowych MacOS:
macOS Network Services & ProtocolsW niektórych przypadkach możesz stwierdzić, że komputer MacOS jest podłączony do AD. W tym scenariuszu powinieneś spróbować wyenumerować aktywny katalog, jak jesteś do tego przyzwyczajony. Znajdź trochę pomocy na następujących stronach:
389, 636, 3268, 3269 - Pentesting LDAPActive Directory Methodology88tcp/udp - Pentesting KerberosNiektóre lokalne narzędzia MacOS, które mogą również pomóc, to dscl
:
Również istnieją narzędzia przygotowane dla MacOS do automatycznego enumerowania AD i zabawy z kerberos:
Machound: MacHound to rozszerzenie narzędzia audytowego Bloodhound, które umożliwia zbieranie i przetwarzanie relacji Active Directory na hostach MacOS.
Bifrost: Bifrost to projekt w Objective-C zaprojektowany do interakcji z interfejsami API Heimdal krb5 na macOS. Celem projektu jest umożliwienie lepszego testowania bezpieczeństwa związane z Kerberos na urządzeniach macOS przy użyciu natywnych interfejsów API bez konieczności używania innych frameworków lub pakietów na docelowym systemie.
Orchard: Narzędzie JavaScript for Automation (JXA) do enumeracji Active Directory.
Trzy typy użytkowników MacOS to:
Użytkownicy lokalni — Zarządzani przez lokalną usługę OpenDirectory, nie są w żaden sposób połączeni z Active Directory.
Użytkownicy sieciowi — Zmienni użytkownicy Active Directory, którzy wymagają połączenia z serwerem DC w celu uwierzytelnienia.
Użytkownicy mobilni — Użytkownicy Active Directory z lokalną kopią zapasową swoich poświadczeń i plików.
Lokalne informacje o użytkownikach i grupach są przechowywane w folderze /var/db/dslocal/nodes/Default. Na przykład, informacje o użytkowniku o nazwie mark są przechowywane w /var/db/dslocal/nodes/Default/users/mark.plist, a informacje o grupie admin znajdują się w /var/db/dslocal/nodes/Default/groups/admin.plist.
Oprócz używania krawędzi HasSession i AdminTo, MacHound dodaje trzy nowe krawędzie do bazy danych Bloodhound:
CanSSH - podmiot dozwolony do SSH do hosta
CanVNC - podmiot dozwolony do VNC do hosta
CanAE - podmiot dozwolony do wykonywania skryptów AppleEvent na hoście
Więcej informacji w https://its-a-feature.github.io/posts/2018/01/Active-Directory-Discovery-with-a-Mac/
Uzyskaj hasła za pomocą:
Możliwe jest uzyskanie hasła Computer$
wewnątrz systemowego pęku kluczy.
Uzyskaj TGT dla konkretnego użytkownika i usługi:
Gdy TGT zostanie zebrany, możliwe jest wstrzyknięcie go w bieżącą sesję za pomocą:
Z uzyskanymi biletami serwisowymi możliwe jest próbowanie dostępu do udostępnionych zasobów na innych komputerach:
Keychain prawdopodobnie zawiera wrażliwe informacje, które, jeśli zostaną uzyskane bez generowania monitu, mogą pomóc w przeprowadzeniu ćwiczenia red team:
macOS KeychainMacOS Red Teaming różni się od standardowego Windows Red Teaming, ponieważ zazwyczaj MacOS jest zintegrowany z kilkoma zewnętrznymi platformami bezpośrednio. Typowa konfiguracja MacOS polega na uzyskiwaniu dostępu do komputera za pomocą zsynchronizowanych poświadczeń OneLogin oraz dostępu do kilku zewnętrznych usług (takich jak github, aws...) za pośrednictwem OneLogin.
Gdy plik jest pobierany w Safari, jeśli jest to "bezpieczny" plik, zostanie automatycznie otwarty. Na przykład, jeśli pobierzesz zip, zostanie on automatycznie rozpakowany:
Uzyskaj perspektywę hakera na swoje aplikacje internetowe, sieć i chmurę
Znajdź i zgłoś krytyczne, wykorzystywalne luki z rzeczywistym wpływem na biznes. Użyj naszych 20+ niestandardowych narzędzi do mapowania powierzchni ataku, znajdowania problemów z bezpieczeństwem, które pozwalają na eskalację uprawnień, oraz użyj zautomatyzowanych exploitów do zbierania niezbędnych dowodów, przekształcając swoją ciężką pracę w przekonujące raporty.
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)