macOS Red Teaming

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Zloupotreba MDM-ova

  • JAMF Pro: jamf checkJSSConnection

  • Kandji

Ako uspete da kompromitujete administratorske akreditive kako biste pristupili platformi za upravljanje, možete potencijalno kompromitovati sve računare distribuiranjem malvera na mašine.

Za crveno timovanje u MacOS okruženjima, veoma je preporučljivo imati određeno razumevanje kako MDM-ovi funkcionišu:

pagemacOS MDM

Korišćenje MDM-a kao C2

MDM će imati dozvolu da instalira, upita ili ukloni profile, instalira aplikacije, kreira lokalne administratorske naloge, postavi lozinku za firmware, promeni FileVault ključ...

Da biste pokrenuli svoj MDM, potrebno je da vaš CSR bude potpisan od strane prodavca što možete pokušati da dobijete sa https://mdmcert.download/. I da biste pokrenuli svoj MDM za Apple uređaje, možete koristiti MicroMDM.

Međutim, da biste instalirali aplikaciju na prijavljeni uređaj, i dalje vam je potrebno da bude potpisana od strane developerskog naloga... međutim, prilikom MDM prijavljivanja, uređaj dodaje SSL sertifikat MDM-a kao pouzdanog CA, tako da sada možete potpisati bilo šta.

Da biste prijavili uređaj u MDM, potrebno je da instalirate mobileconfig fajl kao root, koji može biti dostavljen putem pkg fajla (možete ga kompresovati u zip i kada se preuzme sa safarija, biće dekompresovan).

Mythic agent Orthrus koristi ovu tehniku.

Zloupotreba JAMF PRO

JAMF može pokrenuti prilagođene skripte (skripte razvijene od strane sistem administratora), nativne payload-e (kreiranje lokalnih naloga, postavljanje EFI lozinke, praćenje fajlova/procesa...) i MDM (konfiguracije uređaja, sertifikati uređaja...).

Samoprijavljivanje u JAMF

Idite na stranicu poput https://<ime-kompanije>.jamfcloud.com/enroll/ da biste videli da li imaju omogućeno samoprijavljivanje. Ako imaju, može zatražiti akreditive za pristup.

Možete koristiti skriptu JamfSniper.py da biste izvršili napad prskanja lozinki.

Osim toga, nakon pronalaska odgovarajućih akreditiva, možda ćete moći da probate da forsirovanjem pristupite drugim korisničkim imenima sa sledećim formularom:

Autentikacija uređaja u JAMF-u

jamf binarni fajl sadrži tajnu za otvaranje keša koji je u vreme otkrića deljen među svima i to je bilo: jk23ucnq91jfu9aj. Osim toga, jamf traje kao LaunchDaemon u /Library/LaunchAgents/com.jamf.management.agent.plist

Preuzimanje kontrole nad uređajem u JAMF-u

JSS (Jamf Software Server) URL koji će jamf koristiti se nalazi u /Library/Preferences/com.jamfsoftware.jamf.plist. Ovaj fajl u osnovi sadrži 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>
[...]

Dakle, napadač bi mogao da ubaci zlonamerni paket (pkg) koji prepisuje ovaj fajl prilikom instalacije postavljajući URL ka Mythic C2 slušaocu od strane Typhon agenta kako bi sada mogao zloupotrebiti JAMF kao C2.

# 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 Imitacija

Da biste imitirali komunikaciju između uređaja i JMF-a, potrebno je:

  • UUID uređaja: ioreg -d2 -c IOPlatformExpertDevice | awk -F" '/IOPlatformUUID/{print $(NF-1)}'

  • JAMF keš lanac sa lokacije: /Library/Application\ Support/Jamf/JAMF.keychain koji sadrži sertifikat uređaja

Sa ovim informacijama, napravite virtuelnu mašinu sa ukradenim hardverskim UUID-om i sa SIP onemogućenim, ubacite JAMF keš lanac, hukujte Jamf agenta i ukradite njegove informacije.

Krađa tajni

