From 72e7263f597e608194709fb5308e62b99ebc3484 Mon Sep 17 00:00:00 2001 From: Translator Date: Tue, 11 Feb 2025 17:14:55 +0000 Subject: [PATCH] Translated ['src/pentesting-cloud/aws-security/aws-basic-information/REA --- .../aws-basic-information/README.md | 56 +++++++++---------- .../aws-cloudtrail-enum.md | 34 +++++------ .../aws-cloudwatch-enum.md | 48 ++++++++-------- .../az-file-share-post-exploitation.md | 2 +- .../az-logic-apps-post-exploitation.md | 2 +- .../az-mysql-post-exploitation.md | 4 +- .../az-postgresql-post-exploitation.md | 4 +- .../az-sql-post-exploitation.md | 4 +- .../az-cosmosDB-privesc.md | 2 +- .../az-functions-app-privesc.md | 18 +++--- .../az-key-vault-privesc.md | 10 ++++ .../az-postgresql-privesc.md | 4 +- .../az-servicebus-privesc.md | 4 +- .../az-privilege-escalation/az-sql-privesc.md | 12 ++-- .../az-storage-privesc.md | 8 +-- .../azure-security/az-services/az-azuread.md | 16 +++--- .../az-services/az-cloud-shell.md | 4 +- .../azure-security/az-services/az-cosmosDB.md | 6 +- .../az-services/az-file-shares.md | 2 +- .../az-services/az-function-apps.md | 34 +++++------ .../az-services/az-logic-apps.md | 10 ++-- .../azure-security/az-services/az-mysql.md | 12 ++-- .../az-services/az-postgresql.md | 4 +- .../az-services/az-queue-enum.md | 2 +- .../az-services/az-servicebus-enum.md | 10 ++-- .../azure-security/az-services/vms/README.md | 26 ++++----- .../az-services/vms/az-azure-network.md | 24 ++++---- .../kubernetes-securitycontext-s.md | 32 +++++------ 28 files changed, 202 insertions(+), 192 deletions(-) diff --git a/src/pentesting-cloud/aws-security/aws-basic-information/README.md b/src/pentesting-cloud/aws-security/aws-basic-information/README.md index c8043a45e..7a572e411 100644 --- a/src/pentesting-cloud/aws-security/aws-basic-information/README.md +++ b/src/pentesting-cloud/aws-security/aws-basic-information/README.md @@ -20,7 +20,7 @@ Daher gibt es **zwei Arten von Konten in einer Organisation** (wir sprechen von - Andere bestehende Konten zur Organisation einladen - Konten aus der Organisation entfernen - Einladungen verwalten -- Richtlinien auf Entitäten (Wurzeln, OUs oder Konten) innerhalb der Organisation anwenden +- Richtlinien auf Entitäten (Roots, OUs oder Konten) innerhalb der Organisation anwenden - Die Integration mit unterstützten AWS-Diensten aktivieren, um die Funktionalität über alle Konten in der Organisation bereitzustellen. - Es ist möglich, sich als Root-Benutzer mit der E-Mail-Adresse und dem Passwort anzumelden, die zum Erstellen dieses Root-Kontos/Organisation verwendet wurden. @@ -31,9 +31,9 @@ Das Verwaltungskonto hat die **Verantwortlichkeiten eines Zahlungskontos** und i ``` aws organizations create-account --account-name testingaccount --email testingaccount@lalala1233fr.com ``` -### **Organisationseinheiten** +### **Organisations-Einheiten** -Accounts können in **Organisationseinheiten (OU)** gruppiert werden. Auf diese Weise können Sie **Richtlinien** für die Organisationseinheit erstellen, die auf **alle untergeordneten Konten angewendet werden**. Beachten Sie, dass eine OU andere OUs als Kinder haben kann. +Accounts können in **Organisations-Einheiten (OU)** gruppiert werden. Auf diese Weise können Sie **Richtlinien** für die Organisations-Einheit erstellen, die auf **alle untergeordneten Accounts angewendet werden**. Beachten Sie, dass eine OU andere OUs als Kinder haben kann. ```bash # You can get the root id from aws organizations list-roots aws organizations create-organizational-unit --parent-id r-lalala --name TestOU @@ -68,7 +68,7 @@ Finden Sie **JSON-Beispiele** in [https://docs.aws.amazon.com/organizations/late ### ARN -**Amazon Resource Name** ist der **einzigartige Name**, den jede Ressource innerhalb von AWS hat, er setzt sich wie folgt zusammen: +**Amazon Resource Name** ist der **eindeutige Name**, den jede Ressource innerhalb von AWS hat, er setzt sich wie folgt zusammen: ``` arn:partition:service:region:account-id:resource-type/resource-id arn:aws:elasticbeanstalk:us-west-1:123456789098:environment/App/Env @@ -92,17 +92,17 @@ IAM kann durch seine Fähigkeit definiert werden, Authentifizierungs-, Autorisie ### [AWS account root user](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html) -Wenn Sie zum ersten Mal ein Amazon Web Services (AWS) Konto erstellen, beginnen Sie mit einer einzigen Anmeldedaten, die **vollständigen Zugriff auf alle** AWS-Dienste und -Ressourcen im Konto hat. Dies ist der AWS-Konto _**Root-Benutzer**_ und wird durch die Anmeldung mit der **E-Mail-Adresse und dem Passwort, die Sie zur Erstellung des Kontos verwendet haben**, aufgerufen. +Wenn Sie zum ersten Mal ein Amazon Web Services (AWS) Konto erstellen, beginnen Sie mit einer einzigen Anmeldeidentität, die **vollständigen Zugriff auf alle** AWS-Dienste und -Ressourcen im Konto hat. Dies ist der _**Root-Benutzer**_ des AWS-Kontos und wird durch die Anmeldung mit der **E-Mail-Adresse und dem Passwort, die Sie zur Erstellung des Kontos verwendet haben**, aufgerufen. Beachten Sie, dass ein neuer **Admin-Benutzer** **weniger Berechtigungen als der Root-Benutzer** hat. -Aus sicherheitstechnischer Sicht wird empfohlen, andere Benutzer zu erstellen und diesen zu vermeiden. +Aus sicherheitstechnischer Sicht wird empfohlen, andere Benutzer zu erstellen und diesen nicht zu verwenden. ### [IAM users](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html) Ein IAM _Benutzer_ ist eine Entität, die Sie in AWS erstellen, um **die Person oder Anwendung** zu **repräsentieren, die damit interagiert**. Ein Benutzer in AWS besteht aus einem Namen und Anmeldeinformationen (Passwort und bis zu zwei Zugriffsschlüssel). -Wenn Sie einen IAM-Benutzer erstellen, gewähren Sie ihm **Berechtigungen**, indem Sie ihn zu einer **Benutzergruppe** machen, die geeignete Berechtigungspolicen angehängt hat (empfohlen), oder indem Sie **direkt Richtlinien** an den Benutzer anhängen. +Wenn Sie einen IAM-Benutzer erstellen, gewähren Sie ihm **Berechtigungen**, indem Sie ihn zu einer **Benutzergruppe** machen, die geeignete Berechtigungspolicen angehängt hat (empfohlen), oder indem Sie **Richtlinien direkt** an den Benutzer anhängen. Benutzer können **MFA aktivieren, um sich** über die Konsole anzumelden. API-Token von MFA-aktivierten Benutzern sind nicht durch MFA geschützt. Wenn Sie den **Zugriff der API-Schlüssel eines Benutzers mit MFA einschränken** möchten, müssen Sie in der Richtlinie angeben, dass für die Ausführung bestimmter Aktionen MFA vorhanden sein muss (Beispiel [**hier**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html)). @@ -117,7 +117,7 @@ _Einen neuen Zugriffsschlüssel erstellen -> Den neuen Schlüssel auf das System ### MFA - Multi Factor Authentication Es wird verwendet, um **einen zusätzlichen Faktor für die Authentifizierung** zusätzlich zu Ihren bestehenden Methoden, wie Passwort, zu erstellen und somit ein mehrstufiges Authentifizierungsniveau zu schaffen.\ -Sie können eine **kostenlose virtuelle Anwendung oder ein physisches Gerät** verwenden. Sie können Apps wie Google Authenticator kostenlos verwenden, um ein MFA in AWS zu aktivieren. +Sie können eine **kostenlose virtuelle Anwendung oder ein physisches Gerät** verwenden. Sie können Apps wie Google Authenticator kostenlos verwenden, um MFA in AWS zu aktivieren. Richtlinien mit MFA-Bedingungen können an Folgendes angehängt werden: @@ -143,7 +143,7 @@ Hier sind einige wichtige Merkmale von Benutzergruppen: - Eine Benutzer **gruppe** kann **viele Benutzer** enthalten, und ein **Benutzer** kann **zu mehreren Gruppen** gehören. - **Benutzergruppen können nicht geschachtelt** werden; sie können nur Benutzer, nicht andere Benutzergruppen enthalten. - Es gibt **keine Standardbenutzergruppe, die automatisch alle Benutzer im AWS-Konto** umfasst. Wenn Sie eine solche Benutzergruppe haben möchten, müssen Sie sie erstellen und jeden neuen Benutzer ihr zuweisen. -- Die Anzahl und Größe der IAM-Ressourcen in einem AWS-Konto, wie die Anzahl der Gruppen und die Anzahl der Gruppen, denen ein Benutzer angehören kann, sind begrenzt. Weitere Informationen finden Sie unter [IAM- und AWS STS-Quoten](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html). +- Die Anzahl und Größe der IAM-Ressourcen in einem AWS-Konto, wie die Anzahl der Gruppen und die Anzahl der Gruppen, denen ein Benutzer angehören kann, sind begrenzt. Weitere Informationen finden Sie unter [IAM und AWS STS-Quoten](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html). ### [IAM-Rollen](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) @@ -153,11 +153,11 @@ Eine IAM-Rolle besteht aus **zwei Arten von Richtlinien**: einer **Vertrauensric #### AWS Security Token Service (STS) -AWS Security Token Service (STS) ist ein Webdienst, der die **Ausstellung von temporären, eingeschränkten Anmeldeinformationen** erleichtert. Er ist speziell auf folgende Zwecke zugeschnitten: +AWS Security Token Service (STS) ist ein Webdienst, der die **Ausstellung von temporären, eingeschränkten Berechtigungsnachweisen** erleichtert. Er ist speziell auf folgende Aspekte zugeschnitten: -### [Temporäre Anmeldeinformationen in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) +### [Temporäre Berechtigungsnachweise in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) -**Temporäre Anmeldeinformationen werden hauptsächlich mit IAM-Rollen verwendet**, es gibt jedoch auch andere Verwendungszwecke. Sie können temporäre Anmeldeinformationen anfordern, die über einen eingeschränkteren Satz von Berechtigungen verfügen als Ihr standardmäßiger IAM-Benutzer. Dies **verhindert**, dass Sie **versehentlich Aufgaben ausführen, die nicht erlaubt sind** durch die eingeschränkten Anmeldeinformationen. Ein Vorteil von temporären Anmeldeinformationen ist, dass sie automatisch nach einer festgelegten Zeit ablaufen. Sie haben die Kontrolle über die Dauer, für die die Anmeldeinformationen gültig sind. +**Temporäre Berechtigungsnachweise werden hauptsächlich mit IAM-Rollen verwendet**, es gibt jedoch auch andere Verwendungen. Sie können temporäre Berechtigungsnachweise anfordern, die über einen eingeschränkten Satz von Berechtigungen verfügen als Ihr standardmäßiger IAM-Benutzer. Dies **verhindert**, dass Sie **versehentlich Aufgaben ausführen, die nicht erlaubt sind** durch die eingeschränkten Berechtigungsnachweise. Ein Vorteil temporärer Berechtigungsnachweise ist, dass sie automatisch nach einer festgelegten Zeitspanne ablaufen. Sie haben die Kontrolle über die Dauer, für die die Berechtigungsnachweise gültig sind. ### Richtlinien @@ -166,10 +166,10 @@ AWS Security Token Service (STS) ist ein Webdienst, der die **Ausstellung von te Werden verwendet, um Berechtigungen zuzuweisen. Es gibt 2 Arten: - AWS verwaltete Richtlinien (vorkonfiguriert von AWS) -- Kundenverwaltete Richtlinien: Von Ihnen konfiguriert. Sie können Richtlinien basierend auf AWS verwalteten Richtlinien erstellen (eine davon ändern und Ihre eigene erstellen), den Richtliniengenerator verwenden (eine GUI-Ansicht, die Ihnen hilft, Berechtigungen zu gewähren und zu verweigern) oder Ihre eigenen schreiben. +- Kundenverwaltete Richtlinien: Von Ihnen konfiguriert. Sie können Richtlinien basierend auf AWS verwalteten Richtlinien erstellen (eine von ihnen ändern und Ihre eigene erstellen), den Richtliniengenerator verwenden (eine GUI-Ansicht, die Ihnen hilft, Berechtigungen zu gewähren und zu verweigern) oder Ihre eigenen schreiben. Standardmäßig ist der Zugriff **verweigert**, der Zugriff wird gewährt, wenn eine explizite Rolle angegeben wurde.\ -Wenn **einzelne "Deny" existiert, wird sie das "Allow" überschreiben**, mit Ausnahme von Anfragen, die die Root-Sicherheitsanmeldeinformationen des AWS-Kontos verwenden (die standardmäßig erlaubt sind). +Wenn **einzelne "Deny" existiert, wird es das "Allow" überschreiben**, mit Ausnahme von Anfragen, die die Root-Sicherheitsanmeldeinformationen des AWS-Kontos verwenden (die standardmäßig erlaubt sind). ```javascript { "Version": "2012-10-17", //Version of the policy @@ -198,7 +198,7 @@ Die [spezifischen Felder, die für Bedingungen pro Dienst verwendet werden könn #### Inline-Richtlinien Diese Art von Richtlinien wird **direkt einem Benutzer, einer Gruppe oder einer Rolle zugewiesen**. Daher erscheinen sie nicht in der Richtlinienliste, da sie von niemand anderem verwendet werden können.\ -Inline-Richtlinien sind nützlich, wenn Sie eine **strikte Eins-zu-eins-Beziehung zwischen einer Richtlinie und der Identität, auf die sie angewendet wird, aufrechterhalten möchten**. Zum Beispiel möchten Sie sicherstellen, dass die Berechtigungen in einer Richtlinie nicht versehentlich einer anderen Identität zugewiesen werden, als der, für die sie bestimmt sind. Wenn Sie eine Inline-Richtlinie verwenden, können die Berechtigungen in der Richtlinie nicht versehentlich der falschen Identität zugeordnet werden. Darüber hinaus werden die in der Identität eingebetteten Richtlinien gelöscht, wenn Sie die AWS Management Console verwenden, um diese Identität zu löschen. Das liegt daran, dass sie Teil der Hauptentität sind. +Inline-Richtlinien sind nützlich, wenn Sie eine **strikte Eins-zu-eins-Beziehung zwischen einer Richtlinie und der Identität** aufrechterhalten möchten, auf die sie angewendet wird. Zum Beispiel möchten Sie sicherstellen, dass die Berechtigungen in einer Richtlinie nicht versehentlich einer anderen Identität zugewiesen werden, als der, für die sie bestimmt sind. Wenn Sie eine Inline-Richtlinie verwenden, können die Berechtigungen in der Richtlinie nicht versehentlich der falschen Identität zugeordnet werden. Darüber hinaus werden die in der Identität eingebetteten Richtlinien gelöscht, wenn Sie die AWS Management Console verwenden, um diese Identität zu löschen. Das liegt daran, dass sie Teil der Hauptentität sind. #### Ressourcen-Bucket-Richtlinien @@ -208,17 +208,17 @@ Wenn eine Hauptentität keine ausdrückliche Ablehnung auf ihnen hat und eine Re ### IAM-Grenzen -IAM-Grenzen können verwendet werden, um **die Berechtigungen, auf die ein Benutzer oder eine Rolle Zugriff haben sollte, einzuschränken**. Auf diese Weise wird die Operation **fehlschlagen**, wenn dem Benutzer durch eine **andere Richtlinie** ein anderes Berechtigungsset gewährt wird und er versucht, diese zu verwenden. +IAM-Grenzen können verwendet werden, um **die Berechtigungen, auf die ein Benutzer oder eine Rolle Zugriff haben sollte, einzuschränken**. Auf diese Weise wird die Operation **fehlschlagen**, selbst wenn ein anderes Set von Berechtigungen dem Benutzer durch eine **andere Richtlinie** gewährt wird, wenn er versucht, sie zu verwenden. -Eine Grenze ist einfach eine Richtlinie, die einem Benutzer angehängt ist und **das maximale Niveau der Berechtigungen angibt, die der Benutzer oder die Rolle haben kann**. Selbst wenn der Benutzer Administratorzugriff hat, wenn die Grenze angibt, dass er nur S· Buckets lesen kann, ist das das Maximum, was er tun kann. +Eine Grenze ist einfach eine Richtlinie, die einem Benutzer angehängt ist und **das maximale Niveau der Berechtigungen angibt, das der Benutzer oder die Rolle haben kann**. Selbst wenn der Benutzer Administratorzugriff hat, wenn die Grenze angibt, dass er nur S· Buckets lesen kann, ist das das Maximum, was er tun kann. **Dies**, **SCPs** und **die Einhaltung des Prinzips der minimalen Berechtigung** sind die Möglichkeiten, um zu kontrollieren, dass Benutzer nicht mehr Berechtigungen haben, als sie benötigen. ### Sitzungsrichtlinien -Eine Sitzungsrichtlinie ist eine **Richtlinie, die gesetzt wird, wenn eine Rolle angenommen wird**. Dies wird wie eine **IAM-Grenze für diese Sitzung** sein: Das bedeutet, dass die Sitzungsrichtlinie keine Berechtigungen gewährt, sondern **sie auf die in der Richtlinie angegebenen einschränkt** (wobei die maximalen Berechtigungen die sind, die die Rolle hat). +Eine Sitzungsrichtlinie ist eine **Richtlinie, die festgelegt wird, wenn eine Rolle angenommen wird**. Dies wird wie eine **IAM-Grenze für diese Sitzung** sein: Das bedeutet, dass die Sitzungsrichtlinie keine Berechtigungen gewährt, sondern **sie auf die in der Richtlinie angegebenen beschränkt** (wobei die maximalen Berechtigungen die sind, die die Rolle hat). -Dies ist nützlich für **Sicherheitsmaßnahmen**: Wenn ein Administrator eine sehr privilegierte Rolle annehmen möchte, könnte er die Berechtigungen auf nur die in der Sitzungsrichtlinie angegebenen einschränken, falls die Sitzung kompromittiert wird. +Dies ist nützlich für **Sicherheitsmaßnahmen**: Wenn ein Administrator eine sehr privilegierte Rolle annehmen möchte, könnte er die Berechtigungen auf nur die in der Sitzungsrichtlinie angegebenen beschränken, falls die Sitzung kompromittiert wird. ```bash aws sts assume-role \ --role-arn \ @@ -228,16 +228,16 @@ aws sts assume-role \ ``` Beachten Sie, dass **AWS standardmäßig Sitzungsrichtlinien zu Sitzungen hinzufügen kann**, die aus anderen Gründen generiert werden. Zum Beispiel wird in [unauthentifizierten Cognito-angenommenen Rollen](../aws-services/aws-cognito-enum/cognito-identity-pools.md#accessing-iam-roles) standardmäßig (unter Verwendung verbesserter Authentifizierung) von AWS **Sitzungsanmeldeinformationen mit einer Sitzungsrichtlinie** generiert, die die Dienste einschränkt, auf die die Sitzung zugreifen kann [**auf die folgende Liste**](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#access-policies-scope-down-services). -Wenn Sie also irgendwann den Fehler "... weil keine Sitzungsrichtlinie dies erlaubt ..." erhalten und die Rolle Zugriff auf die Aktion hat, liegt es daran, dass **eine Sitzungsrichtlinie dies verhindert**. +Wenn Sie also irgendwann den Fehler "... weil keine Sitzungsrichtlinie den ... erlaubt" erhalten und die Rolle Zugriff auf die Aktion hat, liegt es daran, dass **eine Sitzungsrichtlinie dies verhindert**. ### Identitätsföderation Die Identitätsföderation **ermöglicht Benutzern von Identitätsanbietern, die extern** zu AWS sind, sicher auf AWS-Ressourcen zuzugreifen, ohne AWS-Benutzeranmeldeinformationen eines gültigen IAM-Benutzerkontos angeben zu müssen.\ Ein Beispiel für einen Identitätsanbieter kann Ihr eigenes Unternehmens-**Microsoft Active Directory** (über **SAML**) oder **OpenID**-Dienste (wie **Google**) sein. Der föderierte Zugriff ermöglicht es dann den Benutzern innerhalb davon, auf AWS zuzugreifen. -Um dieses Vertrauen zu konfigurieren, wird ein **IAM-Identitätsanbieter (SAML oder OAuth)** erstellt, der die **andere Plattform** **vertraut**. Dann wird mindestens eine **IAM-Rolle (vertrauend) dem Identitätsanbieter zugewiesen**. Wenn ein Benutzer von der vertrauenswürdigen Plattform auf AWS zugreift, greift er als die genannte Rolle zu. +Um dieses Vertrauen zu konfigurieren, wird ein **IAM-Identitätsanbieter (SAML oder OAuth)** generiert, der die **andere Plattform** **vertraut**. Dann wird mindestens eine **IAM-Rolle (vertrauend) dem Identitätsanbieter zugewiesen**. Wenn ein Benutzer von der vertrauenswürdigen Plattform auf AWS zugreift, greift er als die genannte Rolle zu. -Sie möchten jedoch normalerweise eine **andere Rolle je nach Gruppe des Benutzers** auf der Drittanbieterplattform vergeben. Dann können mehrere **IAM-Rollen** dem Drittanbieter-Identitätsanbieter vertrauen, und die Drittanbieterplattform wird diejenige sein, die es den Benutzern ermöglicht, eine Rolle oder die andere zu übernehmen. +Allerdings möchten Sie normalerweise **eine andere Rolle je nach Gruppe des Benutzers** auf der Drittanbieterplattform vergeben. Dann können mehrere **IAM-Rollen dem Drittanbieter-Identitätsanbieter vertrauen**, und die Drittanbieterplattform wird diejenige sein, die es den Benutzern ermöglicht, eine Rolle oder die andere zu übernehmen.
@@ -249,7 +249,7 @@ Die Anmeldedomäne wird etwas sein wie `.awsapps.com`. Um Benutzer anzumelden, gibt es 3 Identitätsquellen, die verwendet werden können: -- Identity Center-Verzeichnis: Reguläre AWS-Benutzer +- Identity Center Directory: Reguläre AWS-Benutzer - Active Directory: Unterstützt verschiedene Connectoren - Externer Identitätsanbieter: Alle Benutzer und Gruppen stammen von einem externen Identitätsanbieter (IdP) @@ -267,7 +267,7 @@ Daher bedeutet es nicht, dass, selbst wenn Sie 2 Rollen mit einer Inline-Richtli ### Cross Account Trusts und Rollen -**Ein Benutzer** (vertrauend) kann eine Cross-Account-Rolle mit einigen Richtlinien erstellen und dann **einem anderen Benutzer** (vertrauenswürdig) erlauben, **auf sein Konto zuzugreifen**, jedoch nur **mit dem Zugriff, der in den neuen Rollrichtlinien angegeben ist**. Um dies zu erstellen, erstellen Sie einfach eine neue Rolle und wählen Sie Cross-Account-Rolle aus. Rollen für den Cross-Account-Zugriff bieten zwei Optionen. Bereitstellung des Zugriffs zwischen AWS-Konten, die Sie besitzen, und Bereitstellung des Zugriffs zwischen einem Konto, das Sie besitzen, und einem Drittanbieter-AWS-Konto.\ +**Ein Benutzer** (vertrauend) kann eine Cross-Account-Rolle mit einigen Richtlinien erstellen und dann **einem anderen Benutzer** (vertrauenswürdig) **den Zugriff auf sein Konto erlauben**, jedoch nur **mit dem Zugriff, der in den neuen Rollrichtlinien angegeben ist**. Um dies zu erstellen, erstellen Sie einfach eine neue Rolle und wählen Sie Cross-Account-Rolle aus. Rollen für den Cross-Account-Zugriff bieten zwei Optionen. Bereitstellung des Zugriffs zwischen AWS-Konten, die Sie besitzen, und Bereitstellung des Zugriffs zwischen einem Konto, das Sie besitzen, und einem Drittanbieter-AWS-Konto.\ Es wird empfohlen, **den Benutzer, der vertraut ist, anzugeben und nichts Allgemeines zu verwenden**, da sonst andere authentifizierte Benutzer wie föderierte Benutzer dieses Vertrauen ebenfalls missbrauchen können. ### AWS Simple AD @@ -289,9 +289,9 @@ Die App verwendet die AssumeRoleWithWebIdentity, um temporäre Anmeldeinformatio ### Weitere IAM-Optionen - Sie können **eine Passwortrichtlinieneinstellung** mit Optionen wie Mindestlänge und Passwortanforderungen festlegen. -- Sie können **einen "Credential Report" herunterladen**, der Informationen über aktuelle Anmeldeinformationen enthält (wie Erstellungszeit des Benutzers, ob das Passwort aktiviert ist...). Sie können einen Berechtigungsbericht so oft wie einmal alle **vier Stunden** generieren. +- Sie können **einen "Credential Report" herunterladen**, der Informationen über aktuelle Anmeldeinformationen enthält (wie Benutzererstellungszeit, ob das Passwort aktiviert ist...). Sie können einen Berechtigungsbericht so oft wie einmal alle **vier Stunden** generieren. -AWS Identity and Access Management (IAM) bietet **fein abgestufte Zugriffskontrolle** über alle AWS-Dienste. Mit IAM können Sie festlegen, **wer auf welche Dienste und Ressourcen zugreifen kann** und unter welchen Bedingungen. Mit IAM-Richtlinien verwalten Sie Berechtigungen für Ihre Mitarbeiter und Systeme, um **die geringsten Privilegien** sicherzustellen. +AWS Identity and Access Management (IAM) bietet **feingranulare Zugriffskontrolle** über alle von AWS. Mit IAM können Sie festlegen, **wer auf welche Dienste und Ressourcen zugreifen kann** und unter welchen Bedingungen. Mit IAM-Richtlinien verwalten Sie Berechtigungen für Ihre Mitarbeiter und Systeme, um **die Berechtigungen mit dem geringsten Privileg** sicherzustellen. ### IAM-ID-Präfixe @@ -308,7 +308,7 @@ Auf [**dieser Seite**](https://docs.aws.amazon.com/IAM/latest/UserGuide/referenc | AKIA | Zugriffsschlüssel | | ANPA | Verwaltete Richtlinie | | ANVA | Version in einer verwalteten Richtlinie | -| APKA | Öffentlicher Schlüssel | +| APKA | Öffentliches Schlüssel | | AROA | Rolle | | ASCA | Zertifikat | | ASIA | [Temporäre (AWS STS) Zugriffsschlüssel-IDs](https://docs.aws.amazon.com/STS/latest/APIReference/API_Credentials.html) verwenden dieses Präfix, sind jedoch nur in Kombination mit dem geheimen Zugriffsschlüssel und dem Sitzungstoken eindeutig. | @@ -345,7 +345,7 @@ region = eu-west-2 ``` Wenn Sie auf **verschiedene AWS-Konten** zugreifen müssen und Ihr Profil Zugriff auf **das Übernehmen einer Rolle in diesen Konten** erhalten hat, müssen Sie nicht jedes Mal manuell STS aufrufen (`aws sts assume-role --role-arn --role-session-name sessname`) und die Anmeldeinformationen konfigurieren. -Sie können die Datei `~/.aws/config` verwenden, um [ **anzugeben, welche Rollen übernommen werden sollen**](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-role.html), und dann den Parameter `--profile` wie gewohnt verwenden (das `assume-role` wird für den Benutzer transparent durchgeführt).\ +Sie können die Datei `~/.aws/config` verwenden, um [**anzugeben, welche Rollen übernommen werden sollen**](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-role.html), und dann den Parameter `--profile` wie gewohnt verwenden (das `assume-role` wird für den Benutzer transparent durchgeführt).\ Ein Beispiel für eine Konfigurationsdatei: ``` [profile acc2] diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudtrail-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudtrail-enum.md index b5efd30b3..9b9b1cd61 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudtrail-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudtrail-enum.md @@ -4,7 +4,7 @@ ## **CloudTrail** -AWS CloudTrail **zeichnet Aktivitäten in Ihrer AWS-Umgebung auf und überwacht sie**. Es erfasst detaillierte **Ereignisprotokolle**, einschließlich wer was, wann und von wo getan hat, für alle Interaktionen mit AWS-Ressourcen. Dies bietet eine Prüfspur von Änderungen und Aktionen, die bei der Sicherheitsanalyse, der Compliance-Prüfung und der Verfolgung von Ressourcenänderungen hilft. CloudTrail ist entscheidend für das Verständnis des Verhaltens von Benutzern und Ressourcen, zur Verbesserung der Sicherheitslage und zur Gewährleistung der Einhaltung von Vorschriften. +AWS CloudTrail **zeichnet Aktivitäten in Ihrer AWS-Umgebung auf und überwacht sie**. Es erfasst detaillierte **Ereignisprotokolle**, einschließlich wer was, wann und von wo getan hat, für alle Interaktionen mit AWS-Ressourcen. Dies bietet eine Prüfspur von Änderungen und Aktionen, die bei der Sicherheitsanalyse, der Compliance-Prüfung und der Verfolgung von Ressourcenänderungen hilft. CloudTrail ist entscheidend für das Verständnis des Verhaltens von Benutzern und Ressourcen, die Verbesserung der Sicherheitslage und die Gewährleistung der Einhaltung von Vorschriften. Jedes protokollierte Ereignis enthält: @@ -22,19 +22,19 @@ Jedes protokollierte Ereignis enthält: Ereignisse werden **ungefähr alle 5 Minuten in einer JSON-Datei** in eine neue Protokolldatei geschrieben, sie werden von CloudTrail gehalten und schließlich werden die Protokolldateien **ungefähr 15 Minuten später an S3 geliefert**.\ CloudTrails Protokolle können **über Konten und Regionen aggregiert werden.**\ CloudTrail ermöglicht die Verwendung von **Protokolldateiintegrität, um zu überprüfen, dass Ihre Protokolldateien seit der Lieferung durch CloudTrail unverändert geblieben sind**. Es erstellt einen SHA-256-Hash der Protokolle in einer Digest-Datei. Ein SHA-256-Hash der neuen Protokolle wird jede Stunde erstellt.\ -Beim Erstellen eines Trails ermöglichen die Ereigniswähler, den Trail anzugeben, der protokolliert werden soll: Management-, Daten- oder Einsichtsevents. +Beim Erstellen eines Trails ermöglichen es die Ereigniswähler, den Trail anzugeben, der protokolliert werden soll: Management-, Daten- oder Einblickereignisse. -Protokolle werden in einem S3-Bucket gespeichert. Standardmäßig wird Server Side Encryption (SSE-S3) verwendet, sodass AWS den Inhalt für die Personen entschlüsselt, die Zugriff darauf haben, aber für zusätzliche Sicherheit können Sie SSE mit KMS und Ihren eigenen Schlüsseln verwenden. +Protokolle werden in einem S3-Bucket gespeichert. Standardmäßig wird die serverseitige Verschlüsselung (SSE-S3) verwendet, sodass AWS den Inhalt für die Personen entschlüsselt, die Zugriff darauf haben, aber für zusätzliche Sicherheit können Sie SSE mit KMS und Ihren eigenen Schlüsseln verwenden. Die Protokolle werden in einem **S3-Bucket mit diesem Namensformat** gespeichert: - **`BucketName/AWSLogs/AccountID/CloudTrail/RegionName/YYY/MM/DD`** -- Dabei ist der BucketName: **`aws-cloudtrail-logs--`** +- Der BucketName ist: **`aws-cloudtrail-logs--`** - Beispiel: **`aws-cloudtrail-logs-947247140022-ffb95fe7/AWSLogs/947247140022/CloudTrail/ap-south-1/2023/02/22/`** Innerhalb jedes Ordners hat jede Protokolldatei einen **Namen, der diesem Format folgt**: **`AccountID_CloudTrail_RegionName_YYYYMMDDTHHMMZ_Random.json.gz`** -Protokolldateibenennungskonvention +Protokolldatei-Namenskonvention ![](<../../../../images/image (122).png>) @@ -42,13 +42,13 @@ Darüber hinaus werden **Digest-Dateien (zur Überprüfung der Dateiintegrität) ![](<../../../../images/image (195).png>) -### Protokolle von mehreren Konten aggregieren +### Aggregierte Protokolle von mehreren Konten - Erstellen Sie einen Trail im AWS-Konto, in dem die Protokolldateien geliefert werden sollen - Wenden Sie Berechtigungen auf den Ziel-S3-Bucket an, um den Zugriff über Konten für CloudTrail zu ermöglichen, und erlauben Sie jedem AWS-Konto, das Zugriff benötigt - Erstellen Sie einen neuen Trail in den anderen AWS-Konten und wählen Sie aus, den im Schritt 1 erstellten Bucket zu verwenden -Wenn Sie jedoch alle Protokolle im selben S3-Bucket speichern können, können Sie CloudTrail-Protokolle von mehreren Konten nicht in CloudWatch-Protokolle aggregieren, die zu einem einzelnen AWS-Konto gehören. +Wenn Sie jedoch alle Protokolle im selben S3-Bucket speichern können, können Sie CloudTrail-Protokolle von mehreren Konten nicht in CloudWatch-Protokollen aggregieren, die zu einem einzelnen AWS-Konto gehören. > [!CAUTION] > Denken Sie daran, dass ein Konto **verschiedene Trails** von CloudTrail **aktiviert** haben kann, die dieselben (oder unterschiedliche) Protokolle in verschiedenen Buckets speichern. @@ -83,7 +83,7 @@ Der CloudTrail-Ereignisverlauf ermöglicht es Ihnen, in einer Tabelle die aufgez ### Einblicke -**CloudTrail Insights** analysiert automatisch **Schreibmanagementereignisse** von CloudTrail-Tracks und **benachrichtigt** Sie über **ungewöhnliche Aktivitäten**. Wenn beispielsweise ein Anstieg der `TerminateInstance`-Ereignisse festgestellt wird, der von festgelegten Baselines abweicht, sehen Sie dies als Insight-Ereignis. Diese Ereignisse erleichtern **das Finden und Reagieren auf ungewöhnliche API-Aktivitäten** mehr denn je. +**CloudTrail Insights** analysiert automatisch **Schreibmanagementereignisse** von CloudTrail-Tracks und **benachrichtigt** Sie über **ungewöhnliche Aktivitäten**. Wenn es beispielsweise einen Anstieg von `TerminateInstance`-Ereignissen gibt, der von festgelegten Baselines abweicht, sehen Sie dies als Insight-Ereignis. Diese Ereignisse erleichtern **das Finden und Reagieren auf ungewöhnliche API-Aktivitäten** mehr denn je. Die Einblicke werden im selben Bucket wie die CloudTrail-Protokolle gespeichert: `BucketName/AWSLogs/AccountID/CloudTrail-Insight` @@ -92,14 +92,14 @@ Die Einblicke werden im selben Bucket wie die CloudTrail-Protokolle gespeichert: | ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | Integrität der CloudTrail-Protokolldatei |
  • Überprüfen, ob Protokolle manipuliert wurden (modifiziert oder gelöscht)
  • Verwendet Digest-Dateien (erstellt Hash für jede Datei)

    • SHA-256-Hashing
    • SHA-256 mit RSA für digitale Signatur
    • privater Schlüssel im Besitz von Amazon
  • Es dauert 1 Stunde, um eine Digest-Datei zu erstellen (jede Stunde zur vollen Stunde)
| | Unbefugten Zugriff stoppen |
  • Verwenden Sie IAM-Richtlinien und S3-Bucket-Richtlinien

    • Sicherheitsteam —> Administratorzugriff
    • Prüfer —> Nur-Lese-Zugriff
  • Verwenden Sie SSE-S3/SSE-KMS, um die Protokolle zu verschlüsseln
| -| Verhindern, dass Protokolldateien gelöscht werden |
  • Zugriff auf das Löschen mit IAM- und Bucket-Richtlinien einschränken
  • S3 MFA-Löschen konfigurieren
  • Überprüfen mit der Protokolldatei-Validierung
| +| Verhindern, dass Protokolldateien gelöscht werden |
  • Beschränken Sie den Löschzugriff mit IAM- und Bucket-Richtlinien
  • Konfigurieren Sie S3 MFA-Löschen
  • Überprüfen Sie mit der Protokolldateivalidierung
| ## Zugriffsberater -AWS Access Advisor stützt sich auf die letzten 400 Tage der AWS **CloudTrail-Protokolle, um seine Einblicke zu gewinnen**. CloudTrail erfasst eine Historie der AWS-API-Aufrufe und verwandten Ereignisse, die in einem AWS-Konto durchgeführt wurden. Access Advisor nutzt diese Daten, um **zu zeigen, wann Dienste zuletzt aufgerufen wurden**. Durch die Analyse der CloudTrail-Protokolle kann Access Advisor bestimmen, auf welche AWS-Dienste ein IAM-Benutzer oder eine Rolle zugegriffen hat und wann dieser Zugriff stattfand. Dies hilft AWS-Administratoren, informierte Entscheidungen über **die Verfeinerung von Berechtigungen** zu treffen, da sie Dienste identifizieren können, die über längere Zeiträume nicht aufgerufen wurden, und möglicherweise zu weitreichende Berechtigungen basierend auf realen Nutzungsmustern reduzieren können. +AWS Access Advisor stützt sich auf die letzten 400 Tage der AWS **CloudTrail-Protokolle, um seine Einblicke zu gewinnen**. CloudTrail erfasst eine Historie von AWS-API-Aufrufen und verwandten Ereignissen, die in einem AWS-Konto durchgeführt wurden. Access Advisor nutzt diese Daten, um **zu zeigen, wann Dienste zuletzt aufgerufen wurden**. Durch die Analyse der CloudTrail-Protokolle kann Access Advisor bestimmen, auf welche AWS-Dienste ein IAM-Benutzer oder eine Rolle zugegriffen hat und wann dieser Zugriff stattfand. Dies hilft AWS-Administratoren, informierte Entscheidungen über **die Verfeinerung von Berechtigungen** zu treffen, da sie Dienste identifizieren können, die über längere Zeiträume nicht aufgerufen wurden, und möglicherweise übermäßig breite Berechtigungen basierend auf realen Nutzungsmustern reduzieren können. > [!TIP] -> Daher informiert Access Advisor über **die unnötigen Berechtigungen, die Benutzern erteilt werden**, damit der Administrator sie entfernen kann +> Daher informiert der Zugriffsberater über **die unnötigen Berechtigungen, die Benutzern erteilt werden**, sodass der Administrator sie entfernen kann
@@ -124,7 +124,7 @@ aws cloudtrail get-query-results --event-data-store --query-id --event-selectors '[{"ReadWriteType": "ReadOnly"}]' --region diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudwatch-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudwatch-enum.md index 2a5b3a4f7..f0a70869b 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudwatch-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudwatch-enum.md @@ -6,7 +6,7 @@ **CloudWatch** **sammelt** Überwachungs- und Betriebs-**daten** in Form von Protokollen/Metriken/Ereignissen und bietet eine **einheitliche Ansicht der AWS-Ressourcen**, Anwendungen und Dienste.\ CloudWatch Log-Ereignisse haben eine **Größenbeschränkung von 256KB pro Protokollzeile**.\ -Es können **Hochauflösungsalarme** gesetzt, **Protokolle** und **Metriken** nebeneinander visualisiert, automatisierte Aktionen durchgeführt, Probleme behoben und Erkenntnisse gewonnen werden, um Anwendungen zu optimieren. +Es kann **Hochauflösungsalarme** einstellen, **Protokolle** und **Metriken** nebeneinander visualisieren, automatisierte Aktionen durchführen, Probleme beheben und Erkenntnisse gewinnen, um Anwendungen zu optimieren. Sie können beispielsweise Protokolle von CloudTrail überwachen. Überwachte Ereignisse: @@ -27,7 +27,7 @@ Ein Namespace ist ein Container für CloudWatch-Metriken. Er hilft, Metriken zu ### Metriken -Metriken sind Datenpunkte, die über die Zeit gesammelt werden und die Leistung oder Nutzung von AWS-Ressourcen darstellen. Metriken können aus AWS-Diensten, benutzerdefinierten Anwendungen oder Drittanbieter-Integrationen gesammelt werden. +Metriken sind über die Zeit gesammelte Datenpunkte, die die Leistung oder Nutzung von AWS-Ressourcen darstellen. Metriken können von AWS-Diensten, benutzerdefinierten Anwendungen oder Drittanbieter-Integrationen gesammelt werden. - **Beispiel**: CPUUtilization, NetworkIn, DiskReadOps. @@ -72,23 +72,23 @@ Einheiten sind der Messungstyp, der mit einer Metrik verbunden ist. Einheiten he **Beispielanwendung**: -- Echtzeitmetriken an einen Drittanbieter-Überwachungsdienst für eine fortgeschrittene Analyse senden. +- Echtzeitmetriken an einen Drittanbieter-Überwachungsdienst für eine erweiterte Analyse senden. - Metriken in einem Amazon S3-Bucket für die langfristige Speicherung und Compliance archivieren. ### Alarm -**CloudWatch-Alarme** überwachen Ihre Metriken und führen Aktionen basierend auf vordefinierten Schwellenwerten aus. Wenn eine Metrik einen Schwellenwert überschreitet, kann der Alarm eine oder mehrere Aktionen ausführen, wie z. B. Benachrichtigungen über SNS senden, eine Auto-Scaling-Richtlinie auslösen oder eine AWS Lambda-Funktion ausführen. +**CloudWatch-Alarme** überwachen Ihre Metriken und führen Aktionen basierend auf vordefinierten Schwellenwerten aus. Wenn eine Metrik einen Schwellenwert überschreitet, kann der Alarm eine oder mehrere Aktionen ausführen, z. B. Benachrichtigungen über SNS senden, eine Auto-Scaling-Richtlinie auslösen oder eine AWS Lambda-Funktion ausführen. **Hauptkomponenten**: - **Schwellenwert**: Der Wert, bei dem der Alarm ausgelöst wird. -- **Bewertungszeiträume**: Die Anzahl der Zeiträume, über die die Daten bewertet werden. +- **Bewertungszeiträume**: Die Anzahl der Zeiträume, über die Daten bewertet werden. - **Datenpunkte zum Alarm**: Die Anzahl der Zeiträume mit einem erreichten Schwellenwert, die erforderlich sind, um den Alarm auszulösen. - **Aktionen**: Was passiert, wenn ein Alarmzustand ausgelöst wird (z. B. Benachrichtigung über SNS). **Beispielanwendung**: -- Überwachung der CPU-Auslastung einer EC2-Instanz und Senden einer Benachrichtigung über SNS, wenn sie 80 % für 5 aufeinanderfolgende Minuten überschreitet. +- Überwachung der CPU-Auslastung von EC2-Instanzen und Senden einer Benachrichtigung über SNS, wenn sie 80 % für 5 aufeinanderfolgende Minuten überschreitet. ### Anomalie-Detektoren @@ -105,7 +105,7 @@ Einheiten sind der Messungstyp, der mit einer Metrik verbunden ist. Einheiten he ### Insight-Regeln und verwaltete Insight-Regeln -**Insight-Regeln** ermöglichen es Ihnen, Trends zu identifizieren, Spitzen oder andere Muster von Interesse in Ihren Metrikdaten zu erkennen, indem Sie **leistungsstarke mathematische Ausdrücke** verwenden, um die Bedingungen zu definieren, unter denen Maßnahmen ergriffen werden sollten. Diese Regeln können Ihnen helfen, Anomalien oder ungewöhnliches Verhalten in der Leistung und Nutzung Ihrer Ressourcen zu identifizieren. +**Insight-Regeln** ermöglichen es Ihnen, Trends zu identifizieren, Spitzen zu erkennen oder andere Muster von Interesse in Ihren Metrikdaten mithilfe **leistungsstarker mathematischer Ausdrücke** zu definieren, unter welchen Bedingungen Aktionen ergriffen werden sollten. Diese Regeln können Ihnen helfen, Anomalien oder ungewöhnliches Verhalten in der Leistung und Nutzung Ihrer Ressourcen zu identifizieren. **Verwaltete Insight-Regeln** sind vorkonfigurierte **Insight-Regeln, die von AWS bereitgestellt werden**. Sie sind darauf ausgelegt, spezifische AWS-Dienste oder gängige Anwendungsfälle zu überwachen und können ohne detaillierte Konfiguration aktiviert werden. @@ -118,9 +118,9 @@ Einheiten sind der Messungstyp, der mit einer Metrik verbunden ist. Einheiten he Ermöglicht das **Aggregieren und Überwachen von Protokollen aus Anwendungen** und Systemen von **AWS-Diensten** (einschließlich CloudTrail) und **von Apps/Systemen** (**CloudWatch-Agent** kann auf einem Host installiert werden). Protokolle können **unbegrenzt gespeichert** werden (abhängig von den Einstellungen der Protokollgruppe) und können exportiert werden. **Elemente**: -| Begriff | Definition | +| Begriff | Definition | | ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **Protokollgruppe** | Eine **Sammlung von Protokollstreams**, die dieselben Aufbewahrungs-, Überwachungs- und Zugriffskontrolleinstellungen teilen | +| **Protokollgruppe** | Eine **Sammlung von Protokollstreams**, die dieselben Aufbewahrungs-, Überwachungs- und Zugriffskontrolleinstellungen teilen | | **Protokollstream** | Eine Sequenz von **Protokollereignissen**, die die **gleiche Quelle** teilen | | **Abonnementfilter** | Definieren ein **Filtermuster, das Ereignisse** in einer bestimmten Protokollgruppe übereinstimmt, senden sie an Kinesis Data Firehose-Stream, Kinesis-Stream oder eine Lambda-Funktion | @@ -133,11 +133,11 @@ In diesem Fall kann CloudWatch bereit sein, ein Ereignis zu senden und einige au Sie können Agenten in Ihren Maschinen/Containern installieren, um die Protokolle automatisch an CloudWatch zurückzusenden. -- **Erstellen** Sie eine **Rolle** und **fügen** Sie sie der **Instanz** mit Berechtigungen hinzu, die es CloudWatch ermöglichen, Daten von den Instanzen zu sammeln, zusätzlich zur Interaktion mit dem AWS Systems Manager SSM (CloudWatchAgentAdminPolicy & AmazonEC2RoleforSSM). +- **Erstellen** Sie eine **Rolle** und **hängen** Sie sie an die **Instanz** mit Berechtigungen, die es CloudWatch ermöglichen, Daten von den Instanzen zu sammeln, zusätzlich zur Interaktion mit AWS Systems Manager SSM (CloudWatchAgentAdminPolicy & AmazonEC2RoleforSSM) - **Laden** Sie den **Agenten** herunter und **installieren** Sie ihn auf der EC2-Instanz ([https://s3.amazonaws.com/amazoncloudwatch-agent/linux/amd64/latest/AmazonCloudWatchAgent.zip](https://s3.amazonaws.com/amazoncloudwatch-agent/linux/amd64/latest/AmazonCloudWatchAgent.zip)). Sie können ihn von innerhalb der EC2 herunterladen oder automatisch mit AWS Systems Manager installieren, indem Sie das Paket AWS-ConfigureAWSPackage auswählen. - **Konfigurieren** und **starten** Sie den CloudWatch-Agenten. -Eine Protokollgruppe hat viele Streams. Ein Stream hat viele Ereignisse. Und innerhalb jedes Streams sind die Ereignisse in der Reihenfolge garantiert. +Eine Protokollgruppe hat viele Streams. Ein Stream hat viele Ereignisse. Und innerhalb jedes Streams ist garantiert, dass die Ereignisse in der richtigen Reihenfolge sind. ## Enumeration ```bash @@ -218,15 +218,15 @@ aws events list-event-buses Ein Angreifer mit diesen Berechtigungen könnte die Überwachungs- und Alarmierungsinfrastruktur einer Organisation erheblich untergraben. Durch das Löschen vorhandener Alarme könnte ein Angreifer entscheidende Warnungen deaktivieren, die Administratoren über kritische Leistungsprobleme, Sicherheitsverletzungen oder Betriebsstörungen informieren. Darüber hinaus könnte der Angreifer durch das Erstellen oder Ändern von Metrik-Alarmen auch Administratoren mit falschen Warnungen in die Irre führen oder legitime Alarme zum Schweigen bringen, wodurch böswillige Aktivitäten effektiv maskiert und rechtzeitige Reaktionen auf tatsächliche Vorfälle verhindert werden. -Darüber hinaus könnte ein Angreifer mit der Berechtigung **`cloudwatch:PutCompositeAlarm`** eine Schleife oder einen Zyklus von zusammengesetzten Alarmen erstellen, bei dem zusammengesetzter Alarm A von zusammengesetztem Alarm B abhängt und zusammengesetzter Alarm B auch von zusammengesetztem Alarm A abhängt. In diesem Szenario ist es nicht möglich, einen zusammengesetzten Alarm, der Teil des Zyklus ist, zu löschen, da es immer noch einen zusammengesetzten Alarm gibt, der von dem Alarm abhängt, den Sie löschen möchten. +Darüber hinaus könnte ein Angreifer mit der Berechtigung **`cloudwatch:PutCompositeAlarm`** eine Schleife oder einen Zyklus von zusammengesetzten Alarmen erstellen, bei dem der zusammengesetzte Alarm A vom zusammengesetzten Alarm B abhängt und der zusammengesetzte Alarm B ebenfalls vom zusammengesetzten Alarm A abhängt. In diesem Szenario ist es nicht möglich, einen zusammengesetzten Alarm, der Teil des Zyklus ist, zu löschen, da immer noch ein zusammengesetzter Alarm existiert, der von dem Alarm abhängt, den Sie löschen möchten. ```bash aws cloudwatch put-metric-alarm --cli-input-json | --alarm-name --comparison-operator --evaluation-periods [--datapoints-to-alarm ] [--threshold ] [--alarm-description ] [--alarm-actions ] [--metric-name ] [--namespace ] [--statistic ] [--dimensions ] [--period ] aws cloudwatch delete-alarms --alarm-names aws cloudwatch put-composite-alarm --alarm-name --alarm-rule [--no-actions-enabled | --actions-enabled [--alarm-actions ] [--insufficient-data-actions ] [--ok-actions ] ] ``` -Das folgende Beispiel zeigt, wie man einen Metrik-Alarm unwirksam macht: +Das folgende Beispiel zeigt, wie man einen Metrikalarm unwirksam macht: -- Dieser Metrik-Alarm überwacht die durchschnittliche CPU-Auslastung einer bestimmten EC2-Instanz, bewertet die Metrik alle 300 Sekunden und erfordert 6 Bewertungsperioden (insgesamt 30 Minuten). Wenn die durchschnittliche CPU-Auslastung in mindestens 4 dieser Perioden 60 % überschreitet, wird der Alarm ausgelöst und sendet eine Benachrichtigung an das angegebene SNS-Thema. +- Dieser Metrikalarm überwacht die durchschnittliche CPU-Auslastung einer bestimmten EC2-Instanz, bewertet die Metrik alle 300 Sekunden und erfordert 6 Bewertungsperioden (insgesamt 30 Minuten). Wenn die durchschnittliche CPU-Auslastung in mindestens 4 dieser Perioden 60 % überschreitet, wird der Alarm ausgelöst und sendet eine Benachrichtigung an das angegebene SNS-Thema. - Durch die Änderung des Schwellenwerts auf mehr als 99 %, das Setzen der Periode auf 10 Sekunden, der Bewertungsperioden auf 8640 (da 8640 Perioden von 10 Sekunden 1 Tag entsprechen) und der Datapoints to Alarm auf ebenfalls 8640, wäre es erforderlich, dass die CPU-Auslastung über 99 % alle 10 Sekunden während des gesamten 24-Stunden-Zeitraums liegt, um einen Alarm auszulösen. {{#tabs }} @@ -283,17 +283,17 @@ Das folgende Beispiel zeigt, wie man einen Metrik-Alarm unwirksam macht: ### **`cloudwatch:DeleteAlarmActions`, `cloudwatch:EnableAlarmActions`, `cloudwatch:SetAlarmState`** -Durch das Löschen von Alarmaktionen könnte der Angreifer kritische Warnungen und automatisierte Reaktionen verhindern, die ausgelöst werden, wenn ein Alarmzustand erreicht wird, wie z. B. die Benachrichtigung von Administratoren oder das Auslösen von Auto-Scaling-Aktivitäten. Das unangemessene Aktivieren oder Wiederaktivieren von Alarmaktionen könnte ebenfalls zu unerwartetem Verhalten führen, entweder durch die Reaktivierung zuvor deaktivierter Aktionen oder durch die Änderung, welche Aktionen ausgelöst werden, was potenziell zu Verwirrung und Fehlleitungen bei der Vorfallreaktion führen könnte. +Durch das Löschen von Alarmaktionen könnte der Angreifer kritische Warnungen und automatisierte Reaktionen daran hindern, ausgelöst zu werden, wenn ein Alarmzustand erreicht wird, wie z. B. die Benachrichtigung von Administratoren oder das Auslösen von Auto-Scaling-Aktivitäten. Das unangemessene Aktivieren oder Wiederaktivieren von Alarmaktionen könnte ebenfalls zu unerwartetem Verhalten führen, entweder durch die Reaktivierung zuvor deaktivierter Aktionen oder durch die Änderung, welche Aktionen ausgelöst werden, was potenziell Verwirrung und Fehlleitungen bei der Vorfallreaktion verursachen könnte. Darüber hinaus könnte ein Angreifer mit der Berechtigung Alarmzustände manipulieren, indem er falsche Alarme erstellt, um Administratoren abzulenken und zu verwirren, oder echte Alarme zum Schweigen bringt, um laufende böswillige Aktivitäten oder kritische Systemausfälle zu verbergen. -- Wenn Sie **`SetAlarmState`** bei einem zusammengesetzten Alarm verwenden, ist nicht garantiert, dass der zusammengesetzte Alarm in seinen tatsächlichen Zustand zurückkehrt. Er kehrt nur dann in seinen tatsächlichen Zustand zurück, wenn einer seiner untergeordneten Alarme den Zustand ändert. Er wird auch neu bewertet, wenn Sie seine Konfiguration aktualisieren. +- Wenn Sie **`SetAlarmState`** für einen zusammengesetzten Alarm verwenden, ist nicht garantiert, dass der zusammengesetzte Alarm in seinen tatsächlichen Zustand zurückkehrt. Er kehrt nur dann in seinen tatsächlichen Zustand zurück, wenn einer seiner untergeordneten Alarme den Zustand ändert. Er wird auch neu bewertet, wenn Sie seine Konfiguration aktualisieren. ```bash aws cloudwatch disable-alarm-actions --alarm-names aws cloudwatch enable-alarm-actions --alarm-names aws cloudwatch set-alarm-state --alarm-name --state-value --state-reason [--state-reason-data ] ``` -**Potenzielle Auswirkungen**: Fehlende Benachrichtigungen für kritische Ereignisse, potenzielle unentdeckte Probleme, falsche Alarme, Unterdrückung echter Alarme und möglicherweise verpasste Erkennungen realer Vorfälle. +**Potenzielle Auswirkungen**: Fehlende Benachrichtigungen für kritische Ereignisse, potenzielle unentdeckte Probleme, falsche Alarme, Unterdrückung echter Alarme und möglicherweise verpasste Erkennungen echter Vorfälle. ### **`cloudwatch:DeleteAnomalyDetector`, `cloudwatch:PutAnomalyDetector`** @@ -323,7 +323,7 @@ Das folgende Beispiel zeigt, wie man einen Metrik-Anomalie-Detektor unwirksam ma ``` {{#endtab }} -{{#tab name="Modifizierter Metrik-Anomalie-Detektor" }} +{{#tab name="Modified Metric Anomaly Detector" }} ```json { "SingleMetricAnomalyDetector": { @@ -355,7 +355,7 @@ Das folgende Beispiel zeigt, wie man einen Metrik-Anomalie-Detektor unwirksam ma ### **`cloudwatch:DeleteDashboards`, `cloudwatch:PutDashboard`** -Ein Angreifer könnte die Überwachungs- und Visualisierungsfähigkeiten einer Organisation gefährden, indem er deren Dashboards erstellt, ändert oder löscht. Diese Berechtigungen könnten genutzt werden, um kritische Einblicke in die Leistung und Gesundheit von Systemen zu entfernen, Dashboards so zu ändern, dass falsche Daten angezeigt werden, oder böswillige Aktivitäten zu verbergen. +Ein Angreifer könnte die Überwachungs- und Visualisierungsfähigkeiten einer Organisation gefährden, indem er deren Dashboards erstellt, ändert oder löscht. Diese Berechtigungen könnten genutzt werden, um die kritische Sichtbarkeit auf die Leistung und Gesundheit von Systemen zu entfernen, Dashboards so zu ändern, dass falsche Daten angezeigt werden, oder böswillige Aktivitäten zu verbergen. ```bash aws cloudwatch delete-dashboards --dashboard-names aws cloudwatch put-dashboard --dashboard-name --dashboard-body @@ -385,11 +385,11 @@ aws cloudwatch enable-insight-rules --rule-names Ein Angreifer mit den Berechtigungen **`cloudwatch:DeleteMetricStream`** , **`cloudwatch:PutMetricStream`** wäre in der Lage, Metrikdatenströme zu erstellen und zu löschen, was die Sicherheit, Überwachung und Datenintegrität gefährdet: -- **Böswillige Streams erstellen**: Metrikströme erstellen, um sensible Daten an unbefugte Ziele zu senden. -- **Ressourcenmanipulation**: Die Erstellung neuer Metrikströme mit übermäßigen Daten könnte viel Lärm erzeugen, was zu falschen Alarmen führt und wahre Probleme maskiert. -- **Überwachungsstörung**: Durch das Löschen von Metrikströmen würden Angreifer den kontinuierlichen Fluss von Überwachungsdaten stören. Auf diese Weise wären ihre böswilligen Aktivitäten effektiv verborgen. +- **Bösartige Streams erstellen**: Metrikstreams erstellen, um sensible Daten an unbefugte Ziele zu senden. +- **Ressourcenmanipulation**: Die Erstellung neuer Metrikstreams mit übermäßigen Daten könnte viel Lärm erzeugen, was zu falschen Alarmen führt und wahre Probleme maskiert. +- **Überwachungsstörung**: Durch das Löschen von Metrikstreams würden Angreifer den kontinuierlichen Fluss von Überwachungsdaten stören. Auf diese Weise wären ihre bösartigen Aktivitäten effektiv verborgen. -Ähnlich wäre es mit der Berechtigung **`cloudwatch:PutMetricData`** möglich, Daten zu einem Metrikstrom hinzuzufügen. Dies könnte zu einem DoS führen, aufgrund der Menge an unzulässigen Daten, die hinzugefügt werden, wodurch es völlig nutzlos wird. +Ähnlich wäre es mit der Berechtigung **`cloudwatch:PutMetricData`** möglich, Daten zu einem Metrikstream hinzuzufügen. Dies könnte zu einem DoS führen, aufgrund der Menge an unzulässigen Daten, die hinzugefügt werden, wodurch es völlig nutzlos wird. ```bash aws cloudwatch delete-metric-stream --name aws cloudwatch put-metric-stream --name [--include-filters ] [--exclude-filters ] --firehose-arn --role-arn --output-format @@ -408,7 +408,7 @@ Ein Angreifer würde den Fluss der betroffenen Metrikdatenströme kontrollieren aws cloudwatch stop-metric-streams --names aws cloudwatch start-metric-streams --names ``` -**Potenzielle Auswirkungen**: Störung des Flusses von Überwachungsdaten, was die Erkennung von Anomalien und Vorfällen beeinträchtigt. +**Potenzielle Auswirkungen**: Störung des Flusses von Überwachungsdaten, die die Erkennung von Anomalien und Vorfällen beeinträchtigt. ### **`cloudwatch:TagResource`, `cloudwatch:UntagResource`** diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-file-share-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-file-share-post-exploitation.md index ea20ecc19..ab04b67d3 100644 --- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-file-share-post-exploitation.md +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-file-share-post-exploitation.md @@ -30,7 +30,7 @@ az storage file download \ ``` ### `Microsoft.Storage/storageAccounts/fileServices/fileshares/files/write`, `Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action` -Ein Principal mit dieser Berechtigung kann **Dateien in Dateifreigaben schreiben und überschreiben**, was ihm möglicherweise ermöglicht, Schaden anzurichten oder sogar Privilegien zu eskalieren (z. B. einige in einer Dateifreigabe gespeicherte Codes überschreiben): +Ein Principal mit dieser Berechtigung wird in der Lage sein, **Dateien in Dateifreigaben zu schreiben und zu überschreiben**, was ihm möglicherweise ermöglicht, Schaden anzurichten oder sogar Privilegien zu eskalieren (z. B. einige in einer Dateifreigabe gespeicherte Codes überschreiben): ```bash az storage blob upload \ --account-name \ diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-logic-apps-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-logic-apps-post-exploitation.md index b190974a0..a1fef773f 100644 --- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-logic-apps-post-exploitation.md +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-logic-apps-post-exploitation.md @@ -77,7 +77,7 @@ az logic integration-account map create \ --map-content map-content.xslt ``` ### `Microsoft.Resources/subscriptions/resourcegroups/read` && `Microsoft.Logic/integrationAccounts/partners/write` -Mit dieser Berechtigung können Sie Partner in einem Azure Logic Apps-Integrationskonto erstellen oder ändern. Partner repräsentieren Entitäten oder Systeme, die an Geschäftsprozessen (B2B) teilnehmen. +Mit dieser Berechtigung können Sie Partner in einem Azure Logic Apps-Integrationskonto erstellen oder ändern. Partner repräsentieren Entitäten oder Systeme, die an geschäftlichen Workflows zwischen Unternehmen (B2B) teilnehmen. ```bash az logic integration-account partner create \ --resource-group \ diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-mysql-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-mysql-post-exploitation.md index b6be5b88b..f6ec8eca3 100644 --- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-mysql-post-exploitation.md +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-mysql-post-exploitation.md @@ -58,7 +58,7 @@ az mysql flexible-server firewall-rule update \ ``` ### `Microsoft.DBforMySQL/flexibleServers/resetGtid/action` -Mit dieser Berechtigung können Sie die GTID (Global Transaction Identifier) für eine MySQL Flexible Server-Instanz auf Azure zurücksetzen. Das Zurücksetzen der GTID macht alle automatisierten, bedarfsorientierten Backups und Geo-Backups, die vor der Zurücksetzungsaktion erstellt wurden, ungültig. Nach dem Zurücksetzen der GTID können Sie kein PITR (point-in-time-restore) mit dem schnellsten Wiederherstellungspunkt oder einem benutzerdefinierten Wiederherstellungspunkt durchführen, wenn die ausgewählte Wiederherstellungszeit vor der GTID-Zurücksetzungszeit liegt. Eine erfolgreiche Geo-Wiederherstellung ist erst nach 5 Tagen möglich. +Mit dieser Berechtigung können Sie die GTID (Global Transaction Identifier) für eine MySQL Flexible Server-Instanz auf Azure zurücksetzen. Das Zurücksetzen der GTID macht alle automatisierten, bedarfsorientierten Backups und Geo-Backups, die vor der Rücksetzaktion erstellt wurden, ungültig. Nach dem GTID-Zurücksetzen können Sie kein PITR (point-in-time-restore) mit dem schnellsten Wiederherstellungspunkt oder einem benutzerdefinierten Wiederherstellungspunkt durchführen, wenn die ausgewählte Wiederherstellungszeit vor dem GTID-Zurücksetzzeitpunkt liegt. Und eine erfolgreiche Geo-Wiederherstellung ist erst nach 5 Tagen möglich. ```bash az mysql flexible-server reset-gtid \ --name \ @@ -96,7 +96,7 @@ az mysql flexible-server stop \ With this permission, you can start a stopped PostgreSQL Flexible Server instance on Azure. Starting a server restores its availability, enabling applications and users to reconnect and access the database. ```bash -az mysql flexible-server starten \ +az mysql flexible-server start \ --name \ --resource-group ``` diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-postgresql-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-postgresql-post-exploitation.md index df5c1e29d..329fddbe0 100644 --- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-postgresql-post-exploitation.md +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-postgresql-post-exploitation.md @@ -20,7 +20,7 @@ az postgres flexible-server db create \ ``` ### `Microsoft.DBforPostgreSQL/flexibleServers/backups/write` -Mit dieser Berechtigung können Sie die Erstellung von Backups für eine Postgres Flexible Server-Instanz auf Azure initiieren. Dies ermöglicht es Benutzern, On-Demand-Backups zu erstellen, die nützlich sein können, um Daten zu bestimmten Zeitpunkten zu sichern. +Mit dieser Berechtigung können Sie die Erstellung von Backups für eine Postgres Flexible Server-Instanz auf Azure initiieren. Dies ermöglicht es Benutzern, bedarfsorientierte Backups zu erstellen, die nützlich sein können, um Daten zu bestimmten Zeitpunkten zu sichern. ```bash az postgres flexible-server backup create \ --name \ @@ -29,7 +29,7 @@ az postgres flexible-server backup create \ ``` ### `Microsoft.DBforPostgreSQL/flexibleServers/advancedThreatProtectionSettings/write` && `Microsoft.DBforPostgreSQL/flexibleServers/advancedThreatProtectionSettings/read` -Mit dieser Berechtigung können Sie die Einstellungen für den Advanced Threat Protection (ATP) für eine Postgres Flexible Server-Instanz auf Azure konfigurieren oder aktualisieren. Dies ermöglicht das Aktivieren oder Deaktivieren von Sicherheitsfunktionen, die darauf ausgelegt sind, anomale Aktivitäten und potenzielle Bedrohungen zu erkennen und darauf zu reagieren. +Mit dieser Berechtigung können Sie die Einstellungen für den Advanced Threat Protection (ATP) für eine Postgres Flexible Server-Instanz in Azure konfigurieren oder aktualisieren. Dies ermöglicht das Aktivieren oder Deaktivieren von Sicherheitsfunktionen, die darauf ausgelegt sind, anomale Aktivitäten und potenzielle Bedrohungen zu erkennen und darauf zu reagieren. ```bash az postgres flexible-server threat-protection-policy update \ --name \ diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-sql-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-sql-post-exploitation.md index 48a8682c6..a2ce14c4e 100644 --- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-sql-post-exploitation.md +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-sql-post-exploitation.md @@ -42,7 +42,7 @@ az sql elastic-pool update \ ``` ### `Microsoft.Sql/servers/auditingSettings/read` && `Microsoft.Sql/servers/auditingSettings/write` -Mit dieser Berechtigung können Sie die Auditing-Einstellungen auf einem Azure SQL Server ändern oder aktivieren. Dies könnte einem Angreifer oder autorisierten Benutzer ermöglichen, die Auditkonfigurationen zu manipulieren, möglicherweise um Spuren zu verwischen oder Auditprotokolle an einen Ort umzuleiten, der unter ihrer Kontrolle steht. Dies kann die Sicherheitsüberwachung behindern oder es ermöglichen, die Aktionen im Auge zu behalten. HINWEIS: Um das Auditing für einen Azure SQL Server mit Blob Storage zu aktivieren, müssen Sie ein Speicherkonto anhängen, in dem die Auditprotokolle gespeichert werden können. +Mit dieser Berechtigung können Sie die Auditeinstellungen auf einem Azure SQL Server ändern oder aktivieren. Dies könnte einem Angreifer oder autorisierten Benutzer ermöglichen, die Auditkonfigurationen zu manipulieren, was potenziell dazu führen kann, Spuren zu verwischen oder Auditprotokolle an einen Ort umzuleiten, der unter ihrer Kontrolle steht. Dies kann die Sicherheitsüberwachung behindern oder es ermöglichen, die Aktionen im Auge zu behalten. HINWEIS: Um das Auditing für einen Azure SQL Server mit Blob Storage zu aktivieren, müssen Sie ein Speicherkonto anhängen, in dem die Auditprotokolle gespeichert werden können. ```bash az sql server audit-policy update \ --server \ @@ -53,7 +53,7 @@ az sql server audit-policy update \ ``` ### `Microsoft.Sql/locations/connectionPoliciesAzureAsyncOperation/read`, `Microsoft.Sql/servers/connectionPolicies/read` && `Microsoft.Sql/servers/connectionPolicies/write` -Mit dieser Berechtigung können Sie die Verbindungseinstellungen eines Azure SQL Servers ändern. Diese Fähigkeit kann ausgenutzt werden, um serverseitige Verbindungseinstellungen zu aktivieren oder zu ändern. +Mit dieser Berechtigung können Sie die Verbindungsrichtlinien eines Azure SQL Servers ändern. Diese Fähigkeit kann ausgenutzt werden, um serverseitige Verbindungseinstellungen zu aktivieren oder zu ändern. ```bash az sql server connection-policy update \ --server \ diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-cosmosDB-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-cosmosDB-privesc.md index 7c5e3cf9a..50e28a781 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-cosmosDB-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-cosmosDB-privesc.md @@ -11,7 +11,7 @@ Für weitere Informationen zur SQL-Datenbank siehe: ### (`Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/write`, `Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/read`) & (`Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/write`, `Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/read`) -Mit diesen Berechtigungen können Sie Privilegien eskalieren, indem Sie einem Benutzer die Berechtigungen erteilen, Abfragen auszuführen und sich mit der Datenbank zu verbinden. Zuerst wird eine Rollenbeschreibung erstellt, die die erforderlichen Berechtigungen und Bereiche festlegt. +Mit diesen Berechtigungen können Sie Privilegien eskalieren, indem Sie einem Benutzer die Berechtigungen zum Ausführen von Abfragen und zum Verbinden mit der Datenbank geben. Zuerst wird eine Rollendefinition erstellt, die die erforderlichen Berechtigungen und Bereiche gewährt. ```bash az cosmosdb sql role definition create \ --account-name \ diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-functions-app-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-functions-app-privesc.md index 0816da2dd..3a32d9be0 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-functions-app-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-functions-app-privesc.md @@ -55,18 +55,18 @@ az functionapp config appsettings list \ --name \ --resource-group ``` -Diese Konfiguration enthält normalerweise eine **SAS-URL zum Herunterladen** des Codes aus dem Speicherkonto. +Diese Konfiguration enthält normalerweise eine **SAS-URL zum Herunterladen** des Codes aus dem Storage Account. > [!CAUTION] > Mit ausreichenden Berechtigungen, um eine Verbindung zum Blob-Container herzustellen, der **den Code im Zip enthält**, ist es möglich, beliebigen Code in der Funktion auszuführen und Privilegien zu eskalieren. - **`github-actions-deploy`** (`WEBSITE_RUN_FROM_PACKAGE)` -Genau wie im vorherigen Fall ist es möglich, den Ordner **`github-actions-deploy`** im Speicherkonto zu finden, der ein Zip des Codes und eine SAS-URL zum Zip in der Einstellung `WEBSITE_RUN_FROM_PACKAGE` enthält. +Genau wie im vorherigen Fall ist es möglich, den Ordner **`github-actions-deploy`** im Storage Account zu finden, der ein Zip des Codes und eine SAS-URL zum Zip in der Einstellung `WEBSITE_RUN_FROM_PACKAGE` enthält. - **`scm-releases`**`(WEBSITE_CONTENTAZUREFILECONNECTIONSTRING` und `WEBSITE_CONTENTSHARE`) -Mit Berechtigungen zum Lesen der Container im Speicherkonto, das die Funktionsdaten speichert, ist es möglich, den Container **`scm-releases`** zu finden. Dort ist es möglich, die neueste Version im **Squashfs-Dateisystemdateiformat** zu finden und daher den Code der Funktion zu lesen: +Mit Berechtigungen zum Lesen der Container im Storage Account, der die Funktionsdaten speichert, ist es möglich, den Container **`scm-releases`** zu finden. Dort ist es möglich, die neueste Version im **Squashfs-Dateisystemdateiformat** zu finden und daher den Code der Funktion zu lesen: ```bash # List containers inside the storage account of the function app az storage container list \ @@ -145,7 +145,7 @@ curl -X PUT "https://newfuncttest123.azurewebsites.net/admin/vfs/home/site/wwwro ``` ### `Microsoft.Web/sites/functions/listKeys/action` -Diese Berechtigung ermöglicht es, den Hostschlüssel der angegebenen Funktion zu erhalten mit: +Diese Berechtigung ermöglicht es, den Hostschlüssel der angegebenen Funktion mit: ```bash az rest --method POST --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Web/sites//functions//listKeys?api-version=2022-03-01" ``` @@ -183,7 +183,7 @@ az rest --method POST \ ``` ### `Microsoft.Web/sites/config/list/action`, `Microsoft.Web/sites/config/write` -Diese Berechtigungen ermöglichen es, die Konfigurationswerte einer Funktion aufzulisten, wie wir zuvor gesehen haben, plus **diese Werte zu ändern**. Dies ist nützlich, da diese Einstellungen anzeigen, wo sich der auszuführende Code innerhalb der Funktion befindet. +Diese Berechtigungen ermöglichen es, die Konfigurationswerte einer Funktion aufzulisten, wie wir zuvor gesehen haben, plus **diese Werte zu ändern**. Dies ist nützlich, da diese Einstellungen anzeigen, wo sich der Code befindet, der innerhalb der Funktion ausgeführt werden soll. Es ist daher möglich, den Wert der Einstellung **`WEBSITE_RUN_FROM_PACKAGE`** auf eine URL-Zip-Datei zu setzen, die den neuen Code enthält, der innerhalb einer Webanwendung ausgeführt werden soll: @@ -234,7 +234,7 @@ az functionapp deployment list-publishing-profiles \ --resource-group \ --output json ``` -Eine weitere Möglichkeit wäre, Ihre eigenen Anmeldeinformationen festzulegen und diese zu verwenden mit: +Eine weitere Möglichkeit wäre, eigene Anmeldeinformationen festzulegen und diese zu verwenden mit: ```bash az functionapp deployment user set \ --user-name DeployUser123456 g \ @@ -329,13 +329,13 @@ az functionapp config appsettings set \ --resource-group \ --settings "AzureWebJobs.http_trigger1.Disabled=false" ``` -Es ist auch möglich zu sehen, ob eine Funktion in der folgenden URL aktiviert oder deaktiviert ist (unter Verwendung der Berechtigung in Klammern): +Es ist auch möglich zu sehen, ob eine Funktion unter der folgenden URL aktiviert oder deaktiviert ist (unter Verwendung der Berechtigung in Klammern): ```bash az rest --url "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Web/sites//functions//properties/state?api-version=2024-04-01" ``` ### `Microsoft.Web/sites/config/write`, `Microsoft.Web/sites/config/list/action`, (`Microsoft.Web/sites/read`, `Microsoft.Web/sites/config/list/action`, `Microsoft.Web/sites/config/read`) -Mit diesen Berechtigungen ist es möglich, **den Container, der von einer Function App ausgeführt wird, zu ändern**, die so konfiguriert ist, dass sie einen Container ausführt. Dies würde es einem Angreifer ermöglichen, eine bösartige Azure Function Container-App auf Docker Hub (zum Beispiel) hochzuladen und die Funktion dazu zu bringen, sie auszuführen. +Mit diesen Berechtigungen ist es möglich, **den Container, der von einer Function App ausgeführt wird**, die so konfiguriert ist, dass sie einen Container ausführt, zu **modifizieren**. Dies würde es einem Angreifer ermöglichen, eine bösartige Azure Function Container-App (zum Beispiel) zu Docker Hub hochzuladen und die Funktion dazu zu bringen, sie auszuführen. ```bash az functionapp config container set --name \ --resource-group \ @@ -364,7 +364,7 @@ az functionapp config set --remote-debugging-enabled=True --name --re ``` ### Ändern des Github-Repos -Ich habe versucht, das Github-Repo zu ändern, von dem aus die Bereitstellung erfolgt, indem ich die folgenden Befehle ausgeführt habe, aber selbst wenn es geändert wurde, **wurde der neue Code nicht geladen** (wahrscheinlich, weil es erwartet, dass die Github Action den Code aktualisiert).\ +Ich habe versucht, das Github-Repo, von dem die Bereitstellung erfolgt, zu ändern, indem ich die folgenden Befehle ausgeführt habe, aber selbst wenn es geändert wurde, **wurde der neue Code nicht geladen** (wahrscheinlich, weil es erwartet, dass die Github Action den Code aktualisiert).\ Darüber hinaus wurde die **verwaltete Identität der föderierten Anmeldeinformationen nicht aktualisiert**, um das neue Repository zuzulassen, sodass es so aussieht, als wäre dies nicht sehr nützlich. ```bash # Remove current diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-key-vault-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-key-vault-privesc.md index 85403fc08..68c7f2b48 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-key-vault-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-key-vault-privesc.md @@ -29,4 +29,14 @@ az keyvault set-policy \ --certificate-permissions all \ --storage-permissions all ``` +### Modify Network Restrictions + +Es könnte möglich sein, dass Sie über ausreichende Berechtigungen verfügen, um auf sensible Daten (wie den Wert eines Secrets) zuzugreifen, aber Sie können nicht darauf zugreifen, da der Key Vault auf ein bestimmtes Netzwerk beschränkt ist. Wenn Sie die Berechtigung haben, die Netzwerkbeschränkungen zu ändern, können Sie Ihre IP zur Liste der erlaubten IPs hinzufügen. +```bash +# Get the current network restrictions +az keyvault network-rule list --name + +# Add your IP to the list +az keyvault network-rule add --name --ip-address +``` {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-postgresql-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-postgresql-privesc.md index 4043bfcf2..d891f0e3e 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-postgresql-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-postgresql-privesc.md @@ -31,13 +31,13 @@ az postgres flexible-server update \ --name \ --admin-password ``` -Zusätzlich ist es notwendig, den öffentlichen Zugriff zu aktivieren, wenn Sie von einem nicht privaten Endpunkt aus zugreifen möchten. Um ihn zu aktivieren: +Zusätzlich ist es notwendig, den öffentlichen Zugriff zu aktivieren, wenn Sie von einem nicht privaten Endpunkt aus zugreifen möchten. Um dies zu aktivieren: ```bash az postgres flexible-server update --resource-group --server-name --public-access Enabled ``` ### `Microsoft.DBforPostgreSQL/flexibleServers/read`, `Microsoft.DBforPostgreSQL/flexibleServers/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`, `Microsoft.DBforPostgreSQL/flexibleServers/administrators/write` && `Microsoft.DBforPostgreSQL/flexibleServers/administrators/read` -Mit dieser Berechtigung können Sie Azure Active Directory (AD) Administratoren für einen PostgreSQL Flexible Server konfigurieren. Dies kann ausgenutzt werden, indem man sich selbst oder ein anderes Konto als AD-Administrator festlegt, was vollständige administrative Kontrolle über den PostgreSQL-Server gewährt. Das Aktualisieren bestehender Prinzipale wird derzeit noch nicht unterstützt, daher müssen Sie, wenn bereits einer erstellt wurde, diesen zuerst löschen. +Mit dieser Berechtigung können Sie Azure Active Directory (AD) Administratoren für einen PostgreSQL Flexible Server konfigurieren. Dies kann ausgenutzt werden, indem man sich selbst oder ein anderes Konto als AD-Administrator festlegt, was vollständige administrative Kontrolle über den PostgreSQL-Server gewährt. Das Aktualisieren bestehender Prinzipale wird derzeit noch nicht unterstützt, daher müssen Sie, wenn einer erstellt wurde, ihn zuerst löschen. Es ist wichtig, dass der flexible Server über zugewiesene verwaltete Identitäten verfügt, die verwendet werden können. ```bash diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-servicebus-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-servicebus-privesc.md index e24756e2b..911fdc2e0 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-servicebus-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-servicebus-privesc.md @@ -12,7 +12,7 @@ Für weitere Informationen siehe: ### Nachrichten senden. Aktion: `Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action` ODER `Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action` -Sie können die `PrimaryConnectionString` abrufen, die als Anmeldeinformation für den Service Bus-Namespace fungiert. Mit dieser Verbindungszeichenfolge können Sie sich vollständig als der Service Bus-Namespace authentifizieren, was es Ihnen ermöglicht, Nachrichten an jede Warteschlange oder jedes Thema zu senden und potenziell mit dem System auf eine Weise zu interagieren, die den Betrieb stören, gültige Benutzer impersonieren oder bösartige Daten in den Nachrichtenworkflow injizieren könnte. +Sie können die `PrimaryConnectionString` abrufen, die als Anmeldeinformation für den Service Bus-Namespace fungiert. Mit dieser Verbindungszeichenfolge können Sie sich vollständig als der Service Bus-Namespace authentifizieren, was es Ihnen ermöglicht, Nachrichten an jede Warteschlange oder jedes Thema zu senden und potenziell mit dem System auf eine Weise zu interagieren, die den Betrieb stören, gültige Benutzer impersonieren oder schädliche Daten in den Nachrichtenworkflow injizieren könnte. ```python #You need to install the following libraries #pip install azure-servicebus @@ -129,7 +129,7 @@ print("----------------------------") ``` ### `Microsoft.ServiceBus/namespaces/authorizationRules/read` & `Microsoft.ServiceBus/namespaces/authorizationRules/write` -Wenn Sie über diese Berechtigungen verfügen, können Sie Privilegien erhöhen, indem Sie gemeinsame Zugriffsschlüssel lesen oder erstellen. Diese Schlüssel ermöglichen die vollständige Kontrolle über den Service Bus-Namespace, einschließlich der Verwaltung von Warteschlangen, Themen und dem Senden/Empfangen von Nachrichten, wodurch möglicherweise rollenbasierte Zugriffskontrollen (RBAC) umgangen werden. +Wenn Sie über diese Berechtigungen verfügen, können Sie die Berechtigungen erhöhen, indem Sie gemeinsame Zugriffsschlüssel lesen oder erstellen. Diese Schlüssel ermöglichen die vollständige Kontrolle über den Service Bus-Namespace, einschließlich der Verwaltung von Warteschlangen, Themen und dem Senden/Empfangen von Nachrichten, wodurch möglicherweise rollenbasierte Zugriffskontrollen (RBAC) umgangen werden. ```bash az servicebus namespace authorization-rule update \ --resource-group \ diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-sql-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-sql-privesc.md index 565416012..5f9e0ff5d 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-sql-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-sql-privesc.md @@ -1,8 +1,8 @@ -# Az - SQL-Datenbank Privesc +# Az - SQL-Datenbank-Privesc {{#include ../../../banners/hacktricks-training.md}} -## SQL-Datenbank Privesc +## SQL-Datenbank-Privesc Für weitere Informationen zur SQL-Datenbank siehe: @@ -28,7 +28,7 @@ az sql server create \ --admin-user \ --admin-password ``` -Zusätzlich ist es notwendig, den öffentlichen Zugriff zu aktivieren, wenn Sie von einem nicht privaten Endpunkt aus zugreifen möchten. Um dies zu aktivieren: +Zusätzlich ist es notwendig, den öffentlichen Zugriff zu aktivieren, wenn Sie von einem nicht privaten Endpunkt aus zugreifen möchten. Um ihn zu aktivieren: ```bash az sql server update \ --name \ @@ -37,7 +37,7 @@ az sql server update \ ``` ### `Microsoft.Sql/servers/firewallRules/write` -Ein Angreifer kann Firewall-Regeln auf Azure SQL-Servern manipulieren, um unbefugten Zugriff zu ermöglichen. Dies kann ausgenutzt werden, um den Server für bestimmte IP-Adressen oder gesamte IP-Bereiche, einschließlich öffentlicher IPs, zu öffnen, wodurch der Zugriff für böswillige Akteure ermöglicht wird. Diese Post-Exploitation-Aktivität kann verwendet werden, um bestehende Netzwerksicherheitskontrollen zu umgehen, Persistenz zu etablieren oder laterale Bewegungen innerhalb der Umgebung zu erleichtern, indem sensible Ressourcen exponiert werden. +Ein Angreifer kann Firewall-Regeln auf Azure SQL-Servern manipulieren, um unbefugten Zugriff zu ermöglichen. Dies kann ausgenutzt werden, um den Server für bestimmte IP-Adressen oder ganze IP-Bereiche, einschließlich öffentlicher IPs, zu öffnen, wodurch der Zugriff für böswillige Akteure ermöglicht wird. Diese Post-Exploitation-Aktivität kann verwendet werden, um bestehende Netzwerksicherheitskontrollen zu umgehen, Persistenz zu etablieren oder laterale Bewegungen innerhalb der Umgebung zu erleichtern, indem sensible Ressourcen exponiert werden. ```bash # Create Firewall Rule az sql server firewall-rule create \ @@ -60,7 +60,7 @@ HINWEIS: Es ist erforderlich, den öffentlichen Zugriff zu aktivieren. ### `Microsoft.Sql/servers/ipv6FirewallRules/write` -Mit dieser Berechtigung können Sie IPv6-Firewallregeln auf einem Azure SQL Server erstellen, ändern oder löschen. Dies könnte einem Angreifer oder autorisierten Benutzer ermöglichen, bestehende Netzwerksicherheitskonfigurationen zu umgehen und unbefugten Zugriff auf den Server zu erlangen. Durch das Hinzufügen einer Regel, die den Datenverkehr von jeder IPv6-Adresse erlaubt, könnte der Angreifer den Server für externen Zugriff öffnen. +Mit dieser Berechtigung können Sie IPv6-Firewallregeln auf einem Azure SQL-Server erstellen, ändern oder löschen. Dies könnte einem Angreifer oder autorisierten Benutzer ermöglichen, bestehende Netzwerksicherheitskonfigurationen zu umgehen und unbefugten Zugriff auf den Server zu erlangen. Durch das Hinzufügen einer Regel, die den Datenverkehr von jeder IPv6-Adresse erlaubt, könnte der Angreifer den Server für externen Zugriff öffnen. ```bash az sql server firewall-rule create \ --server \ @@ -69,7 +69,7 @@ az sql server firewall-rule create \ --start-ip-address \ --end-ip-address ``` -Zusätzlich ermöglicht die Berechtigung `Microsoft.Sql/servers/ipv6FirewallRules/delete` das Löschen einer Firewall-Regel. +Zusätzlich ermöglicht die Berechtigung `Microsoft.Sql/servers/ipv6FirewallRules/delete` das Löschen einer Firewallregel. HINWEIS: Es ist erforderlich, den öffentlichen Zugriff zu aktivieren. ### `Microsoft.Sql/servers/administrators/write` && `Microsoft.Sql/servers/administrators/read` diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-storage-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-storage-privesc.md index e9861b460..17509a58b 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-storage-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-storage-privesc.md @@ -38,10 +38,10 @@ az storage account update --name --add networkRuleSet.ipRules value=< ### `Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/write` | `Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/delete` -Die erste Berechtigung erlaubt es, **Immutabilitätsrichtlinien** in Containern zu **ändern** und die zweite, sie zu **löschen**. +Die erste Berechtigung erlaubt es, **Unveränderlichkeitspolitiken** in Containern zu **ändern** und die zweite, sie zu **löschen**. > [!NOTE] -> Beachten Sie, dass Sie, wenn sich eine Immutabilitätsrichtlinie im Sperrstatus befindet, keine der beiden Aktionen durchführen können. +> Beachten Sie, dass Sie, wenn sich eine Unveränderlichkeitspolitik im Sperrstatus befindet, keines von beidem tun können. ```bash az storage container immutability-policy delete \ --account-name \ @@ -70,7 +70,7 @@ Dies sollte es einem Benutzer mit dieser Berechtigung ermöglichen, Aktionen inn ### `Microsoft.Storage/storageAccounts/localusers/write (Microsoft.Storage/storageAccounts/localusers/read)` -Mit dieser Berechtigung kann ein Angreifer einen neuen lokalen Benutzer für ein Azure Storage-Konto (konfiguriert mit hierarchischem Namensraum) erstellen und aktualisieren (wenn er die Berechtigung `Microsoft.Storage/storageAccounts/localusers/read` hat), einschließlich der Angabe der Berechtigungen und des Heimatverzeichnisses des Benutzers. Diese Berechtigung ist bedeutend, da sie dem Angreifer ermöglicht, sich selbst ein Speicher-Konto mit spezifischen Berechtigungen wie Lesen (r), Schreiben (w), Löschen (d) und Auflisten (l) und mehr zu gewähren. Zusätzlich können die Authentifizierungsmethoden, die hierfür verwendet werden, von Azure generierte Passwörter und SSH-Schlüsselpaare sein. Es gibt keine Überprüfung, ob ein Benutzer bereits existiert, sodass Sie andere Benutzer, die bereits vorhanden sind, überschreiben können. Der Angreifer könnte seine Privilegien eskalieren und SSH-Zugriff auf das Speicher-Konto erhalten, was potenziell sensible Daten offenlegen oder gefährden könnte. +Mit dieser Berechtigung kann ein Angreifer einen neuen lokalen Benutzer für ein Azure Storage-Konto (konfiguriert mit hierarchischem Namensraum) erstellen und aktualisieren (wenn er die Berechtigung `Microsoft.Storage/storageAccounts/localusers/read` hat), einschließlich der Angabe der Berechtigungen und des Heimatverzeichnisses des Benutzers. Diese Berechtigung ist bedeutend, da sie dem Angreifer ermöglicht, sich selbst ein Speicher-Konto mit spezifischen Berechtigungen wie Lesen (r), Schreiben (w), Löschen (d) und Auflisten (l) und mehr zu gewähren. Zusätzlich können die Authentifizierungsmethoden, die hierfür verwendet werden, Azure-generierte Passwörter und SSH-Schlüsselpaare sein. Es gibt keine Überprüfung, ob ein Benutzer bereits existiert, sodass Sie andere Benutzer, die bereits vorhanden sind, überschreiben können. Der Angreifer könnte seine Privilegien eskalieren und SSH-Zugriff auf das Speicher-Konto erhalten, was potenziell sensible Daten offenlegen oder gefährden könnte. ```bash az storage account local-user create \ --account-name \ @@ -89,7 +89,7 @@ az storage account local-user regenerate-password \ --resource-group \ --name ``` -Um auf Azure Blob Storage über SFTP zuzugreifen (is_hns_enabled sollte wahr sein) und einen lokalen Benutzer über SFTP zu verwenden, können Sie (Sie können auch einen SSH-Schlüssel zur Verbindung verwenden): +Um auf Azure Blob Storage über SFTP zuzugreifen (is_hns_enabled sollte wahr sein), können Sie einen lokalen Benutzer über SFTP verwenden (Sie können auch einen SSH-Schlüssel zur Verbindung verwenden): ```bash sftp .@.blob.core.windows.net #regenerated-password diff --git a/src/pentesting-cloud/azure-security/az-services/az-azuread.md b/src/pentesting-cloud/azure-security/az-services/az-azuread.md index 9d9e79353..15a3ed4a3 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-azuread.md +++ b/src/pentesting-cloud/azure-security/az-services/az-azuread.md @@ -186,7 +186,7 @@ Connect-AzureAD -AccountId test@corp.onmicrosoft.com -AadAccessToken $token Wenn Sie sich über die **CLI** bei Azure mit einem Programm anmelden, verwenden Sie eine **Azure-Anwendung** aus einem **Mandanten**, der zu **Microsoft** gehört. Diese Anwendungen, wie die, die Sie in Ihrem Konto erstellen können, **haben eine Client-ID**. Sie **werden nicht alle sehen können** in den **erlaubten Anwendungslisten**, die Sie in der Konsole sehen können, **aber sie sind standardmäßig erlaubt**. -Zum Beispiel verwendet ein **PowerShell-Skript**, das sich **authentifiziert**, eine App mit der Client-ID **`1950a258-227b-4e31-a9cf-717495945fc2`**. Selbst wenn die App nicht in der Konsole angezeigt wird, könnte ein Systemadministrator **diese Anwendung blockieren**, sodass Benutzer nicht über Tools, die sich über diese App verbinden, darauf zugreifen können. +Zum Beispiel verwendet ein **PowerShell-Skript**, das sich **authentifiziert**, eine App mit der Client-ID **`1950a258-227b-4e31-a9cf-717495945fc2`**. Selbst wenn die App nicht in der Konsole angezeigt wird, könnte ein Sysadmin **diese Anwendung blockieren**, sodass Benutzer nicht über Tools, die sich über diese App verbinden, darauf zugreifen können. Es gibt jedoch **andere Client-IDs** von Anwendungen, die **es Ihnen ermöglichen, sich mit Azure zu verbinden**: ```bash @@ -796,13 +796,13 @@ Get-AzureADApplication -ObjectId | Get-AzureADApplicationOwner |fl * > Für weitere Informationen [**hier überprüfen**](https://posts.specterops.io/azure-privilege-escalation-via-azure-api-permissions-abuse-74aee1006f48). > [!NOTE] -> Ein geheimer String, den die Anwendung verwendet, um ihre Identität bei der Anforderung eines Tokens zu beweisen, ist das Anwendungskennwort.\ -> Wenn Sie also dieses **Kennwort** finden, können Sie als **Service Principal** **innerhalb** des **Mandanten** zugreifen.\ -> Beachten Sie, dass dieses Kennwort nur sichtbar ist, wenn es generiert wird (Sie könnten es ändern, aber Sie können es nicht erneut abrufen).\ -> Der **Besitzer** der **Anwendung** kann ihr **ein Kennwort hinzufügen** (damit er sich als diese ausgeben kann).\ +> Ein geheimer String, den die Anwendung verwendet, um ihre Identität bei der Anforderung eines Tokens zu beweisen, ist das Anwendungs-Passwort.\ +> Wenn Sie also dieses **Passwort** finden, können Sie als **Service Principal** **innerhalb** des **Mandanten** zugreifen.\ +> Beachten Sie, dass dieses Passwort nur sichtbar ist, wenn es generiert wird (Sie können es ändern, aber nicht erneut abrufen).\ +> Der **Besitzer** der **Anwendung** kann ihr **ein Passwort hinzufügen** (damit er sich als diese ausgeben kann).\ > Anmeldungen als diese Service Principals sind **nicht als riskant gekennzeichnet** und sie **werden kein MFA haben.** -Es ist möglich, eine Liste von häufig verwendeten App-IDs, die zu Microsoft gehören, in [https://learn.microsoft.com/en-us/troubleshoot/entra/entra-id/governance/verify-first-party-apps-sign-in#application-ids-of-commonly-used-microsoft-applications](https://learn.microsoft.com/en-us/troubleshoot/entra/entra-id/governance/verify-first-party-apps-sign-in#application-ids-of-commonly-used-microsoft-applications) zu finden. +Es ist möglich, eine Liste von häufig verwendeten App-IDs, die zu Microsoft gehören, unter [https://learn.microsoft.com/en-us/troubleshoot/entra/entra-id/governance/verify-first-party-apps-sign-in#application-ids-of-commonly-used-microsoft-applications](https://learn.microsoft.com/en-us/troubleshoot/entra/entra-id/governance/verify-first-party-apps-sign-in#application-ids-of-commonly-used-microsoft-applications) zu finden. ### Managed Identities @@ -1090,7 +1090,7 @@ Get-AzureADMSScopedRoleMembership -Id | fl #Get role ID and role members Privileged Identity Management (PIM) in Azure hilft, **übermäßige Berechtigungen** zu verhindern, die unnötig Benutzern zugewiesen werden. -Eine der Hauptfunktionen von PIM ist, dass es ermöglicht, Rollen nicht ständig aktiven Benutzern zuzuweisen, sondern sie **für einen bestimmten Zeitraum (z.B. 6 Monate)** bereitzustellen. Dann, wann immer der Benutzer diese Rolle aktivieren möchte, muss er sie anfordern und die Zeit angeben, für die er die Berechtigung benötigt (z.B. 3 Stunden). Dann muss ein **Admin die Anfrage genehmigen**.\ +Eine der Hauptfunktionen von PIM ist, dass es ermöglicht, Rollen nicht ständig aktiven Benutzern zuzuweisen, sondern sie **für einen bestimmten Zeitraum (z.B. 6 Monate)** berechtigt. Dann, wann immer der Benutzer diese Rolle aktivieren möchte, muss er sie anfordern und die Zeit angeben, für die er die Berechtigung benötigt (z.B. 3 Stunden). Dann muss ein **Admin die Anfrage genehmigen**.\ Beachten Sie, dass der Benutzer auch die Möglichkeit hat, die Zeit zu **verlängern**. Darüber hinaus **sendet PIM E-Mails**, wann immer eine privilegierte Rolle jemandem zugewiesen wird. @@ -1129,7 +1129,7 @@ Es ermöglicht dem Admin, es so zu konfigurieren, dass es Versuche blockiert, we ### Entra Passwortschutz -Entra Passwortschutz ([https://portal.azure.com/index.html#view/Microsoft_AAD_ConditionalAccess/PasswordProtectionBlade](https://portal.azure.com/#view/Microsoft_AAD_ConditionalAccess/PasswordProtectionBlade)) ist eine Sicherheitsfunktion, die **hilft, den Missbrauch schwacher Passwörter zu verhindern, indem Konten gesperrt werden, wenn mehrere erfolglose Anmeldeversuche auftreten**.\ +Entra Passwortschutz ([https://portal.azure.com/index.html#view/Microsoft_AAD_ConditionalAccess/PasswordProtectionBlade](https://portal.azure.com/#view/Microsoft_AAD_ConditionalAccess/PasswordProtectionBlade)) ist eine Sicherheitsfunktion, die **hilft, den Missbrauch schwacher Passwörter zu verhindern, indem Konten gesperrt werden, wenn mehrere erfolglose Anmeldeversuche stattfinden**.\ Es ermöglicht auch, eine **benutzerdefinierte Passwortliste zu sperren**, die Sie bereitstellen müssen. Es kann **sowohl** auf Cloud-Ebene als auch im lokalen Active Directory angewendet werden. diff --git a/src/pentesting-cloud/azure-security/az-services/az-cloud-shell.md b/src/pentesting-cloud/azure-security/az-services/az-cloud-shell.md index 4fcbe8856..f9c29d222 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-cloud-shell.md +++ b/src/pentesting-cloud/azure-security/az-services/az-cloud-shell.md @@ -4,7 +4,7 @@ ## Azure Cloud Shell -**Azure Cloud Shell** ist ein interaktives, authentifiziertes, browserzugängliches Terminal, das für die Verwaltung von Azure-Ressourcen konzipiert ist und die Flexibilität bietet, entweder mit Bash oder PowerShell zu arbeiten. Es läuft auf einem temporären, pro Sitzung zugewiesenen Host, der nach 20 Minuten Inaktivität abläuft, während Dateien im $HOME-Verzeichnis unter Verwendung eines 5-GB-Dateifreigabe gespeichert werden. Cloud Shell kann über mehrere Punkte aufgerufen werden, einschließlich des Azure-Portals, shell.azure.com, Azure CLI und PowerShell-Dokumentation, der Azure-Mobile-App und der Visual Studio Code Azure-Kontoerweiterung. +**Azure Cloud Shell** ist ein interaktives, authentifiziertes, browserzugängliches Terminal, das für die Verwaltung von Azure-Ressourcen konzipiert ist und die Flexibilität bietet, entweder mit Bash oder PowerShell zu arbeiten. Es läuft auf einem temporären, pro Sitzung zugewiesenen Host, der nach 20 Minuten Inaktivität abläuft, während Dateien im $HOME-Verzeichnis unter Verwendung eines 5-GB-Dateispeichers gespeichert werden. Cloud Shell kann über mehrere Punkte aufgerufen werden, einschließlich des Azure-Portals, shell.azure.com, Azure CLI und PowerShell-Dokumentation, der Azure-Mobile-App und der Visual Studio Code Azure-Kontoerweiterung. Es sind keine Berechtigungen für diesen Dienst zugewiesen, daher gibt es keine Techniken zur Privilegieneskalation. Auch gibt es keine Art der Enumeration. @@ -12,7 +12,7 @@ Es sind keine Berechtigungen für diesen Dienst zugewiesen, daher gibt es keine **Umgebung**: Azure Cloud Shell bietet eine sichere Umgebung, indem es auf Azure Linux läuft, Microsofts eigener Linux-Distribution, die für Cloud-Infrastruktur entwickelt wurde. Alle Pakete, die im Azure Linux-Repository enthalten sind, werden intern von Microsoft kompiliert, um sich gegen Angriffe auf die Lieferkette zu schützen. **Vorinstallierte Tools**: Cloud Shell umfasst eine umfassende Sammlung vorinstallierter Tools wie Azure CLI, Azure PowerShell, Terraform, Docker CLI, Ansible, Git und Texteditoren wie vim, nano und emacs. Diese Tools sind einsatzbereit. Um die installierten Pakete und Module aufzulisten, können Sie "Get-Module -ListAvailable", "tdnf list" und "pip3 list" verwenden. -**$HOME-Persistenz**: Beim ersten Start von Azure Cloud Shell können Sie es mit oder ohne ein angehängtes Speicherkonto verwenden. Wenn Sie sich entscheiden, keinen Speicher anzuhängen, wird eine flüchtige Sitzung erstellt, in der Dateien gelöscht werden, wenn die Sitzung endet. Um Dateien über Sitzungen hinweg zu speichern, montieren Sie ein Speicherkonto, das automatisch als **$HOME\clouddrive** angehängt wird, wobei Ihr **$HOME**-Verzeichnis als **.img**-Datei in Azure File Share gespeichert wird. Dateien außerhalb von $HOME und Maschinenzustände werden jedoch nicht gespeichert. Zum sicheren Speichern von Geheimnissen wie SSH-Schlüsseln verwenden Sie Azure Key Vault. +**$HOME-Persistenz**: Beim ersten Start von Azure Cloud Shell können Sie es mit oder ohne ein angehängtes Speicherkonto verwenden. Wenn Sie sich entscheiden, keinen Speicher anzuhängen, wird eine flüchtige Sitzung erstellt, in der Dateien gelöscht werden, wenn die Sitzung endet. Um Dateien über Sitzungen hinweg zu speichern, montieren Sie ein Speicherkonto, das automatisch als **$HOME\clouddrive** angehängt wird, wobei Ihr **$HOME**-Verzeichnis als **.img**-Datei im Azure File Share gespeichert wird. Dateien außerhalb von $HOME und Maschinenzustände werden jedoch nicht gespeichert. Zum sicheren Speichern von Geheimnissen wie SSH-Schlüsseln verwenden Sie Azure Key Vault. **Azure-Laufwerk (Azure:)**: PowerShell in Azure Cloud Shell umfasst das Azure-Laufwerk (Azure:), das eine einfache Navigation durch Azure-Ressourcen wie Compute, Network und Storage mit dateisystemähnlichen Befehlen ermöglicht. Wechseln Sie zum Azure-Laufwerk mit cd Azure: und kehren Sie mit cd ~ in Ihr Home-Verzeichnis zurück. Sie können weiterhin Azure PowerShell-Cmdlets verwenden, um Ressourcen von jedem Laufwerk aus zu verwalten. **Benutzerdefinierte Tool-Installation**: Benutzer, die Cloud Shell mit einem Speicherkonto konfigurieren, können zusätzliche Tools installieren, die keine Root-Berechtigungen erfordern. Diese Funktion ermöglicht eine weitere Anpassung der Cloud Shell-Umgebung, sodass Benutzer ihre Einrichtung an ihre spezifischen Bedürfnisse anpassen können. diff --git a/src/pentesting-cloud/azure-security/az-services/az-cosmosDB.md b/src/pentesting-cloud/azure-security/az-services/az-cosmosDB.md index 543c13ae9..1f326d94b 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-cosmosDB.md +++ b/src/pentesting-cloud/azure-security/az-services/az-cosmosDB.md @@ -4,14 +4,14 @@ ## Azure CosmosDB -**Azure Cosmos DB** ist eine vollständig **verwaltete NoSQL-, relationale und Vektordatenbank**, die Reaktionszeiten im einstelligen Millisekundenbereich, automatische Skalierbarkeit und SLA-unterstützte Verfügbarkeit mit Unternehmenssicherheit bietet. Es ermöglicht eine schnellere Anwendungsentwicklung durch schlüsselfertige, mehrregionale Datenverteilung, Open-Source-APIs, SDKs für beliebte Programmiersprachen und KI-Datenbankfunktionen wie integrierte Vektorsupport und nahtlose Azure KI-Integration. +**Azure Cosmos DB** ist eine vollständig **verwaltete NoSQL-, relationale und Vektordatenbank**, die Reaktionszeiten im einstelligen Millisekundenbereich, automatische Skalierbarkeit und SLA-unterstützte Verfügbarkeit mit Unternehmenssicherheit bietet. Es ermöglicht eine schnellere Anwendungsentwicklung durch schlüsselfertige, mehrregionale Datenverteilung, Open-Source-APIs, SDKs für beliebte Programmiersprachen und KI-Datenbankfunktionen wie integrierte Vektorstützung und nahtlose Azure KI-Integration. Azure Cosmos DB bietet mehrere Datenbank-APIs, um reale Daten mit Dokumenten, relationalen, Schlüssel-Wert-, Graph- und Spaltenfamilien-Datenmodellen zu modellieren. Diese APIs sind NoSQL, MongoDB, PostgreSQL, Cassandra, Gremlin und Table. Ein wichtiger Aspekt von CosmosDB ist das Azure Cosmos-Konto. **Azure Cosmos-Konto** fungiert als Einstiegspunkt zu den Datenbanken. Das Konto bestimmt wichtige Einstellungen wie globale Verteilung, Konsistenzstufen und die spezifische API, die verwendet werden soll, wie z.B. NoSQL. Über das Konto können Sie die globale Replikation konfigurieren, um sicherzustellen, dass Daten in mehreren Regionen für einen latenzarmen Zugriff verfügbar sind. Darüber hinaus können Sie eine Konsistenzstufe wählen, die zwischen Leistung und Datenakkuratheit balanciert, mit Optionen von starker bis eventualer Konsistenz. ### NoSQL (sql) -Die Azure Cosmos DB NoSQL-API ist eine dokumentenbasierte API, die JSON als Datenformat verwendet. Sie bietet eine SQL-ähnliche Abfragesyntax zum Abfragen von JSON-Objekten, was sie geeignet macht für die Arbeit mit strukturierten und semi-strukturierten Daten. Der Endpunkt des Dienstes ist: +Die Azure Cosmos DB NoSQL-API ist eine dokumentenbasierte API, die JSON als Datenformat verwendet. Sie bietet eine SQL-ähnliche Abfragesyntax zum Abfragen von JSON-Objekten, was sie geeignet macht, um mit strukturierten und semi-strukturierten Daten zu arbeiten. Der Endpunkt des Dienstes ist: ```bash https://.documents.azure.com:443/ ``` @@ -19,7 +19,7 @@ https://.documents.azure.com:443/ Innerhalb eines Kontos können Sie eine oder mehrere Datenbanken erstellen, die als logische Gruppierungen von Containern dienen. Eine Datenbank fungiert als Grenze für das Ressourcenmanagement und die Benutzerberechtigungen. Datenbanken können entweder die bereitgestellte Durchsatzrate über ihre Container teilen oder dedizierten Durchsatz für einzelne Container zuweisen. #### Container -Die zentrale Einheit der Datenspeicherung ist der Container, der JSON-Dokumente enthält und automatisch für effiziente Abfragen indiziert wird. Container sind elastisch skalierbar und über Partitionen verteilt, die durch einen benutzerdefinierten Partitionierungsschlüssel bestimmt werden. Der Partitionierungsschlüssel ist entscheidend für die Gewährleistung optimaler Leistung und gleichmäßiger Datenverteilung. Zum Beispiel könnte ein Container Kundendaten speichern, wobei "customerId" als Partitionierungsschlüssel dient. +Die zentrale Einheit der Datenspeicherung ist der Container, der JSON-Dokumente enthält und automatisch für effizientes Abfragen indiziert wird. Container sind elastisch skalierbar und über Partitionen verteilt, die durch einen benutzerdefinierten Partitionierungsschlüssel bestimmt werden. Der Partitionierungsschlüssel ist entscheidend für die Gewährleistung optimaler Leistung und gleichmäßiger Datenverteilung. Zum Beispiel könnte ein Container Kundendaten speichern, wobei "customerId" als Partitionierungsschlüssel dient. #### Aufzählung diff --git a/src/pentesting-cloud/azure-security/az-services/az-file-shares.md b/src/pentesting-cloud/azure-security/az-services/az-file-shares.md index acda20d46..27bc0f631 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-file-shares.md +++ b/src/pentesting-cloud/azure-security/az-services/az-file-shares.md @@ -23,7 +23,7 @@ ### Unterstützte Authentifizierungen über SMB -- **On-premises AD DS-Authentifizierung**: Es verwendet lokale Active Directory-Anmeldeinformationen, die mit Microsoft Entra ID für identitätsbasierten Zugriff synchronisiert sind. Es erfordert Netzwerkverbindung zu lokalem AD DS. +- **On-Premises AD DS-Authentifizierung**: Es verwendet lokale Active Directory-Anmeldeinformationen, die mit Microsoft Entra ID für identitätsbasierten Zugriff synchronisiert sind. Es erfordert Netzwerkverbindung zu lokalem AD DS. - **Microsoft Entra Domain Services-Authentifizierung**: Es nutzt Microsoft Entra Domain Services (cloudbasiertes AD), um den Zugriff mit Microsoft Entra-Anmeldeinformationen bereitzustellen. - **Microsoft Entra Kerberos für hybride Identitäten**: Es ermöglicht Microsoft Entra-Benutzern, Azure-Dateifreigaben über das Internet mit Kerberos zu authentifizieren. Es unterstützt hybride Microsoft Entra-verbundene oder Microsoft Entra-verbundene VMs, ohne dass eine Verbindung zu lokalen Domänencontrollern erforderlich ist. Es unterstützt jedoch keine cloudbasierten Identitäten. - **AD Kerberos-Authentifizierung für Linux-Clients**: Es ermöglicht Linux-Clients, Kerberos für die SMB-Authentifizierung über lokales AD DS oder Microsoft Entra Domain Services zu verwenden. diff --git a/src/pentesting-cloud/azure-security/az-services/az-function-apps.md b/src/pentesting-cloud/azure-security/az-services/az-function-apps.md index 0dc07b51f..0337cb7fc 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-function-apps.md +++ b/src/pentesting-cloud/azure-security/az-services/az-function-apps.md @@ -6,24 +6,24 @@ **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. -> [!NOTE] +> [!HINWEIS] > 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 erfordern. - **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. +- **Premium Plan**: Entwickelt für **konstante Leistung**, mit **vorwärmten 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. -- **Container Apps**: Ermöglicht das Bereitstellen von **containerisierten Funktions-Apps** in einer verwalteten Umgebung, zusammen mit Mikrodiensten und APIs. Es unterstützt benutzerdefinierte Bibliotheken, die Migration von Legacy-Apps und **GPU-Verarbeitung**, wodurch die Verwaltung von Kubernetes-Clustern entfällt. Ideal für **ereignisgesteuerte, skalierbare containerisierte Anwendungen**. +- **Container Apps**: Ermöglicht das Bereitstellen von **containerisierten Funktions-Apps** in einer verwalteten Umgebung, zusammen mit Microservices und APIs. Es unterstützt benutzerdefinierte Bibliotheken, die Migration von Legacy-Apps und **GPU-Verarbeitung**, wodurch die Verwaltung von Kubernetes-Clustern entfällt. Ideal für **ereignisgesteuerte, skalierbare containerisierte Anwendungen**. ### **Speicher-Buckets** Beim Erstellen einer neuen nicht containerisierten Function App (aber mit dem Code zum Ausführen) werden die **Code- und anderen funktionsbezogenen Daten in einem Speicherkonto gespeichert**. Standardmäßig erstellt die Webkonsole für jede Funktion ein neues Konto, um den Code zu speichern. -Darüber hinaus wird der Code im Bucket (in den verschiedenen Formaten, in denen er gespeichert werden kann) geändert, sodass der **Code der App auf den neuen geändert wird und beim nächsten Aufruf der Funktion ausgeführt wird**. +Darüber hinaus wird der Code im Bucket (in den verschiedenen Formaten, in denen er gespeichert werden kann) geändert, sodass der **Code der App auf den neuen geändert und beim nächsten Aufruf der Funktion ausgeführt wird**. -> [!CAUTION] +> [!VORSICHT] > Dies ist aus der Perspektive eines Angreifers sehr interessant, da **Schreibzugriff auf diesen Bucket** es einem Angreifer ermöglichen würde, **den Code zu kompromittieren und Berechtigungen** für die verwalteten Identitäten innerhalb der Function App zu eskalieren. > > Mehr dazu im **Abschnitt zur Berechtigungseskalation**. @@ -39,12 +39,12 @@ Bei Verwendung eines HTTP-Triggers: - Es ist möglich, **Zugriff auf eine Funktion von überall im Internet** zu gewähren, ohne eine Authentifizierung zu verlangen, oder den Zugriff IAM-basiert zu gewähren. Obwohl es auch möglich ist, diesen Zugriff einzuschränken. - Es ist auch möglich, **Zugriff auf eine Function App von einem internen Netzwerk (VPC)** zu gewähren oder einzuschränken. -> [!CAUTION] +> [!VORSICHT] > 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, **auf interne Netzwerke zu pivotieren**. ### **Function App-Einstellungen & Umgebungsvariablen** -Es ist möglich, Umgebungsvariablen innerhalb einer App zu konfigurieren, die sensible Informationen enthalten könnten. Darüber hinaus werden standardmäßig die Umgebungsvariablen **`AzureWebJobsStorage`** und **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** (unter anderem) erstellt. Diese sind besonders interessant, da sie **den Kontoschlüssel enthalten, um mit VOLLBERECHTIGUNGEN auf das Speicherkonto zuzugreifen, das die Daten der Anwendung enthält**. Diese Einstellungen sind auch erforderlich, um den Code aus dem Speicherkonto auszuführen. +Es ist möglich, Umgebungsvariablen innerhalb einer App zu konfigurieren, die sensible Informationen enthalten könnten. Darüber hinaus werden standardmäßig die Umgebungsvariablen **`AzureWebJobsStorage`** und **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** (unter anderem) erstellt. Diese sind besonders interessant, da sie **den Kontoschlüssel enthalten, um mit VOLLER Berechtigung auf das Speicherkonto zuzugreifen, das die Daten der Anwendung enthält**. Diese Einstellungen sind auch erforderlich, um den Code aus dem Speicherkonto auszuführen. Diese Umgebungsvariablen oder Konfigurationsparameter steuern auch, wie die Funktion den Code ausführt, zum Beispiel, wenn **`WEBSITE_RUN_FROM_PACKAGE`** existiert, zeigt es die URL an, wo sich der Code der Anwendung befindet. @@ -60,12 +60,12 @@ Genau wie [**VMs**](vms/index.html) können Funktionen **verwaltete Identitäten 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/index.html) 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. +> [!HINWEIS] +> Genau wie bei [**VMs**](vms/index.html) 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. -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 Metadatenendpunkt 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 Metadatenendpunkt zu erhalten. Oder Sie könnten sie **manuell** erhalten, wie in: {% embed url="https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html#azure-vm" %} @@ -73,7 +73,7 @@ Beachten Sie, dass Sie einen Weg finden müssen, um **alle verwalteten Identitä ## Zugriffsschlüssel -> [!NOTE] +> [!HINWEIS] > Beachten Sie, dass es keine RBAC-Berechtigungen gibt, um Benutzern den Zugriff auf die Funktionen zu gewähren. Die **Funktionsausführung hängt vom Trigger** ab, der beim Erstellen ausgewählt wurde, und wenn ein HTTP-Trigger ausgewählt wurde, könnte es erforderlich sein, einen **Zugriffsschlüssel** zu verwenden. Beim Erstellen eines Endpunkts innerhalb einer Funktion mit einem **HTTP-Trigger** ist es möglich, das **Zugriffsschlüssel-Autorisierungsniveau** anzugeben, das erforderlich ist, um die Funktion auszulösen. Drei Optionen sind verfügbar: @@ -84,19 +84,19 @@ Beim Erstellen eines Endpunkts innerhalb einer Funktion mit einem **HTTP-Trigger **Arten von Schlüsseln:** -- **Funktionsschlüssel:** Funktionsschlüssel können entweder standardmäßig oder benutzerdefiniert sein und sind dafür ausgelegt, den Zugriff ausschließlich auf **bestimmte Funktionsendpunkte** innerhalb einer Function App zu gewähren, was einen feineren Zugriff auf die Endpunkte ermöglicht. +- **Funktionsschlüssel:** Funktionsschlüssel können entweder standardmäßig oder benutzerdefiniert sein und sind so konzipiert, dass sie ausschließlich den Zugriff auf **spezifische Funktionsendpunkte** innerhalb einer Function App gewähren, was einen feineren Zugriff auf die Endpunkte ermöglicht. - **Host-Schlüssel:** Host-Schlüssel, die ebenfalls standardmäßig oder benutzerdefiniert sein können, gewähren Zugriff auf **alle Funktionsendpunkte innerhalb einer Function App mit FUNCTION-Zugriffslevel**. - **Master-Schlüssel:** Der Master-Schlüssel (`_master`) dient als administrativer Schlüssel, der erhöhte Berechtigungen bietet, einschließlich Zugriff auf alle Funktionsendpunkte (ADMIN-Zugriffslevel eingeschlossen). Dieser **Schlüssel kann nicht widerrufen werden.** - **Systemschlüssel:** Systemschlüssel werden **von bestimmten Erweiterungen verwaltet** und sind erforderlich, um auf Webhook-Endpunkte zuzugreifen, die von internen Komponenten verwendet werden. Beispiele sind der Event Grid-Trigger und Durable Functions, die Systemschlüssel verwenden, um sicher mit ihren jeweiligen APIs zu interagieren. -> [!TIP] +> [!TIPP] > Beispiel für den Zugriff auf einen Funktions-API-Endpunkt mit einem Schlüssel: > > `https://.azurewebsites.net/api/?code=` ### Basis-Authentifizierung -Genau wie in App Services 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 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: {{#ref}} az-app-services.md @@ -104,7 +104,7 @@ az-app-services.md ### Github-basierte Bereitstellungen -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, wann immer 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:
@@ -201,7 +201,7 @@ Darüber hinaus wird eine **Managed Identity** erstellt, damit die Github Action 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 Speicher**-Konto gespeichert, das mit der Funktion verbunden ist, da dies nicht erforderlich ist. +Darüber hinaus **wird kein Quellcode im Speicherkonto** gespeichert, das mit der Funktion verbunden ist, da dies nicht erforderlich ist. ## Enumeration diff --git a/src/pentesting-cloud/azure-security/az-services/az-logic-apps.md b/src/pentesting-cloud/azure-security/az-services/az-logic-apps.md index 32a050de3..b8fcb02d4 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-logic-apps.md +++ b/src/pentesting-cloud/azure-security/az-services/az-logic-apps.md @@ -35,7 +35,7 @@ curl -XPOST 'https://prod-44.westus.logic.azure.com:443/workflows/2d8de4be6e9741 Es gibt mehrere Hosting-Optionen: * **Consumption** -- **Multi-tenant**: bietet gemeinsame Rechenressourcen, arbeitet in der Public Cloud und folgt einem Preismodell, das pro Operation abgerechnet wird. Dies ist ideal für leichte und kosteneffiziente Workloads. +- **Multi-tenant**: bietet gemeinsame Rechenressourcen, arbeitet in der öffentlichen Cloud und folgt einem Preismodell pro Operation. Dies ist ideal für leichte und kosteneffektive Workloads. * **Standard** - **Workflow Service Plan**: dedizierte Rechenressourcen mit VNET-Integration für Networking und Gebühren pro Workflow-Service-Plan-Instanz. Es ist geeignet für anspruchsvollere Workloads, die mehr Kontrolle erfordern. - **App Service Environment V3**: dedizierte Rechenressourcen mit vollständiger Isolation und Skalierbarkeit. Es integriert sich auch mit VNET für Networking und verwendet ein Preismodell, das auf App Service-Instanzen innerhalb der Umgebung basiert. Dies ist ideal für unternehmensgroße Anwendungen, die hohe Isolation benötigen. @@ -143,9 +143,9 @@ Get-AzLogicAppTriggerHistory -ResourceGroupName "" -Name " -Integra {{#endtabs }} -## Privilegienausnutzung +## Privilegienerhöhung Gleich wie bei Logic Apps Privesc: diff --git a/src/pentesting-cloud/azure-security/az-services/az-mysql.md b/src/pentesting-cloud/azure-security/az-services/az-mysql.md index e00e893e3..1224d3b28 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-mysql.md +++ b/src/pentesting-cloud/azure-security/az-services/az-mysql.md @@ -5,7 +5,7 @@ ## Azure MySQL Azure Database for MySQL ist ein vollständig verwalteter relationaler Datenbankdienst, der auf der MySQL Community Edition basiert und darauf ausgelegt ist, Skalierbarkeit, Sicherheit und Flexibilität für verschiedene Anwendungsbedürfnisse zu bieten. Es gibt zwei verschiedene Bereitstellungsmodelle: -* **Single Server** (ist auf dem Rückzug): +* **Single Server** (ist auf dem Weg zur Stilllegung): - Optimiert für kosteneffiziente und einfach zu verwaltende MySQL-Bereitstellungen. - Zu den Funktionen gehören automatisierte Backups, hohe Verfügbarkeit und grundlegende Überwachung. - Ideal für Anwendungen mit vorhersehbaren Arbeitslasten. @@ -16,12 +16,12 @@ Azure Database for MySQL ist ein vollständig verwalteter relationaler Datenbank - Bietet Stop/Start-Funktionalität zur Kostensenkung. ### Hauptmerkmale -* **Serververwaltung**: Die **ad-admin**-Funktion ermöglicht die Verwaltung von Azure Active Directory (AAD)-Administratoren für MySQL-Server und bietet Kontrolle über den administrativen Zugriff über AAD-Anmeldeinformationen, während die **identity**-Funktion die Zuweisung und Verwaltung von Azure Managed Identities ermöglicht, die eine sichere, anmeldeinformationsfreie Authentifizierung für den Zugriff auf Azure-Ressourcen bieten. +* **Serververwaltung**: Die **ad-admin**-Funktion ermöglicht die Verwaltung von Azure Active Directory (AAD)-Administratoren für MySQL-Server, wodurch die Kontrolle über den administrativen Zugriff über AAD-Anmeldeinformationen bereitgestellt wird, während die **identity**-Funktion die Zuweisung und Verwaltung von Azure Managed Identities ermöglicht, die eine sichere, anmeldefreie Authentifizierung für den Zugriff auf Azure-Ressourcen bieten. * **Lebenszyklusverwaltung**: Optionen zum Starten oder Stoppen eines Servers, Löschen einer flexiblen Serverinstanz, Neustarten eines Servers, um Konfigurationsänderungen schnell anzuwenden, und Warten, um sicherzustellen, dass ein Server bestimmte Bedingungen erfüllt, bevor mit Automatisierungsskripten fortgefahren wird. -* **Sicherheit und Netzwerk**: kann Server-Firewallregeln für den sicheren Datenbankzugriff verwalten und virtuelle Netzwerk-Konfigurationen nach Bedarf trennen. -* **Datenschutz und Backup**: umfasst Optionen zur Verwaltung von flexiblen Server-Backups für die Datenwiederherstellung, Durchführung von Geo-Restore zur Wiederherstellung eines Servers in einer anderen Region, Export von Server-Backups zur externen Nutzung (in der Vorschau) und Wiederherstellung eines Servers aus einem Backup zu einem bestimmten Zeitpunkt. +* **Sicherheit und Netzwerk**: kann Firewall-Regeln für Server verwalten, um einen sicheren Datenbankzugriff zu gewährleisten, und virtuelle Netzwerk-Konfigurationen nach Bedarf trennen. +* **Datenschutz und Backup**: umfasst Optionen zur Verwaltung von Backups flexibler Server für die Datenwiederherstellung, Durchführung von Geo-Restore zur Wiederherstellung eines Servers in einer anderen Region, Export von Server-Backups zur externen Nutzung (in der Vorschau) und Wiederherstellung eines Servers aus einem Backup zu einem bestimmten Zeitpunkt. -### Aufzählung +### Enumeration {{#tabs }} {{#tab name="az cli" }} @@ -147,6 +147,6 @@ az mysql flexible-server deploy run \ ## ToDo -* Suchen Sie nach einer Möglichkeit, mit mysql flexible-server ad-admin zuzugreifen, um zu überprüfen, ob es sich um eine Privilegienerhöhung handelt +* Suchen Sie nach einer Möglichkeit, mit mysql flexible-server als Admin zuzugreifen, um zu überprüfen, ob es sich um eine Privilegienerhöhung handelt {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-services/az-postgresql.md b/src/pentesting-cloud/azure-security/az-services/az-postgresql.md index 970de1850..9fe91bea4 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-postgresql.md +++ b/src/pentesting-cloud/azure-security/az-services/az-postgresql.md @@ -10,7 +10,7 @@ - Bietet automatisierte Backups, grundlegende Überwachung und hohe Verfügbarkeit. - Ideal für Anwendungen mit vorhersehbaren Arbeitslasten. * **Flexible Server**: -- Bietet mehr Kontrolle über Datenbankmanagement und -konfiguration. +- Bietet mehr Kontrolle über Datenbankverwaltung und -konfiguration. - Unterstützt hohe Verfügbarkeit, sowohl in derselben Zone als auch über Zonen hinweg. - Bietet elastische Skalierung, automatisierte Wartung und kostensparende Funktionen. - Ermöglicht das Starten und Stoppen des Servers zur Kostenoptimierung. @@ -130,7 +130,7 @@ psql -h testpostgresserver1994.postgres.database.azure.com -p 5432 -U adminuser ## ToDo -* Suche nach einer Möglichkeit, mit ad-admin zuzugreifen, um zu überprüfen, ob es sich um eine Privilegieneskalationsmethode handelt +* Überprüfen, wie man mit ad-admin zugreifen kann, um zu verifizieren, dass es sich um eine Privilegieneskalationsmethode handelt {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-services/az-queue-enum.md b/src/pentesting-cloud/azure-security/az-services/az-queue-enum.md index 40b2a3373..aa67f41f2 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-queue-enum.md +++ b/src/pentesting-cloud/azure-security/az-services/az-queue-enum.md @@ -4,7 +4,7 @@ ## Grundinformationen -Azure Queue Storage ist ein Dienst in Microsofts Azure-Cloud-Plattform, der für die Nachrichtenwarteschlange zwischen Anwendungskomponenten entwickelt wurde, **um asynchrone Kommunikation und Entkopplung zu ermöglichen**. Es ermöglicht Ihnen, eine unbegrenzte Anzahl von Nachrichten zu speichern, von denen jede bis zu 64 KB groß sein kann, und unterstützt Operationen wie das Erstellen und Löschen von Warteschlangen, das Hinzufügen, Abrufen, Aktualisieren und Löschen von Nachrichten sowie das Verwalten von Metadaten und Zugriffsrichtlinien. Während es typischerweise Nachrichten in einer First-In-First-Out (FIFO)-Reihenfolge verarbeitet, wird strikte FIFO nicht garantiert. +Azure Queue Storage ist ein Dienst in Microsofts Azure-Cloud-Plattform, der für die Nachrichtenwarteschlange zwischen Anwendungskomponenten entwickelt wurde, **um asynchrone Kommunikation und Entkopplung zu ermöglichen**. Es ermöglicht Ihnen, eine unbegrenzte Anzahl von Nachrichten zu speichern, jede bis zu 64 KB groß, und unterstützt Operationen wie das Erstellen und Löschen von Warteschlangen, das Hinzufügen, Abrufen, Aktualisieren und Löschen von Nachrichten sowie das Verwalten von Metadaten und Zugriffsrichtlinien. Während es typischerweise Nachrichten in einer First-In-First-Out (FIFO)-Reihenfolge verarbeitet, wird strikte FIFO nicht garantiert. ### Enumeration diff --git a/src/pentesting-cloud/azure-security/az-services/az-servicebus-enum.md b/src/pentesting-cloud/azure-security/az-services/az-servicebus-enum.md index 59d5db656..d8c793aff 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-servicebus-enum.md +++ b/src/pentesting-cloud/azure-security/az-services/az-servicebus-enum.md @@ -4,7 +4,7 @@ ## Service Bus -Azure Service Bus ist ein cloudbasierter **Messaging-Dienst**, der entwickelt wurde, um eine zuverlässige **Kommunikation zwischen verschiedenen Teilen einer Anwendung oder separaten Anwendungen** zu ermöglichen. Er fungiert als sicherer Mittelsmann und stellt sicher, dass Nachrichten sicher zugestellt werden, selbst wenn Sender und Empfänger nicht gleichzeitig arbeiten. Durch die Entkopplung von Systemen ermöglicht er es Anwendungen, unabhängig zu arbeiten, während sie weiterhin Daten oder Anweisungen austauschen. Er ist besonders nützlich für Szenarien, die Lastverteilung über mehrere Arbeiter, zuverlässige Nachrichtenübermittlung oder komplexe Koordination erfordern, wie z.B. die Verarbeitung von Aufgaben in der richtigen Reihenfolge oder die sichere Verwaltung von Zugriffsrechten. +Azure Service Bus ist ein cloudbasierter **Messaging-Dienst**, der entwickelt wurde, um eine zuverlässige **Kommunikation zwischen verschiedenen Teilen einer Anwendung oder separaten Anwendungen** zu ermöglichen. Er fungiert als sicherer Mittelsmann und stellt sicher, dass Nachrichten sicher zugestellt werden, selbst wenn Sender und Empfänger nicht gleichzeitig arbeiten. Durch die Entkopplung von Systemen ermöglicht es Anwendungen, unabhängig zu arbeiten, während sie weiterhin Daten oder Anweisungen austauschen. Es ist besonders nützlich für Szenarien, die Lastverteilung über mehrere Arbeiter, zuverlässige Nachrichtenübermittlung oder komplexe Koordination erfordern, wie z.B. die Verarbeitung von Aufgaben in der richtigen Reihenfolge oder die sichere Verwaltung von Zugriffsrechten. ### Schlüsselkonzepte @@ -26,12 +26,12 @@ Einige erweiterte Funktionen sind: - **Automatische Weiterleitung**: Überträgt Nachrichten zwischen Warteschlangen oder Themen im selben Namespace. - **Dead-Lettering**: Erfasst nicht zustellbare Nachrichten zur Überprüfung. - **Geplante Lieferung**: Verzögert die Nachrichtenverarbeitung für zukünftige Aufgaben. -- **Nachrichtenaussetzung**: Verschiebt den Abruf von Nachrichten, bis sie bereit sind. +- **Nachrichtenaussetzung**: Verschiebt die Nachrichtenabholung, bis sie bereit ist. - **Transaktionen**: Gruppiert Operationen in atomare Ausführung. - **Filter & Aktionen**: Wendet Regeln an, um Nachrichten zu filtern oder zu annotieren. - **Automatisches Löschen bei Inaktivität**: Löscht Warteschlangen nach Inaktivität (min: 5 Minuten). -- **Duplikaterkennung**: Entfernt doppelte Nachrichten während der erneuten Zustellung. -- **Batch-Löschung**: Löscht im Bulk abgelaufene oder unnötige Nachrichten. +- **Duplikaterkennung**: Entfernt doppelte Nachrichten während der erneuten Übertragung. +- **Batch-Löschung**: Löscht abgelaufene oder unnötige Nachrichten in großen Mengen. ### Autorisierungsregel / SAS-Richtlinie @@ -49,7 +49,7 @@ SAS-Richtlinien definieren die Zugriffsberechtigungen für Azure Service Bus-Ent sku, autorisierungsregel, -### Enumeration +### Aufzählung {{#tabs }} {{#tab name="az cli" }} diff --git a/src/pentesting-cloud/azure-security/az-services/vms/README.md b/src/pentesting-cloud/azure-security/az-services/vms/README.md index 94f51f717..df46406f3 100644 --- a/src/pentesting-cloud/azure-security/az-services/vms/README.md +++ b/src/pentesting-cloud/azure-security/az-services/vms/README.md @@ -4,7 +4,7 @@ ## Azure Netzwerk Grundinformationen -Azure-Netzwerke enthalten **verschiedene Entitäten und Möglichkeiten, sie zu konfigurieren.** Sie finden eine kurze **Beschreibung,** **Beispiele** und **Aufzählungs**befehle der verschiedenen Azure-Netzwerkinstanzen in: +Azure-Netzwerke enthalten **verschiedene Entitäten und Möglichkeiten, sie zu konfigurieren.** Sie finden eine kurze **Beschreibung,** **Beispiele** und **Aufzählungs**befehle der verschiedenen Azure-Netzwerkinhalte in: {{#ref}} az-azure-network.md @@ -12,17 +12,17 @@ az-azure-network.md ## Grundinformationen zu VMs -Azure Virtuelle Maschinen (VMs) sind flexible, bedarfsorientierte **cloudbasierte Server, die es Ihnen ermöglichen, Windows- oder Linux-Betriebssysteme auszuführen**. Sie ermöglichen die Bereitstellung von Anwendungen und Workloads, ohne physische Hardware verwalten zu müssen. Azure VMs können mit verschiedenen CPU-, Speicher- und Speicheroptionen konfiguriert werden, um spezifische Anforderungen zu erfüllen und sich in Azure-Dienste wie virtuelle Netzwerke, Speicher und Sicherheitswerkzeuge zu integrieren. +Azure Virtuelle Maschinen (VMs) sind flexible, bedarfsorientierte **cloudbasierte Server, die es Ihnen ermöglichen, Windows- oder Linux-Betriebssysteme auszuführen**. Sie ermöglichen es Ihnen, Anwendungen und Workloads bereitzustellen, ohne physische Hardware verwalten zu müssen. Azure VMs können mit verschiedenen CPU-, Speicher- und Speicheroptionen konfiguriert werden, um spezifische Anforderungen zu erfüllen und sich in Azure-Dienste wie virtuelle Netzwerke, Speicher und Sicherheitswerkzeuge zu integrieren. ### Sicherheitskonfigurationen -- **Verfügbarkeitszonen**: Verfügbarkeitszonen sind unterschiedliche Gruppen von Rechenzentren innerhalb einer bestimmten Azure-Region, die physisch getrennt sind, um das Risiko zu minimieren, dass mehrere Zonen von lokalen Ausfällen oder Katastrophen betroffen sind. +- **Verfügbarkeitszonen**: Verfügbarkeitszonen sind verschiedene Gruppen von Rechenzentren innerhalb einer bestimmten Azure-Region, die physisch getrennt sind, um das Risiko zu minimieren, dass mehrere Zonen von lokalen Ausfällen oder Katastrophen betroffen sind. - **Sicherheitstyp**: - **Standard-Sicherheit**: Dies ist der Standard-Sicherheitstyp, der keine spezifische Konfiguration erfordert. - **Vertrauenswürdiger Start**: Dieser Sicherheitstyp verbessert den Schutz gegen Bootkits und Malware auf Kernel-Ebene durch die Verwendung von Secure Boot und Virtual Trusted Platform Module (vTPM). - **Vertrauliche VMs**: Neben einem vertrauenswürdigen Start bietet es hardwarebasierte Isolation zwischen der VM, dem Hypervisor und der Hostverwaltung, verbessert die Festplattenverschlüsselung und [**mehr**](https://learn.microsoft.com/en-us/azure/confidential-computing/confidential-vm-overview)**.** -- **Authentifizierung**: Standardmäßig wird ein neuer **SSH-Schlüssel generiert**, obwohl es möglich ist, einen öffentlichen Schlüssel oder einen vorherigen Schlüssel zu verwenden, und der Standardbenutzername ist **azureuser**. Es ist auch möglich, die Verwendung eines **Passworts** zu konfigurieren. -- **VM-Disk-Verschlüsselung:** Die Festplatte wird standardmäßig im Ruhezustand mit einem plattformverwalteten Schlüssel verschlüsselt. +- **Authentifizierung**: Standardmäßig wird ein neuer **SSH-Schlüssel generiert**, obwohl es möglich ist, einen öffentlichen Schlüssel oder einen vorherigen Schlüssel zu verwenden, und der Benutzername ist standardmäßig **azureuser**. Es ist auch möglich, die Verwendung eines **Passworts** zu konfigurieren. +- **VM-Disk-Verschlüsselung:** Die Festplatte ist standardmäßig im Ruhezustand mit einem plattformverwalteten Schlüssel verschlüsselt. - Es ist auch möglich, **Verschlüsselung am Host** zu aktivieren, bei der die Daten im Host verschlüsselt werden, bevor sie an den Speicherdienst gesendet werden, um eine End-to-End-Verschlüsselung zwischen dem Host und dem Speicherdienst sicherzustellen ([**docs**](https://learn.microsoft.com/en-gb/azure/virtual-machines/disk-encryption#encryption-at-host---end-to-end-encryption-for-your-vm-data)). - **NIC-Netzwerksicherheitsgruppe**: - **Keine**: Öffnet im Grunde jeden Port @@ -38,7 +38,7 @@ Azure Virtuelle Maschinen (VMs) sind flexible, bedarfsorientierte **cloudbasiert - Netzwerk insgesamt ist größer als 500 GB - Netzwerk aus insgesamt ist größer als 200 GB - VmAvailabilityMetric ist weniger als 1 -- **Gesundheitsmonitor**: Standardmäßig wird das Protokoll HTTP auf Port 80 überprüft +- **Gesundheitsmonitor**: Standardmäßig wird das Protokoll HTTP an Port 80 überprüft - **Sperren**: Es ermöglicht, eine VM zu sperren, sodass sie nur gelesen werden kann (**ReadOnly**-Sperre) oder sie kann gelesen und aktualisiert, aber nicht gelöscht werden (**CanNotDelete**-Sperre). - Die meisten VM-bezogenen Ressourcen **unterstützen ebenfalls Sperren** wie Festplatten, Snapshots... - Sperren können auch auf **Ressourcengruppen- und Abonnementebene** angewendet werden. @@ -79,7 +79,7 @@ Get-AzDisk -Name -ResourceGroupName Ein **VM-Image** ist eine Vorlage, die das Betriebssystem, die Anwendungseinstellungen und das Dateisystem enthält, die benötigt werden, um **eine neue virtuelle Maschine (VM)** zu erstellen. Der Unterschied zwischen einem Image und einem Festplattensnapshot besteht darin, dass ein Festplattensnapshot eine schreibgeschützte, zeitpunktbezogene Kopie einer einzelnen verwalteten Festplatte ist, die hauptsächlich für Backup oder Fehlersuche verwendet wird, während ein Image **mehrere Festplatten enthalten kann und als Vorlage für die Erstellung neuer VMs** dient.\ Bilder können im **Bilder-Bereich** von Azure oder in **Azure-Compute-Galerien** verwaltet werden, die es ermöglichen, **Versionen** zu erstellen und das Image tenantübergreifend zu **teilen** oder sogar öffentlich zu machen. -Ein **Wiederherstellungspunkt** speichert die VM-Konfiguration und **zeitpunktbezogene** anwendungskonsistente **Snapshots aller verwalteten Festplatten**, die an die VM angeschlossen sind. Er ist mit der VM verbunden und dient dem Zweck, diese VM auf den Zustand zu bringen, in dem sie sich zu diesem spezifischen Zeitpunkt befand. +Ein **Wiederherstellungspunkt** speichert die VM-Konfiguration und **zeitpunktbezogene** anwendungskonsistente **Snapshots aller verwalteten Festplatten**, die an die VM angeschlossen sind. Er ist mit der VM verbunden und dient dem Zweck, diese VM auf den Zustand zu bringen, in dem sie zu diesem spezifischen Zeitpunkt war. {{#tabs}} {{#tab name="az cli"}} @@ -148,9 +148,9 @@ Aus den [**Docs**](https://learn.microsoft.com/en-us/azure/site-recovery/site-re ## Azure Bastion -Azure Bastion ermöglicht sicheren und nahtlosen **Remote Desktop Protocol (RDP)** und **Secure Shell (SSH)** Zugriff auf Ihre virtuellen Maschinen (VMs) direkt über das Azure-Portal oder über eine Jump-Box. Durch **Beseitigung der Notwendigkeit für öffentliche IP-Adressen** auf Ihren VMs. +Azure Bastion ermöglicht sicheren und nahtlosen **Remote Desktop Protocol (RDP)** und **Secure Shell (SSH)** Zugriff auf Ihre virtuellen Maschinen (VMs) direkt über das Azure-Portal oder über eine Jump-Box. Durch **die Eliminierung der Notwendigkeit für öffentliche IP-Adressen** auf Ihren VMs. -Der Bastion implementiert ein Subnetz namens **`AzureBastionSubnet`** mit einer `/26` Netzmaske im VNet, in dem er arbeiten muss. Dann ermöglicht es, **eine Verbindung zu internen VMs über den Browser** unter Verwendung von `RDP` und `SSH`, wodurch Ports der VMs nicht dem Internet ausgesetzt werden. Es kann auch als **Jump-Host** fungieren. +Der Bastion implementiert ein Subnetz namens **`AzureBastionSubnet`** mit einer `/26` Netzmaske im VNet, in dem er arbeiten muss. Dann ermöglicht es, **eine Verbindung zu internen VMs über den Browser** unter Verwendung von `RDP` und `SSH`, wodurch Ports der VMs nicht ins Internet exponiert werden. Es kann auch als **Jump-Host** fungieren. Um alle Azure Bastion-Hosts in Ihrem Abonnement aufzulisten und über diese eine Verbindung zu VMs herzustellen, können Sie die folgenden Befehle verwenden: @@ -191,7 +191,7 @@ Get-AzBastion Der Azure Instance Metadata Service (IMDS) **stellt Informationen über laufende virtuelle Maschineninstanzen bereit**, um deren Verwaltung und Konfiguration zu unterstützen. Er bietet Details wie SKU, Speicher, Netzwerkkonfigurationen und Informationen über bevorstehende Wartereignisse über **REST API, die unter der nicht routbaren IP-Adresse 169.254.169.254** verfügbar ist, die nur von innerhalb der VM zugänglich ist. Die Kommunikation zwischen der VM und IMDS bleibt innerhalb des Hosts, was einen sicheren Zugriff gewährleistet. Bei der Abfrage von IMDS sollten HTTP-Clients innerhalb der VM Web-Proxy-Server umgehen, um eine ordnungsgemäße Kommunikation sicherzustellen. -Darüber hinaus muss die HTTP-Anfrage, um den Metadatenendpunkt zu kontaktieren, den Header **`Metadata: true`** enthalten und darf nicht den Header **`X-Forwarded-For`** haben. +Darüber hinaus muss die HTTP-Anfrage, um den Metadaten-Endpunkt zu kontaktieren, den Header **`Metadata: true`** enthalten und darf nicht den Header **`X-Forwarded-For`** haben. Überprüfen Sie, wie Sie es auflisten können in: @@ -635,7 +635,7 @@ Dies sind die Pfade, wo die Anwendungen im Dateisystem heruntergeladen werden: > [!CAUTION] > Es ist möglich, **einzelne Apps und Galerien mit anderen Abonnements oder Mandanten zu teilen**. Was sehr interessant ist, da es einem Angreifer ermöglichen könnte, eine Anwendung zu hintertüren und zu anderen Abonnements und Mandanten zu pivotieren. -Aber es **gibt keinen "Marktplatz" für VM-Apps** wie es für Erweiterungen gibt. +Aber es **gibt keinen "Marktplatz" für VM-Apps** wie es für Erweiterungen der Fall ist. Die erforderlichen Berechtigungen sind: @@ -729,7 +729,7 @@ az vm application set \ ### Benutzerdaten -Dies sind **persistente Daten**, die jederzeit über den Metadaten-Endpunkt abgerufen werden können. Beachten Sie, dass in Azure Benutzerdaten sich von AWS und GCP unterscheiden, da **wenn Sie hier ein Skript platzieren, es standardmäßig nicht ausgeführt wird**. +Dies sind **persistente Daten**, die jederzeit über den Metadaten-Endpunkt abgerufen werden können. Beachten Sie, dass Benutzerdaten in Azure sich von AWS und GCP unterscheiden, da **wenn Sie hier ein Skript platzieren, es standardmäßig nicht ausgeführt wird**. ### Benutzerspezifische Daten @@ -747,7 +747,7 @@ echo "Hello World" > /var/tmp/output.txt ``` ### **Befehl ausführen** -Dies ist der grundlegendste Mechanismus, den Azure bereitstellt, um **willkürliche Befehle in VMs auszuführen**. Die erforderliche Berechtigung ist `Microsoft.Compute/virtualMachines/runCommand/action`. +Dies ist der grundlegendste Mechanismus, den Azure bereitstellt, um **willkürliche Befehle in VMs auszuführen**. Die benötigte Berechtigung ist `Microsoft.Compute/virtualMachines/runCommand/action`. {{#tabs }} {{#tab name="Linux" }} diff --git a/src/pentesting-cloud/azure-security/az-services/vms/az-azure-network.md b/src/pentesting-cloud/azure-security/az-services/vms/az-azure-network.md index b26b45737..6c0f5c9a5 100644 --- a/src/pentesting-cloud/azure-security/az-services/vms/az-azure-network.md +++ b/src/pentesting-cloud/azure-security/az-services/vms/az-azure-network.md @@ -9,10 +9,10 @@ Darüber hinaus ist es möglich, VNets mit anderen VNets und mit lokalen Netzwer ## Virtuelles Netzwerk (VNET) & Subnetze -Ein Azure Virtual Network (VNet) ist eine Darstellung Ihres eigenen Netzwerks in der Cloud, die **logische Isolation** innerhalb der Azure-Umgebung bietet, die Ihrer Abonnements zugeordnet ist. VNets ermöglichen es Ihnen, virtuelle private Netzwerke (VPNs) in Azure bereitzustellen und zu verwalten, die Ressourcen wie virtuelle Maschinen (VMs), Datenbanken und Anwendungsdienste hosten. Sie bieten **vollständige Kontrolle über Netzwerkeinstellungen**, einschließlich IP-Adressbereiche, Erstellung von Subnetzen, Routentabellen und Netzwerk-Gateways. +Ein Azure Virtual Network (VNet) ist eine Darstellung Ihres eigenen Netzwerks in der Cloud, das **logische Isolation** innerhalb der Azure-Umgebung bietet, die Ihrer Abonnements zugeordnet ist. VNets ermöglichen es Ihnen, virtuelle private Netzwerke (VPNs) in Azure bereitzustellen und zu verwalten, die Ressourcen wie virtuelle Maschinen (VMs), Datenbanken und Anwendungsdienste hosten. Sie bieten **vollständige Kontrolle über Netzwerkeinstellungen**, einschließlich IP-Adressbereiche, Erstellung von Subnetzen, Routentabellen und Netzwerk-Gateways. **Subnetze** sind Unterteilungen innerhalb eines VNet, die durch spezifische **IP-Adressbereiche** definiert sind. Durch die Segmentierung eines VNet in mehrere Subnetze können Sie Ressourcen gemäß Ihrer Netzwerkarchitektur organisieren und sichern.\ -Standardmäßig können alle Subnetze innerhalb desselben Azure Virtual Network (VNet) **miteinander kommunizieren**, ohne Einschränkungen. +Standardmäßig können alle Subnetze innerhalb des gleichen Azure Virtual Network (VNet) **miteinander kommunizieren**, ohne Einschränkungen. **Beispiel:** @@ -22,7 +22,7 @@ Standardmäßig können alle Subnetze innerhalb desselben Azure Virtual Network ### Aufzählung -Um alle VNets und Subnetze in einem Azure-Konto aufzulisten, können Sie die Azure-Befehlszeilenschnittstelle (CLI) verwenden. Hier sind die Schritte: +Um alle VNets und Subnetze in einem Azure-Konto aufzulisten, können Sie die Azure Command-Line Interface (CLI) verwenden. Hier sind die Schritte: {{#tabs }} {{#tab name="az cli" }} @@ -141,11 +141,11 @@ Get-AzFirewall {{#endtab }} {{#endtabs }} -## Azure Routen-Tabellen +## Azure-Routing-Tabellen -Azure **Routen-Tabellen** werden verwendet, um das Routing des Netzwerkverkehrs innerhalb eines Subnetzes zu steuern. Sie definieren Regeln, die angeben, wie Pakete weitergeleitet werden sollen, entweder zu Azure-Ressourcen, dem Internet oder einem bestimmten nächsten Hop wie einem Virtuellen Appliance oder Azure Firewall. Sie können eine Routentabelle mit einem **Subnetz** verknüpfen, und alle Ressourcen innerhalb dieses Subnetzes folgen den Routen in der Tabelle. +Azure **Routing-Tabellen** werden verwendet, um das Routing des Netzwerkverkehrs innerhalb eines Subnetzes zu steuern. Sie definieren Regeln, die angeben, wie Pakete weitergeleitet werden sollen, entweder zu Azure-Ressourcen, dem Internet oder einem bestimmten nächsten Hop wie einem Virtual Appliance oder Azure Firewall. Sie können eine Routing-Tabelle mit einem **Subnetz** verknüpfen, und alle Ressourcen innerhalb dieses Subnetzes folgen den Routen in der Tabelle. -**Beispiel:** Wenn ein Subnetz Ressourcen hostet, die ausgehenden Verkehr über eine Network Virtual Appliance (NVA) zur Inspektion routen müssen, können Sie eine **Route** in einer Routentabelle erstellen, um den gesamten Verkehr (z. B. `0.0.0.0/0`) an die private IP-Adresse der NVA als nächsten Hop umzuleiten. +**Beispiel:** Wenn ein Subnetz Ressourcen hostet, die ausgehenden Verkehr über eine Network Virtual Appliance (NVA) zur Inspektion routen müssen, können Sie eine **Route** in einer Routing-Tabelle erstellen, um den gesamten Verkehr (z. B. `0.0.0.0/0`) an die private IP-Adresse der NVA als nächsten Hop umzuleiten. ### **Enumeration** @@ -172,7 +172,7 @@ Get-AzRouteTable ## Azure Private Link -Azure Private Link ist ein Dienst in Azure, der **privaten Zugriff auf Azure-Dienste ermöglicht**, indem sichergestellt wird, dass **der Datenverkehr zwischen Ihrem Azure-virtuellen Netzwerk (VNet) und dem Dienst vollständig innerhalb des Backbone-Netzwerks von Microsoft Azure verläuft**. Es bringt den Dienst effektiv in Ihr VNet. Diese Konfiguration verbessert die Sicherheit, indem die Daten nicht dem öffentlichen Internet ausgesetzt werden. +Azure Private Link ist ein Dienst in Azure, der **privaten Zugriff auf Azure-Dienste ermöglicht**, indem sichergestellt wird, dass **der Datenverkehr zwischen Ihrem Azure Virtual Network (VNet) und dem Dienst vollständig innerhalb des Backbone-Netzwerks von Microsoft Azure verläuft**. Es bringt den Dienst effektiv in Ihr VNet. Diese Konfiguration verbessert die Sicherheit, indem die Daten nicht dem öffentlichen Internet ausgesetzt werden. Private Link kann mit verschiedenen Azure-Diensten verwendet werden, wie Azure Storage, Azure SQL Database und benutzerdefinierten Diensten, die über Private Link geteilt werden. Es bietet eine sichere Möglichkeit, Dienste aus Ihrem eigenen VNet oder sogar aus verschiedenen Azure-Abonnements zu konsumieren. @@ -296,11 +296,11 @@ Get-AzFrontDoorWafPolicy -Name -ResourceGroupName - **VNet Peering** ist eine Netzwerkfunktion in Azure, die **es ermöglicht, verschiedene Virtuelle Netzwerke (VNets) direkt und nahtlos zu verbinden**. Durch VNet Peering können Ressourcen in einem VNet mit Ressourcen in einem anderen VNet über private IP-Adressen kommunizieren, **als ob sie im selben Netzwerk wären**.\ **VNet Peering kann auch mit On-Premise-Netzwerken verwendet werden**, indem ein Site-to-Site-VPN oder Azure ExpressRoute eingerichtet wird. -**Azure Hub und Spoke** ist eine Netzwerk-Topologie, die in Azure verwendet wird, um den Netzwerkverkehr zu verwalten und zu organisieren. **Der "Hub" ist ein zentraler Punkt, der den Verkehr zwischen verschiedenen "Speichen" steuert und leitet**. Der Hub enthält typischerweise gemeinsame Dienste wie Netzwerkvirtualgeräte (NVAs), Azure VPN Gateway, Azure Firewall oder Azure Bastion. Die **"Speichen" sind VNets, die Workloads hosten und über VNet Peering mit dem Hub verbunden sind**, wodurch sie die gemeinsamen Dienste im Hub nutzen können. Dieses Modell fördert eine saubere Netzwerkstruktur und reduziert die Komplexität, indem es gemeinsame Dienste zentralisiert, die von mehreren Workloads in verschiedenen VNets genutzt werden können. +**Azure Hub und Spoke** ist eine Netzwerk-Topologie, die in Azure verwendet wird, um den Netzwerkverkehr zu verwalten und zu organisieren. **Der "Hub" ist ein zentraler Punkt, der den Verkehr zwischen verschiedenen "Spokes" steuert und leitet**. Der Hub enthält typischerweise gemeinsame Dienste wie Netzwerkvirtualgeräte (NVAs), Azure VPN Gateway, Azure Firewall oder Azure Bastion. Die **"Spokes" sind VNets, die Workloads hosten und über VNet Peering mit dem Hub verbunden sind**, wodurch sie die gemeinsamen Dienste im Hub nutzen können. Dieses Modell fördert eine saubere Netzwerkstruktur und reduziert die Komplexität, indem es gemeinsame Dienste zentralisiert, die von mehreren Workloads in verschiedenen VNets genutzt werden können. -> [!CAUTION] > **VNET-Peering ist in Azure nicht transitiv**, was bedeutet, dass, wenn Speiche 1 mit Speiche 2 verbunden ist und Speiche 2 mit Speiche 3 verbunden ist, Speiche 1 nicht direkt mit Speiche 3 kommunizieren kann. +> [!CAUTION] > **VNET-Peering ist in Azure nicht transitiv**, was bedeutet, dass, wenn Spoke 1 mit Spoke 2 verbunden ist und Spoke 2 mit Spoke 3 verbunden ist, Spoke 1 nicht direkt mit Spoke 3 kommunizieren kann. **Beispiel:** -Stellen Sie sich ein Unternehmen mit separaten Abteilungen wie Vertrieb, Personalwesen und Entwicklung vor, **jede mit ihrem eigenen VNet (den Speichen)**. Diese VNets **benötigen Zugriff auf gemeinsame Ressourcen** wie eine zentrale Datenbank, eine Firewall und ein Internet-Gateway, die sich alle in **einem anderen VNet (dem Hub)** befinden. Durch die Verwendung des Hub- und Spoke-Modells kann jede Abteilung **sicher auf die gemeinsamen Ressourcen über das Hub-VNet zugreifen, ohne diese Ressourcen dem öffentlichen Internet auszusetzen** oder eine komplexe Netzwerkstruktur mit zahlreichen Verbindungen zu schaffen. +Stellen Sie sich ein Unternehmen mit separaten Abteilungen wie Vertrieb, Personalwesen und Entwicklung vor, **die jeweils ihr eigenes VNet (die Spokes) haben**. Diese VNets **benötigen Zugriff auf gemeinsame Ressourcen** wie eine zentrale Datenbank, eine Firewall und ein Internet-Gateway, die sich alle in **einem anderen VNet (dem Hub)** befinden. Durch die Verwendung des Hub- und Spoke-Modells kann jede Abteilung **sicher auf die gemeinsamen Ressourcen über das Hub-VNet zugreifen, ohne diese Ressourcen dem öffentlichen Internet auszusetzen** oder eine komplexe Netzwerkstruktur mit zahlreichen Verbindungen zu schaffen. ### Enumeration diff --git a/src/pentesting-cloud/kubernetes-security/kubernetes-hardening/kubernetes-securitycontext-s.md b/src/pentesting-cloud/kubernetes-security/kubernetes-hardening/kubernetes-securitycontext-s.md index c6594c74c..244c97aa7 100644 --- a/src/pentesting-cloud/kubernetes-security/kubernetes-hardening/kubernetes-securitycontext-s.md +++ b/src/pentesting-cloud/kubernetes-security/kubernetes-hardening/kubernetes-securitycontext-s.md @@ -11,20 +11,20 @@ Beim Festlegen des Sicherheitskontexts eines Pods können Sie mehrere Attribute - **runASNonRoot** auf **True** setzen - **runAsUser** konfigurieren - Wenn möglich, **Berechtigungen** einschränken, indem Sie **seLinuxOptions** und **seccompProfile** angeben -- Geben Sie **keinen** Zugriff auf **Privilegierte** **Gruppen** über **runAsGroup** und **supplementaryGroups**. +- Geben Sie **keinen** Zugriff auf **Privilegierte** **Gruppen** über **runAsGroup** und **supplementaryGroups** | Parameter | Beschreibung | -|

fsGroup
integer

|

Eine spezielle ergänzende Gruppe, die auf alle Container in einem Pod angewendet wird. Einige Volumentypen erlauben es dem Kubelet, den Besitz dieses Volumens zu ändern, sodass es dem Pod gehört:
1. Die besitzende GID wird die FSGroup sein
2. Das setgid-Bit ist gesetzt (neue Dateien, die im Volumen erstellt werden, gehören zur FSGroup)
3. Die Berechtigungsbits werden mit rw-rw---- OR'd. Wenn nicht gesetzt, wird das Kubelet den Besitz und die Berechtigungen eines Volumens nicht ändern.

| +|

fsGroup
integer

|

Eine spezielle ergänzende Gruppe, die auf alle Container in einem Pod angewendet wird. Einige Volumentypen erlauben es dem Kubelet, den Besitz dieses Volumens zu ändern, sodass es dem Pod gehört:
1. Die besitzende GID wird die FSGroup sein
2. Das setgid-Bit ist gesetzt (neue Dateien, die im Volumen erstellt werden, gehören zur FSGroup)
3. Die Berechtigungsbits werden mit rw-rw---- OR'd. Wenn nicht gesetzt, wird das Kubelet den Besitz und die Berechtigungen eines Volumens nicht ändern

| -|

fsGroupChangePolicy
string

| Dies definiert das Verhalten beim **Ändern des Besitzes und der Berechtigung des Volumens**, bevor es innerhalb des Pods exponiert wird. | -|

runAsGroup
integer

| Die **GID, unter der der Einstiegspunkt des Containerprozesses ausgeführt wird**. Verwendet die Standardlaufzeit, wenn nicht gesetzt. Kann auch im SecurityContext festgelegt werden. | -|

runAsNonRoot
boolean

| Gibt an, dass der Container als ein Nicht-Root-Benutzer ausgeführt werden muss. Wenn dies wahr ist, validiert das Kubelet das Image zur Laufzeit, um sicherzustellen, dass es nicht als UID 0 (Root) ausgeführt wird, und schlägt fehl, den Container zu starten, wenn dies der Fall ist. | -|

runAsUser
integer

| Die **UID, unter der der Einstiegspunkt des Containerprozesses ausgeführt wird**. Standardmäßig wird der Benutzer verwendet, der in den Metadaten des Images angegeben ist, wenn nicht angegeben. | +|

fsGroupChangePolicy
string

| Dies definiert das Verhalten des **Änderns von Besitz und Berechtigungen des Volumens**, bevor es innerhalb des Pods exponiert wird. | +|

runAsGroup
integer

| Die **GID, unter der der Einstiegspunkt des Containerprozesses ausgeführt wird**. Verwendet den Standardwert zur Laufzeit, wenn nicht gesetzt. | +|

runAsNonRoot
boolean

| Gibt an, dass der Container als ein Nicht-Root-Benutzer ausgeführt werden muss. Wenn dies wahr ist, validiert das Kubelet das Image zur Laufzeit, um sicherzustellen, dass es nicht als UID 0 (Root) ausgeführt wird, und schlägt fehl, den Container zu starten, wenn dies der Fall ist. | +|

runAsUser
integer

| Die **UID, unter der der Einstiegspunkt des Containerprozesses ausgeführt wird**. Standardmäßig wird der Benutzer verwendet, der in den Metadaten des Images angegeben ist, wenn nicht angegeben. | |

seLinuxOptions
SELinuxOptions
Weitere Informationen über seLinux

| Der **SELinux-Kontext, der auf alle Container angewendet werden soll**. Wenn nicht angegeben, weist die Containerlaufzeit jedem Container einen zufälligen SELinux-Kontext zu. | -|

seccompProfile
SeccompProfile
Weitere Informationen über Seccomp

| Die **seccomp-Optionen, die von den Containern** in diesem Pod verwendet werden. | +|

seccompProfile
SeccompProfile
Weitere Informationen über Seccomp

| Die **seccomp-Optionen, die von den Containern** in diesem Pod verwendet werden sollen. | |

supplementalGroups
integer array

| Eine Liste von **Gruppen, die auf den ersten Prozess angewendet werden, der in jedem Container ausgeführt wird**, zusätzlich zur primären GID des Containers. | |

sysctls
Sysctl array
Weitere Informationen über sysctls

| Sysctls halten eine Liste von **namespaced sysctls, die für den Pod verwendet werden**. Pods mit nicht unterstützten Sysctls (durch die Containerlaufzeit) könnten beim Starten fehlschlagen. | -|

windowsOptions
WindowsSecurityContextOptions

| Die Windows-spezifischen Einstellungen, die auf alle Container angewendet werden. Wenn nicht angegeben, werden die Optionen innerhalb des SecurityContext eines Containers verwendet. | +|

windowsOptions
WindowsSecurityContextOptions

| Die Windows-spezifischen Einstellungen, die auf alle Container angewendet werden. Wenn nicht angegeben, werden die Optionen innerhalb des Sicherheitskontexts eines Containers verwendet. | ## SecurityContext @@ -36,23 +36,23 @@ Dieser Kontext wird innerhalb der **Containerdefinitionen** festgelegt. Aus der - Fügen Sie keine sensiblen **Capabilities** hinzu (und entfernen Sie die, die Sie nicht benötigen) - **privileged** auf **False** - Wenn möglich, setzen Sie **readOnlyFilesystem** auf **True** -- Setzen Sie **runAsNonRoot** auf **True** und legen Sie eine **runAsUser** fest +- Setzen Sie **runAsNonRoot** auf **True** und setzen Sie eine **runAsUser** - Wenn möglich, **Berechtigungen** einschränken, indem Sie **seLinuxOptions** und **seccompProfile** angeben -- Geben Sie **keinen** Zugriff auf **Privilegierte** **Gruppen** über **runAsGroup**. +- Geben Sie **keinen** Zugriff auf **Privilegierte** **Gruppen** über **runAsGroup.** Beachten Sie, dass die in **SecurityContext und PodSecurityContext** festgelegten Attribute, der in **SecurityContext** angegebene Wert **Vorrang** hat. -|

allowPrivilegeEscalation
boolean

| **AllowPrivilegeEscalation** steuert, ob ein Prozess **mehr Privilegien** als sein übergeordneter Prozess **erlangen kann**. Dieses Bool steuert direkt, ob das no_new_privs-Flag für den Containerprozess gesetzt wird. AllowPrivilegeEscalation ist immer wahr, wenn der Container als **Privilegiert** ausgeführt wird oder **CAP_SYS_ADMIN** hat. | +|

allowPrivilegeEscalation
boolean

| **AllowPrivilegeEscalation** steuert, ob ein Prozess **mehr Privilegien** als sein übergeordneter Prozess **erlangen kann**. Dieses Bool steuert direkt, ob das no_new_privs-Flag für den Containerprozess gesetzt wird. AllowPrivilegeEscalation ist immer wahr, wenn der Container als **Privileged** ausgeführt wird oder **CAP_SYS_ADMIN** hat. | | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |

capabilities
Capabilities
Weitere Informationen über Capabilities

| Die **Capabilities, die beim Ausführen von Containern hinzugefügt/entfernt werden sollen**. Standardmäßig wird die Standardmenge an Capabilities verwendet. | -|

privileged
boolean

| Führen Sie den Container im privilegierten Modus aus. Prozesse in privilegierten Containern sind im Wesentlichen **äquivalent zu root auf dem Host**. Standardmäßig ist dies falsch. | +|

privileged
boolean

| Führen Sie den Container im privilegierten Modus aus. Prozesse in privilegierten Containern sind im Wesentlichen **gleichwertig mit Root auf dem Host**. Standardmäßig ist dies falsch. | |

procMount
string

| procMount bezeichnet den **Typ des proc-Mounts, der für die Container verwendet werden soll**. Der Standardwert ist DefaultProcMount, der die Standardwerte der Containerlaufzeit für schreibgeschützte Pfade und maskierte Pfade verwendet. | -|

readOnlyRootFilesystem
boolean

| Ob dieser **Container ein schreibgeschütztes Root-Dateisystem hat**. Standardwert ist falsch. | -|

runAsGroup
integer

| Die **GID, unter der der Einstiegspunkt** des Containerprozesses ausgeführt wird. Verwendet die Standardlaufzeit, wenn nicht gesetzt. | -|

runAsNonRoot
boolean

| Gibt an, dass der Container **als ein Nicht-Root-Benutzer ausgeführt werden muss**. Wenn dies wahr ist, validiert das Kubelet das Image zur Laufzeit, um sicherzustellen, dass es nicht als UID 0 (Root) ausgeführt wird, und schlägt fehl, den Container zu starten, wenn dies der Fall ist. | +|

readOnlyRootFilesystem
boolean

| Ob dieser **Container ein schreibgeschütztes Root-Dateisystem hat**. Der Standardwert ist falsch. | +|

runAsGroup
integer

| Die **GID, unter der der Einstiegspunkt** des Containerprozesses ausgeführt wird. Verwendet den Standardwert zur Laufzeit, wenn nicht gesetzt. | +|

runAsNonRoot
boolean

| Gibt an, dass der Container **als ein Nicht-Root-Benutzer** ausgeführt werden muss. Wenn dies wahr ist, validiert das Kubelet das Image zur Laufzeit, um sicherzustellen, dass es nicht als UID 0 (Root) ausgeführt wird, und schlägt fehl, den Container zu starten, wenn dies der Fall ist. | |

runAsUser
integer

| Die **UID, unter der der Einstiegspunkt** des Containerprozesses ausgeführt wird. Standardmäßig wird der Benutzer verwendet, der in den Metadaten des Images angegeben ist, wenn nicht angegeben. | |

seLinuxOptions
SELinuxOptions
Weitere Informationen über seLinux

| Der **SELinux-Kontext, der auf den Container angewendet werden soll**. Wenn nicht angegeben, weist die Containerlaufzeit jedem Container einen zufälligen SELinux-Kontext zu. | -|

seccompProfile
SeccompProfile

| Die **seccomp-Optionen**, die von diesem Container verwendet werden. | +|

seccompProfile
SeccompProfile

| Die **seccomp-Optionen**, die von diesem Container verwendet werden sollen. | |

windowsOptions
WindowsSecurityContextOptions

| Die **Windows-spezifischen Einstellungen**, die auf alle Container angewendet werden. | ## References