Translated ['.github/pull_request_template.md', 'src/README.md', 'src/pe

This commit is contained in:
Translator
2025-01-02 00:01:28 +00:00
parent 4bcd54c1b6
commit c0ee8b41f2
215 changed files with 1371 additions and 1387 deletions

View File

@@ -4,14 +4,14 @@
## Grundinformationen
**Azure Function Apps** sind ein **serverloser Compute-Service**, der es Ihnen ermöglicht, kleine Codeabschnitte, die als **Funktionen** bezeichnet werden, auszuführen, ohne die zugrunde liegende Infrastruktur zu verwalten. Sie sind so konzipiert, dass sie Code als Reaktion auf verschiedene Trigger ausführen, wie z.B. **HTTP-Anfragen, Timer oder Ereignisse von anderen Azure-Diensten** wie Blob Storage oder Event Hubs. Function Apps unterstützen mehrere Programmiersprachen, darunter C#, Python, JavaScript und Java, was sie vielseitig für den Aufbau von **ereignisgesteuerten Anwendungen**, die Automatisierung von Workflows oder die Integration von Diensten macht. Sie sind kosteneffektiv, da Sie normalerweise nur für die Rechenzeit bezahlen, die verwendet wird, wenn Ihr Code ausgeführt wird.
**Azure Function Apps** sind ein **serverloser Compute-Dienst**, der es Ihnen ermöglicht, kleine Codeabschnitte, die als **Funktionen** bezeichnet werden, auszuführen, ohne die zugrunde liegende Infrastruktur zu verwalten. Sie sind so konzipiert, dass sie Code als Reaktion auf verschiedene Trigger ausführen, wie z.B. **HTTP-Anfragen, Timer oder Ereignisse von anderen Azure-Diensten** wie Blob Storage oder Event Hubs. Function Apps unterstützen mehrere Programmiersprachen, darunter C#, Python, JavaScript und Java, was sie vielseitig für den Aufbau von **ereignisgesteuerten Anwendungen**, die Automatisierung von Workflows oder die Integration von Diensten macht. Sie sind kosteneffektiv, da Sie normalerweise nur für die Rechenzeit bezahlen, die verwendet wird, wenn Ihr Code ausgeführt wird.
> [!NOTE]
> Beachten Sie, dass **Funktionen ein Teilmenge der App-Dienste** sind, daher werden viele der hier besprochenen Funktionen auch von Anwendungen verwendet, die als Azure Apps (`webapp` in cli) erstellt wurden.
> Beachten Sie, dass **Funktionen eine Teilmenge der App-Dienste sind**, daher werden viele der hier besprochenen Funktionen auch von Anwendungen verwendet, die als Azure Apps (`webapp` in cli) erstellt wurden.
### Verschiedene Pläne
- **Flex Consumption Plan**: Bietet **dynamisches, ereignisgesteuertes Skalieren** mit einer Pay-as-you-go-Preismodell, das das Hinzufügen oder Entfernen von Funktionsinstanzen basierend auf der Nachfrage ermöglicht. Es unterstützt **virtuelles Networking** und **vorab bereitgestellte Instanzen**, um Kaltstarts zu reduzieren, was es für **variable Workloads** geeignet macht, die keine Containerunterstützung erfordern.
- **Flex Consumption Plan**: Bietet **dynamisches, ereignisgesteuertes Skalieren** mit einer nutzungsabhängigen Preisgestaltung, wobei Funktionsinstanzen je nach Bedarf hinzugefügt oder entfernt werden. Es unterstützt **virtuelles Networking** und **vorab bereitgestellte Instanzen**, um Kaltstarts zu reduzieren, was es für **variable Workloads** geeignet macht, die keine Containerunterstützung benötigen.
- **Traditional Consumption Plan**: Die Standard-Serverless-Option, bei der Sie **nur für Rechenressourcen bezahlen, wenn Funktionen ausgeführt werden**. Es skaliert automatisch basierend auf eingehenden Ereignissen und umfasst **Optimierungen für Kaltstarts**, unterstützt jedoch keine Containerbereitstellungen. Ideal für **intermittierende Workloads**, die automatisches Skalieren erfordern.
- **Premium Plan**: Entwickelt für **konstante Leistung**, mit **vorwärmenden Arbeitern**, um Kaltstarts zu eliminieren. Es bietet **erweiterte Ausführungszeiten, virtuelles Networking** und unterstützt **benutzerdefinierte Linux-Images**, was es perfekt für **geschäftskritische Anwendungen** macht, die hohe Leistung und erweiterte Funktionen benötigen.
- **Dedicated Plan**: Läuft auf dedizierten virtuellen Maschinen mit **vorhersehbarer Abrechnung** und unterstützt manuelles oder automatisches Skalieren. Es ermöglicht das Ausführen mehrerer Apps im selben Plan, bietet **Rechenisolierung** und gewährleistet **sicheren Netzwerkzugang** über App Service Environments, was es ideal für **langfristige Anwendungen** macht, die eine konsistente Ressourcenzuteilung benötigen.
@@ -30,7 +30,7 @@ Darüber hinaus wird durch das Ändern des Codes im Bucket (in den verschiedenen
Es ist auch möglich, die **Master- und Funktionsschlüssel** im Speicherkonto im Container **`azure-webjobs-secrets`** im Ordner **`<app-name>`** in den JSON-Dateien zu finden, die Sie dort finden können.
Beachten Sie, dass Funktionen auch die Möglichkeit bieten, den Code an einem entfernten Ort zu speichern, indem Sie einfach die URL dazu angeben.
Beachten Sie, dass Funktionen auch erlauben, den Code an einem entfernten Ort zu speichern, indem einfach die URL angegeben wird.
### Networking
@@ -40,7 +40,7 @@ Bei Verwendung eines HTTP-Triggers:
- Es ist auch möglich, **Zugriff zu gewähren oder einzuschränken** auf eine Function App von **einem internen Netzwerk (VPC)**.
> [!CAUTION]
> Dies ist aus der Perspektive eines Angreifers sehr interessant, da es möglich sein könnte, **auf interne Netzwerke zu pivotieren** von einer verwundbaren Funktion, die dem Internet ausgesetzt ist.
> Dies ist aus der Perspektive eines Angreifers sehr interessant, da es möglich sein könnte, von einer verwundbaren Funktion, die dem Internet ausgesetzt ist, zu **internen Netzwerken zu pivotieren**.
### **Function App-Einstellungen & Umgebungsvariablen**
@@ -61,11 +61,11 @@ Genau wie [**VMs**](vms/), können Funktionen **verwaltete Identitäten** von 2
Die **systemzugewiesene** Identität ist eine verwaltete Identität, die **nur die Funktion**, die sie zugewiesen hat, verwenden kann, während die **benutzerzugewiesenen** verwalteten Identitäten verwaltete Identitäten sind, die **von jedem anderen Azure-Dienst verwendet werden können**.
> [!NOTE]
> Genau wie bei [**VMs**](vms/) können Funktionen **1 systemzugewiesene** verwaltete Identität und **mehrere benutzerzugewiesene** haben, daher ist es immer wichtig, alle zu finden, wenn Sie die Funktion kompromittieren, da Sie möglicherweise Berechtigungen für mehrere verwaltete Identitäten von nur einer Funktion eskalieren können.
> Genau wie bei [**VMs**](vms/) können Funktionen **1 systemzugewiesene** verwaltete Identität und **mehrere benutzerzugewiesene** haben, daher ist es immer wichtig, zu versuchen, alle zu finden, wenn Sie die Funktion kompromittieren, da Sie möglicherweise Berechtigungen für mehrere verwaltete Identitäten von nur einer Funktion eskalieren können.
>
> Wenn keine systemzugewiesene verwaltete Identität verwendet wird, aber eine oder mehrere benutzerverwaltete Identitäten an eine Funktion angehängt sind, können Sie standardmäßig kein Token erhalten.
> Wenn keine systemverwaltete Identität verwendet wird, aber eine oder mehrere benutzerverwaltete Identitäten an eine Funktion angehängt sind, können Sie standardmäßig kein Token erhalten.
Es ist möglich, die [**PEASS-Skripte**](https://github.com/peass-ng/PEASS-ng) zu verwenden, um Token von der standardmäßigen verwalteten Identität vom Metadaten-Endpunkt zu erhalten. Oder Sie könnten sie **manuell** erhalten, wie in:
Es ist möglich, die [**PEASS-Skripte**](https://github.com/peass-ng/PEASS-ng) zu verwenden, um Tokens von der standardmäßigen verwalteten Identität vom Metadaten-Endpunkt zu erhalten. Oder Sie könnten sie **manuell** erhalten, wie in:
{% embed url="https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf#azure-vm" %}
@@ -96,7 +96,7 @@ Beim Erstellen eines Endpunkts innerhalb einer Funktion mit einem **HTTP-Trigger
### Basis-Authentifizierung
Genau wie in App-Diensten unterstützen Funktionen auch die Basis-Authentifizierung, um sich mit **SCM** und **FTP** zu verbinden, um Code mit einem **Benutzernamen und Passwort in einer URL** bereitzustellen, die von Azure bereitgestellt wird. Weitere Informationen dazu finden Sie in:
Genau wie bei App-Diensten unterstützen Funktionen auch die Basis-Authentifizierung, um sich mit **SCM** und **FTP** zu verbinden, um Code mit einem **Benutzernamen und Passwort in einer URL** bereitzustellen, die von Azure bereitgestellt wird. Weitere Informationen dazu finden Sie in:
{{#ref}}
az-app-service.md
@@ -104,7 +104,7 @@ az-app-service.md
### Github-basierte Bereitstellungen
Wenn eine Funktion aus einem Github-Repo generiert wird, ermöglicht die Azure-Webkonsole das **automatische Erstellen eines Github-Workflows in einem bestimmten Repository**, sodass der Code der Funktion aktualisiert wird, wenn dieses Repository aktualisiert wird. Tatsächlich sieht die Github Action YAML für eine Python-Funktion so aus:
Wenn eine Funktion aus einem Github-Repo generiert wird, ermöglicht die Azure-Webkonsole, **automatisch einen Github-Workflow in einem bestimmten Repository zu erstellen**, sodass der Code der Funktion aktualisiert wird, wenn dieses Repository aktualisiert wird. Tatsächlich sieht die Github Action YAML für eine Python-Funktion so aus:
<details>
@@ -199,9 +199,9 @@ Darüber hinaus wird eine **Managed Identity** erstellt, damit die Github Action
### Containerbasierte Bereitstellungen
Nicht alle Pläne erlauben die Bereitstellung von Containern, aber für die, die es tun, enthält die Konfiguration die URL des Containers. In der API wird die **`linuxFxVersion`**-Einstellung etwas wie folgt haben: `DOCKER|mcr.microsoft.com/...`, während in der Webkonsole die Konfiguration die **Bildeinstellungen** anzeigen wird.
Nicht alle Pläne erlauben die Bereitstellung von Containern, aber für die, die es tun, enthält die Konfiguration die URL des Containers. In der API wird die **`linuxFxVersion`**-Einstellung etwas wie `DOCKER|mcr.microsoft.com/...` haben, während in der Webkonsole die Konfiguration die **Bildeinstellungen** anzeigen wird.
Darüber hinaus **wird kein Quellcode im Speicherkonto** gespeichert, das mit der Funktion verbunden ist, da dies nicht erforderlich ist.
Darüber hinaus wird **kein Quellcode im Speicher**-Konto gespeichert, das mit der Funktion verbunden ist, da dies nicht erforderlich ist.
## Enumeration
```bash
@@ -249,7 +249,7 @@ curl "https://newfuncttest123.azurewebsites.net/admin/vfs/home/site/wwwroot/func
# Get source code
az rest --url "https://management.azure.com/<subscription>/resourceGroups/<res-group>/providers/Microsoft.Web/sites/<app-name>/hostruntime/admin/vfs/function_app.py?relativePath=1&api-version=2022-03-01"
```
## Privilegienausweitung
## Privilegienausnutzung
{{#ref}}
../az-privilege-escalation/az-functions-app-privesc.md