.. | ||
macos-bundles.md | ||
macos-installers-abuse.md | ||
macos-memory-dumping.md | ||
macos-sensitive-locations.md | ||
README.md | ||
universal-binaries-and-mach-o-format.md |
macOS Faili, Folda, Binari & Kumbukumbu
Jifunze kuhusu kuvamia AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!
Njia nyingine za kusaidia HackTricks:
- Ikiwa unataka kuona kampuni yako ikitangazwa kwenye HackTricks au kupakua HackTricks kwa PDF Angalia MIPANGO YA USAJILI!
- Pata swag rasmi wa PEASS & HackTricks
- Gundua Familia ya PEASS, mkusanyiko wetu wa NFTs ya kipekee
- Jiunge na 💬 Kikundi cha Discord au kikundi cha telegram au tufuate kwenye Twitter 🐦 @carlospolopm.
- Shiriki mbinu zako za kuvamia kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
Mpangilio wa Hiyerarkia ya Faili
- /Applications: Programu zilizosakinishwa zinapaswa kuwa hapa. Watumiaji wote wataweza kuzifikia.
- /bin: Binari za mstari wa amri
- /cores: Ikiwepo, hutumiwa kuhifadhi dump za msingi
- /dev: Kila kitu kinafanywa kama faili hivyo unaweza kuona vifaa vya vifaa vilivyohifadhiwa hapa.
- /etc: Faili za usanidi
- /Library: Ving'amuzi vingi na faili zinazohusiana na mapendeleo, cache na magogo zinaweza kupatikana hapa. Kuna folda ya Maktaba inayopatikana kwenye mizizi na kwenye saraka ya kila mtumiaji.
- /private: Isiyoelezwa lakini ving'amuzi vingi vilivyotajwa ni viungo vya alama kwa saraka ya faragha.
- /sbin: Binari muhimu za mfumo (zinazohusiana na usimamizi)
- /System: Faili za kufanya OS X iende. Unapaswa kupata hasa faili za Apple hapa (si za watu wengine).
- /tmp: Faili hufutwa baada ya siku 3 (ni kiungo laini kwenda /private/tmp)
- /Users: Saraka ya nyumbani kwa watumiaji.
- /usr: Usanidi na binari za mfumo
- /var: Faili za logi
- /Volumes: Madereva yaliyosakinishwa yataonekana hapa.
- /.vol: Ukikimbia
stat a.txt
unapata kitu kama16777223 7545753 -rw-r--r-- 1 jina_la_mtumiaji gurudumu ...
ambapo nambari ya kwanza ni nambari ya kitambulisho cha kiasi ambapo faili ipo na ya pili ni nambari ya inode. Unaweza kupata maudhui ya faili hii kupitia /.vol/ kwa habari hiyo ukikimbiacat /.vol/16777223/7545753
Folda za Programu
- Programu za Mfumo zinapatikana chini ya
/System/Applications
- Programu zilizosakinishwa kawaida zinasakinishwa katika
/Applications
au katika~/Applications
- Data ya Programu inaweza kupatikana katika
/Library/Application Support
kwa programu zinazoendeshwa kama mizizi na~/Library/Application Support
kwa programu zinazoendeshwa kama mtumiaji. - Daemons za programu za watu wengine ambazo zinaendeshwa kama mizizi kawaida zinapatikana katika
/Library/PrivilegedHelperTools/
- Programu zilizofungwa zimepangwa katika saraka ya
~/Library/Containers
. Kila programu ina saraka iliyoitwa kulingana na kitambulisho cha mfuko wa programu (com.apple.Safari
). - Kernel iko katika
/System/Library/Kernels/kernel
- Vifaa vya nyongeza vya kernel vya Apple viko katika
/System/Library/Extensions
- Vifaa vya nyongeza vya kernel vya watu wengine hifadhiwa katika
/Library/Extensions
Faili zenye Taarifa Nyeti
MacOS inahifadhi taarifa kama nywila katika maeneo kadhaa:
{% content-ref url="macos-sensitive-locations.md" %} macos-sensitive-locations.md {% endcontent-ref %}
Wafungaji wa pkg Wenye Udhaifu
{% content-ref url="macos-installers-abuse.md" %} macos-installers-abuse.md {% endcontent-ref %}
Vifaa Maalum vya OS X
.dmg
: Faili za Picha za Apple Disk ni za kawaida sana kwa wafungaji..kext
: Lazima ifuate muundo maalum na ni toleo la OS X la dereva. (ni kifurushi).plist
: Inayojulikana pia kama orodha ya mali inahifadhi taarifa kwa muundo wa XML au binary.- Inaweza kuwa XML au binary. Zile za binary zinaweza kusomwa na:
defaults read config.plist
/usr/libexec/PlistBuddy -c print config.plsit
plutil -p ~/Library/Preferences/com.apple.screensaver.plist
plutil -convert xml1 ~/Library/Preferences/com.apple.screensaver.plist -o -
plutil -convert json ~/Library/Preferences/com.apple.screensaver.plist -o -
.app
: Programu za Apple zinazofuata muundo wa saraka (ni kifurushi)..dylib
: Maktaba za kudumu (kama faili za DLL za Windows).pkg
: Ni sawa na xar (muundo wa Kumbukumbu inayoweza kupanuliwa). Amri ya kufungua inaweza kutumika kusakinisha maudhui ya faili hizi..DS_Store
: Faili hii iko kwenye kila saraka, inahifadhi sifa na ubinafsishaji wa saraka..Spotlight-V100
: Saraka hii inaonekana kwenye saraka ya mizizi ya kila kiasi kwenye mfumo..metadata_never_index
: Ikiwa faili hii iko kwenye mizizi ya kiasi Spotlight haitaindeksi kiasi hicho..noindex
: Faili na saraka zenye kivuli hicho hazitaindeksiwa na Spotlight.
Vifurushi vya macOS
Kifurushi ni saraka ambayo inaonekana kama kitu katika Finder (mfano wa Kifurushi ni faili za *.app
).
{% content-ref url="macos-bundles.md" %} macos-bundles.md {% endcontent-ref %}
Dyld Shared Cache
Kwenye macOS (na iOS) maktaba zote za mfumo, kama fremu na dylibs, zimeunganishwa katika faili moja, inayoitwa dyld shared cache. Hii inaboresha utendaji, kwani nambari inaweza kupakiwa haraka.
Kama dyld shared cache, kernel na vifaa vya nyongeza vya kernel pia hukusanywa katika cache ya kernel, ambayo hupakiwa wakati wa kuanza.
Ili kutoa maktaba kutoka kwenye faili moja ya dylib shared cache ilikuwa inawezekana kutumia binary dyld_shared_cache_util ambayo inaweza isifanye kazi leo lakini unaweza pia kutumia dyldextractor:
{% code overflow="wrap" %}
# dyld_shared_cache_util
dyld_shared_cache_util -extract ~/shared_cache/ /System/Volumes/Preboot/Cryptexes/OS/System/Library/dyld/dyld_shared_cache_arm64e
# dyldextractor
dyldex -l [dyld_shared_cache_path] # List libraries
dyldex_all [dyld_shared_cache_path] # Extract all
# More options inside the readme
{% endcode %}
Katika toleo za zamani unaweza kupata cache iliyoshirikiwa katika /System/Library/dyld/
.
Katika iOS unaweza kuzipata katika /System/Library/Caches/com.apple.dyld/
.
{% hint style="success" %}
Tambua kwamba hata kama zana ya dyld_shared_cache_util
haifanyi kazi, unaweza kumtumia dyld binary iliyoshirikiwa kwa Hopper na Hopper itaweza kutambua maktaba zote na kukuruhusu kuchagua ni ipi unayotaka kuchunguza:
{% endhint %}
Mamlaka Maalum ya Faili
Mamlaka ya Folda
Katika folda, kusoma kuruhusu kuorodhesha, kuandika kuruhusu kufuta na kuandika faili ndani yake, na kutekeleza kuruhusu kuvuka saraka. Kwa hivyo, kwa mfano, mtumiaji mwenye ruhusa ya kusoma kwenye faili ndani ya saraka ambapo hana ruhusa ya utekelezaji hataweza kusoma faili hiyo.
Modifiers ya Bendera
Kuna baadhi ya bendera ambazo zinaweza kuwekwa kwenye faili ambazo zitafanya faili zichukue tabia tofauti. Unaweza kuangalia bendera za faili ndani ya saraka na ls -lO /njia/saraka
uchg
: Inayojulikana kama bendera ya uchange itazuia hatua yoyote ya kubadilisha au kufuta faili. Kuweka ni:chflags uchg faili.txt
- Mtumiaji wa mizizi anaweza kuondoa bendera na kuhariri faili
ilizuiwa
: Bendera hii inafanya faili ilindwe na SIP (huwezi kuongeza bendera hii kwa faili).Bit ya Sticky
: Ikiwa kuna saraka yenye biti ya sticky, pekee mmiliki wa saraka au mizizi wanaweza kubadilisha jina au kufuta faili. Kawaida hii huwekwa kwenye saraka ya /tmp kuzuia watumiaji wa kawaida kufuta au kuhamisha faili za watumiaji wengine.
Bendera zote zinaweza kupatikana kwenye faili sys/stat.h
(ipate kwa kutumia mdfind stat.h | grep stat.h
) na ni:
UF_SETTABLE
0x0000ffff: Kifuniko cha bendera zinazoweza kubadilishwa na mmiliki.UF_NODUMP
0x00000001: Usidumishe faili.UF_IMMUTABLE
0x00000002: Faili haitaweza kubadilishwa.UF_APPEND
0x00000004: Kuandika kwenye faili kunaweza kuongeza tu.UF_OPAQUE
0x00000008: Saraka ni isiyoonekana kuhusiana na muungano.UF_COMPRESSED
0x00000020: Faili imepakatwa (baadhi ya mifumo ya faili).UF_TRACKED
0x00000040: Hakuna arifa kwa kufuta/kubadilisha majina kwa faili zilizo na hii.UF_DATAVAULT
0x00000080: Haki inahitajika kwa kusoma na kuandika.UF_HIDDEN
0x00008000: Kiashiria kwamba kipengee hiki haitakiwi kuonyeshwa kwenye GUI.SF_SUPPORTED
0x009f0000: Kifuniko cha bendera zinazoungwa mkono na msimamizi wa mizizi.SF_SETTABLE
0x3fff0000: Kifuniko cha bendera zinazoweza kubadilishwa na msimamizi wa mizizi.SF_SYNTHETIC
0xc0000000: Kifuniko cha bendera za kusoma tu za mfumo.SF_ARCHIVED
0x00010000: Faili imehifadhiwa.SF_IMMUTABLE
0x00020000: Faili haitaweza kubadilishwa.SF_APPEND
0x00040000: Kuandika kwenye faili kunaweza kuongeza tu.SF_RESTRICTED
0x00080000: Haki inahitajika kwa kuandika.SF_NOUNLINK
0x00100000: Kipengee hakiwezi kuondolewa, kubadilishwa jina au kufungwa.SF_FIRMLINK
0x00800000: Faili ni firmlink.SF_DATALESS
0x40000000: Faili ni kitu cha bila data.
ACL za Faili
ACL za Faili zina ACE (Viingilio vya Kudhibiti Upatikanaji) ambapo ruhusa za kina zaidi zinaweza kupewa watumiaji tofauti.
Inawezekana kutoa ruhusa hizi kwa directory: kuorodhesha
, tafuta
, ongeza_faili
, ongeza_saraka
, futa_mtoto
, futa_mtoto
.
Na kwa faili: soma
, andika
, ongeza
, tekeleza
.
Wakati faili ina ACL utaona "+" wakati wa kuorodhesha ruhusa kama ilivyo:
ls -ld Movies
drwx------+ 7 username staff 224 15 Apr 19:42 Movies
Unaweza kusoma ACLs ya faili kwa:
ls -lde Movies
drwx------+ 7 username staff 224 15 Apr 19:42 Movies
0: group:everyone deny delete
Unaweza kupata faili zote zenye ACLs kwa (hii ni polepole sana):
ls -RAle / 2>/dev/null | grep -E -B1 "\d: "
Atributi Zilizozidishwa
Atributi zilizozidishwa zina jina na thamani inayotakiwa, na zinaweza kuonekana kwa kutumia ls -@
na kuhaririwa kwa kutumia amri ya xattr
. Baadhi ya atributi zilizozidishwa za kawaida ni:
com.apple.resourceFork
: Ulinganifu wa rasilimali. Pia inaonekana kamafilename/..namedfork/rsrc
com.apple.quarantine
: MacOS: Mfumo wa karantini wa Gatekeeper (III/6)metadata:*
: MacOS: metadata mbalimbali, kama vile_backup_excludeItem
, aukMD*
com.apple.lastuseddate
(#PS): Tarehe ya mwisho ya matumizi ya failicom.apple.FinderInfo
: MacOS: Taarifa za Finder (k.m., vitambulisho vya rangi)com.apple.TextEncoding
: Inabainisha uendeshaji wa maandishi ya faili za ASCIIcom.apple.logd.metadata
: Hutumiwa na logd kwenye faili katika/var/db/diagnostics
com.apple.genstore.*
: Uhifadhi wa kizazi (/.DocumentRevisions-V100
katika mizizi ya mfumo wa faili)com.apple.rootless
: MacOS: Hutumiwa na System Integrity Protection kuweka lebo kwenye faili (III/10)com.apple.uuidb.boot-uuid
: Alama za logd za vipindi vya kuanza upya na UUID ya kipekeecom.apple.decmpfs
: MacOS: Ufutwaji wa faili kwa uwazi (II/7)com.apple.cprotect
: *OS: Data ya kielektroniki ya kila faili (III/11)com.apple.installd.*
: *OS: Metadata hutumiwa na installd, k.m.,installType
,uniqueInstallID
Rasilimali Forks | macOS ADS
Hii ni njia ya kupata Mizani za Data Mbadala kwenye mashine za MacOS. Unaweza kuokoa maudhui ndani ya atributi iliyozidishwa inayoitwa com.apple.ResourceFork ndani ya faili kwa kuihifadhi katika file/..namedfork/rsrc.
echo "Hello" > a.txt
echo "Hello Mac ADS" > a.txt/..namedfork/rsrc
xattr -l a.txt #Read extended attributes
com.apple.ResourceFork: Hello Mac ADS
ls -l a.txt #The file length is still q
-rw-r--r--@ 1 username wheel 6 17 Jul 01:15 a.txt
Unaweza kupata faili zote zinazo na sifa hii ya ziada kwa:
{% code overflow="wrap" %}
find / -type f -exec ls -ld {} \; 2>/dev/null | grep -E "[x\-]@ " | awk '{printf $9; printf "\n"}' | xargs -I {} xattr -lv {} | grep "com.apple.ResourceFork"
decmpfs
Kipengele cha ziada com.apple.decmpfs
inaonyesha kuwa faili imehifadhiwa kwa njia ya kusimbwa, ls -l
itaripoti ukubwa wa 0 na data iliyosimbwa iko ndani ya kipengele hiki. Kila wakati faili inapofikiwa itadondoshwa katika kumbukumbu.
Kipengele hiki kinaweza kuonekana na ls -lO
kikiashiria kama kimezimwa kwa sababu faili zilizosimbwa pia zinatambuliwa na bendera UF_COMPRESSED
. Ikiwa faili iliyosimbwa inaondolewa bendera hii kwa kutumia chflags nocompressed </path/to/file>
, mfumo hautajua kuwa faili ilikuwa imesimbwa na kwa hivyo haitaweza kuidondosha na kufikia data (itadhani kuwa ni tupu).
Zana ya afscexpand inaweza kutumika kufanya kazi ya kuidondosha faili.
Faili za Universal & Muundo wa Mach-o
Faili za Mac OS kawaida hukusanywa kama faili za universal. Faili ya universal inaweza kusaidia miundo mingi ndani ya faili moja.
{% content-ref url="universal-binaries-and-mach-o-format.md" %} universal-binaries-and-mach-o-format.md {% endcontent-ref %}
Kudondosha Kumbukumbu ya macOS
{% content-ref url="macos-memory-dumping.md" %} macos-memory-dumping.md {% endcontent-ref %}
Aina za Hatari za Faili za Mac OS
Dhibiti /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/System
ndipo ambapo habari kuhusu hatari inayohusiana na viendelezi vya faili tofauti imehifadhiwa. Dhibiti hii inagawa faili katika viwango tofauti vya hatari, ikichochea jinsi Safari inavyoshughulikia faili hizi baada ya kupakuliwa. Vikundi ni kama ifuatavyo:
- LSRiskCategorySafe: Faili katika kundi hili zinachukuliwa kuwa salama kabisa. Safari itafungua faili hizi moja kwa moja baada ya kupakuliwa.
- LSRiskCategoryNeutral: Hizi ni faili ambazo hazina onyo na hazifunguliwi moja kwa moja na Safari.
- LSRiskCategoryUnsafeExecutable: Faili chini ya kundi hili huchochea onyo linaloonyesha kuwa faili ni programu. Hii ni hatua ya usalama ya kumuarifu mtumiaji.
- LSRiskCategoryMayContainUnsafeExecutable: Kundi hili ni kwa ajili ya faili, kama vile nyaraka, ambazo zinaweza kuwa na programu inayoweza kutekelezwa. Safari ita chochea onyo isipokuwa iweze kuthibitisha kuwa maudhui yote ni salama au yasiyo na hatari.
Faili za Kumbukumbu
$HOME/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2
: Ina habari kuhusu faili zilizopakuliwa, kama URL kutoka mahali zilipopakuliwa./var/log/system.log
: Kumbukumbu kuu ya mifumo ya OSX. com.apple.syslogd.plist inahusika na utekelezaji wa syslogging (unaweza kuangalia ikiwa imezimwa kwa kutafuta "com.apple.syslogd" katikalaunchctl list
./private/var/log/asl/*.asl
: Hizi ni Kumbukumbu za Mifumo ya Apple ambayo inaweza kuwa na habari ya kuvutia.$HOME/Library/Preferences/com.apple.recentitems.plist
: Inahifadhi faili na programu zilizoangaliwa hivi karibuni kupitia "Finder".$HOME/Library/Preferences/com.apple.loginitems.plsit
: Inahifadhi vitu vya kuzindua wakati wa kuanza kwa mfumo$HOME/Library/Logs/DiskUtility.log
: Faili ya kumbukumbu ya Programu ya DiskUtility (habari kuhusu diski, pamoja na USB)/Library/Preferences/SystemConfiguration/com.apple.airport.preferences.plist
: Data kuhusu pointi za kupata mtandao wa wireless./private/var/db/launchd.db/com.apple.launchd/overrides.plist
: Orodha ya daemons zilizozimwa.
Jifunze kuhusu kuvamia AWS kutoka sifuri hadi shujaa na htARTE (HackTricks AWS Red Team Expert)!
Njia nyingine za kusaidia HackTricks:
- Ikiwa unataka kuona kampuni yako ikitangazwa kwenye HackTricks au kupakua HackTricks kwa PDF Angalia MIPANGO YA KUJIUNGA!
- Pata bidhaa rasmi za PEASS & HackTricks
- Gundua Familia ya PEASS, mkusanyiko wetu wa NFTs ya kipekee
- Jiunge na 💬 Kikundi cha Discord au kikundi cha telegram au tufuate kwenye Twitter 🐦 @carlospolopm.
- Shiriki mbinu zako za kuvamia kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud github repos.