AWS - DynamoDB Post Exploitation
Last updated
Last updated
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aby uzyskać więcej informacji, sprawdź:
dynamodb:BatchGetItem
Atakujący z tymi uprawnieniami będzie mógł pobierać elementy z tabel za pomocą klucza głównego (nie możesz po prostu poprosić o wszystkie dane z tabeli). Oznacza to, że musisz znać klucze główne (możesz to uzyskać, pobierając metadane tabeli (describe-table
).
Potencjalny wpływ: Pośredni privesc poprzez zlokalizowanie wrażliwych informacji w tabeli
dynamodb:GetItem
Podobnie jak poprzednie uprawnienia to pozwala potencjalnemu atakującemu na odczyt wartości z tylko 1 tabeli, pod warunkiem posiadania klucza głównego wpisu do pobrania:
Z tymi uprawnieniami możliwe jest również użycie metody transact-get-items
w następujący sposób:
Potencjalny wpływ: Pośredni privesc poprzez zlokalizowanie wrażliwych informacji w tabeli
dynamodb:Query
Podobnie jak w poprzednich uprawnieniach to pozwala potencjalnemu atakującemu na odczyt wartości z tylko 1 tabeli, pod warunkiem posiadania klucza głównego wpisu do pobrania. Pozwala na użycie 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.
Potencjalny wpływ: Pośredni privesc poprzez zlokalizowanie wrażliwych informacji w tabeli
dynamodb:Scan
Możesz użyć tego uprawnienia, aby łatwo zrzucić całą tabelę.
Potencjalny wpływ: Pośredni privesc poprzez zlokalizowanie wrażliwych informacji w tabeli
dynamodb:PartiQLSelect
Możesz użyć tego uprawnienia, aby łatwo zrzucić całą tabelę.
To uprawnienie pozwala również na wykonanie batch-execute-statement
jak:
ale musisz określić klucz główny z wartością, więc nie jest to zbyt przydatne.
Potencjalny wpływ: Pośredni privesc poprzez zlokalizowanie wrażliwych informacji w tabeli
dynamodb:ExportTableToPointInTime|(dynamodb:UpdateContinuousBackups)
To uprawnienie pozwoli atakującemu na wyeksportowanie całej tabeli do wybranego przez niego koszyka S3:
Zauważ, że aby to zadziałało, tabela musi mieć włączoną funkcję odzyskiwania w czasie rzeczywistym, możesz sprawdzić, czy tabela ją ma, używając:
Jeśli nie jest włączona, musisz włączyć ją i do tego potrzebujesz uprawnienia dynamodb:ExportTableToPointInTime
:
Potencjalny wpływ: Pośredni privesc poprzez zlokalizowanie wrażliwych informacji w tabeli
dynamodb:CreateTable
, dynamodb:RestoreTableFromBackup
, (dynamodb:CreateBackup)
Dzięki tym uprawnieniom, atakujący mógłby utworzyć nową tabelę z kopii zapasowej (lub nawet utworzyć kopię zapasową, aby następnie przywrócić ją w innej tabeli). Następnie, z odpowiednimi uprawnieniami, mógłby sprawdzić informacje z kopii zapasowych, które mogłyby już nie znajdować się w tabeli produkcyjnej.
Potencjalny wpływ: Pośredni privesc poprzez zlokalizowanie wrażliwych informacji w kopii zapasowej tabeli
dynamodb:PutItem
To uprawnienie pozwala użytkownikom na 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, nowy element z określonym kluczem głównym zostanie utworzony.
Potencjalny wpływ: Wykorzystanie dalszych luk/bypassów poprzez możliwość dodawania/modyfikowania danych w tabeli DynamoDB
dynamodb:UpdateItem
To uprawnienie pozwala użytkownikom na modyfikację istniejących atrybutów elementu lub dodawanie nowych atrybutów do elementu. Nie zastępuje całego elementu; aktualizuje tylko określone atrybuty. Jeśli klucz główny nie istnieje w tabeli, operacja utworzy nowy element z określonym kluczem głównym i ustawi atrybuty określone w wyrażeniu aktualizacji.
Potencjalny wpływ: Wykorzystanie dalszych luk/bypassów poprzez możliwość dodawania/modyfikowania danych w tabeli DynamoDB
dynamodb:DeleteTable
Napastnik z tym uprawnieniem może usunąć tabelę DynamoDB, powodując utratę danych.
Potencjalny wpływ: Utrata danych i zakłócenie usług opartych na usuniętej tabeli.
dynamodb:DeleteBackup
Napastnik z tym uprawnieniem może usunąć kopię zapasową DynamoDB, co może spowodować utratę danych w przypadku scenariusza odzyskiwania po awarii.
Potencjalny wpływ: Utrata danych i niemożność ich odzyskania z kopii zapasowej w scenariuszu odzyskiwania po awarii.
dynamodb:StreamSpecification
, dynamodb:UpdateTable
, dynamodb:DescribeStream
, dynamodb:GetShardIterator
, dynamodb:GetRecords
TODO: Przetestować, czy to rzeczywiście działa
Napastnik z tymi uprawnieniami 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. Umożliwia to napastnikowi monitorowanie i eksfiltrację zmian danych, co może prowadzić do wycieku danych.
Włącz strumień na tabeli DynamoDB:
Opisz strumień, aby uzyskać ARN i inne szczegóły:
Uzyskaj iterator shardów za pomocą ARN strumienia:
Użyj iteratora shard, aby uzyskać dostęp do danych i wyeksportować je ze strumienia:
Potencjalny wpływ: Monitorowanie w czasie rzeczywistym i wyciek danych dotyczących zmian w tabeli DynamoDB.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)