mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-01-07 02:03:45 -08:00
Translated ['.github/pull_request_template.md', 'src/pentesting-cloud/az
This commit is contained in:
@@ -2,59 +2,56 @@
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Basic Information <a href="#reviewing-app-engine-configurations" id="reviewing-app-engine-configurations"></a>
|
||||
## Grundinformationen <a href="#reviewing-app-engine-configurations" id="reviewing-app-engine-configurations"></a>
|
||||
|
||||
Google Cloud Platform's (GCP) App Engine is a **robust, serverless platform tailored for the development and hosting of web applications on a large scale**. The design of this platform focuses on streamlining the development process and enhancing the manageability of applications. The key features and benefits of GCP's App Engine include:
|
||||
Die App Engine von Google Cloud Platform (GCP) ist eine **robuste, serverlose Plattform, die für die Entwicklung und das Hosting von Webanwendungen in großem Maßstab konzipiert ist**. Das Design dieser Plattform konzentriert sich darauf, den Entwicklungsprozess zu optimieren und die Verwaltung von Anwendungen zu verbessern. Die wichtigsten Funktionen und Vorteile der App Engine von GCP umfassen:
|
||||
|
||||
1. **Serverless Architecture**: App Engine automatically handles the infrastructure, including server provisioning, configuration, and scaling. This allows developers to focus on writing code without worrying about the underlying hardware.
|
||||
2. **Automatic Scaling**: App Engine can automatically scale your application in response to the amount of traffic it receives. It scales up to handle increased traffic and scales down when traffic decreases, helping optimize cost and performance.
|
||||
3. **Language and Runtime Support**: It supports popular programming languages such as Java, Python, Node.js, Go, Ruby, PHP, and .NET. You can run your applications in a standard or a flexible environment. The standard environment is more restrictive but highly optimized for specific languages, while the flexible environment allows for more customization.
|
||||
4. **Integrated Services**: App Engine integrates with many other GCP services, like Cloud SQL, Cloud Storage, Cloud Datastore, and more. This integration simplifies the architecture of cloud-based applications.
|
||||
5. **Versioning and Traffic Splitting**: You can easily deploy multiple versions of your application and then split traffic among them for A/B testing or gradual rollouts.
|
||||
6. **Application Insights**: App Engine provides built-in services such as logging, user authentication, and a suite of developer tools for monitoring and managing applications.
|
||||
7. **Security**: It offers built-in security features like application versioning, SSL/TLS certificates for secure connections, and identity and access management.
|
||||
1. **Serverlose Architektur**: Die App Engine verwaltet automatisch die Infrastruktur, einschließlich Serverbereitstellung, Konfiguration und Skalierung. Dies ermöglicht es Entwicklern, sich auf das Schreiben von Code zu konzentrieren, ohne sich um die zugrunde liegende Hardware kümmern zu müssen.
|
||||
2. **Automatische Skalierung**: Die App Engine kann Ihre Anwendung automatisch in Reaktion auf die Menge des empfangenen Traffics skalieren. Sie skaliert hoch, um erhöhten Traffic zu bewältigen, und skaliert herunter, wenn der Traffic abnimmt, was hilft, Kosten und Leistung zu optimieren.
|
||||
3. **Unterstützung von Programmiersprachen und Laufzeiten**: Sie unterstützt beliebte Programmiersprachen wie Java, Python, Node.js, Go, Ruby, PHP und .NET. Sie können Ihre Anwendungen in einer Standard- oder einer flexiblen Umgebung ausführen. Die Standardumgebung ist restriktiver, aber hochoptimiert für bestimmte Sprachen, während die flexible Umgebung mehr Anpassungsmöglichkeiten bietet.
|
||||
4. **Integrierte Dienste**: Die App Engine integriert sich mit vielen anderen GCP-Diensten, wie Cloud SQL, Cloud Storage, Cloud Datastore und mehr. Diese Integration vereinfacht die Architektur von cloudbasierten Anwendungen.
|
||||
5. **Versionierung und Traffic-Splitting**: Sie können mehrere Versionen Ihrer Anwendung einfach bereitstellen und den Traffic zwischen ihnen für A/B-Tests oder schrittweise Rollouts aufteilen.
|
||||
6. **Anwendungs-Insights**: Die App Engine bietet integrierte Dienste wie Protokollierung, Benutzerauthentifizierung und eine Suite von Entwicklerwerkzeugen zur Überwachung und Verwaltung von Anwendungen.
|
||||
7. **Sicherheit**: Sie bietet integrierte Sicherheitsfunktionen wie Anwendungs-Versionierung, SSL/TLS-Zertifikate für sichere Verbindungen und Identitäts- und Zugriffsmanagement.
|
||||
|
||||
### Firewall
|
||||
|
||||
A simple **firewall** can be configured for the instances running the Apps with the following options:
|
||||
Eine einfache **Firewall** kann für die Instanzen, die die Apps ausführen, mit den folgenden Optionen konfiguriert werden:
|
||||
|
||||
<figure><img src="../../../images/image (246).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
### SA
|
||||
|
||||
The default service account used by these Apps is **`<proj-name>@appspot.gserviceaccount.com`** which have **Editor** role over the project and the SAs inside APP Engine instance **runs with cloud-platform scope (among others).**
|
||||
Das standardmäßige Dienstkonto, das von diesen Apps verwendet wird, ist **`<proj-name>@appspot.gserviceaccount.com`**, das die **Editor**-Rolle über das Projekt hat und die SAs innerhalb der APP Engine-Instanz **mit cloud-platform-Bereich (unter anderem) ausgeführt werden.**
|
||||
|
||||
### Storage
|
||||
### Speicherung
|
||||
|
||||
The source code and metadata is **automatically stored in buckets** with names such as `<proj-id>.appspot.com` and `staging.<proj-id>.appspot.com` and `<country>.<proj-id>.appspot.com`
|
||||
Der Quellcode und die Metadaten werden **automatisch in Buckets** mit Namen wie `<proj-id>.appspot.com` und `staging.<proj-id>.appspot.com` und `<country>.<proj-id>.appspot.com` gespeichert.
|
||||
|
||||
**Every file** of the App is stored with the **sha1 of the content as filename**:
|
||||
**Jede Datei** der App wird mit dem **sha1 des Inhalts als Dateiname** gespeichert:
|
||||
|
||||
<figure><img src="../../../images/image (82).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Inside the **`ae`** folder from `staging.<proj-id>.appspot.com`, **one folder per version exist** with the **source code** files and **`manifest.json`** file that **describes the components** of the App:
|
||||
|
||||
Im **`ae`**-Ordner von `staging.<proj-id>.appspot.com` **existiert ein Ordner pro Version** mit den **Quellcode**-Dateien und der **`manifest.json`**-Datei, die **die Komponenten** der App beschreibt:
|
||||
```json
|
||||
{"requirements.txt":{"sourceUrl":"https://storage.googleapis.com/staging.onboarding-host-98efbf97812843.appspot.com/a270eedcbe2672c841251022b7105d340129d108","sha1Sum":"a270eedc_be2672c8_41251022_b7105d34_0129d108"},"main_test.py":{"sourceUrl":"https://storage.googleapis.com/staging.onboarding-host-98efbf97812843.appspot.com/0ca32fd70c953af94d02d8a36679153881943f32","sha1Sum":"0ca32fd7_0c953af9_4d02d8a ...
|
||||
```
|
||||
### Container
|
||||
|
||||
### Containers
|
||||
Die Webanwendung wird letztendlich **in einem Container ausgeführt** und **Code Build** wird verwendet, um den Container zu erstellen.
|
||||
|
||||
The web app will ultimately be **executed inside a container** and **Code Build** is used to build the container.
|
||||
### URLs & Regionen
|
||||
|
||||
### URLs & Regions
|
||||
Die **Standard**-Webseite wird unter der URL **`<project-uniq-name>.appspot.com`** verfügbar sein, obwohl die URL älterer Versionen leicht unterschiedlich sein wird, wie **`https://20240117t001540-dot-<project-uniq-name>.uc.r.appspot.com`** (beachten Sie den anfänglichen Zeitstempel).
|
||||
|
||||
The **default** web page will be exposed in the URL **`<project-uniq-name>.appspot.com`** although the URL of older versions will be slightly different, like **`https://20240117t001540-dot-<project-uniq-name>.uc.r.appspot.com`** (note the initial timestamp).
|
||||
Es könnte so aussehen, als wäre es nur möglich, 1 App Engine-Webanwendung pro Region bereitzustellen, aber es ist möglich, **`service: <servicename>`** in der **`app.yml`** anzugeben und einen neuen Dienst (ein neues Web) zu erstellen. Das Format der URL für dieses neue Web wird **`<servicename>-dot-<project-uniq-name>.appspot.com`** sein.
|
||||
|
||||
It might look like it's only possible to deploy 1 app engine web application per region, but it's possible to indicate **`service: <servicename>`** in the **`app.yml`** and create a new service (a new web). The format of the URL for this new web will be **`<servicename>-dot-<project-uniq-name>.appspot.com`**.
|
||||
|
||||
### Enumeration
|
||||
### Aufzählung
|
||||
|
||||
> [!CAUTION]
|
||||
> Every time you uploads a new code to the App, **a new version is created**. **All versions are stored** and they even have an **URL to access them**. So modifying the code of an old version could be a **great persistence technique**.
|
||||
|
||||
As with Cloud Functions, **there is a chance that the application will rely on secrets that are accessed at run-time via environment variables**. These variables are stored in an **`app.yaml`** file which can be accessed as follows:
|
||||
> Jedes Mal, wenn Sie neuen Code in die App hochladen, **wird eine neue Version erstellt**. **Alle Versionen werden gespeichert** und sie haben sogar eine **URL, um auf sie zuzugreifen**. Das Modifizieren des Codes einer alten Version könnte also eine **großartige Persistenztechnik** sein.
|
||||
|
||||
Wie bei Cloud Functions **besteht die Möglichkeit, dass die Anwendung auf Geheimnisse angewiesen ist, die zur Laufzeit über Umgebungsvariablen abgerufen werden**. Diese Variablen werden in einer **`app.yaml`**-Datei gespeichert, die wie folgt abgerufen werden kann:
|
||||
```bash
|
||||
# List the apps
|
||||
gcloud app services list
|
||||
@@ -89,33 +86,28 @@ gcloud app domain-mappings describe <name>
|
||||
gcloud app ssl-certificates list
|
||||
gcloud app ssl-certificates describe <name>
|
||||
```
|
||||
|
||||
### Privilege Escalation
|
||||
### Privilegieneskalation
|
||||
|
||||
{{#ref}}
|
||||
../gcp-privilege-escalation/gcp-appengine-privesc.md
|
||||
{{#endref}}
|
||||
|
||||
### Unauthenticated Enum
|
||||
### Unauthentifizierte Enumeration
|
||||
|
||||
{{#ref}}
|
||||
../gcp-unauthenticated-enum-and-access/gcp-app-engine-unauthenticated-enum.md
|
||||
{{#endref}}
|
||||
|
||||
### Post Exploitation
|
||||
### Nach der Ausnutzung
|
||||
|
||||
{{#ref}}
|
||||
../gcp-post-exploitation/gcp-app-engine-post-exploitation.md
|
||||
{{#endref}}
|
||||
|
||||
### Persistence
|
||||
### Persistenz
|
||||
|
||||
{{#ref}}
|
||||
../gcp-persistence/gcp-app-engine-persistence.md
|
||||
{{#endref}}
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user