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

This commit is contained in:
Translator
2025-01-26 18:00:40 +00:00
parent d0eba43684
commit 9ff4d2f029
13 changed files with 55 additions and 53 deletions

View File

@@ -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>"""

View File

@@ -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)

View File

@@ -50,7 +50,7 @@ Ucz się i ćwicz Hacking GCP: <img src="../../../.gitbook/assets/image (2) (1).
* Sprawdź [**plany subskrypcyjne**](https://github.com/sponsors/carlospolop)!
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegram**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
* **Dziel się trikami hackingowymi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów na GitHubie.
* **Dziel się trikami hackingowymi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów na githubie.
</details>
{% endhint %}

View File

@@ -23,7 +23,7 @@ Aby uzyskać więcej informacji na temat aplikacji logicznych, sprawdź:
{% endcontent-ref %}
### "Microsoft.Logic/workflows/read", "Microsoft.Logic/workflows/write" && "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action"
Dzięki tym uprawnieniom możesz modyfikować przepływy pracy aplikacji logicznych i zarządzać ich tożsamościami. W szczególności możesz przypisywać lub usuwać tożsamości zarządzane przypisane do systemu i użytkownika do przepływów pracy, co pozwala aplikacji logicznej uwierzytelnić się i uzyskać dostęp do innych zasobów Azure bez wyraźnych poświadczeń.
Dzięki tym uprawnieniom możesz modyfikować przepływy pracy aplikacji logicznych i zarządzać ich tożsamościami. W szczególności możesz przypisywać lub usuwać tożsamości zarządzane przypisane do systemu i użytkownika do przepływów pracy, co pozwala aplikacji logicznej na uwierzytelnianie i dostęp do innych zasobów Azure bez wyraźnych poświadczeń.
{% code overflow="wrap" %}
```bash
@@ -88,7 +88,7 @@ az logic integration-account create \
### "Microsoft.Resources/subscriptions/resourcegroups/read" && "Microsoft.Logic/integrationAccounts/batchConfigurations/write"
Dzięki temu uprawnieniu możesz tworzyć lub modyfikować konfiguracje wsadowe w ramach konta integracyjnego Azure Logic Apps. Konfiguracje wsadowe definiują, jak Logic Apps przetwarzają i grupują przychodzące wiadomości do przetwarzania wsadowego.
Dzięki temu uprawnieniu możesz tworzyć lub modyfikować konfiguracje wsadowe w ramach konta integracyjnego Azure Logic Apps. Konfiguracje wsadowe definiują, w jaki sposób Logic Apps przetwarzają i grupują przychodzące wiadomości do przetwarzania wsadowego.
{% 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"
Dzięki temu uprawnieniu możesz tworzyć lub modyfikować partnerów w koncie integracyjnym Azure Logic Apps. Partnerzy reprezentują podmioty lub systemy, które uczestniczą w przepływach pracy typu business-to-business (B2B).
Dzięki temu uprawnieniu możesz tworzyć lub modyfikować partnerów w koncie integracyjnym Azure Logic Apps. Partnerzy reprezentują podmioty lub systemy, które uczestniczą w procesach biznesowych typu business-to-business (B2B).
{% code overflow="wrap" %}
```bash
@@ -171,10 +171,10 @@ Ucz się i ćwicz Hacking GCP: <img src="../../../.gitbook/assets/image (2) (1).
<details>
<summary>Wsparcie HackTricks</summary>
<summary>Wsparcie dla HackTricks</summary>
* Sprawdź [**plany subskrypcyjne**](https://github.com/sponsors/carlospolop)!
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegram**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
* **Dziel się trikami hackingowymi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów na githubie.
</details>

View File

@@ -9,14 +9,14 @@ Ucz się i ćwicz Hacking GCP: <img src="../../../.gitbook/assets/image (2) (1).
<summary>Wsparcie HackTricks</summary>
* Sprawdź [**plany subskrypcyjne**](https://github.com/sponsors/carlospolop)!
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegram**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
* **Dziel się sztuczkami hackingowymi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów na GitHubie.
</details>
{% endhint %}
## Logic Apps Privesc
Aby uzyskać więcej informacji na temat SQL Database, sprawdź:
Aby uzyskać więcej informacji o SQL Database, sprawdź:
{% content-ref url="../az-services/az-logic-apps.md" %}
[az-logic-apps.md](../az-services/az-logic-apps.md)
@@ -70,7 +70,7 @@ Ucz się i ćwicz Hacking GCP: <img src="../../../.gitbook/assets/image (2) (1).
<summary>Wsparcie HackTricks</summary>
* Sprawdź [**plany subskrypcyjne**](https://github.com/sponsors/carlospolop)!
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegram**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
* **Dziel się trikami hackingowymi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów na githubie.
</details>

View File

@@ -8,12 +8,12 @@ Azure App Services umożliwia deweloperom **tworzenie, wdrażanie i skalowanie a
Każda aplikacja działa w piaskownicy, ale izolacja zależy od planów App Service:
- Aplikacje w darmowych i współdzielonych planach działają na **współdzielonych VM**
- Aplikacje w standardowych i premium planach działają na **dedykowanych VM współdzielonych tylko przez aplikacje** w tym samym planie App Service.
- Plany izolowane działają na **dedykowanych VM w dedykowanych sieciach wirtualnych**, co poprawia izolację aplikacji.
- Aplikacje w bezpłatnych i współdzielonych warstwach działają na **współdzielonych VM**
- Aplikacje w standardowych i premium warstwach działają na **dedykowanych VM współdzielonych tylko przez aplikacje** w tym samym planie App Service.
- Warstwy izolowane działają na **dedykowanych VM w dedykowanych sieciach wirtualnych**, co poprawia izolację aplikacji.
> [!WARNING]
> Należy pamiętać, że **żadne** z tych izolacji **nie zapobiega** innym powszechnym **wrażliwościom internetowym** (takim jak przesyłanie plików czy wstrzyknięcia). A jeśli używana jest **tożsamość zarządzająca**, może ona **eskalować uprawnienia do nich**.
> Należy pamiętać, że **żadne** z tych izolacji **nie zapobiega** innym powszechnym **wrażliwościom internetowym** (takim jak przesyłanie plików czy wstrzyknięcia). A jeśli używana jest **tożsamość zarządzania**, może ona **eskalować uprawnienia do nich**.
Aplikacje mają kilka interesujących konfiguracji:
@@ -21,10 +21,10 @@ Aplikacje mają kilka interesujących konfiguracji:
- Jest to niezbędne, jeśli masz webjob, który musi działać nieprzerwanie, ponieważ webjob zatrzyma się, jeśli aplikacja przestanie działać.
- **SSH**: Jeśli włączone, użytkownik z wystarczającymi uprawnieniami może połączyć się z aplikacją za pomocą SSH.
- **Debugowanie**: Jeśli włączone, użytkownik z wystarczającymi uprawnieniami może debugować aplikację. Jednak jest to automatycznie wyłączane co 48 godzin.
- **Aplikacja internetowa + Baza danych**: Konsola internetowa pozwala na utworzenie aplikacji z bazą danych. W tym przypadku można wybrać bazę danych do użycia (SQLAzure, PostgreSQL, MySQL, MongoDB) i umożliwia również utworzenie Azure Cache dla Redis.
- **Aplikacja internetowa + Baza danych**: Konsola internetowa umożliwia utworzenie aplikacji z bazą danych. W tym przypadku można wybrać bazę danych do użycia (SQLAzure, PostgreSQL, MySQL, MongoDB) i umożliwia również utworzenie Azure Cache dla Redis.
- URL zawierający dane uwierzytelniające do bazy danych i Redis będzie przechowywany w **appsettings**.
- **Kontener**: Możliwe jest wdrożenie kontenera do App Service, wskazując URL kontenera i dane uwierzytelniające do jego dostępu.
- **Montowanie**: Możliwe jest utworzenie 5 montowań z kont Storage, które mogą być Azure Blob (tylko do odczytu) lub Azure Files. Konfiguracja przechowa klucz dostępu w koncie Storage.
- **Montowanie**: Możliwe jest utworzenie 5 montowań z kont osadzenia, które mogą być Azure Blob (tylko do odczytu) lub Azure Files. Konfiguracja przechowa klucz dostępu w koncie osadzenia.
## Podstawowa autoryzacja
@@ -48,7 +48,7 @@ Niektóre interesujące punkty końcowe, które można znaleźć w Kudu, to:
- `/DebugConsole`: Konsola, która pozwala na wykonywanie poleceń w środowisku, w którym działa Kudu.
- Należy pamiętać, że to środowisko **nie ma dostępu** do usługi metadanych w celu uzyskania tokenów.
- `/webssh/host`: Klient SSH oparty na sieci, który pozwala na połączenie się wewnątrz kontenera, w którym działa aplikacja.
- To środowisko **ma dostęp do usługi metadanych**, aby uzyskać tokeny z przypisanych tożsamości zarządzających.
- To środowisko **ma dostęp do usługi metadanych**, aby uzyskać tokeny z przypisanych tożsamości zarządzanych.
- `/Env`: Uzyskaj informacje o systemie, ustawieniach aplikacji, zmiennych środowiskowych, ciągach połączeń i nagłówkach HTTP.
- `/wwwroot/`: Katalog główny aplikacji internetowej. Możesz pobrać wszystkie pliki stąd.
@@ -56,7 +56,7 @@ Ponadto, Kudu był kiedyś open source w [https://github.com/projectkudu/kudu](h
## Źródła
App Services domyślnie pozwala na przesyłanie kodu jako pliku zip, ale również umożliwia połączenie z usługą zewnętrzną i pobranie kodu stamtąd.
Usługi App pozwala na przesyłanie kodu jako pliku zip domyślnie, ale również umożliwia połączenie z usługą zewnętrzną i pobranie kodu stamtąd.
- Obecnie obsługiwane źródła zewnętrzne to **Github** i **Bitbucket**.
- Możesz uzyskać tokeny uwierzytelniające, uruchamiając `az rest --url "https://management.azure.com/providers/Microsoft.Web/sourcecontrols?api-version=2024-04-01"`
@@ -65,7 +65,7 @@ App Services domyślnie pozwala na przesyłanie kodu jako pliku zip, ale równie
- Możesz uzyskać dane uwierzytelniające do zdalnego repozytorium, uruchamiając `az webapp deployment source show --name <app-name> --resource-group <res-group>` lub `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"`
- Możliwe jest również użycie **Azure Repository**.
- Możliwe jest również skonfigurowanie **lokalnego repozytorium git**.
- Możesz uzyskać URL repozytorium git, uruchamiając `az webapp deployment source show --name <app-name> --resource-group <res-group>`, a będzie to URL SCM aplikacji.
- Możesz uzyskać URL repozytorium git za pomocą `az webapp deployment source show --name <app-name> --resource-group <res-group>`, a będzie to URL SCM aplikacji.
- Aby je sklonować, będziesz potrzebować danych uwierzytelniających SCM, które możesz uzyskać za pomocą `az webapp deployment list-publishing-profiles --resource-group <res-group> -n <name>`
## Webjobs
@@ -75,7 +75,7 @@ Istnieją 2 typy web jobs:
- **Ciągłe**: Działa w nieskończoność w pętli i jest uruchamiane natychmiast po utworzeniu. Jest idealne do zadań, które wymagają stałego przetwarzania. Jednak jeśli aplikacja przestanie działać, ponieważ Always On jest wyłączone i nie otrzymała żądania w ciągu ostatnich 20 minut, web job również się zatrzyma.
- **Wyzwalane**: Działa na żądanie lub na podstawie harmonogramu. Najlepiej nadaje się do okresowych zadań, takich jak aktualizacje danych wsadowych lub rutyny konserwacyjne.
Webjobs są bardzo interesujące z perspektywy atakującego, ponieważ mogą być używane do **wykonywania kodu** w środowisku i **eskalacji uprawnień** do przypisanych tożsamości zarządzających.
Webjobs są bardzo interesujące z perspektywy atakującego, ponieważ mogą być używane do **wykonywania kodu** w środowisku i **eskalacji uprawnień** do przypisanych tożsamości zarządzanych.
Ponadto zawsze warto sprawdzić **logi** generowane przez Webjobs, ponieważ mogą zawierać **wrażliwe informacje**.
@@ -89,7 +89,7 @@ Ponadto możliwe jest skierowanie **procenta ruchu** do konkretnego slotu, co je
Zasadniczo **aplikacje funkcji Azure są podzbiorem Azure App Service** w konsoli internetowej, a jeśli przejdziesz do konsoli internetowej i wyświetlisz wszystkie usługi aplikacji lub wykonasz `az webapp list` w az cli, będziesz mógł **zobaczyć aplikacje funkcji również wymienione tam**.
Dlatego obie usługi mają w rzeczywistości głównie **te same konfiguracje, funkcje i opcje w az cli**, chociaż mogą je konfigurować nieco inaczej (jak domyślne wartości appsettings lub użycie konta Storage w aplikacjach funkcji).
Dlatego obie usługi mają w rzeczywistości głównie **te same konfiguracje, funkcje i opcje w az cli**, chociaż mogą je konfigurować nieco inaczej (jak domyślne wartości appsettings lub użycie konta osadzenia w aplikacjach funkcji).
## Enumeracja
@@ -303,7 +303,7 @@ Podobnie jak w poprzednim przypadku, logując się do portalu SCM lub przez FTP,
> [!TIP]
> Samo połączenie przez FTP i modyfikacja pliku `output.tar.gz` oraz ponowne uruchomienie wdrożenia nie wystarczy, aby zmienić kod wykonywany przez aplikację webową.
## Podwyższenie Uprawnień
## Eskalacja Uprawnień
{{#ref}}
../az-privilege-escalation/az-app-services-privesc.md

View File

@@ -10,7 +10,7 @@ Ucz się i ćwicz Hacking GCP: <img src="../../../.gitbook/assets/image (2) (1).
* Sprawdź [**plany subskrypcyjne**](https://github.com/sponsors/carlospolop)!
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegram**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
* **Podziel się sztuczkami hackingowymi, przesyłając PR do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów github.
* **Podziel się sztuczkami hackingowymi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów github.
</details>
{% endhint %}
@@ -23,11 +23,11 @@ Nie przypisano uprawnień do tej usługi, dlatego nie ma technik eskalacji upraw
### Kluczowe funkcje
**Środowisko**: Azure Cloud Shell zapewnia bezpieczne środowisko, działając na Azure Linux, własnej dystrybucji Linuksa Microsoftu zaprojektowanej dla infrastruktury chmurowej. Wszystkie pakiety zawarte w repozytorium Azure Linux są wewnętrznie kompilowane przez Microsoft, aby chronić przed atakami łańcucha dostaw.
**Środowisko**: Azure Cloud Shell zapewnia bezpieczne środowisko, działając na Azure Linux, własnej dystrybucji Linuksa Microsoftu zaprojektowanej dla infrastruktury chmurowej. Wszystkie pakiety zawarte w repozytorium Azure Linux są wewnętrznie kompilowane przez Microsoft, aby chronić przed atakami na łańcuch dostaw.
**Wstępnie zainstalowane narzędzia**: Cloud Shell zawiera kompleksowy zestaw wstępnie zainstalowanych narzędzi, takich jak Azure CLI, Azure PowerShell, Terraform, Docker CLI, Ansible, Git oraz edytory tekstu, takie jak vim, nano i emacs. Te narzędzia są gotowe do użycia. Aby wyświetlić zainstalowane pakiety i moduły, możesz użyć "Get-Module -ListAvailable", "tdnf list" i "pip3 list".
**Trwałość $HOME**: Po uruchomieniu Azure Cloud Shell po raz pierwszy możesz go używać z lub bez podłączonego konta magazynu. Wybór braku podłączenia magazynu tworzy epizodyczną sesję, w której pliki są usuwane po zakończeniu sesji. Aby zachować pliki między sesjami, zamontuj konto magazynu, które automatycznie podłącza się jako **$HOME\clouddrive**, z Twoim katalogiem **$HOME** zapisanym jako plik **.img** w Azure File Share. Jednak pliki poza $HOME i stany maszyn nie są zachowywane. Aby bezpiecznie przechowywać sekrety, takie jak klucze SSH, użyj Azure Key Vault.
**Trwałość $HOME**: Podczas pierwszego uruchomienia Azure Cloud Shell możesz używać go z lub bez podłączonego konta magazynu. Wybór braku podłączenia magazynu tworzy epizodyczną sesję, w której pliki są usuwane po zakończeniu sesji. Aby zachować pliki między sesjami, zamontuj konto magazynu, które automatycznie podłącza się jako **$HOME\clouddrive**, z Twoim katalogiem **$HOME** zapisanym jako plik **.img** w Azure File Share. Jednak pliki poza $HOME i stany maszyn nie są zachowywane. Aby bezpiecznie przechowywać sekrety, takie jak klucze SSH, użyj Azure Key Vault.
**Dysk Azure (Azure:)**: PowerShell w Azure Cloud Shell zawiera dysk Azure (Azure:), który umożliwia łatwą nawigację po zasobach Azure, takich jak Compute, Network i Storage, przy użyciu poleceń podobnych do systemu plików. Przełącz się na dysk Azure za pomocą cd Azure: i wróć do swojego katalogu domowego za pomocą cd ~. Możesz nadal używać poleceń Azure PowerShell do zarządzania zasobami z dowolnego dysku.
**Instalacja niestandardowych narzędzi**: Użytkownicy, którzy konfigurowali Cloud Shell z kontem magazynu, mogą instalować dodatkowe narzędzia, które nie wymagają uprawnień administratora. Ta funkcja pozwala na dalszą personalizację środowiska Cloud Shell, umożliwiając użytkownikom dostosowanie swojego ustawienia do ich specyficznych potrzeb.
**Instalacja niestandardowych narzędzi**: Użytkownicy, którzy skonfigurują Cloud Shell z kontem magazynu, mogą instalować dodatkowe narzędzia, które nie wymagają uprawnień administratora. Ta funkcja pozwala na dalszą personalizację środowiska Cloud Shell, umożliwiając użytkownikom dostosowanie swojego ustawienia do ich specyficznych potrzeb.
## Odniesienia
@@ -52,7 +52,7 @@ Ucz się i ćwicz Hacking GCP: <img src="../../../.gitbook/assets/image (2) (1).
* Sprawdź [**plany subskrypcyjne**](https://github.com/sponsors/carlospolop)!
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegram**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
* **Podziel się sztuczkami hackingowymi, przesyłając PR do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów github.
* **Podziel się sztuczkami hackingowymi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów github.
</details>
{% endhint %}

View File

@@ -36,7 +36,7 @@ https://<Account-Name>.documents.azure.com:443/
W ramach konta możesz utworzyć jedną lub więcej baz danych, które służą jako logiczne grupy kontenerów. Baza danych działa jako granica dla zarządzania zasobami i uprawnieniami użytkowników. Bazy danych mogą dzielić przydzieloną przepustowość między swoimi kontenerami lub przydzielać dedykowaną przepustowość do poszczególnych kontenerów.
#### Kontenery
Podstawową jednostką przechowywania danych jest kontener, który przechowuje dokumenty JSON i jest automatycznie indeksowany w celu efektywnego zapytania. Kontenery są elastycznie skalowalne i rozproszone w obrębie partycji, które są określane przez zdefiniowany przez użytkownika klucz partycji. Klucz partycji jest kluczowy dla zapewnienia optymalnej wydajności i równomiernego rozkładu danych. Na przykład, kontener może przechowywać dane klientów, z "customerId" jako kluczem partycji.
Podstawową jednostką przechowywania danych jest kontener, który przechowuje dokumenty JSON i jest automatycznie indeksowany w celu efektywnego zapytania. Kontenery są elastycznie skalowalne i rozproszone w obrębie partycji, które są określane przez klucz partycji zdefiniowany przez użytkownika. Klucz partycji jest kluczowy dla zapewnienia optymalnej wydajności i równomiernego rozkładu danych. Na przykład, kontener może przechowywać dane klientów, z "customerId" jako kluczem partycji.
#### Enumeracja
@@ -215,7 +215,7 @@ mongodb://<hostname>:<port>/<database>
W MongoDB możesz utworzyć jedną lub więcej baz danych w ramach instancji. Każda baza danych służy jako logiczna grupa kolekcji i zapewnia granicę dla organizacji i zarządzania zasobami. Bazy danych pomagają oddzielić i zarządzać danymi logicznie, na przykład dla różnych aplikacji lub projektów.
#### Kolekcje
Podstawową jednostką przechowywania danych w MongoDB jest kolekcja, która zawiera dokumenty i jest zaprojektowana do efektywnego zapytywania oraz elastycznego projektowania schematu. Kolekcje są elastycznie skalowalne i mogą obsługiwać operacje o wysokiej przepustowości w rozproszonym środowisku na wielu węzłach.
Podstawową jednostką przechowywania danych w MongoDB jest kolekcja, która zawiera dokumenty i jest zaprojektowana do efektywnego zapytania oraz elastycznego projektowania schematu. Kolekcje są elastycznie skalowalne i mogą obsługiwać operacje o wysokiej przepustowości w rozproszonym środowisku na wielu węzłach.
#### Enumeracja
@@ -290,7 +290,7 @@ Get-AzCosmosDBMongoDBRoleDefinition -AccountName <account-name> -ResourceGroupNa
#### Połączenie
Tutaj hasło można znaleźć za pomocą kluczy lub metodą opisaną w sekcji privesc.
Tutaj hasło możesz znaleźć za pomocą kluczy lub metodą opisaną w sekcji privesc.
{% code overflow="wrap" %}
```python
from pymongo import MongoClient
@@ -361,7 +361,7 @@ Ucz się i ćwicz Hacking GCP: <img src="../../../.gitbook/assets/image (2) (1).
* Sprawdź [**plany subskrypcyjne**](https://github.com/sponsors/carlospolop)!
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
* **Dziel się trikami hackingowymi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów na githubie.
* **Dziel się trikami hackingowymi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów github.
</details>
{% endhint %}

View File

@@ -4,7 +4,7 @@
## Podstawowe informacje
**Azure Function Apps** to **usługa obliczeniowa bezserwerowa**, która pozwala na uruchamianie małych fragmentów kodu, zwanych **funkcjami**, bez zarządzania infrastrukturą. Zostały zaprojektowane do wykonywania kodu w odpowiedzi na różne wyzwalacze, takie jak **żądania HTTP, timery lub zdarzenia z innych usług Azure**, takich jak Blob Storage czy Event Hubs. Function Apps obsługują wiele języków programowania, w tym C#, Python, JavaScript i Java, co czyni je wszechstronnymi do budowania **aplikacji opartych na zdarzeniach**, automatyzacji procesów roboczych lub integracji usług. Są opłacalne, ponieważ zazwyczaj płacisz tylko za czas obliczeniowy używany podczas uruchamiania kodu.
**Azure Function Apps** to **usługa obliczeniowa bezserwerowa**, która pozwala na uruchamianie małych fragmentów kodu, zwanych **funkcjami**, bez zarządzania infrastrukturą. Zostały zaprojektowane do wykonywania kodu w odpowiedzi na różne wyzwalacze, takie jak **żądania HTTP, timery lub zdarzenia z innych usług Azure**, takich jak Blob Storage czy Event Hubs. Function Apps obsługują wiele języków programowania, w tym C#, Python, JavaScript i Java, co czyni je wszechstronnymi do budowania **aplikacji opartych na zdarzeniach**, automatyzacji procesów roboczych lub integracji usług. Są opłacalne, ponieważ zazwyczaj płacisz tylko za czas obliczeniowy użyty podczas uruchamiania kodu.
> [!NOTE]
> Zauważ, że **Funkcje są podzbiorem App Services**, dlatego wiele funkcji omówionych tutaj będzie również używanych przez aplikacje tworzone jako Azure Apps (`webapp` w cli).
@@ -14,12 +14,12 @@
- **Plan Flex Consumption**: Oferuje **dynamiczne, oparte na zdarzeniach skalowanie** z ceną płatności za użycie, dodając lub usuwając instancje funkcji w zależności od popytu. Obsługuje **wirtualne sieci** i **wstępnie przydzielone instancje**, aby zredukować zimne uruchomienia, co czyni go odpowiednim dla **zmiennych obciążeń**, które nie wymagają wsparcia kontenerów.
- **Plan Traditional Consumption**: Domyślna opcja bezserwerowa, w której **płacisz tylko za zasoby obliczeniowe, gdy funkcje są uruchamiane**. Automatycznie skaluje się w zależności od nadchodzących zdarzeń i zawiera **optymalizacje zimnego uruchomienia**, ale nie obsługuje wdrożeń kontenerów. Idealny dla **przerywanych obciążeń** wymagających automatycznego skalowania.
- **Plan Premium**: Zaprojektowany dla **spójnej wydajności**, z **wstępnie podgrzanymi pracownikami**, aby wyeliminować zimne uruchomienia. Oferuje **wydłużone czasy wykonania, wirtualne sieci** i obsługuje **niestandardowe obrazy Linux**, co czyni go idealnym dla **aplikacji krytycznych dla misji**, które potrzebują wysokiej wydajności i zaawansowanych funkcji.
- **Plan Dedicated**: Działa na dedykowanych maszynach wirtualnych z **przewidywalnym rozliczeniem** i obsługuje ręczne lub automatyczne skalowanie. Umożliwia uruchamianie wielu aplikacji w tym samym planie, zapewnia **izolację obliczeniową** i zapewnia **bezpieczny dostęp do sieci** za pośrednictwem środowisk App Service, co czyni go idealnym dla **aplikacji długoterminowych** wymagających spójnej alokacji zasobów.
- **Container Apps**: Umożliwia wdrażanie **kontenerowych aplikacji funkcji** w zarządzanym środowisku, obok mikroserwisów i API. Obsługuje niestandardowe biblioteki, migrację aplikacji dziedzicznych i **przetwarzanie GPU**, eliminując zarządzanie klastrami Kubernetes. Idealny dla **opartych na zdarzeniach, skalowalnych aplikacji kontenerowych**.
- **Plan Dedicated**: Działa na dedykowanych maszynach wirtualnych z **przewidywalnym rozliczeniem** i obsługuje ręczne lub automatyczne skalowanie. Umożliwia uruchamianie wielu aplikacji na tym samym planie, zapewnia **izolację obliczeniową** i zapewnia **bezpieczny dostęp do sieci** za pośrednictwem środowisk App Service, co czyni go idealnym dla **aplikacji długoterminowych** wymagających spójnej alokacji zasobów.
- **Container Apps**: Umożliwia wdrażanie **kontenerowych aplikacji funkcji** w zarządzanym środowisku, obok mikroserwisów i interfejsów API. Obsługuje niestandardowe biblioteki, migrację aplikacji dziedzicznych i **przetwarzanie GPU**, eliminując zarządzanie klastrami Kubernetes. Idealny dla **opartych na zdarzeniach, skalowalnych aplikacji kontenerowych**.
### **Koszyki pamięci**
Podczas tworzenia nowej aplikacji funkcji, która nie jest kontenerowa (ale daje kod do uruchomienia), **kod i inne dane związane z funkcją będą przechowywane w koncie pamięci**. Domyślnie konsola internetowa utworzy nową dla każdej funkcji, aby przechować kod.
Podczas tworzenia nowej aplikacji funkcji, która nie jest kontenerowa (ale dostarcza kod do uruchomienia), **kod i inne dane związane z funkcją będą przechowywane w koncie pamięci**. Domyślnie konsola internetowa utworzy nową dla każdej funkcji, aby przechować kod.
Co więcej, modyfikując kod wewnątrz koszyka (w różnych formatach, w jakich może być przechowywany), **kod aplikacji zostanie zmodyfikowany na nowy i wykonany** następnym razem, gdy funkcja zostanie wywołana.
@@ -30,9 +30,9 @@ Co więcej, modyfikując kod wewnątrz koszyka (w różnych formatach, w jakich
Możliwe jest również znalezienie **kluczy głównych i funkcji** przechowywanych w koncie pamięci w kontenerze **`azure-webjobs-secrets`** wewnątrz folderu **`<app-name>`** w plikach JSON, które można tam znaleźć.
Zauważ, że Funkcje pozwalają również na przechowywanie kodu w zdalnej lokalizacji, wskazując po prostu URL do niego.
Zauważ, że Funkcje pozwalają również na przechowywanie kodu w zdalnej lokalizacji, wskazując po prostu adres URL do niego.
### Sieciowanie
### Sieci
Używając wyzwalacza HTTP:
@@ -46,7 +46,7 @@ Używając wyzwalacza HTTP:
Możliwe jest skonfigurowanie zmiennych środowiskowych wewnątrz aplikacji, które mogą zawierać wrażliwe informacje. Co więcej, domyślnie zmienne środowiskowe **`AzureWebJobsStorage`** i **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** (wśród innych) są tworzone. Te są szczególnie interesujące, ponieważ **zawierają klucz konta do kontrolowania z PEŁNYMI uprawnieniami konta pamięci zawierającego dane aplikacji**. Te ustawienia są również potrzebne do wykonania kodu z konta pamięci.
Te zmienne środowiskowe lub parametry konfiguracyjne kontrolują również, jak funkcja wykonuje kod, na przykład jeśli **`WEBSITE_RUN_FROM_PACKAGE`** istnieje, wskaże URL, gdzie znajduje się kod aplikacji.
Te zmienne środowiskowe lub parametry konfiguracyjne kontrolują również, jak funkcja wykonuje kod, na przykład jeśli **`WEBSITE_RUN_FROM_PACKAGE`** istnieje, wskaże adres URL, w którym znajduje się kod aplikacji.
### **Piaskownica funkcji**
@@ -84,10 +84,10 @@ Podczas tworzenia punktu końcowego wewnątrz funkcji za pomocą **wyzwalacza HT
**Rodzaje kluczy:**
- **Klucze funkcji:** Klucze funkcji mogą być domyślne lub zdefiniowane przez użytkownika i są zaprojektowane, aby przyznać dostęp wyłącznie do **konkretnych punktów końcowych funkcji** w aplikacji funkcji, co pozwala na bardziej szczegółowy dostęp do punktów końcowych.
- **Klucze funkcji:** Klucze funkcji mogą być domyślne lub zdefiniowane przez użytkownika i są zaprojektowane w celu przyznania dostępu wyłącznie do **konkretnych punktów końcowych funkcji** w aplikacji funkcji, co pozwala na bardziej szczegółowy dostęp do punktów końcowych.
- **Klucze hosta:** Klucze hosta, które mogą być również domyślne lub zdefiniowane przez użytkownika, zapewniają dostęp do **wszystkich punktów końcowych funkcji w aplikacji funkcji z poziomem dostępu FUNCTION**.
- **Klucz główny:** Klucz główny (`_master`) służy jako klucz administracyjny, który oferuje podwyższone uprawnienia, w tym dostęp do wszystkich punktów końcowych funkcji (w tym poziom ADMIN). Ten **klucz nie może być cofnięty.**
- **Klucze systemowe:** Klucze systemowe są **zarządzane przez konkretne rozszerzenia** i są wymagane do uzyskania dostępu do punktów końcowych webhooków używanych przez wewnętrzne komponenty. Przykłady obejmują wyzwalacz Event Grid i Durable Functions, które wykorzystują klucze systemowe do bezpiecznej interakcji z ich odpowiednimi API.
- **Klucze systemowe:** Klucze systemowe są **zarządzane przez konkretne rozszerzenia** i są wymagane do uzyskania dostępu do punktów końcowych webhooków używanych przez wewnętrzne komponenty. Przykłady obejmują wyzwalacz Event Grid i Durable Functions, które wykorzystują klucze systemowe do bezpiecznej interakcji z ich odpowiednimi interfejsami API.
> [!TIP]
> Przykład dostępu do punktu końcowego API funkcji za pomocą klucza:
@@ -96,7 +96,7 @@ Podczas tworzenia punktu końcowego wewnątrz funkcji za pomocą **wyzwalacza HT
### Podstawowa autoryzacja
Podobnie jak w App Services, Funkcje również obsługują podstawową autoryzację do łączenia się z **SCM** i **FTP** w celu wdrożenia kodu za pomocą **nazwa użytkownika i hasła w URL** dostarczonym przez Azure. Więcej informacji na ten temat w:
Podobnie jak w App Services, Funkcje również obsługują podstawową autoryzację do łączenia się z **SCM** i **FTP** w celu wdrożenia kodu za pomocą **nazwa użytkownika i hasło w URL** dostarczonym przez Azure. Więcej informacji na ten temat w:
{{#ref}}
az-app-services.md

View File

@@ -21,7 +21,7 @@ Możliwe jest wyświetlenie LogicApp w formie graficznej:
lub sprawdzenie kodu w sekcji "**Widok kodu aplikacji logicznej**".
### Ochrona SSRF
### Ochrona przed SSRF
Nawet jeśli znajdziesz **Logic App podatny na SSRF**, nie będziesz w stanie uzyskać dostępu do poświadczeń z metadanych, ponieważ Logic Apps na to nie pozwala.
@@ -148,10 +148,10 @@ Get-AzLogicAppTriggerHistory -ResourceGroupName "<ResourceGroupName>" -Name "<Lo
* Schematy: Zarządzaj schematami XML do walidacji i przetwarzania wiadomości w swoim koncie integracyjnym.
* Mapy: Konfiguruj transformacje oparte na XSLT, aby konwertować formaty danych w ramach swoich przepływów pracy integracyjnych.
* Zestawy: Zarządzaj zestawami konta integracyjnego, aby uprościć logikę i przetwarzanie danych.
* Zbiory: Zarządzaj zbiorami konta integracyjnego, aby uprościć logikę i przetwarzanie danych.
* Certyfikaty: Obsługuj certyfikaty do szyfrowania i podpisywania wiadomości, zapewniając bezpieczną komunikację.
* Partnerzy: Zarządzaj informacjami o partnerach handlowych dla transakcji B2B, umożliwiając płynne integracje.
* Umowy: Konfiguruj zasady i ustawienia wymiany danych z partnerami handlowymi (np. EDI, AS2).
* Umowy: Konfiguruj zasady i ustawienia dotyczące wymiany danych z partnerami handlowymi (np. EDI, AS2).
* Konfiguracje wsadowe: Zarządzaj konfiguracjami przetwarzania wsadowego, aby grupować i przetwarzać wiadomości efektywnie.
* RosettaNet PIP: Konfiguruj procesy interfejsu partnera RosettaNet (PIP) w celu standaryzacji komunikacji B2B.
@@ -283,7 +283,7 @@ Ucz się i ćwicz Hacking GCP: <img src="../../../.gitbook/assets/image (2) (1).
* Sprawdź [**plany subskrypcyjne**](https://github.com/sponsors/carlospolop)!
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
* **Dziel się trikami hackingowymi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów na githubie.
* **Dziel się trikami hackingowymi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów na GitHubie.
</details>
{% endhint %}

View File

@@ -6,19 +6,19 @@
Azure Service Bus to oparta na chmurze **usługa komunikacyjna**, zaprojektowana w celu umożliwienia niezawodnej **komunikacji między różnymi częściami aplikacji lub oddzielnymi aplikacjami**. Działa jako bezpieczny pośrednik, zapewniając, że wiadomości są bezpiecznie dostarczane, nawet jeśli nadawca i odbiorca nie działają jednocześnie. Dzięki odseparowaniu systemów, pozwala aplikacjom działać niezależnie, jednocześnie wymieniając dane lub instrukcje. Jest szczególnie przydatna w scenariuszach wymagających równoważenia obciążenia między wieloma pracownikami, niezawodnego dostarczania wiadomości lub złożonej koordynacji, takiej jak przetwarzanie zadań w kolejności lub bezpieczne zarządzanie dostępem.
### Kluczowe Koncepcje
### Kluczowe pojęcia
1. **Kolejki:** jej celem jest przechowywanie wiadomości, aż odbiorca będzie gotowy.
- Wiadomości są uporządkowane, opatrzone znacznikami czasu i trwale przechowywane.
- Dostarczane w trybie pull (na żądanie).
- Wspiera komunikację punkt-punkt.
2. **Tematy:** Komunikacja publish-subscribe do nadawania.
2. **Tematy:** komunikacja typu publish-subscribe do nadawania.
- Wiele niezależnych subskrypcji otrzymuje kopie wiadomości.
- Subskrypcje mogą mieć zasady/filtry do kontrolowania dostarczania lub dodawania metadanych.
- Wspiera komunikację wiele-do-wielu.
3. **Przestrzenie nazw:** Kontener dla wszystkich komponentów komunikacyjnych, kolejek i tematów, jest jak własny kawałek potężnego klastra Azure, zapewniający dedykowaną pojemność i opcjonalnie rozciągający się na trzy strefy dostępności.
### Zaawansowane Funkcje
### Zaawansowane funkcje
Niektóre zaawansowane funkcje to:
@@ -28,7 +28,7 @@ Niektóre zaawansowane funkcje to:
- **Zaplanuj dostawę**: Opóźnia przetwarzanie wiadomości na przyszłe zadania.
- **Odwlekanie wiadomości**: Opóźnia pobieranie wiadomości do momentu, gdy będzie to możliwe.
- **Transakcje**: Grupuje operacje w atomowe wykonanie.
- **Filtry i działania**: Stosuje zasady do filtrowania lub adnotacji wiadomości.
- **Filtry i akcje**: Stosuje zasady do filtrowania lub adnotacji wiadomości.
- **Auto-usuwanie w bezczynności**: Usuwa kolejki po braku aktywności (min: 5 minut).
- **Wykrywanie duplikatów**: Usuwa duplikaty wiadomości podczas ponownych wysyłek.
- **Usuwanie wsadowe**: Hurtowo usuwa wygasłe lub niepotrzebne wiadomości.

View File

@@ -172,9 +172,9 @@ Możesz znaleźć ładny przykład generowania aplikacji webowej pod tym linkiem
2. W portalu Azure utwórz Static Web App, konfigurując dostęp do GitHub i wybierając wcześniej forkowane nowe repozytorium
3. Utwórz je, poczekaj kilka minut i sprawdź swoją nową stronę!
## Eskalacja uprawnień i post eksploatacja
## Eskalacja uprawnień i post eksploitacja
Wszystkie informacje na temat eskalacji uprawnień i post eksploatacji w Azure Static Web Apps można znaleźć pod tym linkiem:
Wszystkie informacje na temat eskalacji uprawnień i post eksploitacji w Azure Static Web Apps można znaleźć pod tym linkiem:
{{#ref}}
../az-privilege-escalation/az-static-web-apps-privesc.md

View File

@@ -22,7 +22,7 @@
#### **Inne właściwości (Właściwości niestandardowe)**
- Oprócz PartitionKey i RowKey, encja może mieć dodatkowe **właściwości niestandardowe do przechowywania danych**. Są to właściwości zdefiniowane przez użytkownika i działają jak kolumny w tradycyjnej bazie danych.
- Oprócz PartitionKey i RowKey, encja może mieć dodatkowe **właściwości niestandardowe do przechowywania danych**. Są one definiowane przez użytkownika i działają jak kolumny w tradycyjnej bazie danych.
- Właściwości są przechowywane jako **pary klucz-wartość**.
- Przykład: `Name`, `Age`, `Title` mogą być właściwościami niestandardowymi dla pracownika.