Translated ['macos-hardening/macos-security-and-privilege-escalation/mac

This commit is contained in:
Translator 2024-04-18 13:52:13 +00:00
parent 18d4d201f5
commit 905ab5d674
4 changed files with 261 additions and 170 deletions

View file

@ -6,15 +6,29 @@
Njia nyingine za kusaidia HackTricks:
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA USAJILI**](https://github.com/sponsors/carlospolop)!
* Pata [**swag rasmi wa PEASS & HackTricks**](https://peass.creator-spring.com)
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Shiriki mbinu zako za kuhack kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
</details>
## Uchambuzi Statisa
### [WhiteIntel](https://whiteintel.io)
<figure><img src="/.gitbook/assets/image (1224).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) ni injini ya utaftaji inayotumia **dark-web** ambayo inatoa huduma za **bure** kuchunguza ikiwa kampuni au wateja wake wameathiriwa na **malware za wizi**.
Lengo kuu la WhiteIntel ni kupambana na utekaji wa akaunti na mashambulio ya ransomware yanayotokana na malware za wizi wa habari.
Unaweza kutembelea tovuti yao na kujaribu injini yao **bure** kwa:
{% embed url="https://whiteintel.io" %}
---
## Uchambuzi Stati
### otool
```bash
@ -23,10 +37,6 @@ otool -tv /bin/ps #Decompile application
```
### objdump
{% code overflow="wrap" %}
### objdump
{% code overflow="wrap" %}
```bash
objdump -m --dylibs-used /bin/ls #List dynamically linked libraries
@ -38,7 +48,7 @@ objdump --disassemble-symbols=_hello --x86-asm-syntax=intel toolsdemo #Disassemb
```
### jtool2
Zana inaweza kutumika kama **badala** ya **codesign**, **otool**, na **objdump**, na hutoa baadhi ya vipengele vingine vya ziada. [**Pakua hapa**](http://www.newosxbook.com/tools/jtool.html) au isakinishe kwa kutumia `brew`.
Zana hii inaweza kutumika kama **badala** ya **codesign**, **otool**, na **objdump**, na hutoa baadhi ya vipengele vingine vya ziada. [**Pakua hapa**](http://www.newosxbook.com/tools/jtool.html) au isakinishe kwa kutumia `brew`.
```bash
# Install
brew install --cask jtool2
@ -88,8 +98,8 @@ ldid -S/tmp/entl.xml <binary>
```
### SuspiciousPackage
[**SuspiciousPackage**](https://mothersruin.com/software/SuspiciousPackage/get.html) ni chombo kinachofaa kuchunguza faili za **.pkg** (wakufunzi) na kuona kilichomo ndani kabla ya kuiweka.\
Wakufunzi hawa wana skripti za bash za `preinstall` na `postinstall` ambazo waundaji wa programu hasidi kawaida hutumia vibaya kudumisha programu hasidi.
[**SuspiciousPackage**](https://mothersruin.com/software/SuspiciousPackage/get.html) ni chombo kinachofaa kuchunguza faili za **.pkg** (wakala) na kuona kilichomo ndani kabla ya kuiweka.\
Wakala hawa wana skripti za bash za `preinstall` na `postinstall` ambazo waundaji wa programu hasidi kawaida hutumia vibaya kudumisha **programu hasidi**.
### hdiutil
@ -104,7 +114,7 @@ Itakuwa imemountiwa katika `/Volumes`
#### Metadata
{% hint style="danger" %}
Tafadhali kumbuka kwamba programu zilizoandikwa kwa Objective-C **huhifadhi** matangazo yao ya darasa **wakati** **inapohaririwa** katika [Mach-O binaries](../macos-files-folders-and-binaries/universal-binaries-and-mach-o-format.md). Matangazo hayo ya darasa **ni pamoja na** jina na aina ya:
Tafadhali kumbuka kuwa programu zilizoandikwa kwa Objective-C **huhifadhi** matangazo yao ya darasa **wakati** **inapohamishwa** katika [Mach-O binaries](../macos-files-folders-and-binaries/universal-binaries-and-mach-o-format.md). Matangazo hayo ya darasa **ni pamoja na** jina na aina ya:
{% endhint %}
* Darasa
@ -123,8 +133,8 @@ Wakati kazi inaitwa katika binary inayotumia objective-C, msimbo uliokompiliwa b
Parameta ambazo kazi hii inatarajia ni:
* Parameta ya kwanza (**self**) ni "kiashiria kinachoelekeza kwa **kifungu cha darasa ambacho kinapaswa kupokea ujumbe**". Au kwa maneno rahisi, ni kitu ambacho mbinu inaitwa juu yake. Ikiwa mbinu ni mbinu ya darasa, hii itakuwa kifungu cha kitu cha darasa (kwa ujumla), wakati kwa mbinu ya kifungu, self itaelekeza kwa kifungu kilichotengenezwa cha darasa kama kitu.
* Parameta ya pili, (**op**), ni "chaguo la mbinu inayoshughulikia ujumbe". Tena, kwa maneno rahisi, hii ni tu **jina la mbinu**.
* Parameta ya kwanza (**self**) ni "kipekee kinachoelekeza kwa **mfano wa darasa ambalo linapaswa kupokea ujumbe**". Au kwa maneno rahisi, ni kitu ambacho mbinu inaitwa juu yake. Ikiwa mbinu ni mbinu ya darasa, hii itakuwa mfano wa kitu cha darasa (kwa ujumla), wakati kwa mbinu ya mfano, self itaelekeza kwa mfano uliofanywa wa darasa kama kitu.
* Parameta ya pili, (**op**), ni "chaguo la mbinu inayoshughulikia ujumbe". Tena, kwa maneno rahisi, hii ni tu **jina la mbinu.**
* Parameta zilizobaki ni **thamani zozote zinazohitajika na mbinu** (op).
Angalia jinsi ya **kupata habari hii kwa urahisi na `lldb` katika ARM64** kwenye ukurasa huu:
@ -135,15 +145,15 @@ Angalia jinsi ya **kupata habari hii kwa urahisi na `lldb` katika ARM64** kwenye
x64:
| **Hoja** | **Kijisajili** | **(kwa) objc\_msgSend** |
| ----------------- | -------------------------------------------------------------- | ----------------------------------------------------- |
| **Hoja ya 1** | **rdi** | **self: kitu ambacho mbinu inaitwa juu yake** |
| **Hoja ya 2** | **rsi** | **op: jina la mbinu** |
| **Hoja ya 3** | **rdx** | **Hoja ya 1 kwa mbinu** |
| **Hoja ya 4** | **rcx** | **Hoja ya 2 kwa mbinu** |
| **Hoja ya 5** | **r8** | **Hoja ya 3 kwa mbinu** |
| **Hoja ya 6** | **r9** | **Hoja ya 4 kwa mbinu** |
| **Hoja ya 7+** | <p><strong>rsp+</strong><br><strong>(kwenye steki)</strong></p> | **Hoja ya 5+ kwa mbinu** |
| **Hoja** | **Kirejista** | **(kwa) objc\_msgSend** |
| ----------------- | --------------------------------------------------------------- | ------------------------------------------------------ |
| **Hoja ya 1** | **rdi** | **self: kitu ambacho mbinu inaitwa juu yake** |
| **Hoja ya 2** | **rsi** | **op: jina la mbinu** |
| **Hoja ya 3** | **rdx** | **Hoja ya 1 kwa mbinu** |
| **Hoja ya 4** | **rcx** | **Hoja ya 2 kwa mbinu** |
| **Hoja ya 5** | **r8** | **Hoja ya 3 kwa mbinu** |
| **Hoja ya 6** | **r9** | **Hoja ya 4 kwa mbinu** |
| **Hoja ya 7+** | <p><strong>rsp+</strong><br><strong>(kwenye steki)</strong></p> | **Hoja ya 5+ kwa mbinu** |
### Swift
@ -171,58 +181,58 @@ https://github.com/ghidraninja/ghidra_scripts/blob/master/swift_demangler.py
# Swift cli
swift demangle
```
### Binaries Zilizojazwa
### Binaries Zilizopakwa
* Angalia kwa entropy kubwa
* Angalia strings (kama hakuna string inayoeleweka, inaweza kuwa imejazwa)
* Angalia strings (kama hakuna string inayoeleweka, inaweza kuwa imepakwa)
* Packer wa UPX kwa MacOS huzalisha sehemu inayoitwa "\_\_XHDR"
## Uchambuzi wa Kudumu
{% hint style="warning" %}
Tafadhali kumbuka kwamba ili kudebug binaries, **SIP inahitaji kuzimwa** (`csrutil disable` au `csrutil enable --without debug`) au kuiga binaries kwa folda ya muda na **kuondoa saini** na `codesign --remove-signature <njia-ya-binary>` au kuruhusu uchambuzi wa binary (unaweza kutumia [script hii](https://gist.github.com/carlospolop/a66b8d72bb8f43913c4b5ae45672578b))
Tafadhali kumbuka kwamba ili kuchunguza binaries, **SIP inahitaji kuwa imelemazwa** (`csrutil disable` au `csrutil enable --without debug`) au kuiga binaries kwa folda ya muda na **kuondoa saini** na `codesign --remove-signature <njia-ya-binary>` au kuruhusu uchunguzi wa binary (unaweza kutumia [script hii](https://gist.github.com/carlospolop/a66b8d72bb8f43913c4b5ae45672578b))
{% endhint %}
{% hint style="warning" %}
Tafadhali kumbuka kwamba ili **kuwezesha binaries za mfumo**, (kama vile `cloudconfigurationd`) kwenye macOS, **SIP lazima izimwe** (kuondoa tu saini haitafanya kazi).
Tafadhali kumbuka kwamba ili **kuwezesha binaries za mfumo**, (kama vile `cloudconfigurationd`) kwenye macOS, **SIP lazima iwe imelemazwa** (kuondoa tu saini haitafanya kazi).
{% endhint %}
### Logs Zilizounganishwa
MacOS huzalisha logs nyingi ambazo zinaweza kuwa na manufaa sana wakati wa kukimbia programu jaribio kuelewa **inavyofanya**.
MacOS huzalisha logs nyingi ambazo zinaweza kuwa na manufaa sana wakati wa kukimbia programu jaribio kuelewa **inachofanya**.
Zaidi ya hayo, kuna baadhi ya logs ambazo zitakuwa na lebo `<private>` ili **kuficha** baadhi ya **taarifa zinazoweza kutambulika za mtumiaji** au **kompyuta**. Hata hivyo, inawezekana **kufunga cheti kufichua taarifa hizi**. Fuata maelezo kutoka [**hapa**](https://superuser.com/questions/1532031/how-to-show-private-data-in-macos-unified-log).
Zaidi ya hayo, kuna baadhi ya logs ambazo zitajumuisha lebo `<private>` kuficha baadhi ya habari **inayoweza kutambulika** ya **mtumiaji** au **kompyuta**. Hata hivyo, inawezekana **kufunga cheti kufichua habari hii**. Fuata maelezo kutoka [**hapa**](https://superuser.com/questions/1532031/how-to-show-private-data-in-macos-unified-log).
### Hopper
#### Paneli ya Kushoto
Katika paneli ya kushoto ya hopper inawezekana kuona alama (**Labels**) za binary, orodha ya taratibu na kazi (**Proc**) na strings (**Str**). Hizi siyo strings zote lakini zile zilizofafanuliwa katika sehemu kadhaa za faili ya Mac-O (kama vile _cstring au_ `objc_methname`).
Kwenye paneli ya kushoto ya hopper inawezekana kuona alama (**Labels**) za binary, orodha ya taratibu na kazi (**Proc**) na strings (**Str**). Hizi siyo strings zote lakini zile zilizofafanuliwa katika sehemu kadhaa za faili ya Mac-O (kama _cstring au `objc_methname`).
#### Paneli ya Kati
Katika paneli ya kati unaweza kuona **msimbo uliopanguliwa**. Na unaweza kuona kama **msimbo wa kawaida**, kama **grafu**, kama **uliopanguliwa** na kama **binary** kwa kubofya kwenye ishara husika:
Kwenye paneli ya kati unaweza kuona **msimbo uliopanguliwa**. Na unaweza kuona kama **msimbo wa kawaida**, kama **grafu**, kama **umepata** na kama **binary** kwa kubofya kwenye ishara husika:
<figure><img src="../../../.gitbook/assets/image (340).png" alt=""><figcaption></figcaption></figure>
Kwa kubofya kulia kwenye kitu cha msimbo unaweza kuona **marejeo kwa/kutoka kwa kitu hicho** au hata kubadilisha jina lake (hii haifanyi kazi katika pseudocode iliyopanguliwa):
Kwa kubofya kulia kwenye kitu cha msimbo unaweza kuona **marejeo kwa/kutoka kwa kitu hicho** au hata kubadilisha jina lake (hii haifanyi kazi katika pseudocode iliyopatuliwa):
<figure><img src="../../../.gitbook/assets/image (1114).png" alt=""><figcaption></figcaption></figure>
Zaidi ya hayo, katika **kati chini unaweza kuandika amri za python**.
Zaidi ya hayo, kwenye **chini ya kati unaweza kuandika amri za python**.
#### Paneli ya Kulia
Katika paneli ya kulia unaweza kuona taarifa muhimu kama **historia ya urambazaji** (ili ujue jinsi ulivyofika kwenye hali ya sasa), **grafu ya wito** ambapo unaweza kuona **kazi zote zinazowaita kazi hii** na kazi zote ambazo **kazi hii inawaita**, na taarifa za **variables za eneo**.
Kwenye paneli ya kulia unaweza kuona habari muhimu kama **historia ya urambazaji** (ili ujue jinsi ulivyofika kwenye hali ya sasa), **grafu ya wito** ambapo unaweza kuona **kazi zote zinazopiga simu kazi hii** na kazi zote ambazo **kazi hii inapiga simu**, na habari za **variables za eneo**.
### dtrace
Inaruhusu watumiaji kupata ufikivu kwa programu kwa kiwango cha chini sana na hutoa njia kwa watumiaji **kupeleleza** **programu** na hata kubadilisha mtiririko wao wa utekelezaji. Dtrace hutumia **probes** ambazo zinawekwa kote katika kernel na ziko katika maeneo kama mwanzo na mwisho wa wito wa mfumo.
Inaruhusu watumiaji kupata ufikiaji wa programu kwa kiwango cha chini sana na hutoa njia kwa watumiaji kufuatilia **programu** na hata kubadilisha mtiririko wao wa utekelezaji. Dtrace hutumia **probes** ambazo zinawekwa kote katika kernel na ziko katika maeneo kama mwanzo na mwisho wa wito wa mfumo.
DTrace hutumia kazi ya **`dtrace_probe_create`** kuunda probe kwa kila wito wa mfumo. Probes hizi zinaweza kufyatuliwa katika **kuingia na kutoka kwa kila wito wa mfumo**. Mwingiliano na DTrace hufanyika kupitia /dev/dtrace ambayo inapatikana kwa mtumiaji wa mizizi pekee.
{% hint style="success" %}
Ili kuwezesha Dtrace bila kuzima kabisa ulinzi wa SIP unaweza kutekeleza kwenye hali ya kupona: `csrutil enable --without dtrace`
Ili kuwezesha Dtrace bila kulemaza kabisa ulinzi wa SIP unaweza kutekeleza kwenye hali ya kupona: `csrutil enable --without dtrace`
Unaweza pia **kudtrace** au **kudtruss** binaries ambazo **umekusanya**.
{% endhint %}
@ -239,7 +249,7 @@ ID PROVIDER MODULE FUNCTION NAME
```
Jina la kichunguzi linajumuisha sehemu nne: mtoa huduma, moduli, kazi, na jina (`fbt:mach_kernel:ptrace:entry`). Ikiwa haujataja sehemu fulani ya jina, Dtrace itatumia sehemu hiyo kama kichujio.
Ili kusanidi DTrace kuchochea vichunguzi na kueleza ni hatua gani za kuchukua wanapochomwa, tutahitaji kutumia lugha ya D.
Ili kusanidi DTrace kuamsha vichunguzi na kufafanua hatua za kutekeleza wanapochomwa, tutahitaji kutumia lugha ya D.
Maelezo zaidi na mifano zaidi inaweza kupatikana katika [https://illumos.org/books/dtrace/chp-intro.html](https://illumos.org/books/dtrace/chp-intro.html)
@ -303,12 +313,12 @@ ktrace trace -s -S -t c -c ls | grep "ls("
```
### ProcessMonitor
[**ProcessMonitor**](https://objective-see.com/products/utilities.html#ProcessMonitor) ni chombo cha muhimu sana cha kuchunguza vitendo vinavyohusiana na mchakato ambavyo mchakato unafanya (kwa mfano, kufuatilia mchakato mpya ambao mchakato unazalisha).
[**ProcessMonitor**](https://objective-see.com/products/utilities.html#ProcessMonitor) ni chombo cha muhimu sana cha kuchunguza vitendo vinavyohusiana na mchakato ambavyo mchakato unafanya (kwa mfano, kufuatilia ni mchakato gani mpya mchakato unazounda).
### SpriteTree
[**SpriteTree**](https://themittenmac.com/tools/) ni chombo cha kuchapisha mahusiano kati ya michakato.\
Unahitaji kufuatilia mac yako kwa amri kama **`sudo eslogger fork exec rename create > cap.json`** (terminal inayozindua hii inahitaji FDA). Kisha unaweza kupakia json katika chombo hiki kuona mahusiano yote:
Unahitaji kufuatilia mac yako na amri kama **`sudo eslogger fork exec rename create > cap.json`** (terminal inayozindua hii inahitaji FDA). Kisha unaweza kupakia json katika chombo hiki kuona mahusiano yote:
<figure><img src="../../../.gitbook/assets/image (1179).png" alt="" width="375"><figcaption></figcaption></figure>
@ -318,17 +328,17 @@ Unahitaji kufuatilia mac yako kwa amri kama **`sudo eslogger fork exec rename cr
### Crescendo
[**Crescendo**](https://github.com/SuprHackerSteve/Crescendo) ni chombo cha GUI kinachofanana na watumiaji wa Windows wanaweza kufahamu kutoka kwa _Procmon_ ya Microsoft Sysinternal. Chombo hiki kuruhusu kuanza na kuacha kurekodi aina mbalimbali za matukio, kuruhusu kuchuja matukio haya kwa makundi kama faili, mchakato, mtandao, n.k., na hutoa uwezo wa kuhifadhi matukio yaliyorekodiwa kwa muundo wa json.
[**Crescendo**](https://github.com/SuprHackerSteve/Crescendo) ni chombo cha GUI kinachofanana na watumiaji wa Windows wanaweza kufahamu kutoka kwa _Procmon_ ya Microsoft Sysinternal. Chombo hiki kuruhusu kuanza na kuacha kurekodi aina mbalimbali za matukio, kuruhusu kuchuja matukio haya kwa makundi kama vile faili, mchakato, mtandao, n.k., na hutoa uwezo wa kuhifadhi matukio yaliyorekodiwa kwa muundo wa json.
### Apple Instruments
[**Apple Instruments**](https://developer.apple.com/library/archive/documentation/Performance/Conceptual/CellularBestPractices/Appendix/Appendix.html) ni sehemu ya zana za Developer za Xcode - hutumiwa kufuatilia utendaji wa programu, kutambua uvujaji wa kumbukumbu na kufuatilia shughuli za mfumo wa faili.
[**Apple Instruments**](https://developer.apple.com/library/archive/documentation/Performance/Conceptual/CellularBestPractices/Appendix/Appendix.html) ni sehemu ya zana za Developer za Xcode - hutumika kufuatilia utendaji wa programu, kutambua uvujaji wa kumbukumbu na kufuatilia shughuli za mfumo wa faili.
![](<../../../.gitbook/assets/image (1135).png>)
### fs\_usage
Inaruhusu kufuata vitendo vinavyofanywa na michakato:
Inaruhusu kufuatilia vitendo vinavyofanywa na michakato:
```bash
fs_usage -w -f filesys ls #This tracks filesystem actions of proccess names containing ls
fs_usage -w -f network curl #This tracks network actions
@ -336,22 +346,22 @@ fs_usage -w -f network curl #This tracks network actions
### TaskExplorer
[**Taskexplorer**](https://objective-see.com/products/taskexplorer.html) ni muhimu kuona **maktaba** zinazotumiwa na binary, **faili** inazotumia, na **muunganisho wa mtandao**.\
Pia huchunguza michakato ya binary dhidi ya **virustotal** na kuonyesha habari kuhusu binary hiyo.
Pia huchunguza michakato ya binary dhidi ya **virustotal** na kuonyesha habari kuhusu binary.
## PT\_DENY\_ATTACH <a href="#page-title" id="page-title"></a>
Katika [**chapisho hili la blogi**](https://knight.sc/debugging/2019/06/03/debugging-apple-binaries-that-use-pt-deny-attach.html) unaweza kupata mfano kuhusu jinsi ya **kudebugi daemon inayotumia** **`PT_DENY_ATTACH`** kuzuia kudebugi hata kama SIP ilikuwa imelemazwa.
Katika [**chapisho hili la blogi**](https://knight.sc/debugging/2019/06/03/debugging-apple-binaries-that-use-pt-deny-attach.html) unaweza kupata mfano jinsi ya **kudebugi daemon inayotumia** **`PT_DENY_ATTACH`** kuzuia kudebugi hata kama SIP ilikuwa imelemazwa.
### lldb
**lldb** ni chombo cha **kawaida** kwa **kudebugi binary za macOS**.
**lldb** ni zana ya msingi kwa **kudebugi binary za macOS**.
```bash
lldb ./malware.bin
lldb -p 1122
lldb -n malware.bin
lldb -n malware.bin --waitfor
```
Unaweza kuweka intel flavour unapotumia lldb kwa kuunda faili iitwayo **`.lldbinit`** kwenye folda yako ya nyumbani na mstari ufuatao:
Unaweza kuweka intel flavour unapotumia lldb kwa kuunda faili iitwayo **`.lldbinit`** katika folda yako ya nyumbani na mstari ufuatao:
```bash
settings set target.x86-disassembly-flavor intel
```
@ -359,7 +369,7 @@ settings set target.x86-disassembly-flavor intel
Ndani ya lldb, dumpisha mchakato kwa kutumia `process save-core`
{% endhint %}
<table data-header-hidden><thead><tr><th width="225"></th><th></th></tr></thead><tbody><tr><td><strong>(lldb) Amri</strong></td><td><strong>Maelezo</strong></td></tr><tr><td><strong>run (r)</strong></td><td>Kuanza utekelezaji, ambao utaendelea bila kusimama hadi kufikia kiungo au mchakato kukamilika.</td></tr><tr><td><strong>continue (c)</strong></td><td>Kuendelea na utekelezaji wa mchakato uliopo kwenye uchunguzi.</td></tr><tr><td><strong>nexti (n / ni)</strong></td><td>Kutekeleza maagizo ijayo. Amri hii itapita juu ya wito wa kazi.</td></tr><tr><td><strong>stepi (s / si)</strong></td><td>Kutekeleza maagizo ijayo. Tofauti na amri ya nexti, amri hii itaingia kwenye wito wa kazi.</td></tr><tr><td><strong>finish (f)</strong></td><td>Kutekeleza maagizo mengine kwenye kazi ya sasa ("frame") na kusimamisha.</td></tr><tr><td><strong>control + c</strong></td><td>Kusitisha utekelezaji. Ikiwa mchakato umekuwa ukitekelezwa (r) au kuendelea (c), hii itasababisha mchakato kusimama ...popote ulipo kwenye utekelezaji.</td></tr><tr><td><strong>breakpoint (b)</strong></td><td><p>b main #Kazi yoyote inayoitwa main</p><p>b &#x3C;binname>`main #Kazi kuu ya bin</p><p>b set -n main --shlib &#x3C;lib_name> #Kazi kuu ya bin iliyotajwa</p><p>b -[NSDictionary objectForKey:]</p><p>b -a 0x0000000100004bd9</p><p>br l #Orodha ya viungo vya kusitisha</p><p>br e/dis &#x3C;num> #Wezesha/lemaza kusitisha</p><p>breakpoint delete &#x3C;num></p></td></tr><tr><td><strong>help</strong></td><td><p>help breakpoint #Pata msaada wa amri ya kusitisha</p><p>help memory write #Pata msaada wa kuandika kwenye kumbukumbu</p></td></tr><tr><td><strong>reg</strong></td><td><p>reg read</p><p>reg read $rax</p><p>reg read $rax --format &#x3C;<a href="https://lldb.llvm.org/use/variable.html#type-format">format</a>></p><p>reg write $rip 0x100035cc0</p></td></tr><tr><td><strong>x/s &#x3C;reg/memory address></strong></td><td>Onyesha kumbukumbu kama mstari ulio na sifuri.</td></tr><tr><td><strong>x/i &#x3C;reg/memory address></strong></td><td>Onyesha kumbukumbu kama maagizo ya mkusanyiko.</td></tr><tr><td><strong>x/b &#x3C;reg/memory address></strong></td><td>Onyesha kumbukumbu kama baiti.</td></tr><tr><td><strong>print object (po)</strong></td><td><p>Hii itachapisha kitu kinachotajwa na paramu</p><p>po $raw</p><p><code>{</code></p><p><code>dnsChanger = {</code></p><p><code>"affiliate" = "";</code></p><p><code>"blacklist_dns" = ();</code></p><p>Taarifa kwamba APIs au njia za Apple za Objective-C kwa kawaida hurejesha vitu, na hivyo inapaswa kuonyeshwa kupitia amri ya "print object" (po). Ikiwa po haizalishi matokeo yanayofaa tumia <code>x/b</code></p></td></tr><tr><td><strong>memory</strong></td><td>kumbukumbu soma 0x000....<br>kumbukumbu soma $x0+0xf2a<br>kumbukumbu andika 0x100600000 -s 4 0x41414141 #Andika AAAA kwenye anwani hiyo<br>kumbukumbu andika -f s $rip+0x11f+7 "AAAA" #Andika AAAA kwenye anwani</td></tr><tr><td><strong>disassembly</strong></td><td><p>dis #Disas kazi ya sasa</p><p>dis -n &#x3C;funcname> #Disas kazi</p><p>dis -n &#x3C;funcname> -b &#x3C;basename> #Disas kazi<br>dis -c 6 #Disas mistari 6<br>dis -c 0x100003764 -e 0x100003768 # Kutoka anwani moja hadi nyingine<br>dis -p -c 4 # Anza katika anwani ya sasa ya kuchambua</p></td></tr><tr><td><strong>parray</strong></td><td>parray 3 (char **)$x1 # Angalia safu ya 3 katika reg ya x1</td></tr></tbody></table>
<table data-header-hidden><thead><tr><th width="225"></th><th></th></tr></thead><tbody><tr><td><strong>(lldb) Amri</strong></td><td><strong>Maelezo</strong></td></tr><tr><td><strong>run (r)</strong></td><td>Kuanza utekelezaji, ambao utaendelea bila kikomo mpaka kivinjari kikome au mchakato ukome.</td></tr><tr><td><strong>continue (c)</strong></td><td>Kuendelea na utekelezaji wa mchakato uliopo kwenye uchunguzi.</td></tr><tr><td><strong>nexti (n / ni)</strong></td><td>Kutekeleza maagizo ijayo. Amri hii itaruka wito wa kazi.</td></tr><tr><td><strong>stepi (s / si)</strong></td><td>Kutekeleza maagizo ijayo. Tofauti na amri ya nexti, amri hii itaingia kwenye wito wa kazi.</td></tr><tr><td><strong>finish (f)</strong></td><td>Kutekeleza maagizo mengine kwenye kazi ya sasa ("frame") na kusimamisha.</td></tr><tr><td><strong>control + c</strong></td><td>Kusitisha utekelezaji. Ikiwa mchakato umekuwa ukitekelezwa (r) au kuendelea (c), hii itasababisha mchakato kusimama ...popote ulipo kwenye utekelezaji.</td></tr><tr><td><strong>breakpoint (b)</strong></td><td><p>b main #Wito wowote wa kazi unaoitwa main</p><p>b &#x3C;binname>`main #Kazi kuu ya bin</p><p>b set -n main --shlib &#x3C;lib_name> #Kazi kuu ya bin iliyotajwa</p><p>b -[NSDictionary objectForKey:]</p><p>b -a 0x0000000100004bd9</p><p>br l #Orodha ya vituo vya kuvunja</p><p>br e/dis &#x3C;num> #Wezesha/lemaza kituo cha kuvunja</p><p>breakpoint delete &#x3C;num></p></td></tr><tr><td><strong>help</strong></td><td><p>help breakpoint #Pata msaada wa amri ya kuvunja</p><p>help memory write #Pata msaada wa kuandika kwenye kumbukumbu</p></td></tr><tr><td><strong>reg</strong></td><td><p>reg read</p><p>reg read $rax</p><p>reg read $rax --format &#x3C;<a href="https://lldb.llvm.org/use/variable.html#type-format">format</a>></p><p>reg write $rip 0x100035cc0</p></td></tr><tr><td><strong>x/s &#x3C;reg/memory address></strong></td><td>Onyesha kumbukumbu kama mstari ulio na sifuri.</td></tr><tr><td><strong>x/i &#x3C;reg/memory address></strong></td><td>Onyesha kumbukumbu kama maagizo ya mkusanyiko.</td></tr><tr><td><strong>x/b &#x3C;reg/memory address></strong></td><td>Onyesha kumbukumbu kama baiti.</td></tr><tr><td><strong>print object (po)</strong></td><td><p>Hii itachapisha kitu kinachotajwa na paramu</p><p>po $raw</p><p><code>{</code></p><p><code>dnsChanger = {</code></p><p><code>"affiliate" = "";</code></p><p><code>"blacklist_dns" = ();</code></p><p>Tafadhali kumbuka kuwa APIs au njia za Objective-C za Apple kwa kawaida hurejesha vitu, na hivyo inapaswa kuonyeshwa kupitia amri ya "print object" (po). Ikiwa po haizalishi matokeo yanayofaa tumia <code>x/b</code></p></td></tr><tr><td><strong>memory</strong></td><td>kumbukumbu soma 0x000....<br>kumbukumbu soma $x0+0xf2a<br>kumbukumbu andika 0x100600000 -s 4 0x41414141 #Andika AAAA kwenye anwani hiyo<br>kumbukumbu andika -f s $rip+0x11f+7 "AAAA" #Andika AAAA kwenye anwani</td></tr><tr><td><strong>disassembly</strong></td><td><p>dis #Disas kazi ya sasa</p><p>dis -n &#x3C;funcname> #Disas kazi</p><p>dis -n &#x3C;funcname> -b &#x3C;basename> #Disas kazi<br>dis -c 6 #Disas mistari 6<br>dis -c 0x100003764 -e 0x100003768 # Kutoka anwani moja hadi nyingine<br>dis -p -c 4 # Anza kwenye anwani ya sasa ya kuchambua</p></td></tr><tr><td><strong>parray</strong></td><td>parray 3 (char **)$x1 # Angalia safu ya 3 katika x1 reg</td></tr></tbody></table>
{% hint style="info" %}
Unapoitisha **`objc_sendMsg`** function, **rsi** register inashikilia **jina la njia** kama mstari wa sifuri ("C"). Ili kuchapisha jina kupitia lldb fanya:
@ -381,19 +391,19 @@ Unapoitisha **`objc_sendMsg`** function, **rsi** register inashikilia **jina la
* Baadhi ya programu hasidi pia zinaweza **kugundua** ikiwa mashine ni ya **VMware** kulingana na anwani ya MAC (00:50:56).
* Pia inawezekana kugundua ikiwa mchakato unachunguzwa na msimbo rahisi kama huu:
* `if(P_TRACED == (info.kp_proc.p_flag & P_TRACED)){ //mchakato unachunguzwa}`
* Inaweza pia kuita wito wa mfumo wa **`ptrace`** na bendera ya **`PT_DENY_ATTACH`**. Hii **inazuia** kideb**u**gger kushikilia na kufuatilia.
* Unaweza kuangalia ikiwa **`sysctl`** au **`ptrace`** kazi inaingizwa (lakini programu hasidi inaweza kuipakia kwa njia ya dinamiki)
* Inaweza pia kuita wito wa mfumo wa **`ptrace`** na bendera ya **`PT_DENY_ATTACH`**. Hii **inazuia** kivinjari kutokana kuambatisha na kufuatilia.
* Unaweza kuangalia ikiwa **`sysctl`** au **`ptrace`** kazi inaingizwa (lakini programu hasidi inaweza kuipakia kwa dinamiki)
* Kama ilivyobainishwa katika andiko hili, “[Kushinda Mbinu za Kuzuia-Uchunguzi: toleo la macOS la ptrace](https://alexomara.com/blog/defeating-anti-debug-techniques-macos-ptrace-variants/)” :\
“_Ujumbe Mchakato # ulitoka na **hali = 45 (0x0000002d)** kawaida ni ishara wazi kwamba lengo la uchunguzi linatumia **PT\_DENY\_ATTACH**_”
## Fuzzing
### [ReportCrash](https://ss64.com/osx/reportcrash.html)
ReportCrash **anaanisha michakato ya kugonga na kuokoa ripoti ya kugonga kwa diski**. Ripoti ya kugonga ina taarifa ambazo zinaweza **kusaidia mwandishi wa programu kutambua** sababu ya kugonga.\
Kwa maombi na michakato mingine **inayoendeshwa katika muktadha wa uzinduzi wa mtumiaji**, ReportCrash inaendeshwa kama LaunchAgent na kuokoa ripoti za kugonga kwenye `~/Library/Logs/DiagnosticReports/` ya mtumiaji\
Kwa daemons, michakato mingine **inayoendeshwa katika muktadha wa uzinduzi wa mfumo** na michakato mingine yenye mamlaka, ReportCrash inaendeshwa kama LaunchDaemon na kuokoa ripoti za kugonga kwenye `/Library/Logs/DiagnosticReports` ya mfumo
ReportCrash **anaanisha michakato ya kusitisha na kuokoa ripoti ya kusitisha kwenye diski**. Ripoti ya kusitisha ina taarifa ambazo zinaweza **kusaidia mwandishi wa programu kutambua** sababu ya kusitisha.\
Kwa maombi na michakato mingine **inayoendesha katika muktadha wa uzinduzi wa mtumiaji**, ReportCrash inaendeshwa kama LaunchAgent na kuokoa ripoti za kusitisha kwenye `~/Library/Logs/DiagnosticReports/` ya mtumiaji\
Kwa daemons, michakato mingine **inayoendesha katika muktadha wa uzinduzi wa mfumo** na michakato mingine yenye mamlaka, ReportCrash inaendeshwa kama LaunchDaemon na kuokoa ripoti za kusitisha kwenye `/Library/Logs/DiagnosticReports` ya mfumo
Ikiwa una wasiwasi kuhusu ripoti za kugonga **zikitumwa kwa Apple** unaweza kuzizima. Vinginevyo, ripoti za kugonga zinaweza kuwa na manufaa **kutambua jinsi server ilivyogonga**.
Ikiwa una wasiwasi kuhusu ripoti za kusitisha **zikitumwa kwa Apple** unaweza kuzizima. Vinginevyo, ripoti za kusitisha zinaweza kuwa na manufaa **kutambua jinsi server ilivyosimama**.
```bash
#To disable crash reporting:
launchctl unload -w /System/Library/LaunchAgents/com.apple.ReportCrash.plist
@ -405,7 +415,7 @@ sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.ReportCrash.Root.
```
### Kulala
Wakati wa kufanya fuzzing kwenye MacOS ni muhimu kuhakikisha Mac haipati usingizi:
Wakati wa kufanya fuzzing kwenye MacOS ni muhimu kuzuia Mac kulala:
* systemsetup -setsleep Kamwe
* pmset, Mapendeleo ya Mfumo
@ -424,7 +434,7 @@ sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
```
### Wasindikaji wa Ndani
**Angalia ukurasa ufuatao** ili kujua jinsi unavyoweza kugundua ni programu ipi inayohusika na **kushughulikia mpango maalum au itifaki:**
**Angalia ukurasa ufuatao** ili kujua jinsi unavyoweza kugundua ni programu ipi inayohusika na **kushughulikia mpango au itifaki iliyotajwa:**
{% content-ref url="../macos-file-extension-apps.md" %}
[macos-file-extension-apps.md](../macos-file-extension-apps.md)
@ -447,8 +457,6 @@ Au tumia `netstat` au `lsof`
```bash
lldb -o "target create `which some-binary`" -o "settings set target.env-vars DYLD_INSERT_LIBRARIES=/usr/lib/libgmalloc.dylib" -o "run arg1 arg2" -o "bt" -o "reg read" -o "dis -s \$pc-32 -c 24 -m -F intel" -o "quit"
```
{% endcode %}
### Fuzzers
#### [AFL++](https://github.com/AFLplusplus/AFLplusplus)
@ -457,7 +465,7 @@ Inafanya kazi kwa zana za CLI
#### [Litefuzz](https://github.com/sec-tools/litefuzz)
Inafanya kazi na zana za GUI za macOS. Tafadhali kumbuka kuwa baadhi ya programu za macOS zinahitaji mahitaji maalum kama majina ya faili ya kipekee, ugani sahihi, kusoma faili kutoka kwenye sanduku (`~/Library/Containers/com.apple.Safari/Data`)...
Inafanya kazi "inavyotakiwa" na zana za GUI za macOS. Tafadhali kumbuka kuwa baadhi ya programu za macOS zinahitaji mahitaji maalum kama majina ya faili ya kipekee, ugani sahihi, kusoma faili kutoka kwa sanduku (`~/Library/Containers/com.apple.Safari/Data`)...
Baadhi ya mifano:
```bash
@ -485,7 +493,7 @@ litefuzz -s -a tcp://localhost:5900 -i input/screenshared-session --reportcrash
```
{% endcode %}
### Maelezo Zaidi Kuhusu Fuzzing kwenye MacOS
### Taarifa Zaidi Kuhusu Fuzzing MacOS
* [https://www.youtube.com/watch?v=T5xfL9tEg44](https://www.youtube.com/watch?v=T5xfL9tEg44)
* [https://github.com/bnagy/slides/blob/master/OSXScale.pdf](https://github.com/bnagy/slides/blob/master/OSXScale.pdf)
@ -499,6 +507,19 @@ litefuzz -s -a tcp://localhost:5900 -i input/screenshared-session --reportcrash
* [**https://taomm.org/vol1/analysis.html**](https://taomm.org/vol1/analysis.html)
* [**The Art of Mac Malware: The Guide to Analyzing Malicious Software**](https://taomm.org/)
### [WhiteIntel](https://whiteintel.io)
<figure><img src="/.gitbook/assets/image (1224).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) ni injini ya utaftaji inayotumia **dark-web** ambayo inatoa huduma za **bure** kuchunguza ikiwa kampuni au wateja wake wameathiriwa na **malware za kuiba**.
Lengo kuu la WhiteIntel ni kupambana na utekaji wa akaunti na mashambulio ya ransomware yanayotokana na malware za kuiba taarifa.
Unaweza kutembelea tovuti yao na kujaribu injini yao **bure** hapa:
{% embed url="https://whiteintel.io" %}
<details>
<summary><strong>Jifunze AWS hacking kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
@ -506,9 +527,9 @@ litefuzz -s -a tcp://localhost:5900 -i input/screenshared-session --reportcrash
Njia nyingine za kusaidia HackTricks:
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
* Pata [**swag rasmi wa PEASS & HackTricks**](https://peass.creator-spring.com)
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Shiriki mbinu zako za kuhack kwa kuwasilisha PRs kwenye** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* **Shiriki mbinu zako za kuhack kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>

View file

@ -2,7 +2,7 @@
<details>
<summary><strong>Jifunze kuhusu udukuzi wa AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
Njia nyingine za kusaidia HackTricks:
@ -10,10 +10,24 @@ Njia nyingine za kusaidia HackTricks:
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Shiriki mbinu zako za udukuzi kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
</details>
### [WhiteIntel](https://whiteintel.io)
<figure><img src="/.gitbook/assets/image (1224).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) ni injini ya utaftaji inayotumia **dark-web** ambayo inatoa huduma za **bure** kuchunguza ikiwa kampuni au wateja wake wameathiriwa na **malware za wizi**.
Lengo kuu la WhiteIntel ni kupambana na utekaji wa akaunti na mashambulio ya ransomware yanayotokana na malware za kuiba taarifa.
Unaweza kutembelea tovuti yao na kujaribu injini yao **bure** kwa:
{% embed url="https://whiteintel.io" %}
---
## **Taarifa Msingi**
**Ulinzi wa Uadilifu wa Mfumo (SIP)** kwenye macOS ni mbinu iliyoundwa kuzuia hata watumiaji wenye mamlaka zaidi kufanya mabadiliko yasiyoruhusiwa kwenye folda muhimu za mfumo. Kipengele hiki kina jukumu muhimu katika kudumisha uadilifu wa mfumo kwa kuzuia vitendo kama kuongeza, kuhariri, au kufuta faili katika maeneo yaliyolindwa. Folda kuu zinazolindwa na SIP ni pamoja na:
@ -23,7 +37,7 @@ Njia nyingine za kusaidia HackTricks:
* **/sbin**
* **/usr**
Sheria zinazosimamia tabia ya SIP zimefafanuliwa kwenye faili ya usanidi iliyoko kwenye **`/System/Library/Sandbox/rootless.conf`**. Ndani ya faili hii, njia zilizo na alama ya nyota (\*) zinatajwa kama mabadiliko ya kawaida kwa vikwazo vikali vya SIP.
Sheria zinazosimamia tabia ya SIP zimefafanuliwa kwenye faili ya usanidi iliyoko kwenye **`/System/Library/Sandbox/rootless.conf`**. Ndani ya faili hii, njia zilizo na alama ya nyota (\*) zinatajwa kama ubaguzi wa vikwazo vikali vya SIP.
Chukua mfano hapa chini:
```javascript
@ -32,32 +46,32 @@ Chukua mfano hapa chini:
* /usr/local
* /usr/share/man
```
Hii sehemu inaashiria kwamba ingawa SIP kwa ujumla inalinda saraka ya **`/usr`**, kuna vichwa vya pekee (`/usr/libexec/cups`, `/usr/local`, na `/usr/share/man`) ambapo marekebisho yanaruhusiwa, kama ilivyodokezwa na asterisk (\*) inayotangulia njia zao.
Hii sehemu inaashiria kwamba ingawa SIP kwa ujumla inalinda saraka ya **`/usr`**, kuna vichwa vya kipekee (`/usr/libexec/cups`, `/usr/local`, na `/usr/share/man`) ambapo marekebisho yanaruhusiwa, kama ilivyodokezwa na asterisk (\*) inayotangulia njia zao.
Ili kuthibitisha ikiwa saraka au faili inalindwa na SIP, unaweza kutumia amri ya **`ls -lOd`** kuangalia uwepo wa bendera ya **`restricted`** au **`sunlnk`**. Kwa mfano:
```bash
ls -lOd /usr/libexec/cups
drwxr-xr-x 11 root wheel sunlnk 352 May 13 00:29 /usr/libexec/cups
```
Katika kesi hii, bendera ya **`sunlnk`** inamaanisha kwamba directory ya `/usr/libexec/cups` yenyewe **haiwezi kufutwa**, ingawa mafaili ndani yake yanaweza kuundwa, kuhaririwa, au kufutwa.
Katika kesi hii, bendera ya **`sunlnk`** inamaanisha kuwa directory ya `/usr/libexec/cups` yenyewe **haiwezi kufutwa**, ingawa mafaili ndani yake yanaweza kuundwa, kuhaririwa, au kufutwa.
Kwa upande mwingine:
```bash
ls -lOd /usr/libexec
drwxr-xr-x 338 root wheel restricted 10816 May 13 00:29 /usr/libexec
```
Hapa, bendera ya **`restricted`** inaonyesha kuwa directory ya `/usr/libexec` inalindwa na SIP. Katika directory iliyolindwa na SIP, faili haziwezi kuundwa, kuhaririwa, au kufutwa.
Hapa, bendera ya **`iliyozuiwa`** inaonyesha kuwa directory ya `/usr/libexec` inalindwa na SIP. Katika directory iliyo na ulinzi wa SIP, faili haziwezi kuundwa, kuhaririwa, au kufutwa.
Zaidi ya hayo, ikiwa faili ina sifa ya ziada ya **`com.apple.rootless`** extended **attribute**, faili hiyo pia itakuwa **lindwa na SIP**.
Zaidi ya hayo, ikiwa faili ina sifa ya ziada ya **`com.apple.rootless`**, faili hiyo pia itakuwa **lindwa na SIP**.
**SIP pia inazuia vitendo vingine vya root** kama vile:
* Kupakia extensions za kernel zisizoaminika
* Kupakia vifaa vya msingi visivyoaminika
* Kupata task-ports kwa michakato iliyosainiwa na Apple
* Kubadilisha mazingira ya NVRAM
* Kuruhusu uchunguzi wa kernel
Chaguo zinahifadhiwa katika variable ya nvram kama bitflag (`csr-active-config` kwenye Intel na `lp-sip0` inasomwa kutoka kwa Device Tree iliyopakiwa kwa ARM). Unaweza kupata bendera hizo katika msimbo wa chanzo wa XNU katika `csr.sh`:
Chaguo zinahifadhiwa katika mazingira ya nvram kama bitflag (`csr-active-config` kwenye Intel na `lp-sip0` inasomwa kutoka kwa Mti wa Kifaa kilicho booted kwa ARM). Unaweza kupata bendera hizo katika msimbo wa chanzo wa XNU katika `csr.sh`:
<figure><img src="../../../.gitbook/assets/image (1189).png" alt=""><figcaption></figcaption></figure>
@ -67,7 +81,7 @@ Unaweza kuangalia ikiwa SIP imewezeshwa kwenye mfumo wako kwa amri ifuatayo:
```bash
csrutil status
```
Ikiwa unahitaji kulemaza SIP, lazima uanzishe upya kompyuta yako kwenye hali ya kupona (kwa kubonyeza Command+R wakati wa kuanza), kisha tekeleza amri ifuatayo:
Ikiwa unahitaji kulemaza SIP, lazima uanzishe upya kompyuta yako kwenye hali ya kupona (kwa kubonyeza Amri+R wakati wa kuanza), kisha tekeleza amri ifuatayo:
```bash
csrutil disable
```
@ -78,27 +92,27 @@ csrutil enable --without debug
### Vizuizi vingine
* **Inazuia kupakia nyongeza za kernel zisizosainiwa** (kexts), ikisimamia tu nyongeza zilizothibitishwa kuingiliana na kernel ya mfumo.
* **Inazuia uchunguzi** wa michakato ya mfumo wa macOS, ikilinda sehemu kuu za mfumo kutokana na ufikiaji usioidhinishwa na ubadilishaji.
* **Inazuia uchunguzi** wa michakato ya mfumo wa macOS, ikilinda sehemu kuu za mfumo kutokana na ufikiaji usioruhusiwa na mabadiliko.
* **Inazuia zana** kama dtrace kutoka kuchunguza michakato ya mfumo, ikilinda zaidi uadilifu wa uendeshaji wa mfumo.
[**Jifunze zaidi kuhusu habari za SIP katika mazungumzo haya**](https://www.slideshare.net/i0n1c/syscan360-stefan-esser-os-x-el-capitan-sinking-the-ship)**.**
[**Jifunze zaidi kuhusu habari ya SIP katika mazungumzo haya**](https://www.slideshare.net/i0n1c/syscan360-stefan-esser-os-x-el-capitan-sinking-the-ship)**.**
## Kupita kizuizi cha SIP
Kupita kizuizi cha SIP kunawezesha mshambuliaji kufanya yafuatayo:
Kupita kizuizi cha SIP kunamwezesha mshambuliaji kufanya yafuatayo:
* **Kufikia Data ya Mtumiaji**: Kusoma data nyeti ya mtumiaji kama barua pepe, ujumbe, na historia ya Safari kutoka kwa akaunti zote za watumiaji.
* **Kupita TCC**: Kudhibiti moja kwa moja hifadhidata ya TCC (Transparency, Consent, and Control) kutoa ufikiaji usiohalali kwa kamera ya wavuti, kipaza sauti, na rasilimali nyingine.
* **Kuanzisha Uimara**: Kuweka programu hasidi katika maeneo yaliyolindwa na SIP, ikifanya iwe ngumu kuiondoa, hata kwa mamlaka ya msingi. Hii pia ni pamoja na uwezekano wa kuharibu Malware Removal Tool (MRT).
* **Kupita TCC**: Kudhibiti moja kwa moja hifadhidata ya TCC (Transparency, Consent, and Control) kutoa ufikiaji usioruhusiwa kwa kamera, kipaza sauti, na rasilimali nyingine.
* **Kuanzisha Uimara**: Kuweka zisizo katika maeneo yaliyolindwa na SIP, ikifanya iwe ngumu kuondoa, hata kwa mamlaka ya mizizi. Hii pia ni pamoja na uwezekano wa kuharibu zana ya Kuondoa Zisizo (MRT).
* **Kupakia Nyongeza za Kernel**: Ingawa kuna kinga zaidi, kupita kizuizi cha SIP kunasimplisha mchakato wa kupakia nyongeza za kernel zisizosainiwa.
### Pakiti za Usakinishaji
**Pakiti za usakinishaji zilizosainiwa na cheti cha Apple** zinaweza kupita kinga zake. Hii inamaanisha kwamba hata pakiti zilizosainiwa na watengenezaji wa kawaida zitazuiliwa ikiwa zitajaribu kubadilisha saraka zilizolindwa na SIP.
**Pakiti za usakinishaji zilizosainiwa na cheti cha Apple** zinaweza kupita kinga zake. Hii inamaanisha kwamba hata pakiti zilizosainiwa na watengenezaji wa kawaida zitazuiliwa ikiwa zitajaribu kurekebisha saraka zilizolindwa na SIP.
### Faili ya SIP isiyopo
Mianya moja inawezekana ni kwamba ikiwa faili imeorodheshwa katika **`rootless.conf` lakini haipo kwa sasa**, inaweza kuundwa. Programu hasidi inaweza kutumia hii kwa **kuweka uimara** kwenye mfumo. Kwa mfano, programu hasidi inaweza kuunda faili ya .plist katika `/System/Library/LaunchDaemons` ikiwa imeorodheshwa katika `rootless.conf` lakini haipo.
Mianya moja inawezekana ni kwamba ikiwa faili imeorodheshwa katika **`rootless.conf` lakini haipo kwa sasa**, inaweza kuundwa. Programu hasidi inaweza kutumia hii kwa **kuanzisha uimara** kwenye mfumo. Kwa mfano, programu hasidi inaweza kuunda faili ya .plist katika `/System/Library/LaunchDaemons` ikiwa imeorodheshwa katika `rootless.conf` lakini haipo.
### com.apple.rootless.install.heritable
@ -108,17 +122,17 @@ Ruhusa **`com.apple.rootless.install.heritable`** inaruhusu kupita kizuizi cha S
#### Shrootless
[**Watafiti kutoka chapisho hili la blogi**](https://www.microsoft.com/en-us/security/blog/2021/10/28/microsoft-finds-new-macos-vulnerability-shrootless-that-could-bypass-system-integrity-protection/) waligundua mianya katika mfumo wa Ulinzi wa Mfumo wa macOS (SIP), iliyopewa jina la 'Shrootless' vulnerability. Mianya hii inazingira karibu na **`system_installd`** daemon, ambayo ina ruhusa, **`com.apple.rootless.install.heritable`**, inayoruhusu mchakato wowote wa watoto wake kupita kinga ya mfumo wa SIP kwenye mfumo wa faili.
[**Watafiti kutoka chapisho hili la blogi**](https://www.microsoft.com/en-us/security/blog/2021/10/28/microsoft-finds-new-macos-vulnerability-shrootless-that-could-bypass-system-integrity-protection/) waligundua mianya katika mfumo wa Ulinzi wa Mfumo wa macOS (SIP), iliyopewa jina la 'Shrootless' vulnerability. Mianya hii inazingatia kuzunguka kwa **`system_installd`** daemon, ambayo ina ruhusa, **`com.apple.rootless.install.heritable`**, inayoruhusu mchakato wowote wa watoto wake kupita kinga ya mfumo wa SIP kwenye mfumo wa faili.
**`system_installd`** daemon itasakinisha pakiti zilizosainiwa na **Apple**.
Watafiti waligundua kwamba wakati wa usakinishaji wa pakiti iliyosainiwa na Apple (.pkg file), **`system_installd`** **inaendesha** hati yoyote ya **post-install** iliyomo kwenye pakiti hiyo. Hati hizi hutekelezwa na kabati la msingi, **`zsh`**, ambayo kwa moja kwa moja **inaendesha** amri kutoka kwa faili ya **`/etc/zshenv`**, ikiwepo, hata katika hali isiyo ya mwingiliano. Tabia hii inaweza kutumiwa na wachomaji: kwa kuunda faili mbaya ya `/etc/zshenv` na kusubiri **`system_installd` kuita `zsh`**, wangeweza kufanya operesheni za aina yoyote kwenye kifaa.
Watafiti waligundua kwamba wakati wa usakinishaji wa pakiti iliyosainiwa na Apple (.pkg file), **`system_installd`** **inaendesha** hati yoyote ya **post-install** iliyomo kwenye pakiti hiyo. Hati hizi zinaendeshwa na kabati la msingi, **`zsh`**, ambayo kwa moja kwa moja **inaendesha** amri kutoka kwa faili ya **`/etc/zshenv`**, ikiwepo, hata katika hali isiyo ya mwingiliano. Tabia hii inaweza kutumiwa na wachomaji: kwa kuunda faili mbaya ya `/etc/zshenv` na kusubiri **`system_installd` kuita `zsh`**, wanaweza kufanya operesheni za aina yoyote kwenye kifaa.
Zaidi ya hayo, iligunduliwa kwamba **`/etc/zshenv` inaweza kutumika kama mbinu ya mashambulizi ya jumla**, si tu kwa kupita kizuizi cha SIP. Kila wasifu wa mtumiaji una faili ya `~/.zshenv`, ambayo ina tabia sawa na `/etc/zshenv` lakini haitaji ruhusa ya msingi. Faili hii inaweza kutumika kama mbinu ya uimara, ikianzisha kila wakati `zsh` inapoanza, au kama mbinu ya kupandisha hadhi. Ikiwa mtumiaji wa admin anapandisha hadhi hadi msingi kwa kutumia `sudo -s` au `sudo <amri>`, faili ya `~/.zshenv` itaanzishwa, ikipandisha hadhi kwa msingi kwa ufanisi.
Zaidi ya hayo, iligunduliwa kwamba **`/etc/zshenv` inaweza kutumika kama mbinu ya mashambulizi ya jumla**, si tu kwa kupita kizuizi cha SIP. Kila wasifu wa mtumiaji una faili ya `~/.zshenv`, ambayo ina tabia sawa na `/etc/zshenv` lakini haitaji ruhusa za mizizi. Faili hii inaweza kutumika kama mbinu ya uimara, ikianzisha kila wakati `zsh` inapoanza, au kama mbinu ya kupandisha hadhi. Ikiwa mtumiaji wa admin anapandisha hadhi kuwa mizizi kwa kutumia `sudo -s` au `sudo <amri>`, faili ya `~/.zshenv` itaanzishwa, ikipandisha hadhi kwa mizizi kwa ufanisi.
#### [**CVE-2022-22583**](https://perception-point.io/blog/technical-analysis-cve-2022-22583/)
Katika [**CVE-2022-22583**](https://perception-point.io/blog/technical-analysis-cve-2022-22583/) iligunduliwa kwamba mchakato huo huo wa **`system_installd`** unaweza bado kutumiwa vibaya kwa sababu ulikuwa ukiiweka **hati ya post-install ndani ya saraka yenye jina la nasibu iliyolindwa na SIP ndani ya `/tmp`**. Jambo ni kwamba **`/tmp` yenyewe haikulindwa na SIP**, hivyo ilikuwa inawezekana **kufunga** picha ya **virtual** juu yake, kisha **msakinishaji** angeiweka hapo **hati ya post-install**, **kufunga** tena picha ya virtual, **kuunda upya** mapazia yote, na **kuongeza** hati ya **usakinishaji wa mwisho** na **mzigo** wa kutekelezwa.
Katika [**CVE-2022-22583**](https://perception-point.io/blog/technical-analysis-cve-2022-22583/) iligunduliwa kwamba mchakato huo wa **`system_installd`** unaweza bado kutumiwa vibaya kwa sababu ulikuwa ukiiweka **hati ya post-install ndani ya folda yenye jina la kubahatisha iliyolindwa na SIP ndani ya `/tmp`**. Jambo ni kwamba **`/tmp` yenyewe haikulindwa na SIP**, hivyo ilikuwa inawezekana **kufunga** picha ya **virtual** juu yake, kisha **msakinishaji** ungehifadhi hapo **hati ya post-install**, **kufunga** tena picha ya virtual, **kuunda upya** folda zote na **kuongeza** hati ya **usakinishaji wa baadae** na **mzigo** wa kutekelezwa.
#### [zana ya fsck\_cs](https://www.theregister.com/2016/03/30/apple\_os\_x\_rootless/)
@ -133,9 +147,9 @@ reboot
```
Udhalilishaji wa udhaifu huu una matokeo makubwa. Faili ya `Info.plist`, kawaida inayohusika na usimamizi wa ruhusa za nyongeza za kernel, inakuwa batili. Hii ni pamoja na uwezekano wa kuzuia nyongeza fulani, kama vile `AppleHWAccess.kext`. Kwa hivyo, na mfumo wa udhibiti wa SIP ukiwa nje ya utaratibu, nyongeza hii inaweza kupakiwa, ikiruhusu ufikiaji usioruhusiwa wa kusoma na kuandika kwenye RAM ya mfumo.
#### [Kupakia juu ya folda zilizolindwa na SIP](https://www.slideshare.net/i0n1c/syscan360-stefan-esser-os-x-el-capitan-sinking-the-ship)
#### [Kufunga juu ya folda zilizolindwa na SIP](https://www.slideshare.net/i0n1c/syscan360-stefan-esser-os-x-el-capitan-sinking-the-ship)
Ilitwezekana kupakia mfumo wa faili mpya juu ya **folda zilizolindwa na SIP ili kudukua ulinzi**.
Ilitowezekana kufunga mfumo wa faili mpya juu ya **folda zilizolindwa na SIP ili kudanganya ulinzi**.
```bash
mkdir evil
# Add contento to the folder
@ -144,7 +158,7 @@ hdiutil attach -mountpoint /System/Library/Snadbox/ evil.dmg
```
#### [Kupuuza Upgrader (2016)](https://objective-see.org/blog/blog\_0x14.html)
Mfumo umewekwa kuanza kutoka kwenye picha ya diski ya mjenzi iliyomo ndani ya `Sakinisha macOS Sierra.app` ili kuboresha OS, kwa kutumia zana ya `bless`. Amri iliyotumika ni kama ifuatavyo:
Mfumo umewekwa kuanza kutoka kwenye picha ya diski ya mjenzi iliyomo ndani ya `Sakinisha macOS Sierra.app` ili kuboresha OS, kwa kutumia kifaa cha `bless`. Amri iliyotumika ni kama ifuatavyo:
```bash
/usr/sbin/bless -setBoot -folder /Volumes/Macintosh HD/macOS Install Data -bootefi /Volumes/Macintosh HD/macOS Install Data/boot.efi -options config="\macOS Install Data\com.apple.Boot" -label macOS Installer
```
@ -152,7 +166,7 @@ Usalama wa mchakato huu unaweza kuhatarishwa ikiwa mshambuliaji anabadilisha pic
Msimbo wa mshambuliaji unapata udhibiti wakati wa mchakato wa kuboresha, kwa kutumia imani ya mfumo katika msakinishaji. Shambulio linaendelea kwa kubadilisha picha ya `InstallESD.dmg` kupitia njia ya swizzling, hasa ikilenga njia ya `extractBootBits`. Hii inaruhusu kuingiza msimbo wa uovu kabla ya picha ya diski kutumika.
Zaidi ya hayo, ndani ya `InstallESD.dmg`, kuna `BaseSystem.dmg`, ambayo hutumika kama mfumo wa mizizi wa msimbo wa kuboresha. Kuingiza maktaba ya kudhibiti katika hii inaruhusu msimbo wa uovu kufanya kazi ndani ya mchakato unaoweza kubadilisha faili za kiwango cha OS, ikiongeza sana uwezekano wa kuhatarisha mfumo.
Zaidi ya hayo, ndani ya `InstallESD.dmg`, kuna `BaseSystem.dmg`, ambayo hutumikia kama mfumo wa mizizi wa msimbo wa kuboresha. Kuingiza maktaba ya kudhibiti katika hii inaruhusu msimbo wa uovu kufanya kazi ndani ya mchakato unaoweza kubadilisha faili za kiwango cha OS, ikiongeza sana uwezekano wa kuhatarisha mfumo.
#### [systemmigrationd (2023)](https://www.youtube.com/watch?v=zxZesAN-TEk)
@ -170,13 +184,13 @@ Katika kesi hii maalum, huduma ya XPC ya mfumo iliyoko kwenye `/System/Library/P
## Picha za Mfumo Zilizofungwa
Picha za Mfumo Zilizofungwa ni kipengele kilichoanzishwa na Apple katika **macOS Big Sur (macOS 11)** kama sehemu ya mfumo wake wa **Ulinzi wa Uadilifu wa Mfumo (SIP)** kutoa safu ya ziada ya usalama na utulivu wa mfumo. Kimsingi ni toleo lisiloweza kuhaririwa la kiasi cha mfumo.
Picha za Mfumo Zilizofungwa ni kipengele kilicholetwa na Apple katika **macOS Big Sur (macOS 11)** kama sehemu ya mfumo wake wa **Ulinzi wa Uadilifu wa Mfumo (SIP)** kutoa safu ya ziada ya usalama na utulivu wa mfumo. Kimsingi ni toleo lisiloweza kuhaririwa la kiasi cha mfumo.
Hapa kuna muonekano wa kina zaidi:
1. **Mfumo Usiobadilika**: Picha za Mfumo Zilizofungwa hufanya kiasi cha mfumo wa macOS kuwa "usibadilike", maana yake hauwezi kuhaririwa. Hii inazuia mabadiliko yoyote yasiyoruhusiwa au ya bahati mbaya kwenye mfumo ambayo yanaweza kuhatarisha usalama au utulivu wa mfumo.
2. **Sasisho za Programu ya Mfumo**: Unapoweka sasisho au kuboresha macOS, macOS inaunda picha mpya ya mfumo. Kisha kiasi cha kuanza cha macOS kinatumia **APFS (Mfumo wa Faili wa Apple)** kubadilisha kwenye picha hii mpya. Mchakato mzima wa kutumia sasisho unakuwa salama zaidi na wa kuaminika zaidi kwani mfumo unaweza kurudi kwenye picha ya awali ikiwa kitu kitakwenda vibaya wakati wa sasisho.
3. **Ufafanuzi wa Data**: Pamoja na dhana ya Ufafanuzi wa Kiasi cha Data na Mfumo iliyozinduliwa katika macOS Catalina, kipengele cha Picha za Mfumo Zilizofungwa kuhakikisha kuwa data yako yote na mipangilio inahifadhiwa kwenye kiasi cha "**Data**" tofauti. Ufafanuzi huu unafanya data yako kuwa huru kutoka kwa mfumo, ambayo inasimplisha mchakato wa sasisho wa mfumo na kuimarisha usalama wa mfumo.
1. **Mfumo Usiobadilika**: Picha za Mfumo Zilizofungwa hufanya kiasi cha mfumo wa macOS kuwa "usio badilika", maana yake hauwezi kuhaririwa. Hii inazuia mabadiliko yoyote yasiyoruhusiwa au ya bahati mbaya kwenye mfumo ambayo yanaweza kuhatarisha usalama au utulivu wa mfumo.
2. **Sasisho za Programu ya Mfumo**: Unapoweka sasisho au kuboresha macOS, macOS inaunda picha mpya ya mfumo. Kiasi cha kuanza cha macOS kisha kutumia **APFS (Mfumo wa Faili wa Apple)** kubadilisha kwenye picha hii mpya. Mchakato mzima wa kutumia sasisho unakuwa salama zaidi na wa kuaminika zaidi kwani mfumo unaweza kurudi kwenye picha ya awali ikiwa kitu kitakwenda vibaya wakati wa sasisho.
3. **Ufafanuzi wa Data**: Pamoja na dhana ya Ufafanuzi wa Kiasi cha Data na Mfumo iliyotambulishwa katika macOS Catalina, kipengele cha Picha za Mfumo Zilizofungwa kuhakikisha kuwa data yako yote na mipangilio inahifadhiwa kwenye kiasi cha "**Data**" tofauti. Ufafanuzi huu unafanya data yako kuwa huru kutoka kwa mfumo, ambayo inasimplisha mchakato wa sasisho wa mfumo na kuimarisha usalama wa mfumo.
Kumbuka kuwa picha hizi zinasimamiwa moja kwa moja na macOS na hazichukui nafasi ya ziada kwenye diski yako, shukrani kwa uwezo wa kushirikiana nafasi wa APFS. Pia ni muhimu kutambua kuwa picha hizi ni tofauti na **picha za Time Machine**, ambazo ni nakala za kurejesheka za mfumo mzima zinazoweza kufikiwa na mtumiaji.
@ -187,43 +201,43 @@ Amri **`diskutil apfs list`** inaorodhesha **maelezo ya kina ya kiasi cha APFS**
<pre><code>+-- Kontena diski3 966B902E-EDBA-4775-B743-CF97A0556A13
| ====================================================
| Kiungo cha Kontena cha APFS: diski3
| Ukubwa (Paa la Uwezo): 494384795648 B (494.4 GB)
| Ukubwa (Uwezo wa dari): 494384795648 B (494.4 GB)
| Uwezo Uliotumiwa na Vipimo: 219214536704 B (219.2 GB) (44.3% imeitwa)
| Uwezo Usiowekwa: 275170258944 B (275.2 GB) (55.7% bure)
| |
| +-&#x3C; Uhifadhi wa Fizikia diski0s2 86D4B7EC-6FA5-4042-93A7-D3766A222EBE
| | -----------------------------------------------------------
| | Uhifadhi wa Fizikia wa APFS Disk: diski0s2
| | Uhifadhi wa Fizikia wa APFS: diski0s2
| | Ukubwa: 494384795648 B (494.4 GB)
| |
| +-> Kiasi diski3s1 7A27E734-880F-4D91-A703-FB55861D49B7
| | ---------------------------------------------------
<strong>| | Kiasi cha APFS Disk (Jukumu): diski3s1 (Mfumo)
</strong>| | Jina: Macintosh HD (Bila kuzingatia kesi)
<strong>| | Kiungo cha Kufunga: /System/Volumes/Update/mnt1
</strong>| | Uwezo Uliotumiwa: 12819210240 B (12.8 GB)
| | Imefungwa: Imevunjika
| | FileVault: Ndiyo (Imefunguliwa)
| | Imefichwa: Hapana
</strong>| | Jina: Macintosh HD (Bila kuzingatia herufi kubwa)
<strong>| | Kiungo cha Kufunga: /System/Volumes/Update/mnt1
</strong>| | Uwezo Uliotumiwa: 12819210240 B (12.8 GB)
| | Imefungwa: Imevunjika
| | FileVault: Ndiyo (Imefunguliwa)
| | Imefichwa: Hapana
| | |
| | Picha ya Kufunga: FAA23E0C-791C-43FF-B0E7-0E1C0810AC61
| | Diski ya Picha ya Kufunga: diski3s1s1
<strong>| | Kiungo cha Kufunga cha Picha ya Kufunga: /
</strong><strong>| | Picha ya Kufunga Imefungwa: Ndiyo
| | Picha ya Kuchukua: FAA23E0C-791C-43FF-B0E7-0E1C0810AC61
| | Kiasi cha Picha ya Kuchukua: diski3s1s1
<strong>| | Kiungo cha Kufunga cha Picha ya Kuchukua: /
</strong><strong>| | Picha ya Kuchukua Imefungwa: Ndiyo
</strong>[...]
+-> Kiasi diski3s5 281959B7-07A1-4940-BDDF-6419360F3327
| ---------------------------------------------------
| Kiasi cha APFS Disk (Jukumu): diski3s5 (Data)
| Jina: Macintosh HD - Data (Bila kuzingatia kesi)
<strong> | Kiungo cha Kufunga: /System/Volumes/Data
</strong><strong> | Uwezo Uliotumiwa: 412071784448 B (412.1 GB)
</strong> | Imefungwa: Hapana
| FileVault: Ndiyo (Imefunguliwa)
| Jina: Macintosh HD - Data (Bila kuzingatia herufi kubwa)
<strong> | Kiungo cha Kufunga: /System/Volumes/Data
</strong><strong> | Uwezo Uliotumiwa: 412071784448 B (412.1 GB)
</strong> | Imefungwa: Hapana
| FileVault: Ndiyo (Imefunguliwa)
</code></pre>
Katika matokeo ya awali inawezekana kuona kuwa **maeneo yanayopatikana na mtumiaji** yamefungwa chini ya `/System/Volumes/Data`.
Katika matokeo ya awali inawezekana kuona kuwa **maeneo yanayoweza kufikiwa na mtumiaji** yamefungwa chini ya `/System/Volumes/Data`.
Zaidi ya hayo, **picha ya mfumo wa macOS** imefungwa katika `/` na ni **imefungwa** (inasainiwa kwa njia ya kielektroniki na OS). Kwa hivyo, ikiwa SIP itapuuzwa na kuhariri, **OS haitaanzishwa tena**.
Zaidi ya hayo, **picha ya mfumo wa macOS** imefungwa katika `/` na ni **imefungwa** (iliyosainiwa kwa njia ya kielektroniki na OS). Kwa hivyo, ikiwa SIP itapuuzwa na kuhariri, **OS haitaanza tena**.
Pia ni **rahisi kuthibitisha kuwa kufungwa kumewezeshwa** kwa kukimbia:
```bash
@ -231,20 +245,32 @@ csrutil authenticated-root status
Authenticated Root status: enabled
```
Zaidi ya hayo, diski ya picha inaunganishwa kama **soma-tu**:
```
```bash
mount
/dev/disk3s1s1 on / (apfs, sealed, local, read-only, journaled)
```
### [WhiteIntel](https://whiteintel.io)
<figure><img src="/.gitbook/assets/image (1224).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) ni injini ya utaftaji inayotumia **dark-web** ambayo inatoa huduma za **bure** za kuangalia ikiwa kampuni au wateja wake wameathiriwa na **malware za kuiba**.
Lengo kuu la WhiteIntel ni kupambana na utekaji wa akaunti na mashambulio ya ransomware yanayotokana na malware za kuiba taarifa.
Unaweza kutembelea tovuti yao na kujaribu injini yao **bure** kwa:
{% embed url="https://whiteintel.io" %}
<details>
<summary><strong>Jifunze AWS hacking kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
<summary><strong>Jifunze AWS hacking kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Njia nyingine za kusaidia HackTricks:
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa kipekee wa [**NFTs**](https://opensea.io/collection/the-peass-family)
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) za kipekee
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Shiriki mbinu zako za kuhack kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
* **Shiriki mbinu zako za kuhack kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>

View file

@ -1,63 +1,65 @@
# BAADHI - Utekelezaji wa Njia Iliyofanana ya Asili
# KUTEKELEZA NJIA SAWA YA ASILI
<details>
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya HackTricks AWS)</strong></a><strong>!</strong></summary>
* Je, unafanya kazi katika **kampuni ya usalama wa mtandao**? Je, ungependa kuona **kampuni yako ikionekana katika HackTricks**? Au ungependa kupata **toleo jipya zaidi la PEASS au kupakua HackTricks kwa muundo wa PDF**? Angalia [**MPANGO WA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
* Je, unafanya kazi katika **kampuni ya usalama wa mtandao**? Unataka kuona **kampuni yako ikionyeshwa kwenye HackTricks**? au unataka kupata upatikanaji wa **toleo jipya zaidi la PEASS au kupakua HackTricks kwa PDF**? Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa kipekee wa [**NFTs**](https://opensea.io/collection/the-peass-family)
* Pata [**swag rasmi ya PEASS & HackTricks**](https://peass.creator-spring.com)
* **Jiunge na** [**💬**](https://emojipedia.org/speech-balloon/) [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **nifuatilie** kwenye **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwenye** [**repo ya hacktricks**](https://github.com/carlospolop/hacktricks) **na** [**repo ya hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
* **Jiunge na** [**💬**](https://emojipedia.org/speech-balloon/) [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **nifuatilie** kwenye **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa** [**repo ya hacktricks**](https://github.com/carlospolop/hacktricks) **na** [**repo ya hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
## Utekelezaji wa Njia Iliyofanana ya Asili
### [WhiteIntel](https://whiteintel.io)
Kutakuwa na nyakati ambapo unaweza kutekeleza javascript mdogo katika ukurasa. Kwa mfano, katika kesi ambapo unaweza **kudhibiti thamani ya kurejelea ambayo itatekelezwa**.
<figure><img src="/.gitbook/assets/image (1224).png" alt=""><figcaption></figcaption></figure>
Katika kesi hizo, moja ya mambo bora unayoweza kufanya ni **kupata ufikiaji wa DOM ili kuita hatua nyeti** unayoweza kupata hapo (kama vile kubonyeza kitufe). Walakini, kawaida utapata udhaifu huu katika **sehemu ndogo za mwisho bila kitu cha kuvutia katika DOM**.
[**WhiteIntel**](https://whiteintel.io) ni injini ya utaftaji inayotumia **dark-web** ambayo inatoa **huduma za bure** za kuangalia ikiwa kampuni au wateja wake wameathiriwa na **malware za wizi**.
Katika mazingira hayo, shambulio hili litakuwa na manufaa sana, kwa sababu lengo lake ni kuweza **kutumia utekelezaji mdogo wa JS ndani ya DOM kutoka ukurasa tofauti kutoka kwenye kikoa kimoja** na hatua nyingi za kuvutia.
Lengo kuu la WhiteIntel ni kupambana na utekaji wa akaunti na mashambulio ya ransomware yanayotokana na programu hasidi za kuiba habari.
Kimsingi, mchakato wa shambulio ni kama ifuatavyo:
Unaweza kuangalia tovuti yao na kujaribu injini yao **bure** hapa:
* Tafuta **kurejelea ambayo unaweza kutumia vibaya** (inaweza kuwa imezuiliwa kwa \[\w\\.\_]).
* Ikiwa haikuwekewa kizuizi na unaweza kutekeleza JS yoyote, unaweza tu kutumia hii kama XSS ya kawaida
* Fanya **mwathirika afungue ukurasa** unaodhibitiwa na **mshambuliaji**
* **Ukurasa utafungua yenyewe** katika **dirisha tofauti** (dirisha jipya litakuwa na kielelezo cha **`opener`** kirejezea cha cha awali)
* **Ukurasa wa awali** utapakia **ukurasa** ambapo **DOM inayovutia** iko.
* **Ukurasa wa pili** utapakia **ukurasa ulio hatarini ukidanganya kurejelea** na kutumia kielelezo cha **`opener`** ku **fikia na kutekeleza hatua fulani kwenye ukurasa wa awali** (ambao sasa una DOM inayovutia).
{% embed url="https://whiteintel.io" %}
---
## Kutekeleza Njia Sawa ya Asili
Kutakuwa na nyakati ambapo unaweza kutekeleza javascript iliyopunguzwa kwenye ukurasa. Kwa mfano, katika kesi ambapo unaweza [**kudhibiti thamani ya kurejeshwa ambayo itatekelezwa**](./#javascript-function).
Katika kesi hizo, moja ya mambo bora unayoweza kufanya ni **kufikia DOM ili kuita** hatua nyeti unayoweza kupata hapo (kama vile kubofya kitufe). Walakini, kawaida utapata udhaifu huu katika **vituo vidogo bila kitu cha kuvutia katika DOM**.
Katika hali hizo, shambulio hili litakuwa na manufaa sana, kwa sababu lengo lake ni kuweza **kutumia utekelezaji mdogo wa JS ndani ya DOM kutoka ukurasa tofauti kutoka kwa kikoa sawa** na hatua za kuvutia sana.
Kimsingi, mtiririko wa shambulio ni kama ifuatavyo:
* Pata **kurejeshwa unayoweza kutumia vibaya** (kwa uwezekano mdogo wa \[\w\\.\_]).
* Ikiwa sio mdogo na unaweza kutekeleza JS yoyote, unaweza tu kutumia hii kama XSS ya kawaida
* Fanya **mlemavu afungue ukurasa** unaodhibitiwa na **mshambuliaji**
* **Ukurasa utajifungua** katika **dirisha tofauti** (dirisha jipya litakuwa na kitu cha **`opener`** kikirejelea cha kwanza)
* **Ukurasa wa kwanza** utapakia **ukurasa** ambapo **DOM inayovutia** iko.
* **Ukurasa wa pili** utapakia **ukurasa mlemavu ukidhuru kurejeshwa** na kutumia kitu cha **`opener`** kufikia na kutekeleza hatua fulani kwenye ukurasa wa kwanza (ambao sasa una DOM inayovutia).
{% hint style="danger" %}
Tambua kwamba hata ikiwa ukurasa wa awali unafikia URL mpya baada ya kuunda ukurasa wa pili, **kielelezo cha `opener` cha ukurasa wa pili bado ni kirejezea halali kwa ukurasa wa kwanza katika DOM mpya**.
Tambua kwamba hata ikiwa ukurasa wa kwanza unafikia URL mpya baada ya kuunda ukurasa wa pili, **kitu cha `opener` cha ukurasa wa pili bado ni kumbukumbu halali ya ukurasa wa kwanza katika DOM mpya**.
Zaidi ya hayo, ili ukurasa wa pili uweze kutumia kielelezo cha opener **kurasa zote lazima ziwe kwenye asili moja**. Hii ndio sababu, ili kutumia udhaifu huu, unahitaji kupata aina fulani ya **XSS katika asili ile ile**.
Zaidi ya hayo, ili ukurasa wa pili uweze kutumia kitu cha opener **kurasa zote mbili lazima ziwe kwenye asili sawa**. Hii ndio sababu, ili kutumia udhaifu huu, unahitaji kupata aina fulani ya **XSS katika asili ile ile**.
{% endhint %}
### Utekelezaji
### Utekaji
* Unaweza kutumia fomu hii ku **kuunda PoC** kudukua aina hii ya udhaifu: [https://www.someattack.com/Playground/SOMEGenerator](https://www.someattack.com/Playground/SOMEGenerator)
* Ili kupata njia ya DOM kwa kubonyeza kwenye kipengele cha HTML, unaweza kutumia kifaa hiki cha kivinjari: [https://www.someattack.com/Playground/targeting\_tool](https://www.someattack.com/Playground/targeting\_tool)
* Unaweza kutumia fomu hii kwa **kuzalisha PoC** kutekeleza aina hii ya udhaifu: [https://www.someattack.com/Playground/SOMEGenerator](https://www.someattack.com/Playground/SOMEGenerator)
* Ili kupata njia ya DOM kwa kipengele cha HTML na bonyeza unaweza kutumia kifaa hiki cha kivinjari: [https://www.someattack.com/Playground/targeting\_tool](https://www.someattack.com/Playground/targeting\_tool)
### Mfano
* Unaweza kupata mfano ulio hatarini katika [https://www.someattack.com/Playground/](https://www.someattack.com/Playground/)
* Tafadhali kumbuka kuwa katika mfano huu, seva ina **kuzalisha nambari ya javascript** na **kuiongeza** kwenye HTML kulingana na **maudhui ya kipengele cha kurejelea:** `<script>opener.{callbacl_content}</script>` . Ndio sababu katika mfano huu hauitaji kuonyesha matumizi ya `opener` kwa uwazi.
* Unaweza kupata mfano wa udhaifu katika [https://www.someattack.com/Playground/](https://www.someattack.com/Playground/)
* Kumbuka kwamba katika mfano huu **mtandao unazalisha msimbo wa javascript** na **kuuongeza** kwenye HTML kulingana na **maudhui ya parameter ya kurejeshwa:** `<script>opener.{callbacl_content}</script>` . Ndio sababu katika mfano huu hauitaji kuonyesha matumizi ya `opener` kwa uwazi.
* Pia angalia hii CTF writeup: [https://ctftime.org/writeup/36068](https://ctftime.org/writeup/36068)
## Marejeo
* [https://conference.hitb.org/hitbsecconf2017ams/sessions/everybody-wants-some-advance-same-origin-method-execution/](https://conference.hitb.org/hitbsecconf2017ams/sessions/everybody-wants-some-advance-same-origin-method-execution/)
<details>
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
* Je, unafanya kazi katika **kampuni ya usalama wa mtandao**? Je, ungependa kuona **kampuni yako ikionekana katika HackTricks**? Au ungependa kupata **toleo jipya zaidi la PEASS au kupakua HackTricks kwa muundo wa PDF**? Angalia [**MPANGO WA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa kipekee wa [**NFTs**](https://opensea.io/collection/the-peass-family)
* Pata [**swag rasmi ya PEASS & HackTricks**](https://peass.creator-spring.com)
* **Jiunge na** [**💬**](https://emojipedia.org/speech-balloon/) [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **nifuatilie** kwenye **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwenye** [**repo ya hacktricks**](https://github.com/carlospolop/hacktricks) **na** [**repo ya hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>

View file

@ -2,32 +2,46 @@
<details>
<summary><strong>Jifunze kuhusu kudukua AWS kutoka mwanzo hadi mtaalamu na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalamu wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
<summary><strong>Jifunze kuhusu kudukua AWS kutoka mwanzo hadi mtaalamu na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Njia nyingine za kusaidia HackTricks:
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA USAJILI**](https://github.com/sponsors/carlospolop)!
* Ikiwa unataka kuona **kampuni yako ikionekana kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA USAJILI**](https://github.com/sponsors/carlospolop)!
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
</details>
### [WhiteIntel](https://whiteintel.io)
<figure><img src="/.gitbook/assets/image (1224).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) ni injini ya utaftaji inayotumia **dark-web** ambayo inatoa huduma za **bure** za kuangalia ikiwa kampuni au wateja wake wameathiriwa na **malware za wizi**.
Lengo kuu la WhiteIntel ni kupambana na utekaji wa akaunti na mashambulio ya ransomware yanayotokana na malware za kuiba habari.
Unaweza kutembelea tovuti yao na kujaribu injini yao **bure** hapa:
{% embed url="https://whiteintel.io" %}
---
## Viwango vya Uadilifu
Katika Windows Vista na toleo zingine baadaye, vitu vyote vilivyolindwa huja na lebo ya **kiwango cha uadilifu**. Hii inaweka kimsingi kiwango cha uadilifu "wa kati" kwa faili na funguo za usajili, isipokuwa kwa folda na faili fulani ambazo Internet Explorer 7 inaweza kuandika kwa kiwango cha uadilifu wa chini. Tabia ya msingi ni kwamba michakato iliyozinduliwa na watumiaji wa kawaida ina kiwango cha uadilifu wa kati, wakati huduma kwa kawaida hufanya kazi kwa kiwango cha uadilifu wa mfumo. Lebo ya uadilifu wa juu inalinda saraka ya msingi.
Katika Windows Vista na toleo zingine baadaye, vitu vyote vilivyolindwa huja na lebo ya **kiwango cha uadilifu**. Hii inaweka kimsingi kiwango cha uadilifu "wa kati" kwa faili na funguo za usajili, isipokuwa kwa folda na faili fulani ambazo Internet Explorer 7 inaweza kuandika kwa kiwango cha uadilifu cha chini. Tabia ya msingi ni kwamba michakato iliyozinduliwa na watumiaji wa kawaida ina kiwango cha uadilifu wa kati, wakati huduma kwa kawaida hufanya kazi kwa kiwango cha uadilifu wa mfumo. Lebo ya uadilifu wa juu inalinda saraka ya msingi.
Sheria muhimu ni kwamba vitu haviwezi kuhaririwa na michakato yenye kiwango cha uadilifu cha chini kuliko kiwango cha kitu. Viwango vya uadilifu ni:
Kanuni muhimu ni kwamba vitu haviwezi kuhaririwa na michakato yenye kiwango cha uadilifu cha chini kuliko kiwango cha kitu. Viwango vya uadilifu ni:
* **Isiyoaminika**: Kiwango hiki ni kwa michakato na kuingia kwa siri. %%%Mfano: Chrome%%%
* **Chini**: Hasa kwa mwingiliano wa mtandao, hasa katika Hali ya Kulindwa ya Internet Explorer, ikiaathiri faili na michakato inayohusiana, na folda fulani kama **Folda ya Mtandao ya Muda**. Michakato ya uadilifu wa chini inakabiliwa na vizuizi kubwa, ikiwa ni pamoja na kutokuwa na ufikiaji wa kuandika kwenye usajili na ufikiaji mdogo wa kuandika wa maelezo ya mtumiaji.
* **Kati**: Kiwango cha msingi kwa shughuli nyingi, kikiwekwa kwa watumiaji wa kawaida na vitu bila viwango maalum vya uadilifu. Hata wanachama wa kikundi cha Wasimamizi wanafanya kazi kwa kiwango hiki kwa chaguo-msingi.
* **Ju: Imehifadhiwa kwa wasimamizi, ikiruhusu kuwabadilisha vitu kwa viwango vya uadilifu wa chini, ikiwa ni pamoja na vile vilivyo kwenye kiwango cha juu yenyewe.
* **Mfumo**: Kiwango cha uendeshaji cha juu kwa msingi wa Windows na huduma kuu, nje ya kufikia hata kwa wasimamizi, ikahakikisha ulinzi wa kazi muhimu za mfumo.
* **Msanidi**: Kiwango cha kipekee kinachosimama juu ya vyote vingine, kukiwezesha vitu kwenye kiwango hiki kuondoa kitu kingine chochote.
* **Isioaminika**: Kiwango hiki ni kwa michakato na kuingia kwa siri. %%%Mfano: Chrome%%%
* **Chini**: Hasa kwa mwingiliano wa mtandao, hasa katika Hali ya Kulindwa ya Internet Explorer, ikiafikia faili na michakato inayohusiana, na folda fulani kama **Folda ya Mtandao ya Muda**. Michakato ya uadilifu wa chini inakabiliwa na vizuizi kubwa, ikiwa ni pamoja na kutokuwa na ufikiaji wa kuandika usajili na ufikiaji mdogo wa kuandika maelezo ya mtumiaji.
* **Kati**: Kiwango cha msingi kwa shughuli nyingi, kinachopewa watumiaji wa kawaida na vitu bila viwango maalum vya uadilifu. Hata wanachama wa kikundi cha Wasimamizi wanafanya kazi kwa kiwango hiki kwa chaguo-msingi.
* **Ju:** Imehifadhiwa kwa wasimamizi, ikiruhusu kuwabadilisha vitu kwa viwango vya uadilifu wa chini, ikiwa ni pamoja na vile vilivyo kwenye kiwango cha juu yenyewe.
* **Mfumo**: Kiwango cha uendeshaji cha juu kwa msingi wa Windows na huduma kuu, isiyofikiwa hata kwa wasimamizi, ikihakikisha ulinzi wa kazi muhimu za mfumo.
* **Msimbaji**: Kiwango cha kipekee kinachosimama juu ya vingine vyote, kuiruhusu vitu kwenye kiwango hiki kuondoa kitu kingine chochote.
Unaweza kupata kiwango cha uadilifu wa mchakato kwa kutumia **Process Explorer** kutoka **Sysinternals**, kufikia **mali** ya mchakato na kuona kichupo cha "**Usalama**":
Unaweza kupata kiwango cha uadilifu cha mchakato kwa kutumia **Process Explorer** kutoka **Sysinternals**, kufikia **mali** ya mchakato na kuangalia kichupo cha "**Usalama**":
![](<../../.gitbook/assets/image (821).png>)
@ -38,7 +52,7 @@ Unaweza pia kupata **kiwango chako cha sasa cha uadilifu** kwa kutumia `whoami /
### Viwango vya Uadilifu katika Mfumo wa Faili
Kitu ndani ya mfumo wa faili linaweza kuhitaji **mahitaji ya kiwango cha uadilifu cha chini** na ikiwa mchakato hana kiwango hiki cha uadilifu haitaweza kuingiliana nacho.\
Kwa mfano, hebu **tujaribu kuunda faili ya kawaida kutoka kwa konsoli ya mtumiaji wa kawaida na angalia ruhusa**:
Kwa mfano, hebu **tujaribu kuunda faili ya kawaida kutoka kwa konsoli ya mtumiaji wa kawaida na kuangalia ruhusa**:
```
echo asd >asd.txt
icacls asd.txt
@ -49,7 +63,7 @@ NT AUTHORITY\INTERACTIVE:(I)(M,DC)
NT AUTHORITY\SERVICE:(I)(M,DC)
NT AUTHORITY\BATCH:(I)(M,DC)
```
Sasa, tuweke kiwango cha chini cha uadilifu kuwa **Kiwango cha Juu** kwa faili. Hii **inapaswa kufanywa kutoka kwenye konsoli** inayotumika kama **msimamizi** kwani **konsoli ya kawaida** itakuwa inafanya kazi kwenye kiwango cha Uadilifu wa Kati na **haitaruhusiwa** kuweka kiwango cha Uadilifu cha Juu kwa kitu:
Sasa, tuweke kiwango cha chini cha uadilifu kuwa **Kiwango cha Juu** kwa faili. Hii **inapaswa kufanywa kutoka kwenye konsoli** inayotumika kama **msimamizi** kwani konsoli **ya kawaida** itakuwa inafanya kazi kwenye kiwango cha Uadilifu wa Kati na **haitaruhusiwa** kuweka kiwango cha Uadilifu cha Juu kwa kitu:
```
icacls asd.txt /setintegritylevel(oi)(ci) High
processed file: asd.txt
@ -64,7 +78,7 @@ NT AUTHORITY\SERVICE:(I)(M,DC)
NT AUTHORITY\BATCH:(I)(M,DC)
Mandatory Label\High Mandatory Level:(NW)
```
Hapa ndipo mambo yanapokuwa ya kuvutia. Unaweza kuona kuwa mtumiaji `DESKTOP-IDJHTKP\user` ana **ruhusa KAMILI** juu ya faili (kweli huyu ndiye mtumiaji aliyeanzisha faili), hata hivyo, kutokana na kiwango cha chini cha uadilifu kilichotekelezwa hataweza kuhariri faili tena isipokuwa kama anatumia kiwango cha Uadilifu wa Juu (kumbuka kuwa ataweza kuisoma):
Hapa ndipo mambo yanapokuwa ya kuvutia. Unaweza kuona kuwa mtumiaji `DESKTOP-IDJHTKP\user` ana **ruhusa KAMILI** juu ya faili (kweli huyu ndiye mtumiaji aliyeunda faili), hata hivyo, kutokana na kiwango cha chini cha uadilifu kilichotekelezwa hataweza kuhariri faili tena isipokuwa kama anatumia kiwango cha Uadilifu wa Juu (tambua kuwa ataweza kuisoma):
```
echo 1234 > asd.txt
Access is denied.
@ -74,7 +88,7 @@ C:\Users\Public\asd.txt
Access is denied.
```
{% hint style="info" %}
**Kwa hivyo, wakati faili ina kiwango cha chini cha uadilifu, ili kuibadilisha unahitaji kuendesha angalau kwa kiwango hicho cha uadilifu.**
**Kwa hiyo, wakati faili ina kiwango cha chini cha uadilifu, ili kuibadilisha unahitaji kuendesha angalau kwa kiwango hicho cha uadilifu.**
{% endhint %}
### Viwango vya Uadilifu katika Programu za Binari
@ -89,14 +103,42 @@ APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES:(I)(RX)
APPLICATION PACKAGE AUTHORITY\ALL RESTRICTED APP PACKAGES:(I)(RX)
Mandatory Label\Low Mandatory Level:(NW)
```
Sasa, ninapoendesha `cmd-low.exe` itakuwa **inaendeshwa chini ya kiwango cha usahihi cha chini** badala ya cha kati:
Sasa, ninapoendesha `cmd-low.exe` itakuwa **inaendeshwa chini ya kiwango cha usawa cha chini** badala ya cha kati:
![](<../../.gitbook/assets/image (310).png>)
Kwa watu wenye shauku, ikiwa unapitisha kiwango cha juu cha usahihi kwa faili (`icacls C:\Windows\System32\cmd-high.exe /setintegritylevel high`) haitaendeshwa na kiwango cha juu cha usahihi moja kwa moja (ikiwa unaita kutoka kiwango cha kati cha usahihi - kwa chaguo-msingi - itaendeshwa chini ya kiwango cha kati cha usahihi).
Kwa watu wenye shauku, ikiwa unaweka kiwango cha juu cha usawa kwa faili (`icacls C:\Windows\System32\cmd-high.exe /setintegritylevel high`) haitaendeshwa na kiwango cha juu cha usawa moja kwa moja (ikiwa unaita kutoka kiwango cha kati cha usawa - kwa chaguo-msingi - itaendeshwa chini ya kiwango cha kati cha usawa).
### Viwango vya Usahihi katika Michakato
### Viwango vya Usawa katika Michakato
Siyo faili na folda zote zina kiwango cha chini cha usahihi, **lakini michakato yote inaendeshwa chini ya kiwango cha usahihi**. Na kama ilivyotokea na mfumo wa faili, **ikiwa mchakato unataka kuandika ndani ya mchakato mwingine lazima iwe na kiwango sawa cha usahihi**. Hii inamaanisha kwamba mchakato wenye kiwango cha chini cha usahihi hawezi kufungua kushughulikia kwa ufikiaji kamili kwa mchakato wenye kiwango cha kati cha usahihi.
Siyo faili na folda zote zina kiwango cha chini cha usawa, **lakini michakato yote inaendeshwa chini ya kiwango cha usawa**. Na kama ilivyotokea na mfumo wa faili, **ikiwa mchakato unataka kuandika ndani ya mchakato mwingine lazima iwe na angalau kiwango sawa cha usawa**. Hii inamaanisha kwamba mchakato wenye kiwango cha chini cha usawa hawezi kufungua kushughulikia na ufikiaji kamili wa mchakato wenye kiwango cha kati cha usawa.
Kutokana na vizuizi vilivyozungumziwa katika sehemu hii na sehemu iliyopita, kutoka mtazamo wa usalama, daima ni **inashauriwa kuendesha mchakato katika kiwango cha chini cha usahihi kinachowezekana**.
Kutokana na vizuizi vilivyozungumziwa katika sehemu hii na sehemu iliyopita, kutoka mtazamo wa usalama, daima ni **inashauriwa kuendesha mchakato katika kiwango cha chini cha usawa kinachowezekana**.
### [WhiteIntel](https://whiteintel.io)
<figure><img src="/.gitbook/assets/image (1224).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) ni injini ya utaftaji inayotumia **dark-web** inayotoa **huduma za bure** kuchunguza ikiwa kampuni au wateja wake wameathiriwa na **malware za wizi**.
Lengo kuu la WhiteIntel ni kupambana na utekaji wa akaunti na mashambulio ya ransomware yanayotokana na programu hasidi za wizi wa habari.
Unaweza kutembelea tovuti yao na kujaribu injini yao **bure** hapa:
{% embed url="https://whiteintel.io" %}
<details>
<summary><strong>Jifunze kuhusu kuvamia AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Njia nyingine za kusaidia HackTricks:
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) za kipekee
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Shiriki mbinu zako za kuvamia kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>