hacktricks/macos-hardening/macos-red-teaming
2024-05-05 22:47:30 +00:00
..
macos-mdm Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/aw2 2024-05-05 22:47:30 +00:00
macos-keychain.md Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/aw2 2024-05-05 22:47:30 +00:00
README.md Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/aw2 2024-05-05 22:47:30 +00:00

Kutekeleza Udukuzi kwenye macOS

Jifunze udukuzi wa AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!

Njia nyingine za kusaidia HackTricks:

Kutumia MDMs kwa Udukuzi

  • JAMF Pro: jamf checkJSSConnection
  • Kandji

Ikiwa unafanikiwa kudukua vibali vya msimamizi ili kupata upatikanaji wa jukwaa la usimamizi, unaweza kudukua kompyuta zote kwa kusambaza zisizo kwenye mashine.

Kwa udukuzi wa timu nyekundu kwenye mazingira ya MacOS, ni vyema kuwa na uelewa wa jinsi MDMs zinavyofanya kazi:

{% content-ref url="macos-mdm/" %} macos-mdm {% endcontent-ref %}

Kutumia MDM kama C2

MDM itakuwa na idhini ya kufunga, kuuliza au kuondoa maelezo, kufunga programu, kuunda akaunti za msimamizi wa ndani, kuweka nenosiri la firmware, kubadilisha ufunguo wa FileVault...

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

Hata hivyo, ili kufunga programu kwenye kifaa kilichojiandikisha, bado unahitaji iwe isainiwe na akaunti ya mwandishi... hata hivyo, baada ya usajili wa MDM kifaa huongeza cheti cha SSL cha MDM kama CA inayoweza kudhibitika, hivyo sasa unaweza kusaini chochote.

Ili kujiandikisha kifaa kwenye MDM unahitaji kufunga faili ya mobileconfig kama mizizi, ambayo inaweza kutolewa kupitia faili ya pkg (unaweza kuipachika kwenye zip na unapoidownload kutoka safari itaondolewa).

Mawakala wa Mythic Orthrus hutumia mbinu hii.

Kutumia JAMF PRO

JAMF inaweza kutekeleza maandishi ya desturi (maandishi yaliyotengenezwa na msimamizi wa mfumo), mizigo ya asili (uundaji wa akaunti za ndani, kuweka nenosiri la EFI, ufuatiliaji wa faili/mchakato...) na MDM (mipangilio ya kifaa, vyeti vya kifaa...).

Kujisajili kiotomatiki kwa JAMF

Nenda kwenye ukurasa kama https://<jina-la-kampuni>.jamfcloud.com/enroll/ kuona ikiwa wana kujisajili kiotomatiki imewezeshwa. Ikiwa wana, inaweza kuomba vibali vya kupata.

Unaweza kutumia maandishi JamfSniper.py kufanya shambulio la kunyunyizia nenosiri.

Zaidi ya hayo, baada ya kupata vibali sahihi unaweza kujaribu kuvunja nguvu majina mengine ya mtumiaji na fomu ifuatayo:

Uthibitishaji wa Kifaa cha JAMF

Faili ya jamf iliyokuwa na siri ya kufungua keychain ambayo wakati wa ugunduzi ilikuwa inashirikiwa na kila mtu na ilikuwa: jk23ucnq91jfu9aj.
Zaidi ya hayo, jamf inaendelea kama LaunchDaemon katika /Library/LaunchAgents/com.jamf.management.agent.plist

Kuchukua Udhibiti wa Kifaa cha JAMF

URL ya JSS (Jamf Software Server) ambayo jamf itatumia iko katika /Library/Preferences/com.jamfsoftware.jamf.plist.
Faili hii kimsingi ina URL:

{% code overflow="wrap" %}

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>
[...]

{% endcode %}

Kwa hivyo, mshambuliaji anaweza kuacha pakiti ya madhara (pkg) ambayo inaandika faili hii wakati inapowekwa kuweka URL kwa msikilizaji wa Mythic C2 kutoka kwa wakala wa Typhon sasa kuweza 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

{% endcode %}

Uigizaji wa JAMF

Ili kuiga mawasiliano kati ya kifaa na JMF unahitaji:

  • UUID ya kifaa: ioreg -d2 -c IOPlatformExpertDevice | awk -F" '/IOPlatformUUID/{print $(NF-1)}'
  • Kifunguo cha JAMF kutoka: /Library/Application\ Support/Jamf/JAMF.keychain ambayo ina cheti cha kifaa

Ukiwa na habari hizi, unda VM na UUID iliyoporwa ya Vifaa na SIP imelemazwa, weka Kifunguo cha JAMF, unganisha agizo la Jamf na uibe habari zake.

Uibaji wa Siri

a

Unaweza pia kufuatilia eneo /Library/Application Support/Jamf/tmp/ kwa maandishi ya desturi ambayo wahariri wanaweza kutaka kutekeleza kupitia Jamf kwani yanawekwa hapa, kutekelezwa na kuondolewa. Maandishi haya yanaweza kuwa na siri.

