AWS - DynamoDB Post Exploitation
Last updated
Last updated
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Für weitere Informationen siehe:
dynamodb:BatchGetItem
Ein Angreifer mit diesen Berechtigungen kann Elemente aus Tabellen anhand des Primärschlüssels abrufen (Sie können nicht einfach nach allen Daten der Tabelle fragen). Das bedeutet, dass Sie die Primärschlüssel kennen müssen (Sie können dies erhalten, indem Sie die Tabellenmetadaten abrufen (describe-table
).
Potenzielle Auswirkungen: Indirekte Privilegieneskalation durch das Auffinden sensibler Informationen in der Tabelle
dynamodb:GetItem
Ähnlich wie die vorherigen Berechtigungen erlaubt diese einem potenziellen Angreifer, Werte aus nur 1 Tabelle zu lesen, wenn der Primärschlüssel des abzurufenden Eintrags bekannt ist:
Mit dieser Berechtigung ist es auch möglich, die transact-get-items
Methode wie folgt zu verwenden:
Potenzielle Auswirkungen: Indirekte Privilegieneskalation durch das Auffinden sensibler Informationen in der Tabelle
dynamodb:Query
Ähnlich wie die vorherigen Berechtigungen ermöglicht diese einem potenziellen Angreifer, Werte aus nur 1 Tabelle zu lesen, wenn der Primärschlüssel des abzurufenden Eintrags bekannt ist. Es erlaubt die Verwendung einer Teilmenge von Vergleichen, aber der einzige Vergleich, der mit dem Primärschlüssel (der erscheinen muss) erlaubt ist, ist "EQ", sodass Sie keinen Vergleich verwenden können, um die gesamte DB in einer Anfrage abzurufen.
Potenzielle Auswirkungen: Indirekte Privilegieneskalation durch das Auffinden sensibler Informationen in der Tabelle
dynamodb:Scan
Sie können diese Berechtigung verwenden, um die gesamte Tabelle einfach zu dumpen.
Potenzielle Auswirkungen: Indirekte Privilegieneskalation durch das Auffinden sensibler Informationen in der Tabelle
dynamodb:PartiQLSelect
Sie können diese Berechtigung verwenden, um die gesamte Tabelle einfach zu dumpen.
Diese Berechtigung erlaubt auch die Ausführung von batch-execute-statement
wie:
aber Sie müssen den Primärschlüssel mit einem Wert angeben, sodass es nicht so nützlich ist.
Potenzielle Auswirkungen: Indirekte Privilegieneskalation durch Auffinden sensibler Informationen in der Tabelle
dynamodb:ExportTableToPointInTime|(dynamodb:UpdateContinuousBackups)
Diese Berechtigung ermöglicht es einem Angreifer, die gesamte Tabelle in einen S3-Bucket seiner Wahl zu exportieren:
Beachten Sie, dass für dies die Tabelle die Punkt-in-Zeit-Wiederherstellung aktiviert haben muss. Sie können überprüfen, ob die Tabelle dies hat mit:
Wenn es nicht aktiviert ist, müssen Sie es aktivieren und dafür benötigen Sie die dynamodb:ExportTableToPointInTime
Berechtigung:
Potenzielle Auswirkungen: Indirekte Privilegieneskalation durch das Auffinden sensibler Informationen in der Tabelle
dynamodb:CreateTable
, dynamodb:RestoreTableFromBackup
, (dynamodb:CreateBackup)
Mit diesen Berechtigungen wäre ein Angreifer in der Lage, eine neue Tabelle aus einem Backup zu erstellen (oder sogar ein Backup zu erstellen, um es dann in einer anderen Tabelle wiederherzustellen). Dann könnte er, mit den notwendigen Berechtigungen, Informationen aus den Backups überprüfen, die möglicherweise nicht mehr in der Produktion Tabelle vorhanden sind.
Potenzielle Auswirkungen: Indirekte Privilegieneskalation durch das Auffinden sensibler Informationen im Tabellen-Backup
dynamodb:PutItem
Diese Berechtigung ermöglicht es Benutzern, ein neues Element zur Tabelle hinzuzufügen oder ein vorhandenes Element durch ein neues Element zu ersetzen. Wenn ein Element mit dem gleichen Primärschlüssel bereits existiert, wird das gesamte Element durch das neue Element ersetzt. Wenn der Primärschlüssel nicht existiert, wird ein neues Element mit dem angegebenen Primärschlüssel erstellt.
Potenzielle Auswirkungen: Ausnutzung weiterer Schwachstellen/Umgehungen durch die Möglichkeit, Daten in einer DynamoDB-Tabelle hinzuzufügen/zu ändern
dynamodb:UpdateItem
Diese Berechtigung ermöglicht es Benutzern, die vorhandenen Attribute eines Elements zu ändern oder neue Attribute zu einem Element hinzuzufügen. Es ersetzt nicht das gesamte Element; es aktualisiert nur die angegebenen Attribute. Wenn der Primärschlüssel nicht in der Tabelle vorhanden ist, wird die Operation ein neues Element mit dem angegebenen Primärschlüssel erstellen und die im Aktualisierungsausdruck angegebenen Attribute festlegen.
Potenzielle Auswirkungen: Ausnutzung weiterer Schwachstellen/Umgehungen durch die Möglichkeit, Daten in einer DynamoDB-Tabelle hinzuzufügen/zu ändern
dynamodb:DeleteTable
Ein Angreifer mit dieser Berechtigung kann eine DynamoDB-Tabelle löschen, was zu Datenverlust führt.
Potenzielle Auswirkungen: Datenverlust und Unterbrechung von Diensten, die auf der gelöschten Tabelle basieren.
dynamodb:DeleteBackup
Ein Angreifer mit dieser Berechtigung kann ein DynamoDB-Backup löschen, was potenziell zu Datenverlust im Falle eines Katastrophenwiederherstellungsszenarios führen kann.
Potenzielle Auswirkungen: Datenverlust und Unfähigkeit, sich während eines Katastrophenwiederherstellungsszenarios von einem Backup zu erholen.
dynamodb:StreamSpecification
, dynamodb:UpdateTable
, dynamodb:DescribeStream
, dynamodb:GetShardIterator
, dynamodb:GetRecords
TODO: Testen, ob das tatsächlich funktioniert
Ein Angreifer mit diesen Berechtigungen kann einen Stream auf einer DynamoDB-Tabelle aktivieren, die Tabelle aktualisieren, um Änderungen zu streamen, und dann auf den Stream zugreifen, um Änderungen an der Tabelle in Echtzeit zu überwachen. Dies ermöglicht es dem Angreifer, Datenänderungen zu überwachen und zu exfiltrieren, was potenziell zu einem Datenleck führen kann.
Aktivieren Sie einen Stream auf einer DynamoDB-Tabelle:
Beschreiben Sie den Stream, um die ARN und andere Details zu erhalten:
Holen Sie sich den Shard-Iterator mit der Stream-ARN:
Verwenden Sie den Shard-Iterator, um auf die Daten im Stream zuzugreifen und sie zu exfiltrieren:
Potenzielle Auswirkungen: Echtzeitüberwachung und Datenleckage der Änderungen der DynamoDB-Tabelle.
Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)