AWS - DynamoDB Post Exploitation
DynamoDB
Aby uzyskać więcej informacji, sprawdź:
pageAWS - DynamoDB Enumdynamodb:BatchGetItem
dynamodb:BatchGetItem
Atakujący z tymi uprawnieniami będzie mógł pobierać elementy z tabel według klucza głównego (nie można po prostu poprosić o wszystkie dane z tabeli). Oznacza to, że musisz znać klucze główne (możesz je uzyskać, pobierając metadane tabeli (describe-table
).
Potencjalne skutki: Pośrednie podniesienie uprawnień poprzez zlokalizowanie wrażliwych informacji w tabeli
dynamodb:GetItem
dynamodb:GetItem
Podobnie jak w przypadku poprzednich uprawnień, ta pozwala potencjalnemu atakującemu odczytywać wartości z jednej tabeli, podając klucz główny wpisu do pobrania:
Z tym uprawnieniem można również używać metody transact-get-items
tak jak:
Potencjalny wpływ: Pośrednie podniesienie uprawnień poprzez zlokalizowanie wrażliwych informacji w tabeli
dynamodb:Query
dynamodb:Query
Podobnie jak w przypadku poprzednich uprawnień, to pozwala potencjalnemu atakującemu odczytywać wartości z jednej tabeli, podając klucz główny wpisu do pobrania. Pozwala używać podzbioru porównań, ale jedynym dozwolonym porównaniem z kluczem głównym (który musi się pojawić) jest "EQ", więc nie można użyć porównania, aby uzyskać całą bazę danych w jednym żądaniu.
Potencjalne skutki: Pośrednie podniesienie uprawnień poprzez zlokalizowanie wrażliwych informacji w tabeli
dynamodb:Scan
dynamodb:Scan
Możesz użyć tego uprawnienia do łatwego zrzucenia całej tabeli.
Potencjalny wpływ: Pośrednie podniesienie uprawnień poprzez zlokalizowanie wrażliwych informacji w tabeli
dynamodb:PartiQLSelect
dynamodb:PartiQLSelect
Możesz użyć tego uprawnienia do łatwego zrzucenia całej tabeli.
To uprawnienie pozwala również na wykonywanie batch-execute-statement
, na przykład:
ale musisz określić klucz główny z wartością, więc nie jest to takie przydatne.
Potencjalny wpływ: Pośrednie podniesienie uprawnień poprzez zlokalizowanie wrażliwych informacji w tabeli
dynamodb:ExportTableToPointInTime|(dynamodb:UpdateContinuousBackups)
dynamodb:ExportTableToPointInTime|(dynamodb:UpdateContinuousBackups)
To uprawnienie umożliwi atakującemu wyeksportowanie całej tabeli do wiadra S3 jego wyboru:
Zauważ, że aby to działało, tabela musi mieć włączoną funkcję przywracania punktu w czasie, możesz sprawdzić, czy tabela ją ma, używając:
Jeśli nie jest włączone, będziesz musiał je włączyć i do tego potrzebujesz uprawnienia dynamodb:ExportTableToPointInTime
:
Potencjalny wpływ: Pośrednie podniesienie uprawnień poprzez zlokalizowanie wrażliwych informacji w tabeli
dynamodb:CreateTable
, dynamodb:RestoreTableFromBackup
, (dynamodb:CreateBackup)
dynamodb:CreateTable
, dynamodb:RestoreTableFromBackup
, (dynamodb:CreateBackup)
Z tymi uprawnieniami atakujący byłby w stanie utworzyć nową tabelę z kopii zapasowej (lub nawet utworzyć kopię zapasową, aby następnie przywrócić ją w innej tabeli). Następnie, posiadając odpowiednie uprawnienia, mógłby sprawdzić informacje z kopii zapasowych, które nie muszą już znajdować się w tabeli produkcyjnej.
Potencjalny wpływ: Pośrednie podniesienie uprawnień poprzez zlokalizowanie wrażliwych informacji w kopii zapasowej tabeli
dynamodb:PutItem
dynamodb:PutItem
To uprawnienie umożliwia użytkownikom dodanie nowego elementu do tabeli lub zastąpienie istniejącego elementu nowym elementem. Jeśli element o tym samym kluczu głównym już istnieje, cały element zostanie zastąpiony nowym elementem. Jeśli klucz główny nie istnieje, zostanie utworzony nowy element z określonym kluczem głównym.
Potencjalne skutki: Wykorzystanie dodatkowych podatności/bypassów poprzez możliwość dodawania/modyfikowania danych w tabeli DynamoDB
dynamodb:UpdateItem
dynamodb:UpdateItem
To uprawnienie pozwala użytkownikom modyfikować istniejące atrybuty elementu lub dodawać nowe atrybuty do elementu. Nie zastępuje całego elementu; aktualizuje tylko określone atrybuty. Jeśli klucz główny nie istnieje w tabeli, operacja ta utworzy nowy element z określonym kluczem głównym i ustawionymi atrybutami określonymi w wyrażeniu aktualizacji.
Potencjalny wpływ: Wykorzystanie kolejnych podatności/bypassów poprzez możliwość dodawania/modyfikowania danych w tabeli DynamoDB
dynamodb:DeleteTable
dynamodb:DeleteTable
Atakujący posiadający to uprawnienie może usunąć tabelę DynamoDB, powodując utratę danych.
Potencjalne skutki: Utrata danych i zakłócenie usług polegających na usuniętej tabeli.
dynamodb:DeleteBackup
dynamodb:DeleteBackup
Atakujący posiadający to uprawnienie może usunąć kopię zapasową DynamoDB, potencjalnie powodując utratę danych w przypadku scenariusza odzyskiwania po katastrofie.
Potencjalny wpływ: Utrata danych i brak możliwości odzyskania z kopii zapasowej podczas scenariusza odzyskiwania po katastrofie.
dynamodb:StreamSpecification
, dynamodb:UpdateTable
, dynamodb:DescribeStream
, dynamodb:GetShardIterator
, dynamodb:GetRecords
dynamodb:StreamSpecification
, dynamodb:UpdateTable
, dynamodb:DescribeStream
, dynamodb:GetShardIterator
, dynamodb:GetRecords
TODO: Sprawdź, czy to naprawdę działa
Atakujący posiadający te uprawnienia może włączyć strumień na tabeli DynamoDB, zaktualizować tabelę, aby rozpocząć przesyłanie zmian, a następnie uzyskać dostęp do strumienia, aby monitorować zmiany w tabeli w czasie rzeczywistym. Pozwala to atakującemu monitorować i eksfiltrować zmiany danych, co potencjalnie prowadzi do wycieku danych.
Włącz strumień na tabeli DynamoDB:
Opisz strumień, aby uzyskać ARN i inne szczegóły:
Uzyskaj iterator fragmentu przy użyciu ARN strumienia:
Użyj iteratora shard do uzyskania dostępu i wycieku danych ze strumienia:
Potencjalny wpływ: Monitorowanie w czasie rzeczywistym i wyciek danych zmian tabeli DynamoDB.
Last updated