Hata hivyo, siri inaweza kupitishwa kupitia maandishi haya kama parameta, hivyo unahitaji kufuatilia ps aux | grep -i jamf (hata bila kuwa mtumiaji wa mizizi).

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

Upatikanaji wa Mbali wa macOS

Na pia kuhusu itifaki maalum ya mtandao ya MacOS:

{% content-ref url="../macos-security-and-privilege-escalation/macos-protocols.md" %} macos-protocols.md {% endcontent-ref %}

Active Directory

Katika baadhi ya matukio utagundua kuwa kompyuta ya MacOS imeunganishwa na AD. Katika hali hii unapaswa kujaribu kuorodhesha active directory kama ulivyoizoea. Pata msaada katika kurasa zifuatazo:

{% content-ref url="../../network-services-pentesting/pentesting-ldap.md" %} pentesting-ldap.md {% endcontent-ref %}

{% content-ref url="../../windows-hardening/active-directory-methodology/" %} active-directory-methodology {% endcontent-ref %}

{% content-ref url="../../network-services-pentesting/pentesting-kerberos-88/" %} pentesting-kerberos-88 {% endcontent-ref %}

Zana ya lokal ya MacOS ambayo inaweza pia kukusaidia ni dscl:

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

Pia kuna zana zilizoandaliwa kwa MacOS kwa kuchunguza AD moja kwa moja na kucheza na kerberos:

  • Machound: MacHound ni nyongeza ya zana ya ukaguzi wa Bloodhound inayoruhusu kukusanya na kuingiza mahusiano ya Active Directory kwenye mwenyeji wa MacOS.
  • Bifrost: Bifrost ni mradi wa Objective-C ulioundwa kuingiliana na APIs za Heimdal krb5 kwenye macOS. Lengo la mradi huu ni kuwezesha upimaji bora wa usalama kuhusu Kerberos kwenye vifaa vya macOS kwa kutumia APIs za asili bila kuhitaji mfumo mwingine au pakiti yoyote kwenye lengo.
  • Orchard: Zana ya JavaScript for Automation (JXA) kufanya uchunguzi wa Active Directory.
echo show com.apple.opendirectoryd.ActiveDirectory | scutil

Watumiaji

Aina tatu za watumiaji wa MacOS ni:

  • Watumiaji wa Ndani - Wanasimamiwa na huduma ya OpenDirectory ya ndani, hawajaunganishwa kwa njia yoyote na Active Directory.
  • Watumiaji wa Mtandao - Watumiaji wa Active Directory wa muda wanaohitaji kuunganishwa kwa seva ya DC ili kuthibitisha.
  • Watumiaji wa Simu - Watumiaji wa Active Directory wenye nakala rudufu ya ndani kwa ajili ya vitambulisho vyao na faili zao.

Maelezo ya ndani kuhusu watumiaji na vikundi hufanywa katika folda /var/db/dslocal/nodes/Default. Kwa mfano, maelezo kuhusu mtumiaji anayeitwa mark hufanywa katika /var/db/dslocal/nodes/Default/users/mark.plist na maelezo kuhusu kikundi admin yapo katika /var/db/dslocal/nodes/Default/groups/admin.plist.

Mbali na kutumia HasSession na AdminTo edges, MacHound huongeza makali matatu mapya kwenye database ya Bloodhound:

  • CanSSH - kifaa kinachoruhusiwa kufanya SSH kwa mwenyeji
  • CanVNC - kifaa kinachoruhusiwa kufanya VNC kwa mwenyeji
  • CanAE - kifaa kinachoruhusiwa kutekeleza skripti 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

More info in https://its-a-feature.github.io/posts/2018/01/Active-Directory-Discovery-with-a-Mac/

Kupata Ufikiaji wa Keychain

Keychain ina uwezekano mkubwa wa kuwa na habari nyeti ambazo zikipatikana bila kutoa ombi la kuingia zinaweza kusaidia katika kuendeleza zoezi la timu nyekundu:

{% content-ref url="macos-keychain.md" %} macos-keychain.md {% endcontent-ref %}

Huduma za Nje

Kuunda Timu Nyekundu ya MacOS ni tofauti na Timu Nyekundu ya kawaida ya Windows kwa kawaida MacOS imeunganishwa na majukwaa kadhaa ya nje moja kwa moja. Mazingira ya kawaida ya MacOS ni kupata kompyuta kwa kutumia sifa zilizosawazishwa za OneLogin, na kupata huduma kadhaa za nje (kama vile github, aws...) kupitia OneLogin.

Mbinu za Timu Nyekundu za Kitaalam

Safari

Wakati faili inapakuliwa kwenye Safari, ikiwa ni faili "salama", itafunguliwa kiotomatiki. Kwa mfano, ikiwa unapakua zip, itafunguliwa kiotomatiki:

Marejeo