mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2025-12-31 07:00:38 -08:00
Translated ['src/pentesting-ci-cd/cloudflare-security/cloudflare-domains
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
|
||||
## DocumentDB
|
||||
|
||||
Amazon DocumentDB, das Kompatibilität mit MongoDB bietet, wird als **schneller, zuverlässiger und vollständig verwalteter Datenbankdienst** präsentiert. Entwickelt für Einfachheit in Bereitstellung, Betrieb und Skalierbarkeit, ermöglicht es die **nahtlose Migration und den Betrieb von MongoDB-kompatiblen Datenbanken in der Cloud**. Benutzer können diesen Dienst nutzen, um ihren bestehenden Anwendungscode auszuführen und vertraute Treiber und Tools zu verwenden, was einen reibungslosen Übergang und Betrieb ähnlich wie bei der Arbeit mit MongoDB gewährleistet.
|
||||
Amazon DocumentDB, das Kompatibilität mit MongoDB bietet, wird als **schneller, zuverlässiger und vollständig verwalteter Datenbankdienst** präsentiert. Entwickelt für Einfachheit in Bereitstellung, Betrieb und Skalierbarkeit, ermöglicht es die **nahtlose Migration und den Betrieb von MongoDB-kompatiblen Datenbanken in der Cloud**. Benutzer können diesen Dienst nutzen, um ihren vorhandenen Anwendungscode auszuführen und vertraute Treiber und Tools zu verwenden, was einen reibungslosen Übergang und Betrieb ähnlich wie bei der Arbeit mit MongoDB gewährleistet.
|
||||
|
||||
### Enumeration
|
||||
```bash
|
||||
@@ -24,7 +24,7 @@ aws --region us-east-1 --profile ad docdb describe-db-cluster-snapshot-attribute
|
||||
Da DocumentDB eine mit MongoDB kompatible Datenbank ist, können Sie sich vorstellen, dass sie auch anfällig für gängige NoSQL-Injection-Angriffe ist:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/pentesting-web/nosql-injection
|
||||
https://book.hacktricks.wiki/en/pentesting-web/nosql-injection.html
|
||||
{{#endref}}
|
||||
|
||||
### DocumentDB
|
||||
|
||||
@@ -18,7 +18,7 @@ Standardmäßig verwendet DynamoDB einen KMS-Schlüssel, der **zu Amazon DynamoD
|
||||
|
||||
### Backups & Export nach S3
|
||||
|
||||
Es ist möglich, die **Erstellung von Tabellen-Backups** zu **planen** oder sie **auf Anfrage** zu erstellen. Darüber hinaus ist es auch möglich, **Point-in-Time Recovery (PITR) für eine Tabelle zu aktivieren.** Die Point-in-Time-Wiederherstellung bietet kontinuierliche **Backups** Ihrer DynamoDB-Daten für **35 Tage**, um Sie vor versehentlichen Schreib- oder Löschvorgängen zu schützen.
|
||||
Es ist möglich, die **Erstellung von Tabellen-Backups** zu **planen** oder sie **auf Anfrage** zu erstellen. Darüber hinaus ist es auch möglich, **Point-in-Time Recovery (PITR) für eine Tabelle zu aktivieren.** Die Wiederherstellung zu einem bestimmten Zeitpunkt bietet kontinuierliche **Backups** Ihrer DynamoDB-Daten für **35 Tage**, um Sie vor versehentlichen Schreib- oder Löschvorgängen zu schützen.
|
||||
|
||||
Es ist auch möglich, **die Daten einer Tabelle nach S3 zu exportieren**, aber die Tabelle muss **PITR aktiviert** haben.
|
||||
|
||||
@@ -26,7 +26,7 @@ Es ist auch möglich, **die Daten einer Tabelle nach S3 zu exportieren**, aber d
|
||||
|
||||
Es gibt eine GUI für lokale Dynamo-Dienste wie [DynamoDB Local](https://aws.amazon.com/blogs/aws/dynamodb-local-for-desktop-development/), [dynalite](https://github.com/mhart/dynalite), [localstack](https://github.com/localstack/localstack) usw., die nützlich sein könnte: [https://github.com/aaronshaf/dynamodb-admin](https://github.com/aaronshaf/dynamodb-admin)
|
||||
|
||||
### Aufzählung
|
||||
### Enumeration
|
||||
```bash
|
||||
# Tables
|
||||
aws dynamodb list-tables
|
||||
@@ -84,18 +84,18 @@ aws dynamodb describe-endpoints #Dynamodb endpoints
|
||||
Es gibt Möglichkeiten, auf DynamoDB-Daten mit **SQL-Syntax** zuzugreifen, daher sind typische **SQL-Injektionen ebenfalls möglich**.
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/pentesting-web/sql-injection
|
||||
https://book.hacktricks.wiki/en/pentesting-web/sql-injection/index.html
|
||||
{{#endref}}
|
||||
|
||||
### NoSQL Injection
|
||||
|
||||
In DynamoDB können verschiedene **Bedingungen** verwendet werden, um Daten abzurufen. Wie bei einer gängigen NoSQL-Injektion, wenn es möglich ist, **mehrere Bedingungen zu verketten, um** Daten abzurufen, könnten Sie versteckte Daten (oder die gesamte Tabelle dumpen) erhalten.\
|
||||
In DynamoDB können verschiedene **Bedingungen** verwendet werden, um Daten abzurufen. Wie bei einer gängigen NoSQL-Injektion, wenn es möglich ist, **mehrere Bedingungen zu verketten, um** Daten abzurufen, könnten Sie versteckte Daten (oder die gesamte Tabelle dumpen).\
|
||||
Hier finden Sie die von DynamoDB unterstützten Bedingungen: [https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Condition.html](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Condition.html)
|
||||
|
||||
Beachten Sie, dass **verschiedene Bedingungen** unterstützt werden, wenn auf die Daten über **`query`** oder über **`scan`** zugegriffen wird.
|
||||
|
||||
> [!NOTE]
|
||||
> Tatsächlich müssen **Query**-Aktionen die **Bedingung "EQ" (gleich)** im **primären** Schlüssel angeben, um zu funktionieren, was sie viel **weniger anfällig für NoSQL-Injektionen** macht (und auch die Operation sehr eingeschränkt).
|
||||
> Tatsächlich müssen **Query**-Aktionen die **Bedingung "EQ" (gleich)** im **primären** Schlüssel angeben, damit sie funktionieren, was sie viel **weniger anfällig für NoSQL-Injektionen** macht (und auch die Operation sehr eingeschränkt).
|
||||
|
||||
Wenn Sie die **Vergleichsoperation** ändern oder neue hinzufügen können, könnten Sie mehr Daten abrufen.
|
||||
```bash
|
||||
@@ -105,7 +105,7 @@ Wenn Sie die **Vergleichsoperation** ändern oder neue hinzufügen können, kön
|
||||
"GT": " " #All strings are greater than a space
|
||||
```
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/pentesting-web/nosql-injection
|
||||
https://book.hacktricks.wiki/en/pentesting-web/nosql-injection.html
|
||||
{{#endref}}
|
||||
|
||||
### Rohes Json-Injection
|
||||
@@ -113,9 +113,9 @@ https://book.hacktricks.xyz/pentesting-web/nosql-injection
|
||||
> [!CAUTION]
|
||||
> **Diese Schwachstelle basiert auf dem dynamodb Scan Filter, der jetzt veraltet ist!**
|
||||
|
||||
**DynamoDB** akzeptiert **Json**-Objekte, um nach Daten in der DB zu **suchen**. Wenn Sie feststellen, dass Sie im json-Objekt, das zum Suchen gesendet wird, schreiben können, könnten Sie die DB dumpen, alle Inhalte.
|
||||
**DynamoDB** akzeptiert **Json**-Objekte, um **Daten** in der DB zu **suchen**. Wenn Sie feststellen, dass Sie im Json-Objekt, das zum Suchen gesendet wird, schreiben können, könnten Sie die DB dumpen, alle Inhalte.
|
||||
|
||||
Zum Beispiel, injizieren in eine Anfrage wie:
|
||||
Zum Beispiel, indem Sie in eine Anfrage injizieren wie:
|
||||
```bash
|
||||
'{"Id": {"ComparisonOperator": "EQ","AttributeValueList": [{"N": "' + user_input + '"}]}}'
|
||||
```
|
||||
@@ -123,7 +123,7 @@ Ein Angreifer könnte etwas injizieren wie:
|
||||
|
||||
`1000"}],"ComparisonOperator": "GT","AttributeValueList": [{"N": "0`
|
||||
|
||||
Beheben Sie die "EQ"-Bedingung, indem Sie nach der ID 1000 suchen und dann nach allen Daten mit einer ID-Zeichenfolge, die größer als 0 ist, was alles ist.
|
||||
Beheben Sie die "EQ"-Bedingung, die nach der ID 1000 sucht, und suchen Sie dann nach allen Daten mit einer ID-Zeichenfolge größer als 0, was alles ist.
|
||||
|
||||
Ein weiteres **anfälliges Beispiel mit einem Login** könnte sein:
|
||||
```python
|
||||
@@ -152,9 +152,9 @@ Einige SDKs erlauben die Verwendung eines Strings, der die durchzuführende Filt
|
||||
```java
|
||||
new ScanSpec().withProjectionExpression("UserName").withFilterExpression(user_input+" = :username and Password = :password").withValueMap(valueMap)
|
||||
```
|
||||
Sie müssen wissen, dass das Suchen in DynamoDB zum **Ersetzen** eines Attributs **werts** in **Filterausdrücken** beim Scannen der Elemente, die Tokens mit dem **`:`**-Zeichen **beginnen** sollten. Solche Tokens werden zur Laufzeit mit dem tatsächlichen **Attributwert** **ersetzt**.
|
||||
Sie müssen wissen, dass beim Suchen in DynamoDB zum **Ersetzen** eines Attributs **wertes** in **Filterausdrücken** während des Scannens der Elemente die Tokens mit dem **`:`**-Zeichen **beginnen** sollten. Solche Tokens werden zur Laufzeit mit dem tatsächlichen **Attributwert** **ersetzt**.
|
||||
|
||||
Daher kann ein Login wie das vorherige mit etwas wie folgt umgangen werden:
|
||||
Daher kann ein Login wie das vorherige mit etwas wie folgendem umgangen werden:
|
||||
```bash
|
||||
:username = :username or :username
|
||||
# This will generate the query:
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
## VPC & Networking
|
||||
|
||||
Erfahren Sie, was ein VPC ist und welche Komponenten es hat in:
|
||||
Erfahren Sie, was eine VPC ist und welche Komponenten sie hat in:
|
||||
|
||||
{{#ref}}
|
||||
aws-vpc-and-networking-basic-information.md
|
||||
@@ -27,21 +27,21 @@ Interessante Dinge, die in EC2 aufgezählt werden können:
|
||||
- Offene Ports
|
||||
- Integrierte Verbindungen zu anderen Netzwerken außerhalb von AWS
|
||||
|
||||
### Instanzprofile
|
||||
### Instance Profiles
|
||||
|
||||
Die Verwendung von **Rollen**, um Berechtigungen für Anwendungen zu gewähren, die auf **EC2-Instanzen** ausgeführt werden, erfordert eine zusätzliche Konfiguration. Eine Anwendung, die auf einer EC2-Instanz ausgeführt wird, ist durch das virtualisierte Betriebssystem von AWS abstrahiert. Aufgrund dieser zusätzlichen Trennung benötigen Sie einen zusätzlichen Schritt, um eine AWS-Rolle und die zugehörigen Berechtigungen einer EC2-Instanz zuzuweisen und sie ihren Anwendungen zur Verfügung zu stellen.
|
||||
Die Verwendung von **Rollen**, um Berechtigungen für Anwendungen zu gewähren, die auf **EC2-Instanzen** ausgeführt werden, erfordert eine zusätzliche Konfiguration. Eine Anwendung, die auf einer EC2-Instanz läuft, ist durch das virtualisierte Betriebssystem von AWS abstrahiert. Aufgrund dieser zusätzlichen Trennung ist ein zusätzlicher Schritt erforderlich, um eine AWS-Rolle und die zugehörigen Berechtigungen einer EC2-Instanz zuzuweisen und sie ihren Anwendungen zur Verfügung zu stellen.
|
||||
|
||||
Dieser zusätzliche Schritt ist die **Erstellung eines** [_**Instanzprofils**_](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html), das an die Instanz angehängt ist. Das **Instanzprofil enthält die Rolle und** kann die temporären Anmeldeinformationen der Rolle einer Anwendung, die auf der Instanz ausgeführt wird, bereitstellen. Diese temporären Anmeldeinformationen können dann in den API-Aufrufen der Anwendung verwendet werden, um auf Ressourcen zuzugreifen und den Zugriff nur auf die Ressourcen zu beschränken, die die Rolle angibt. Beachten Sie, dass **nur eine Rolle gleichzeitig einer EC2-Instanz zugewiesen werden kann**, und alle Anwendungen auf der Instanz teilen sich dieselbe Rolle und Berechtigungen.
|
||||
Dieser zusätzliche Schritt ist die **Erstellung eines** [_**Instance Profiles**_](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html), das an die Instanz angehängt ist. Das **Instance Profile enthält die Rolle und** kann die temporären Anmeldeinformationen der Rolle einer Anwendung, die auf der Instanz läuft, zur Verfügung stellen. Diese temporären Anmeldeinformationen können dann in den API-Aufrufen der Anwendung verwendet werden, um auf Ressourcen zuzugreifen und den Zugriff nur auf die Ressourcen zu beschränken, die die Rolle angibt. Beachten Sie, dass **nur eine Rolle gleichzeitig einer EC2-Instanz zugewiesen werden kann**, und alle Anwendungen auf der Instanz teilen sich dieselbe Rolle und Berechtigungen.
|
||||
|
||||
### Metadaten-Endpunkt
|
||||
### Metadata Endpoint
|
||||
|
||||
AWS EC2-Metadaten sind Informationen über eine Amazon Elastic Compute Cloud (EC2)-Instanz, die der Instanz zur Laufzeit zur Verfügung stehen. Diese Metadaten werden verwendet, um Informationen über die Instanz bereitzustellen, wie z. B. ihre Instanz-ID, die Verfügbarkeitszone, in der sie ausgeführt wird, die IAM-Rolle, die mit der Instanz verknüpft ist, und den Hostnamen der Instanz.
|
||||
AWS EC2-Metadaten sind Informationen über eine Amazon Elastic Compute Cloud (EC2)-Instanz, die der Instanz zur Laufzeit zur Verfügung stehen. Diese Metadaten werden verwendet, um Informationen über die Instanz bereitzustellen, wie z. B. ihre Instanz-ID, die Verfügbarkeitszone, in der sie läuft, die IAM-Rolle, die mit der Instanz verbunden ist, und den Hostnamen der Instanz.
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf
|
||||
https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html
|
||||
{{#endref}}
|
||||
|
||||
### Aufzählung
|
||||
### Enumeration
|
||||
```bash
|
||||
# Get EC2 instances
|
||||
aws ec2 describe-instances
|
||||
@@ -149,7 +149,7 @@ Auf der folgenden Seite können Sie überprüfen, wie man **EC2-Berechtigungen m
|
||||
|
||||
## EBS
|
||||
|
||||
Amazon **EBS** (Elastic Block Store) **Snapshots** sind im Grunde statische **Backups** von AWS EBS-Volumes. Mit anderen Worten, sie sind **Kopien** der **Festplatten**, die zu einer **EC2**-Instanz zu einem bestimmten Zeitpunkt verbunden sind. EBS-Snapshots können über Regionen und Konten hinweg kopiert oder sogar heruntergeladen und lokal ausgeführt werden.
|
||||
Amazon **EBS** (Elastic Block Store) **Snapshots** sind im Grunde statische **Backups** von AWS EBS-Volumes. Mit anderen Worten, sie sind **Kopien** der **Festplatten**, die zu einem bestimmten Zeitpunkt an einer **EC2**-Instanz angeschlossen sind. EBS-Snapshots können über Regionen und Konten hinweg kopiert oder sogar heruntergeladen und lokal ausgeführt werden.
|
||||
|
||||
Snapshots können **sensible Informationen** wie **Quellcode oder API-Schlüssel** enthalten, daher wird empfohlen, sie zu überprüfen, wenn Sie die Möglichkeit dazu haben.
|
||||
|
||||
@@ -167,7 +167,7 @@ Auf der folgenden Seite können Sie überprüfen, wie man **EBS-Berechtigungen m
|
||||
|
||||
## SSM
|
||||
|
||||
**Amazon Simple Systems Manager (SSM)** ermöglicht die remote Verwaltung von EC2-Instanzen, um deren Verwaltung erheblich zu erleichtern. Jede dieser Instanzen muss den **SSM-Agentdienst ausführen, da dieser die Aktionen erhält und sie** über die AWS-API ausführt.
|
||||
**Amazon Simple Systems Manager (SSM)** ermöglicht die remote Verwaltung von EC2-Instanzen, um deren Verwaltung erheblich zu erleichtern. Jede dieser Instanzen muss den **SSM-Agentdienst ausführen, da dieser die Aktionen erhält und sie über die AWS-API ausführt**.
|
||||
|
||||
Der **SSM-Agent** ermöglicht es dem Systems Manager, diese Ressourcen zu aktualisieren, zu verwalten und zu konfigurieren. Der Agent **verarbeitet Anfragen vom Systems Manager-Dienst in der AWS-Cloud** und führt sie dann gemäß der Anfrage aus.
|
||||
|
||||
@@ -188,7 +188,7 @@ ps aux | grep amazon-ssm
|
||||
```
|
||||
### Privesc
|
||||
|
||||
Auf der folgenden Seite können Sie überprüfen, wie Sie **SSM-Berechtigungen missbrauchen, um Privilegien zu eskalieren**:
|
||||
Auf der folgenden Seite können Sie überprüfen, wie man **SSM-Berechtigungen missbraucht, um Privilegien zu eskalieren**:
|
||||
|
||||
{{#ref}}
|
||||
../../aws-privilege-escalation/aws-ssm-privesc.md
|
||||
@@ -228,9 +228,9 @@ aws autoscaling describe-load-balancers
|
||||
```
|
||||
## Nitro
|
||||
|
||||
AWS Nitro ist eine Suite von **innovativen Technologien**, die die zugrunde liegende Plattform für AWS EC2-Instanzen bilden. Von Amazon eingeführt, um **Sicherheit, Leistung und Zuverlässigkeit** zu **verbessern**, nutzt Nitro maßgeschneiderte **Hardwarekomponenten und einen leichten Hypervisor**. Es abstrahiert viele der traditionellen Virtualisierungsfunktionen auf dedizierte Hardware und Software, **minimiert die Angriffsfläche** und verbessert die Ressourceneffizienz. Durch das Auslagern von Virtualisierungsfunktionen ermöglicht Nitro EC2-Instanzen, **nahezu Bare-Metal-Leistung** zu liefern, was es besonders vorteilhaft für ressourcenintensive Anwendungen macht. Darüber hinaus gewährleistet der Nitro Security Chip speziell die **Sicherheit der Hardware und Firmware** und festigt somit seine robuste Architektur.
|
||||
AWS Nitro ist eine Suite von **innovativen Technologien**, die die zugrunde liegende Plattform für AWS EC2-Instanzen bilden. Von Amazon eingeführt, um **Sicherheit, Leistung und Zuverlässigkeit** zu **verbessern**, nutzt Nitro maßgeschneiderte **Hardwarekomponenten und einen leichten Hypervisor**. Es abstrahiert einen Großteil der traditionellen Virtualisierungsfunktionen auf dedizierte Hardware und Software, **minimiert die Angriffsfläche** und verbessert die Ressourceneffizienz. Durch das Auslagern von Virtualisierungsfunktionen ermöglicht Nitro EC2-Instanzen, **nahezu Bare-Metal-Leistung** zu liefern, was es besonders vorteilhaft für ressourcenintensive Anwendungen macht. Darüber hinaus gewährleistet der Nitro Security Chip speziell die **Sicherheit der Hardware und Firmware** und festigt somit seine robuste Architektur.
|
||||
|
||||
Erhalten Sie weitere Informationen und wie Sie es enumerieren können von:
|
||||
Erfahren Sie mehr Informationen und wie man es enumeriert von:
|
||||
|
||||
{{#ref}}
|
||||
aws-nitro-enum.md
|
||||
@@ -238,32 +238,32 @@ aws-nitro-enum.md
|
||||
|
||||
## VPN
|
||||
|
||||
Ein VPN ermöglicht die Verbindung Ihres **On-Premise-Netzwerks (Site-to-Site VPN)** oder der **Mitarbeiter-Laptops (Client VPN)** mit einer **AWS VPC**, sodass Dienste ohne Exposition gegenüber dem Internet genutzt werden können.
|
||||
Ein VPN ermöglicht es, Ihr **lokales Netzwerk (Site-to-Site VPN)** oder die **Laptop der Mitarbeiter (Client VPN)** mit einer **AWS VPC** zu verbinden, sodass Dienste ohne Notwendigkeit, sie dem Internet auszusetzen, zugegriffen werden kann.
|
||||
|
||||
#### Grundlegende AWS VPN-Komponenten
|
||||
|
||||
1. **Customer Gateway**:
|
||||
- Ein Customer Gateway ist eine Ressource, die Sie in AWS erstellen, um Ihre Seite einer VPN-Verbindung darzustellen.
|
||||
- Es ist im Wesentlichen ein physisches Gerät oder eine Softwareanwendung auf Ihrer Seite der Site-to-Site VPN-Verbindung.
|
||||
- Sie geben Routinginformationen und die öffentliche IP-Adresse Ihres Netzwerkgeräts (wie einen Router oder eine Firewall) an AWS weiter, um ein Customer Gateway zu erstellen.
|
||||
- Sie geben Routing-Informationen und die öffentliche IP-Adresse Ihres Netzwerkgeräts (wie einen Router oder eine Firewall) an AWS weiter, um ein Customer Gateway zu erstellen.
|
||||
- Es dient als Referenzpunkt für die Einrichtung der VPN-Verbindung und verursacht keine zusätzlichen Kosten.
|
||||
2. **Virtual Private Gateway**:
|
||||
- Ein Virtual Private Gateway (VPG) ist der VPN-Konzentrator auf der Amazon-Seite der Site-to-Site VPN-Verbindung.
|
||||
- Es ist an Ihre VPC angehängt und dient als Ziel für Ihre VPN-Verbindung.
|
||||
- Es ist an Ihre VPC angeschlossen und dient als Ziel für Ihre VPN-Verbindung.
|
||||
- VPG ist der AWS-Seitenendpunkt für die VPN-Verbindung.
|
||||
- Es verwaltet die sichere Kommunikation zwischen Ihrer VPC und Ihrem On-Premises-Netzwerk.
|
||||
3. **Site-to-Site VPN Connection**:
|
||||
- Eine Site-to-Site VPN-Verbindung verbindet Ihr On-Premises-Netzwerk mit einer VPC über einen sicheren IPsec VPN-Tunnel.
|
||||
- Es verwaltet die sichere Kommunikation zwischen Ihrer VPC und Ihrem lokalen Netzwerk.
|
||||
3. **Site-to-Site VPN-Verbindung**:
|
||||
- Eine Site-to-Site VPN-Verbindung verbindet Ihr lokales Netzwerk über einen sicheren IPsec VPN-Tunnel mit einer VPC.
|
||||
- Diese Art von Verbindung erfordert ein Customer Gateway und ein Virtual Private Gateway.
|
||||
- Es wird für sichere, stabile und konsistente Kommunikation zwischen Ihrem Rechenzentrum oder Netzwerk und Ihrer AWS-Umgebung verwendet.
|
||||
- Typischerweise für regelmäßige, langfristige Verbindungen verwendet und wird basierend auf der Menge der über die Verbindung übertragenen Daten abgerechnet.
|
||||
4. **Client VPN Endpoint**:
|
||||
- Typischerweise für regelmäßige, langfristige Verbindungen genutzt und wird basierend auf der Menge der über die Verbindung übertragenen Daten abgerechnet.
|
||||
4. **Client VPN-Endpunkt**:
|
||||
- Ein Client VPN-Endpunkt ist eine Ressource, die Sie in AWS erstellen, um Client-VPN-Sitzungen zu aktivieren und zu verwalten.
|
||||
- Es wird verwendet, um einzelnen Geräten (wie Laptops, Smartphones usw.) eine sichere Verbindung zu AWS-Ressourcen oder Ihrem On-Premises-Netzwerk zu ermöglichen.
|
||||
- Es wird verwendet, um einzelnen Geräten (wie Laptops, Smartphones usw.) eine sichere Verbindung zu AWS-Ressourcen oder Ihrem lokalen Netzwerk zu ermöglichen.
|
||||
- Es unterscheidet sich vom Site-to-Site VPN, da es für einzelne Clients und nicht für die Verbindung ganzer Netzwerke konzipiert ist.
|
||||
- Mit Client VPN verwendet jedes Client-Gerät eine VPN-Client-Software, um eine sichere Verbindung herzustellen.
|
||||
|
||||
Sie können [**hier weitere Informationen zu den Vorteilen und Komponenten von AWS VPNs finden**](aws-vpc-and-networking-basic-information.md#vpn).
|
||||
Sie können [**hier mehr Informationen über die Vorteile und Komponenten von AWS VPNs finden**](aws-vpc-and-networking-basic-information.md#vpn).
|
||||
|
||||
### Enumeration
|
||||
```bash
|
||||
@@ -293,13 +293,13 @@ aws ec2 describe-vpn-connections
|
||||
|
||||
**Lokale temporäre Anmeldeinformationen**
|
||||
|
||||
Wenn der AWS VPN-Client verwendet wird, um eine VPN-Verbindung herzustellen, meldet sich der Benutzer normalerweise **bei AWS an**, um Zugriff auf das VPN zu erhalten. Dann werden einige **AWS-Anmeldeinformationen erstellt und lokal gespeichert**, um die VPN-Verbindung herzustellen. Diese Anmeldeinformationen werden **gespeichert in** `$HOME/.config/AWSVPNClient/TemporaryCredentials/<region>/temporary-credentials.txt` und enthalten einen **AccessKey**, einen **SecretKey** und ein **Token**.
|
||||
Wenn der AWS VPN-Client verwendet wird, um eine Verbindung zu einem VPN herzustellen, meldet sich der Benutzer normalerweise **bei AWS an**, um Zugriff auf das VPN zu erhalten. Dann werden einige **AWS-Anmeldeinformationen erstellt und lokal gespeichert**, um die VPN-Verbindung herzustellen. Diese Anmeldeinformationen werden **gespeichert in** `$HOME/.config/AWSVPNClient/TemporaryCredentials/<region>/temporary-credentials.txt` und enthalten einen **AccessKey**, einen **SecretKey** und ein **Token**.
|
||||
|
||||
Die Anmeldeinformationen gehören zum Benutzer `arn:aws:sts::<acc-id>:assumed-role/aws-vpn-client-metrics-analytics-access-role/CognitoIdentityCredentials` (TODO: mehr über die Berechtigungen dieser Anmeldeinformationen recherchieren).
|
||||
|
||||
**opvn-Konfigurationsdateien**
|
||||
|
||||
Wenn eine **VPN-Verbindung hergestellt wurde**, sollten Sie nach **`.opvn`**-Konfigurationsdateien im System suchen. Darüber hinaus ist ein Ort, an dem Sie die **Konfigurationen** finden könnten, **`$HOME/.config/AWSVPNClient/OpenVpnConfigs`**
|
||||
Wenn eine **VPN-Verbindung hergestellt wurde**, sollten Sie nach **`.opvn`**-Konfigurationsdateien im System suchen. Darüber hinaus ist ein Ort, an dem Sie die **Konfigurationen** finden könnten, **`$HOME/.config/AWSVPNClient/OpenVpnConfigs`**.
|
||||
|
||||
#### **Post-Exploitation**
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
## Grundinformationen
|
||||
|
||||
Der **Relational Database Service (RDS)**, der von AWS angeboten wird, ist darauf ausgelegt, die Bereitstellung, den Betrieb und die Skalierung einer **relationalen Datenbank in der Cloud** zu optimieren. Dieser Dienst bietet die Vorteile von Kosteneffizienz und Skalierbarkeit, während arbeitsintensive Aufgaben wie Hardwarebereitstellung, Datenbankkonfiguration, Patching und Backups automatisiert werden.
|
||||
Der **Relational Database Service (RDS)**, der von AWS angeboten wird, ist darauf ausgelegt, die Bereitstellung, den Betrieb und die Skalierung einer **relationalen Datenbank in der Cloud** zu optimieren. Dieser Dienst bietet die Vorteile von Kosteneffizienz und Skalierbarkeit, während arbeitsintensive Aufgaben wie Hardwarebereitstellung, Datenbankkonfiguration, Patchen und Backups automatisiert werden.
|
||||
|
||||
AWS RDS unterstützt verschiedene weit verbreitete relationale Datenbank-Engines, darunter MySQL, PostgreSQL, MariaDB, Oracle Database, Microsoft SQL Server und Amazon Aurora, mit Kompatibilität für sowohl MySQL als auch PostgreSQL.
|
||||
|
||||
@@ -16,13 +16,13 @@ Wichtige Funktionen von RDS sind:
|
||||
- **Integration** mit anderen AWS-Diensten, wie:
|
||||
- AWS Identity and Access Management (**IAM**) für robuste Zugriffskontrolle.
|
||||
- AWS **CloudWatch** für umfassende Überwachung und Metriken.
|
||||
- AWS Key Management Service (**KMS**) zur Gewährleistung der Verschlüsselung im Ruhezustand.
|
||||
- AWS Key Management Service (**KMS**) zur Sicherstellung der Verschlüsselung im Ruhezustand.
|
||||
|
||||
## Anmeldeinformationen
|
||||
|
||||
Beim Erstellen des DB-Clusters kann der Master-**Benutzername** konfiguriert werden (**`admin`** standardmäßig). Um das Passwort dieses Benutzers zu generieren, können Sie:
|
||||
|
||||
- **Ein Passwort** selbst angeben
|
||||
- **Ein Passwort** selbst **angeben**
|
||||
- RDS anweisen, es **automatisch zu generieren**
|
||||
- RDS anweisen, es im **AWS Secret Manager** zu verwalten, verschlüsselt mit einem KMS-Schlüssel
|
||||
|
||||
@@ -55,7 +55,7 @@ Es gibt jedoch einen **Workaround, der es Ihnen ermöglicht, eine unverschlüsse
|
||||
|
||||
Neben den Verschlüsselungsfunktionen, die RDS auf Anwendungsebene bietet, unterstützt RDS auch **zusätzliche plattformseitige Verschlüsselungsmechanismen**, um Daten im Ruhezustand zu schützen. Dazu gehört die **Transparente Datenverschlüsselung (TDE)** für Oracle und SQL Server. Es ist jedoch wichtig zu beachten, dass TDE zwar die Sicherheit erhöht, indem es Daten im Ruhezustand verschlüsselt, es jedoch auch **die Datenbankleistung beeinträchtigen kann**. Diese Leistungsbeeinträchtigung ist besonders bemerkbar, wenn sie in Verbindung mit MySQL-Kryptografiefunktionen oder Microsoft Transact-SQL-Kryptografiefunktionen verwendet wird.
|
||||
|
||||
Um TDE zu nutzen, sind bestimmte Vorbereitungen erforderlich:
|
||||
Um TDE zu nutzen, sind bestimmte vorbereitende Schritte erforderlich:
|
||||
|
||||
1. **Option Group Association**:
|
||||
- Die Datenbank muss mit einer Optionsgruppe verbunden sein. Optionsgruppen dienen als Container für Einstellungen und Funktionen und erleichtern die Datenbankverwaltung, einschließlich Sicherheitsverbesserungen.
|
||||
@@ -134,7 +134,7 @@ aws rds modify-db-instance --db-instance-identifier <ID> --master-user-password
|
||||
Es gibt Möglichkeiten, auf DynamoDB-Daten mit **SQL-Syntax** zuzugreifen, daher sind typische **SQL-Injektionen ebenfalls möglich**.
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/pentesting-web/sql-injection
|
||||
https://book.hacktricks.wiki/en/pentesting-web/sql-injection/index.html
|
||||
{{#endref}}
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -19,22 +19,22 @@ Jedes protokollierte Ereignis enthält:
|
||||
- Die Anforderungsparameter: `requestParameters`
|
||||
- Die Antwortelemente: `responseElements`
|
||||
|
||||
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**.\
|
||||
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 es die Ereigniswähler, den Trail anzugeben, der protokolliert werden soll: Management-, Daten- oder Einblickereignisse.
|
||||
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.
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
Die Protokolle werden in einem **S3-Bucket mit diesem Namensformat** gespeichert:
|
||||
|
||||
- **`BucketName/AWSLogs/AccountID/CloudTrail/RegionName/YYY/MM/DD`**
|
||||
- Der BucketName ist: **`aws-cloudtrail-logs-<accountid>-<random>`**
|
||||
- Dabei ist der BucketName: **`aws-cloudtrail-logs-<accountid>-<random>`**
|
||||
- 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`**
|
||||
|
||||
Protokolldateibenennungs-Konvention
|
||||
Protokolldateibenennungskonvention
|
||||
|
||||
.png>)
|
||||
|
||||
@@ -42,13 +42,13 @@ Darüber hinaus werden **Digest-Dateien (zur Überprüfung der Dateiintegrität)
|
||||
|
||||
.png>)
|
||||
|
||||
### Aggregierte Protokolle von mehreren Konten
|
||||
### Protokolle von mehreren Konten aggregieren
|
||||
|
||||
- Erstellen Sie einen Trail im AWS-Konto, in dem Sie die Protokolldateien geliefert bekommen möchten
|
||||
- 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.
|
||||
@@ -92,11 +92,11 @@ Die Einblicke werden im selben Bucket wie die CloudTrail-Protokolle gespeichert:
|
||||
| Integrität der CloudTrail-Protokolldatei | <ul><li>Überprüfen, ob Protokolle manipuliert wurden (modifiziert oder gelöscht)</li><li><p>Verwendet Digest-Dateien (erstellt Hash für jede Datei)</p><ul><li>SHA-256-Hashing</li><li>SHA-256 mit RSA für digitale Signatur</li><li>privater Schlüssel im Besitz von Amazon</li></ul></li><li>Benötigt 1 Stunde, um eine Digest-Datei zu erstellen (jede Stunde zur vollen Stunde)</li></ul> |
|
||||
| ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| Unbefugten Zugriff stoppen | <ul><li><p>Verwenden Sie IAM-Richtlinien und S3-Bucket-Richtlinien</p><ul><li>Sicherheitsteam —> Administratorzugriff</li><li>Prüfer —> Nur-Lese-Zugriff</li></ul></li><li>Verwenden Sie SSE-S3/SSE-KMS, um die Protokolle zu verschlüsseln</li></ul> |
|
||||
| Verhindern, dass Protokolldateien gelöscht werden | <ul><li>Beschränken Sie den Löschzugriff mit IAM- und Bucket-Richtlinien</li><li>Konfigurieren Sie S3 MFA-Löschen</li><li>Validieren Sie mit der Protokolldateivalidierung</li></ul> |
|
||||
| Verhindern, dass Protokolldateien gelöscht werden | <ul><li>Beschränken Sie den Löschzugriff mit IAM- und Bucket-Richtlinien</li><li>Konfigurieren Sie S3 MFA-Löschen</li><li>Überprüfen Sie mit der Protokolldatei-Validierung</li></ul> |
|
||||
|
||||
## 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 potenziell zu breite 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 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 <data-source> --query-id <id
|
||||
```
|
||||
### **CSV Injection**
|
||||
|
||||
Es ist möglich, eine CVS-Injektion innerhalb von CloudTrail durchzuführen, die beliebigen Code ausführt, wenn die Protokolle im CSV-Format exportiert und mit Excel geöffnet werden.\
|
||||
Es ist möglich, eine CVS-Injektion innerhalb von CloudTrail durchzuführen, die willkürlichen Code ausführt, wenn die Protokolle im CSV-Format exportiert und mit Excel geöffnet werden.\
|
||||
Der folgende Code generiert einen Protokolleintrag mit einem schlechten Trail-Namen, der die Payload enthält:
|
||||
```python
|
||||
import boto3
|
||||
@@ -139,7 +139,7 @@ print(response)
|
||||
Für weitere Informationen zu CSV-Injektionen siehe die Seite:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/pentesting-web/formula-injection
|
||||
https://book.hacktricks.wiki/en/pentesting-web/formula-csv-doc-latex-ghostscript-injection.html
|
||||
{{#endref}}
|
||||
|
||||
Für weitere Informationen zu dieser speziellen Technik siehe [https://rhinosecuritylabs.com/aws/cloud-security-csv-injection-aws-cloudtrail/](https://rhinosecuritylabs.com/aws/cloud-security-csv-injection-aws-cloudtrail/)
|
||||
@@ -157,7 +157,7 @@ Allerdings verwenden Honeytokens wie die von [**Canarytokens**](https://canaryto
|
||||
- Wenn **`canarytokens.org`** im Rollennamen erscheint oder die Konto-ID **`534261010715`** in der Fehlermeldung erscheint.
|
||||
- Bei neueren Tests verwenden sie das Konto **`717712589309`** und haben immer noch den **`canarytokens.com`**-String im Namen.
|
||||
- Wenn **`SpaceCrab`** im Rollennamen in der Fehlermeldung erscheint.
|
||||
- **SpaceSiren** verwendet **uuids** zur Generierung von Benutzernamen: `[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}`
|
||||
- **SpaceSiren** verwendet **uuids**, um Benutzernamen zu generieren: `[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}`
|
||||
- Wenn der **Name zufällig generiert aussieht**, gibt es hohe Wahrscheinlichkeiten, dass es sich um ein HoneyToken handelt.
|
||||
|
||||
#### Holen Sie sich die Konto-ID aus der Schlüssel-ID
|
||||
@@ -183,22 +183,22 @@ print("account id:" + "{:012d}".format(AWSAccount_from_AWSKeyID("ASIAQNZGKIQY56J
|
||||
```
|
||||
Überprüfen Sie weitere Informationen in der [**originalen Forschung**](https://medium.com/@TalBeerySec/a-short-note-on-aws-key-id-f88cc4317489).
|
||||
|
||||
#### Kein Protokoll generieren
|
||||
#### Protokoll nicht generieren
|
||||
|
||||
Die effektivste Technik dafür ist tatsächlich eine einfache. Verwenden Sie einfach den Schlüssel, den Sie gerade gefunden haben, um auf einen Dienst in Ihrem eigenen Angreiferkonto zuzugreifen. Dies wird **CloudTrail dazu bringen, ein Protokoll in IHREM EIGENEN AWS-Konto und nicht im Konto des Opfers zu generieren**.
|
||||
Die effektivste Technik dafür ist tatsächlich eine einfache. Verwenden Sie einfach den Schlüssel, den Sie gerade gefunden haben, um auf einen Dienst in Ihrem eigenen Angreifer-Konto zuzugreifen. Dadurch wird **CloudTrail ein Protokoll in IHREM EIGENEN AWS-Konto und nicht im Konto des Opfers** erstellen.
|
||||
|
||||
Das Problem ist, dass die Ausgabe Ihnen einen Fehler anzeigen wird, der die Kontonummer und den Kontonamen angibt, sodass **Sie sehen können, ob es sich um ein Honeytoken handelt**.
|
||||
Das Problem ist, dass die Ausgabe Ihnen einen Fehler anzeigt, der die Kontonummer und den Kontonamen angibt, sodass **Sie sehen können, ob es sich um ein Honeytoken handelt**.
|
||||
|
||||
#### AWS-Dienste ohne Protokolle
|
||||
|
||||
In der Vergangenheit gab es einige **AWS-Dienste, die keine Protokolle an CloudTrail senden** (finden Sie eine [Liste hier](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-unsupported-aws-services.html)). Einige dieser Dienste werden **antworten** mit einem **Fehler**, der die **ARN der Schlüsselrolle** enthält, wenn jemand Unbefugtes (der Honeytoken-Schlüssel) versucht, darauf zuzugreifen.
|
||||
In der Vergangenheit gab es einige **AWS-Dienste, die keine Protokolle an CloudTrail senden** (finden Sie eine [Liste hier](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-unsupported-aws-services.html)). Einige dieser Dienste werden mit einem **Fehler** antworten, der die **ARN der Schlüsselrolle** enthält, wenn jemand Unbefugtes (der Honeytoken-Schlüssel) versucht, darauf zuzugreifen.
|
||||
|
||||
Auf diese Weise kann ein **Angreifer die ARN des Schlüssels erhalten, ohne ein Protokoll auszulösen**. In der ARN kann der Angreifer die **AWS-Kontonummer und den Namen** sehen, es ist einfach, die Kontonummern und Namen der HoneyToken-Unternehmen zu kennen, sodass ein Angreifer auf diese Weise identifizieren kann, ob das Token ein HoneyToken ist.
|
||||
Auf diese Weise kann ein **Angreifer die ARN des Schlüssels erhalten, ohne ein Protokoll auszulösen**. In der ARN kann der Angreifer die **AWS-Kontonummer und den Namen** sehen, es ist einfach, die Kontonummern und Namen der HoneyToken-Unternehmen zu kennen, sodass ein Angreifer auf diese Weise feststellen kann, ob das Token ein HoneyToken ist.
|
||||
|
||||
.png>)
|
||||
|
||||
> [!CAUTION]
|
||||
> Beachten Sie, dass alle öffentlichen APIs, die entdeckt wurden, um keine CloudTrail-Protokolle zu erstellen, jetzt behoben sind, also müssen Sie möglicherweise Ihre eigenen finden...
|
||||
> Beachten Sie, dass alle öffentlichen APIs, die entdeckt wurden, keine CloudTrail-Protokolle zu erstellen, jetzt behoben sind, sodass Sie möglicherweise Ihre eigenen finden müssen...
|
||||
>
|
||||
> Für weitere Informationen überprüfen Sie die [**originale Forschung**](https://rhinosecuritylabs.com/aws/aws-iam-enumeration-2-0-bypassing-cloudtrail-logging/).
|
||||
|
||||
@@ -228,7 +228,7 @@ aws cloudtrail stop-logging --name [trail-name]
|
||||
```bash
|
||||
aws cloudtrail update-trail --name [trail-name] --no-is-multi-region --no-include-global-services
|
||||
```
|
||||
#### Protokollierung durch Ereigniswähler deaktivieren
|
||||
#### Protokollierung durch Ereignis-Selektoren deaktivieren
|
||||
```bash
|
||||
# Leave only the ReadOnly selector
|
||||
aws cloudtrail put-event-selectors --trail-name <trail_name> --event-selectors '[{"ReadWriteType": "ReadOnly"}]' --region <region>
|
||||
@@ -244,33 +244,33 @@ Sie können den Ereignis-Selektor basierend auf Ihren spezifischen Anforderungen
|
||||
```bash
|
||||
aws s3api put-bucket-lifecycle --bucket <bucket_name> --lifecycle-configuration '{"Rules": [{"Status": "Enabled", "Prefix": "", "Expiration": {"Days": 7}}]}' --region <region>
|
||||
```
|
||||
### Modifizieren der Bucket-Konfiguration
|
||||
### Modifying Bucket Configuration
|
||||
|
||||
- Löschen Sie den S3-Bucket
|
||||
- Ändern Sie die Bucket-Richtlinie, um alle Schreibvorgänge vom CloudTrail-Dienst zu verweigern
|
||||
- Fügen Sie eine Lebenszyklusrichtlinie zum S3-Bucket hinzu, um Objekte zu löschen
|
||||
- Deaktivieren Sie den KMS-Schlüssel, der zum Verschlüsseln der CloudTrail-Protokolle verwendet wird
|
||||
|
||||
### Cloudtrail Ransomware
|
||||
### Cloudtrail ransomware
|
||||
|
||||
#### S3 Ransomware
|
||||
#### S3 ransomware
|
||||
|
||||
Sie könnten **einen asymmetrischen Schlüssel generieren** und **CloudTrail die Daten mit diesem Schlüssel verschlüsseln** und **den privaten Schlüssel löschen**, sodass die Inhalte von CloudTrail nicht wiederhergestellt werden können.\
|
||||
Dies ist im Grunde eine **S3-KMS Ransomware**, die in:
|
||||
Dies ist im Grunde eine **S3-KMS-Ransomware**, die in folgendem erklärt wird:
|
||||
|
||||
{{#ref}}
|
||||
../../aws-post-exploitation/aws-s3-post-exploitation.md
|
||||
{{#endref}}
|
||||
|
||||
**KMS Ransomware**
|
||||
**KMS ransomware**
|
||||
|
||||
Dies ist der einfachste Weg, den vorherigen Angriff mit unterschiedlichen Berechtigungsanforderungen durchzuführen:
|
||||
Dies ist der einfachste Weg, um den vorherigen Angriff mit unterschiedlichen Berechtigungsanforderungen durchzuführen:
|
||||
|
||||
{{#ref}}
|
||||
../../aws-post-exploitation/aws-kms-post-exploitation.md
|
||||
{{#endref}}
|
||||
|
||||
## **Referenzen**
|
||||
## **References**
|
||||
|
||||
- [https://cloudsecdocs.com/aws/services/logging/cloudtrail/#inventory](https://cloudsecdocs.com/aws/services/logging/cloudtrail/#inventory)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user