Takođe možete pratiti lokaciju /Library/Application Support/Jamf/tmp/ za prilagođene skripte koje administratori žele da izvrše putem Jamf-a jer se ovde postavljaju, izvršavaju i uklanjaju. Ove skripte mogu sadržati pristupne podatke.

Međutim, pristupni podaci mogu biti prosleđeni ovim skriptama kao parametri, pa biste trebali pratiti ps aux | grep -i jamf (čak i bez biti root).

Skripta JamfExplorer.py može osluškivati dodavanje novih fajlova i novih argumenata procesa.

Udaljeni pristup MacOS-u

I takođe o "specijalnim" mrežnim protokolima za MacOS:

pagemacOS Network Services & Protocols

Active Directory

U nekim situacijama ćete otkriti da je MacOS računar povezan sa AD. U ovom scenariju trebali biste pokušati da enumerišete active directory kao što ste navikli. Pronađite pomoć na sledećim stranicama:

page389, 636, 3268, 3269 - Pentesting LDAPpageActive Directory Methodologypage88tcp/udp - Pentesting Kerberos

Neke lokalne MacOS alatke koje vam mogu pomoći su dscl:

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

Takođe postoje neki alati pripremljeni za MacOS radi automatskog enumerisanja AD i igranja sa kerberosom:

  • Machound: MacHound je proširenje alata za reviziju Bloodhound koje omogućava prikupljanje i unošenje odnosa Active Directory-ja na MacOS hostovima.

  • Bifrost: Bifrost je Objective-C projekat dizajniran za interakciju sa Heimdal krb5 API-jima na macOS-u. Cilj projekta je omogućiti bolje testiranje sigurnosti oko Kerberosa na uređajima sa macOS-om koristeći nativne API-je bez potrebe za bilo kojim drugim okvirom ili paketima na cilju.

  • Orchard: JavaScript za Automation (JXA) alat za enumeraciju Active Directory-ja.

Informacije o domenu

echo show com.apple.opendirectoryd.ActiveDirectory | scutil

Korisnici

Tri vrste MacOS korisnika su:

  • Lokalni korisnici — Upravljaju se lokalnom OpenDirectory uslugom i nisu na bilo koji način povezani sa Active Directory-jem.

  • Mrežni korisnici — Promenljivi Active Directory korisnici koji zahtevaju povezivanje sa DC serverom radi autentifikacije.

  • Mobilni korisnici — Active Directory korisnici sa lokalnom rezervnom kopijom svojih akreditacija i fajlova.

Lokalne informacije o korisnicima i grupama čuvaju se u folderu /var/db/dslocal/nodes/Default. Na primer, informacije o korisniku pod imenom mark čuvaju se u /var/db/dslocal/nodes/Default/users/mark.plist, a informacije o grupi admin su u /var/db/dslocal/nodes/Default/groups/admin.plist.

Pored korišćenja HasSession i AdminTo veza, MacHound dodaje tri nove veze u Bloodhound bazu podataka:

  • CanSSH - entitetu dozvoljeno SSH povezivanje na host

  • CanVNC - entitetu dozvoljeno VNC povezivanje na host

  • CanAE - entitetu dozvoljeno izvršavanje AppleEvent skripti na hostu

#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

Više informacija na https://its-a-feature.github.io/posts/2018/01/Active-Directory-Discovery-with-a-Mac/

Pristupanje Keychain-u

Keychain verovatno sadrži osetljive informacije koje, ako se pristupi bez generisanja upita, mogu pomoći u napredovanju vežbe crvenog tima:

pagemacOS Keychain

Spoljni servisi

MacOS Red Teaming se razlikuje od redovnog Windows Red Teaming-a jer je obično MacOS integrisan sa nekoliko spoljnih platformi direktno. Česta konfiguracija MacOS-a je pristup računaru korišćenjem OneLogin sinhronizovanih akreditiva, i pristupanje nekoliko spoljnih servisa (kao što su github, aws...) putem OneLogin-a.

Različite tehnike crvenog tima

Safari

Kada se fajl preuzme u Safariju, ako je "siguran" fajl, automatski će biti otvoren. Na primer, ako preuzmete zip, automatski će biti dekompresovan:

Reference

Last updated