hacktricks/macos-hardening/macos-red-teaming
2024-02-11 02:13:58 +00:00
..
macos-mdm Translated to Swahili 2024-02-11 02:13:58 +00:00
macos-keychain.md Translated to Swahili 2024-02-11 02:13:58 +00:00
README.md Translated to Swahili 2024-02-11 02:13:58 +00:00

macOS Red Teaming

Jifunze kuhusu kudukua 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 unaweza kudukua vibali vya admin ili kupata ufikiaji wa jukwaa la usimamizi, unaweza kudukua kompyuta zote kwa kusambaza programu hasidi kwenye mashine.

Kwa timu nyekundu katika mazingira ya MacOS, ni muhimu sana kuwa na uelewa fulani wa jinsi MDMs wanavyofanya kazi:

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

Kutumia MDM kama C2

MDM itakuwa na ruhusa ya kufunga, kuuliza au kuondoa maelezo ya usanidi, 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 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 kilichosajiliwa, bado unahitaji iwe isainiwe na akaunti ya msanidi programu... hata hivyo, baada ya usajili wa MDM, kifaa huongeza cheti cha SSL cha MDM kama CA inayotegemewa, kwa hivyo sasa unaweza kusaini chochote.

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

Mawakala wa Mythic Orthrus hutumia mbinu hii.

Kudukua JAMF PRO

JAMF inaweza kukimbia maandishi desturi (maandishi yaliyoundwa na msimamizi wa mfumo), malipo ya asili (uundaji wa akaunti za ndani, kuweka nenosiri la EFI, ufuatiliaji wa faili/mchakato...) na MDM (usanidi wa kifaa, vyeti vya kifaa...).

Usajili wa JAMF mwenyewe

Nenda kwenye ukurasa kama https://<jina-la-kampuni>.jamfcloud.com/enroll/ kuona ikiwa wana usajili wa kujisajili wenyewe. Ikiwa wana, inaweza kuomba vibali vya ufikiaji.

Unaweza kutumia maandishi JamfSniper.py kufanya shambulio la kusambaza nywila.

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

Uthibitishaji wa Kifaa cha JAMF

Faili ya jamf ina siri ya kufungua keychain ambayo wakati wa ugunduzi ilikuwa inashirikiwa na kila mtu na ilikuwa: jk23ucnq91jfu9aj.
Zaidi ya hayo, jamf inadumu 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 %}

Hivyo, mshambuliaji anaweza kuweka pakiti mbaya (pkg) ambayo inabadilisha faili hii wakati inapowekwa na kuweka URL kwa msikilizaji wa Mythic C2 kutoka kwa wakala wa Typhon ili sasa iweze kutumia JAMF kama C2.

{% code overflow="wrap" %}

# 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 %}

Udanganyifu wa JAMF

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

Ukiwa na habari hii, unda VM na UUID ya Vifaa vilivyoibiwa na SIP imezimwa, weka JAMF keychain, funga Jamf agent na ibebe habari zake.

Wizi wa Siri

a

Pia unaweza kufuatilia eneo /Library/Application Support/Jamf/tmp/ kwa script za desturi ambazo wahariri wanaweza kutaka kutekeleza kupitia Jamf kwani zinawekwa hapa, kutekelezwa na kuondolewa. Hizi script zinaweza kuwa na siri.

Hata hivyo, siri inaweza kupitishwa kwa njia ya script hizi kama parameta, kwa hivyo utahitaji kufuatilia ps aux | grep -i jamf (hata bila kuwa na ruhusa ya msingi).

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

Upatikanaji wa Mbali wa macOS

Na pia kuhusu itifaki za mtandao za "maalum" za MacOS:

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

Active Directory

Katika hali fulani utagundua kuwa kompyuta ya MacOS imeunganishwa na AD. Katika hali hii unapaswa kujaribu kuorodhesha active directory kama ulivyozoea. 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 kukusaidia pia ni dscl:

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

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

  • Machound: MacHound ni nyongeza ya zana ya ukaguzi ya Bloodhound inayoruhusu kukusanya na kuingiza uhusiano wa Active Directory kwenye vifaa vya MacOS.
  • Bifrost: Bifrost ni mradi wa Objective-C ulioundwa kuingiliana na Heimdal krb5 APIs kwenye macOS. lengo la mradi ni kuwezesha ukaguzi bora wa usalama kuhusu Kerberos kwenye vifaa vya macOS kwa kutumia APIs za asili bila kuhitaji fremu au pakiti nyingine kwenye lengo.
  • Orchard: Zana ya JavaScript for Automation (JXA) kufanya uchunguzi wa Active Directory.

Taarifa za Kikoa

echo show com.apple.opendirectoryd.ActiveDirectory | scutil

Watumiaji

Kuna aina tatu za watumiaji wa MacOS:

  • Watumiaji wa Ndani - Wanadhibitiwa na huduma ya OpenDirectory ya ndani, hawana uhusiano wowote na Active Directory.
  • Watumiaji wa Mtandao - Watumiaji wa muda mfupi wa Active Directory ambao wanahitaji kuunganishwa na seva ya DC ili kuthibitisha kitambulisho chao.
  • Watumiaji wa Simu - Watumiaji wa Active Directory na nakala ya kuhifadhi ya ndani kwa kitambulisho chao na faili zao.

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

Mbali na kutumia uhusiano wa HasSession na AdminTo, MacHound inaongeza uhusiano mpya wa CanSSH, CanVNC, na CanAE kwenye database ya Bloodhound:

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

Maelezo zaidi katika 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 ambayo ikiwa itapata ufikiaji bila kutoa onyo inaweza kusaidia katika kutekeleza zoezi la timu nyekundu:

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

Huduma za Nje

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

Mbinu Mbalimbali za Timu Nyekundu

Safari

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

Marejeo

Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na htARTE (HackTricks AWS Red Team Expert)!

Njia nyingine za kusaidia HackTricks: