Translated ['src/pentesting-cloud/azure-security/az-privilege-escalation

This commit is contained in:
Translator
2025-01-04 03:47:38 +00:00
parent 0059aed198
commit d6ced1de8a
2 changed files with 50 additions and 64 deletions

View File

@@ -23,7 +23,7 @@ az webapp ssh --name <name> --resource-group <res-group>
```bash
az webapp create-remote-connection --name <name> --resource-group <res-group>
## If successfull you will get a message such as:
## If successful you will get a message such as:
#Verifying if app is running....
#App is running. Trying to establish tunnel connection...
#Opening tunnel on port: 39895
@@ -116,22 +116,22 @@ az webapp deployment list-publishing-credentials --name <app-name> --resource-gr
"type": "Microsoft.Web/sites/publishingcredentials"
}
```
Kumbuka jinsi **akili ni sawa** na katika amri ya awali.
Kumbuka jinsi **akihifadhi ni sawa** na amri ya awali.
- Chaguo lingine lingekuwa **kweka akili zako mwenyewe** na kuzitumia:
- Chaguo lingine lingekuwa **kweka akihifadhi zako** na kuzitumia:
```bash
az webapp deployment user set \
--user-name hacktricks \
--password 'W34kP@ssw0rd123!'
```
Kisha, unaweza kutumia hizi credentials **kupata kwenye jukwaa la SCM na FTP**. Hii pia ni njia nzuri ya kudumisha uvumilivu.
Kisha, unaweza kutumia hizi credentials **kuingia kwenye jukwaa la SCM na FTP**. Hii pia ni njia nzuri ya kudumisha uvumilivu.
Kumbuka kwamba ili kupata jukwaa la SCM kutoka **mtandao unahitaji kufikia `<SCM-URL>/BasicAuth`**.
Kumbuka kwamba ili kuingia kwenye jukwaa la SCM kutoka **mtandao unahitaji kufikia `<SCM-URL>/BasicAuth`**.
> [!WARNING]
> Kumbuka kwamba kila mtumiaji anaweza kuunda credentials zake mwenyewe kwa kuita amri ya awali, lakini ikiwa mtumiaji hana ruhusa za kutosha kupata SCM au FTP, credentials hazitafanya kazi.
> Kumbuka kwamba kila mtumiaji anaweza kuunda credentials zake mwenyewe kwa kuita amri ya awali, lakini ikiwa mtumiaji hana ruhusa za kutosha kuingia kwenye SCM au FTP, credentials hazitafanya kazi.
- Ikiwa unaona kwamba hizo credentials zime **REDACTED**, ni kwa sababu unahitaji **kuwezesha chaguo la uthibitishaji wa msingi wa SCM** na kwa hiyo unahitaji ruhusa ya pili (`Microsoft.Web/sites/basicPublishingCredentialsPolicies/write):`
- Ikiwa unaona kwamba hizo credentials zime **REDACTED**, ni kwa sababu unahitaji **kuwezesha chaguo la uthibitishaji wa msingi wa SCM** na kwa hiyo unahitaji ruhusa ya pili (`Microsoft.Web/sites/basicPublishingCredentialsPolicies/write`):
```bash
# Enable basic authentication for SCM
az rest --method PUT \
@@ -149,19 +149,19 @@ az rest --method PUT \
"properties": {
"allow": true
}
}
}'
```
### Chapisha msimbo kwa kutumia akreditivu za SCM
### Publish code using SCM credentials
Kuwa na akreditivu halali za SCM kunawezesha **chapisha msimbo** kwenye huduma ya App. Hii inaweza kufanywa kwa kutumia amri ifuatayo.
Kuwa na **SCM credentials** halali inaruhusu **kuchapisha msimbo** kwenye huduma ya App. Hii inaweza kufanywa kwa kutumia amri ifuatayo.
Kwa mfano huu wa python unaweza kupakua repo kutoka https://github.com/Azure-Samples/msdocs-python-flask-webapp-quickstart, fanya **mabadiliko** yoyote unayotaka na kisha **zip kwa kukimbia: `zip -r app.zip .`**.
Kisha unaweza **chapisha msimbo** kwa kutumia amri ifuatayo:
Kisha unaweza **kuchapisha msimbo** katika programu ya wavuti kwa kutumia amri ifuatayo:
```bash
curl -X POST "<SMC-URL>/api/publish?type=zip" --data-binary "@./app.zip" -u '<username>:<password>' -H "Content-Type: application/octet-stream"
```
### Microsoft.Web/sites/publish/Action | SCM credentials
### Webjobs: Microsoft.Web/sites/publish/Action | SCM credentials
Ruhusa iliyoelezwa ya Azure inaruhusu kufanya vitendo kadhaa vya kuvutia ambavyo vinaweza pia kufanywa kwa kutumia SCM credentials:
@@ -173,7 +173,7 @@ az rest --method GET --url "https://lol-b5fyaeceh4e9dce0.scm.canadacentral-01.az
# Using SCM username and password:
curl "<SCM-URL>/vfs/data/jobs/continuous/job_name/job_log.txt" \
--user '<username>:<password>>' -v
--user '<username>:<password>' -v
```
- Soma **Webjobs** msimbo wa chanzo:
```bash
@@ -203,6 +203,12 @@ curl -X PUT \
--data-binary "@/Users/carlospolop/Downloads/rev.js" \
--user '<username>:<password>'
```
### Microsoft.Web/sites/write, Microsoft.Web/sites/read, Microsoft.ManagedIdentity/userAssignedIdentities/assign/action
Hizi ruhusa zinaruhusu **kuteua utambulisho uliopewa usimamizi** kwa huduma ya App, hivyo ikiwa huduma ya App ilishambuliwa hapo awali hii itamruhusu mshambuliaji kuteua utambulisho mpya uliopewa usimamizi kwa huduma ya App na **kuinua mamlaka** kwao.
```bash
az webapp identity assign --name <app-name> --resource-group <res-group> --identities /subscriptions/<subcripttion-id>/resourceGroups/<res_group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managed-identity-name>
```
### Microsoft.Web/sites/config/list/action
Ruhusa hii inaruhusu kuorodhesha **connection strings** na **appsettings** za huduma ya App ambazo zinaweza kuwa na taarifa nyeti kama vile akidi za database.
@@ -210,12 +216,6 @@ Ruhusa hii inaruhusu kuorodhesha **connection strings** na **appsettings** za hu
az webapp config connection-string list --name <name> --resource-group <res-group>
az webapp config appsettings list --name <name> --resource-group <res-group>
```
### Microsoft.Web/sites/write, Microsoft.Web/sites/read, Microsoft.ManagedIdentity/userAssignedIdentities/assign/action
Hizi ruhusa zinaruhusu **kuteua utambulisho wa kusimamiwa** kwa huduma ya App, hivyo ikiwa huduma ya App ilishambuliwa hapo awali hii itamruhusu mshambuliaji kuteua utambulisho mpya wa kusimamiwa kwa huduma ya App na **kuinua mamlaka** kwao.
```bash
az webapp identity assign --name <app-name> --resource-group <res-group> --identities /subscriptions/<subcripttion-id>/resourceGroups/<res_group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managed-identity-name>
```
### Soma Akikodi za Watu wa Tatu Zilizowekwa
Kukimbia amri ifuatayo inawezekana **kusoma akidi za watu wa tatu** zilizowekwa katika akaunti ya sasa. Kumbuka kwamba ikiwa kwa mfano akidi za Github zimewekwa kwa mtumiaji tofauti, huwezi kupata token kutoka kwa mwingine.
@@ -250,13 +250,13 @@ https://graph.microsoft.com/v1.0/me/drive/root/children
```
### Update App Code from the source
- Ikiwa chanzo kilichowekwa ni mtoa huduma wa tatu kama Github, BitBucket au Azure Repository, unaweza **kusaidia kuimarisha msimbo** wa huduma ya App kwa kuingilia msimbo wa chanzo katika hifadhi.
- Ikiwa chanzo kilichowekwa ni mtoa huduma wa tatu kama Github, BitBucket au Azure Repository, unaweza **kusaidia kuboresha msimbo** wa huduma ya App kwa kuingilia msimbo wa chanzo katika hifadhi.
- Ikiwa programu imewekwa kutumia **hifadhi ya git ya mbali** (ikiwa na jina la mtumiaji na nenosiri), inawezekana kupata **URL na akreditif za msingi za uthibitishaji** ili kunakili na kusukuma mabadiliko kwa:
- Kutumia ruhusa **`Microsoft.Web/sites/sourcecontrols/read`**: `az webapp deployment source show --name <app-name> --resource-group <res-group>`
- Kutumia ruhusa **`Microsoft.Web/sites/config/list/action`**:
- `az webapp deployment list-publishing-credentials --name <app-name> --resource-group <res-group>`
- `az rest --method POST --url "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.Web/sites/<app-name>/config/metadata/list?api-version=2022-03-01" --resource "https://management.azure.com"`
- Ikiwa programu imewekwa kutumia **hifadhi ya git ya ndani**, inawezekana **kunakili hifadhi** na **kusukuma mabadiliko** ndani yake:
- Ikiwa programu imewekwa kutumia **hifadhi ya git ya ndani**, inawezekana **kunakili hifadhi** na **kusukuma mabadiliko** kwake:
- Kutumia ruhusa **`Microsoft.Web/sites/sourcecontrols/read`**: Unaweza kupata URL ya hifadhi ya git kwa `az webapp deployment source show --name <app-name> --resource-group <res-group>`, lakini itakuwa sawa na URL ya SCM ya programu yenye njia `/<app-name>.git` (kwa mfano, `https://pythonwebapp-audeh9f5fzeyhhed.scm.canadacentral-01.azurewebsites.net:443/pythonwebapp.git`).
- Ili kupata akreditif za SCM unahitaji ruhusa:
- **`Microsoft.Web/sites/publishxml/action`**: Kisha endesha `az webapp deployment list-publishing-profiles --resource-group <res-group> -n <name>`.
@@ -266,11 +266,11 @@ https://graph.microsoft.com/v1.0/me/drive/root/children
> Kumbuka kwamba kuwa na ruhusa `Microsoft.Web/sites/config/list/action` na akreditif za SCM daima inawezekana kupeleka kwenye webapp (hata kama ilipangwa kutumia mtoa huduma wa tatu) kama ilivyotajwa katika sehemu ya awali.
> [!WARNING]
> Kumbuka kwamba kuwa na ruhusa zilizo hapa chini pia ni **uwezekano wa kutekeleza kontena chochote** hata kama webapp ilipangwa tofauti.
> Kumbuka kwamba kuwa na ruhusa zilizo hapa chini pia ni **inawezekana kutekeleza kontena chochote** hata kama webapp ilipangwa tofauti.
### `Microsoft.Web/sites/config/Write`, `Microsoft.Web/sites/config/Read`, `Microsoft.Web/sites/config/list/Action`, `Microsoft.Web/sites/Read`
Hii ni seti ya ruhusa inayoruhusu **kubadilisha kontena kinachotumika** na webapp. Mshambuliaji anaweza kuitumia vibaya kufanya webapp itekeleze kontena chenye uharibifu.
Hii ni seti ya ruhusa inayoruhusu **kubadilisha kontena kinachotumiwa** na webapp. Mshambuliaji anaweza kuitumia kuifanya webapp kutekeleza kontena hatari.
```bash
az webapp config container set \
--name <app-name> \

View File

@@ -4,33 +4,33 @@
## App Service Basic Information
Azure App Services inaruhusu waendelezaji **kuunda, kupeleka, na kupanua programu za wavuti, nyuma za programu za simu, na APIs bila shida**. Inasaidia lugha nyingi za programu na inajumuisha zana na huduma mbalimbali za Azure kwa ajili ya kuboresha kazi na usimamizi.
Azure App Services inaruhusu waendelezaji **kuunda, kupeleka, na kupanua programu za wavuti, nyuma ya programu za simu, na APIs bila shida**. Inasaidia lugha nyingi za programu na inajumuisha zana na huduma mbalimbali za Azure kwa ajili ya kuboresha utendaji na usimamizi.
Kila programu inafanya kazi ndani ya sandbox lakini kutengwa kunategemea mipango ya App Service:
- Programu katika ngazi za Bure na Kushiriki zinafanya kazi kwenye **VMs zinazoshirikiwa**
- Programu katika ngazi za Kawaida na Premium zinafanya kazi kwenye **VMs zilizotengwa zinazoshirikiwa tu na programu** katika mpango huo wa App Service.
- Ngazi za Kutengwa zinafanya kazi kwenye **VMs zilizotengwa kwenye mitandao halisi iliyotengwa**, kuboresha kutengwa kwa programu.
- Programu katika ngazi za Bure na Kushiriki zinafanya kazi kwenye **VM zinazoshirikiwa**
- Programu katika ngazi za Kawaida na Kitaalamu zinafanya kazi kwenye **VM zilizotengwa zinazoshirikiwa tu na programu** katika mpango sawa wa App Service.
- Ngazi za Kutengwa zinafanya kazi kwenye **VM zilizotengwa kwenye mitandao halisi iliyotengwa**, kuboresha kutengwa kwa programu.
> [!WARNING]
> Kumbuka kwamba **hakuna** ya kutengwa hizo **inaepusha** udhaifu mwingine wa kawaida wa **wavuti** (kama vile kupakia faili, au sindano). Na ikiwa **utambulisho wa usimamizi** unatumika, inaweza kuwa na uwezo wa **kuinua mamlaka kwao**.
Programu zina baadhi ya mipangilio ya kuvutia:
- **Daima On**: Inahakikisha kwamba programu inafanya kazi kila wakati. Ikiwa haijawashwa, programu itasimama kufanya kazi baada ya dakika 20 za kutokuwa na shughuli na itaanza tena wakati ombi litakapopokelewa.
- **Daima Iko**: Inahakikisha kwamba programu inafanya kazi kila wakati. Ikiwa haijawashwa, programu itasimama kufanya kazi baada ya dakika 20 za kutokuwa na shughuli na itaanza tena wakati ombi litakapopokelewa.
- Hii ni muhimu ikiwa una kazi ya wavuti inayohitaji kufanya kazi bila kukatika kwani kazi ya wavuti itasimama ikiwa programu itasimama.
- **SSH**: Ikiwa imewashwa, mtumiaji mwenye ruhusa ya kutosha anaweza kuungana na programu kwa kutumia SSH.
- **Urekebishaji**: Ikiwa imewashwa, mtumiaji mwenye ruhusa ya kutosha anaweza kurekebisha programu. Hata hivyo, hii inazuiliwa kiotomatiki kila masaa 48.
- **Web App + Database**: Kihifadhi cha wavuti kinaruhusu kuunda Programu yenye hifadhidata. Katika kesi hii inawezekana kuchagua hifadhidata ya kutumia (SQLAzure, PostgreSQL, MySQL, MongoDB) na pia inaruhusu kuunda Cache ya Azure kwa Redis.
- **Programu ya Wavuti + Hifadhidata**: Kihifadhi cha wavuti kinaruhusu kuunda Programu yenye hifadhidata. Katika kesi hii inawezekana kuchagua hifadhidata ya kutumia (SQLAzure, PostgreSQL, MySQL, MongoDB) na pia inaruhusu kuunda Cache ya Azure kwa Redis.
- URL inayoshikilia taarifa za kuingia kwa hifadhidata na Redis itahifadhiwa katika **appsettings**.
- **Container**: Inawezekana kupeleka kontena kwa App Service kwa kuashiria URL ya kontena na taarifa za kuingia.
- **Mounts**: Inawezekana kuunda mounts 5 kutoka kwa akaunti za Hifadhi ikiwa ni pamoja na Azure Blob (Soma tu) au Azure Files. Mipangilio itahifadhi funguo za ufikiaji juu ya Akaunti ya Hifadhi.
- **Konteina**: Inawezekana kupeleka konteina kwa App Service kwa kuashiria URL ya konteina na taarifa za kuingia.
- **Mounts**: Inawezekana kuunda mounts 5 kutoka kwa akaunti za Hifadhi ikiwa ni pamoja na Azure Blob (Soma Tu) au Azure Files. Mipangilio itahifadhi funguo za ufikiaji juu ya Akaunti ya Hifadhi.
## Basic Authentication
Wakati wa kuunda programu ya wavuti (na kazi ya Azure kwa kawaida) inawezekana kuashiria ikiwa unataka **Uthibitishaji wa Msingi kuwashwa** (imezimwa kwa default). Hii kimsingi **inawasha SCM (Meneja wa Udhibiti wa Chanzo) na FTP (Protokali ya Uhamasishaji wa Faili)** kwa ajili ya programu ili iwezekane kupeleka programu kwa kutumia teknolojia hizo.
Wakati wa kuunda programu ya wavuti (na kazi ya Azure kwa kawaida) inawezekana kuashiria ikiwa unataka **Uthibitishaji wa Msingi kuwashwa** (imezimwa kwa default). Hii kimsingi **inawasha SCM (Meneja wa Udhibiti wa Chanzo) na FTP (Protokali ya Uhamishaji wa Faili)** kwa ajili ya programu ili iwezekane kupeleka programu kwa kutumia teknolojia hizo.
Ili kufikia seva za SCM na FTP, **jina la mtumiaji na nenosiri** inahitajika. Kwa hivyo, Azure inatoa baadhi ya **APIs kupata URL** za majukwaa haya na taarifa za kuingia.
Ili kufikia seva za SCM na FTP, **jina la mtumiaji na nenosiri** linahitajika. Kwa hivyo, Azure inatoa baadhi ya **APIs kupata URL** za majukwaa haya na taarifa za kuingia.
**Seva ya FTP haina uchawi maalum**, kwa URL halali, jina la mtumiaji na nenosiri inawezekana kuungana na kupata ruhusa za kusoma na kuandika juu ya mazingira ya App.
@@ -43,14 +43,14 @@ Kudu ni jukwaa ambalo **linasimamia SCM na kiolesura cha wavuti na API** ili kus
Kumbuka kwamba toleo la Kudu linalotumiwa na App Services na na Function Apps ni tofauti, toleo la Function apps likiwa na mipaka zaidi.
Baadhi ya maeneo ya kuvutia unaweza kuyapata katika Kudu ni:
Baadhi ya maeneo ya kuvutia unaweza kupata katika Kudu ni:
- `/BasicAuth`: Unahitaji kufikia njia hii ili **kuingia ndani ya Kudu**.
- `/DebugConsole`: Kihifadhi kinachokuruhusu kutekeleza amri katika mazingira ambapo Kudu inafanya kazi.
- Kumbuka kwamba mazingira haya **hayana ufikiaji** wa huduma ya metadata ili kupata tokeni.
- `/webssh/host`: Mteja wa SSH wa wavuti unaokuruhusu kuungana ndani ya kontena ambapo programu inafanya kazi.
- `/webssh/host`: Mteja wa SSH wa wavuti unaokuruhusu kuungana ndani ya konteina ambapo programu inafanya kazi.
- Mazingira haya **yana ufikiaji wa huduma ya metadata** ili kupata tokeni kutoka kwa utambulisho wa usimamizi uliotolewa.
- `/Env`: Pata taarifa kuhusu mfumo, mipangilio ya programu, mabadiliko ya mazingira, nyuzi za muunganisho na vichwa vya HTTP.
- `/wwwroot/`: Katalogi ya mzizi ya programu ya wavuti. Unaweza kupakua faili zote kutoka hapa.
- `/wwwroot/`: Saraka ya mzizi ya programu ya wavuti. Unaweza kupakua faili zote kutoka hapa.
Zaidi ya hayo, Kudu ilikuwa ya wazi katika [https://github.com/projectkudu/kudu](https://github.com/projectkudu/kudu) lakini mradi huo ulisitishwa na kulinganisha tabia ya Kudu ya sasa katika Azure na ile ya zamani inawezekana kuona kwamba **mambo kadhaa tayari yamebadilika**.
@@ -70,9 +70,9 @@ App Services inaruhusu kupakia msimbo kama faili ya zip kwa default, lakini pia
## Webjobs
Azure WebJobs ni **kazi za nyuma zinazofanya kazi katika mazingira ya Azure App Service**. Zinawaruhusu waendelezaji kutekeleza skripti au programu pamoja na programu zao za wavuti, na kufanya iwe rahisi kushughulikia shughuli zisizo za kawaida au za muda mrefu kama usindikaji wa faili, usimamizi wa data, au kazi za ratiba.
Azure WebJobs ni **kazi za nyuma zinazofanya kazi katika mazingira ya Azure App Service**. Zinawaruhusu waendelezaji kutekeleza skripti au programu pamoja na programu zao za wavuti, na kufanya iwe rahisi kushughulikia shughuli zisizo za kawaida au zinazohitaji muda kama vile usindikaji wa faili, usimamizi wa data, au kazi za ratiba.
Kuna aina 2 za kazi za wavuti:
- **Endelea**: Inafanya kazi bila kikomo katika mzunguko na inasababishwa mara tu inapotengenezwa. Ni bora kwa kazi zinazohitaji usindikaji wa mara kwa mara. Hata hivyo, ikiwa programu itasimama kufanya kazi kwa sababu Daima On imezimwa na haijapokea ombi katika dakika 20 zilizopita, kazi ya wavuti pia itasimama.
- **Endelea**: Inafanya kazi bila kikomo katika mzunguko na inasababishwa mara tu inapotengenezwa. Ni bora kwa kazi zinazohitaji usindikaji wa mara kwa mara. Hata hivyo, ikiwa programu itasimama kufanya kazi kwa sababu Daima Iko imezimwa na haijapokea ombi katika dakika 20 zilizopita, kazi ya wavuti pia itasimama.
- **Iliyosababishwa**: Inafanya kazi kwa ombi au kulingana na ratiba. Inafaa zaidi kwa kazi za mara kwa mara, kama vile masasisho ya data ya kundi au taratibu za matengenezo.
Webjobs ni za kuvutia sana kutoka kwa mtazamo wa washambuliaji kwani zinaweza kutumika **kutekeleza msimbo** katika mazingira na **kuinua mamlaka** kwa utambulisho wa usimamizi uliounganishwa.
@@ -81,7 +81,7 @@ Zaidi ya hayo, kila wakati ni muhimu kuangalia **kumbukumbu** zinazozalishwa na
## Slots
Azure App Service Slots zinatumika **kupeleka matoleo tofauti ya programu** kwa App Service moja. Hii inaruhusu waendelezaji kujaribu vipengele au mabadiliko katika mazingira tofauti kabla ya kuyapeleka kwenye mazingira ya uzalishaji.
Azure App Service Slots zinatumika **kupeleka matoleo tofauti ya programu** kwa App Service moja. Hii inaruhusu waendelezaji kujaribu vipengele au mabadiliko mapya katika mazingira tofauti kabla ya kuyapeleka kwenye mazingira ya uzalishaji.
Zaidi ya hayo, inawezekana kuelekeza **asilimia ya trafiki** kwa slot maalum, ambayo ni muhimu kwa majaribio ya A/B, na kwa **madhumuni ya nyuma**.
@@ -89,7 +89,7 @@ Zaidi ya hayo, inawezekana kuelekeza **asilimia ya trafiki** kwa slot maalum, am
Kimsingi **Azure Function apps ni sehemu ya Azure App Service** katika kihifadhi cha wavuti na ikiwa utaenda kwenye kihifadhi cha wavuti na kuorodhesha huduma zote za programu au kutekeleza `az webapp list` katika az cli utaweza **kuona Function apps pia zikiwa zimeorodheshwa huko**.
Kwa hivyo, huduma zote mbili kwa kweli zina **mipangilio, vipengele na chaguzi sawa katika az cli**, ingawa zinaweza kuzisakinisha kidogo tofauti (kama vile thamani za default za appsettings au matumizi ya Akaunti ya Hifadhi katika Function apps).
Kwa hivyo, huduma zote mbili kwa kweli zina **mipangilio, vipengele na chaguzi sawa katika az cli**, ingawa zinaweza kuziweka kidogo tofauti (kama vile thamani za default za appsettings au matumizi ya Akaunti ya Hifadhi katika Function apps).
## Enumeration
@@ -156,6 +156,9 @@ az webapp config storage-account list --name <name> --resource-group <res-group>
# Get configured container (if any) in the webapp, it could contain credentials
az webapp config container show --name <name> --resource-group <res-group>
# Get git URL to access the code
az webapp deployment source config-local-git --resource-group <res-group> -n <name>
# Get Webjobs
az webapp webjob continuous list --resource-group <res-group> --name <app-name>
az webapp webjob triggered list --resource-group <res-group> --name <app-name>
@@ -185,7 +188,7 @@ Get-AzWebApp | ?{$_.Kind -notmatch "functionapp"}
```
{{#endtab }}
{{#tab name="az get all" }}
{{#tab name="az pata yote" }}
```bash
#!/bin/bash
@@ -217,31 +220,14 @@ done
{{#endtab }}
{{#endtabs }}
#### Pata akreditivu na upate ufikiaji wa msimbo wa wavuti
```bash
# Get connection strings that could contain credentials (with DBs for example)
az webapp config connection-string list --name <name> --resource-group <res-group>
## Check how to use the DBs connection strings in the SQL page
# Get credentials to access the code and DB credentials if configured.
az webapp deployment list-publishing-profiles --resource-group <res-group> -n <name>
# Get git URL to access the code
az webapp deployment source config-local-git --resource-group <res-group> -n <name>
# Access/Modify the code via git
git clone 'https://<username>:<password>@name.scm.azurewebsites.net/repo-name.git'
## In my case the username was: $nameofthewebapp and the password some random chars
## If you change the code and do a push, the app is automatically redeployed
```
{{#ref}}
../az-privilege-escalation/az-app-services-privesc.md
{{#endref}}
## Mifano ya kuunda Web Apps
## Mifanozo ya kuunda Web Apps
### Python kutoka kwa eneo la ndani
### Python kutoka kwa eneo
Hii tutorial inategemea ile kutoka [https://learn.microsoft.com/en-us/azure/app-service/quickstart-python](https://learn.microsoft.com/en-us/azure/app-service/quickstart-python?tabs=flask%2Cwindows%2Cazure-cli%2Cazure-cli-deploy%2Cdeploy-instructions-azportal%2Cterminal-bash%2Cdeploy-instructions-zip-azcli).
```bash
@@ -252,7 +238,7 @@ cd msdocs-python-flask-webapp-quickstart
# Create webapp from this code
az webapp up --runtime PYTHON:3.9 --sku B1 --logs
```
Kuingia kwenye portal ya SCM au kuingia kupitia FTP inawezekana kuona katika `/wwwroot` faili iliyo na muundo wa `output.tar.gz` ambayo ina msimbo wa webapp.
Kuingia kwenye lango la SCM au kuingia kupitia FTP inawezekana kuona katika `/wwwroot` faili iliyo na muundo `output.tar.gz` ambayo ina msimbo wa webapp.
> [!TIP]
> Kuungana tu kupitia FTP na kubadilisha faili `output.tar.gz` haitoshi kubadilisha msimbo unaotekelezwa na webapp.
@@ -263,11 +249,11 @@ Kuingia kwenye portal ya SCM au kuingia kupitia FTP inawezekana kuona katika `/w
Mafunzo haya yanategemea yale ya awali lakini yanatumia hifadhi ya Github.
1. Fork hifadhi msdocs-python-flask-webapp-quickstart katika akaunti yako ya Github.
1. Fork repo msdocs-python-flask-webapp-quickstart katika akaunti yako ya Github.
2. Unda Web App mpya ya python katika Azure.
3. Katika `Deployment Center` badilisha chanzo, ingia na Github, chagua hifadhi iliyoforked na bonyeza `Save`.
3. Katika `Deployment Center` badilisha chanzo, ingia na Github, chagua repo iliyoforked na bonyeza `Save`.
Kama katika kesi ya awali, kuingia kwenye portal ya SCM au kuingia kupitia FTP inawezekana kuona katika `/wwwroot` faili iliyo na muundo wa `output.tar.gz` ambayo ina msimbo wa webapp.
Kama katika kesi ya awali, kuingia kwenye lango la SCM au kuingia kupitia FTP inawezekana kuona katika `/wwwroot` faili iliyo na muundo `output.tar.gz` ambayo ina msimbo wa webapp.
> [!TIP]
> Kuungana tu kupitia FTP na kubadilisha faili `output.tar.gz` na kuanzisha tena uhamasishaji haitoshi kubadilisha msimbo unaotekelezwa na webapp.