AWS - DynamoDB Post Exploitation
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Для отримання додаткової інформації перегляньте:
dynamodb:BatchGetItem
Зловмисник з цими правами зможе отримувати елементи з таблиць за первинним ключем (ви не можете просто запитати всі дані таблиці). Це означає, що вам потрібно знати первинні ключі (ви можете отримати це, отримавши метадані таблиці (describe-table
).
Потенційний вплив: Непряме підвищення привілеїв шляхом знаходження чутливої інформації в таблиці
dynamodb:GetItem
Схоже на попередні дозволи цей дозволяє потенційному атакуючому читати значення лише з 1 таблиці, якщо відомий первинний ключ запису, який потрібно отримати:
З цим дозволом також можливо використовувати метод transact-get-items
так:
Потенційний вплив: Непряме підвищення привілеїв шляхом знаходження чутливої інформації в таблиці
dynamodb:Query
Схоже на попередні дозволи цей дозволяє потенційному атакуючому читати значення лише з 1 таблиці, враховуючи первинний ключ запису для отримання. Дозволяє використовувати підмножину порівнянь, але єдине порівняння, яке дозволено з первинним ключем (який повинен з'являтися), це "EQ", тому ви не можете використовувати порівняння, щоб отримати всю БД в одному запиті.
Потенційний вплив: Непряме підвищення привілеїв шляхом знаходження чутливої інформації в таблиці
dynamodb:Scan
Ви можете використовувати цей дозвіл, щоб легко вивантажити всю таблицю.
Потенційний вплив: Непряме підвищення привілеїв шляхом знаходження чутливої інформації в таблиці
dynamodb:PartiQLSelect
Ви можете використовувати цей дозвіл, щоб легко вивантажити всю таблицю.
Ця дозволяє виконувати batch-execute-statement
, як:
але вам потрібно вказати первинний ключ з значенням, тому це не так корисно.
Потенційний вплив: Непряме підвищення привілеїв шляхом знаходження чутливої інформації в таблиці
dynamodb:ExportTableToPointInTime|(dynamodb:UpdateContinuousBackups)
Ця дозволена дія дозволить зловмиснику експортувати всю таблицю в S3 бакет на його вибір:
Зверніть увагу, що для цього таблиця повинна мати увімкнене відновлення на момент часу, ви можете перевірити, чи має таблиця цю функцію за допомогою:
Якщо це не увімкнено, вам потрібно увімкнути це, і для цього вам потрібен дозвіл dynamodb:ExportTableToPointInTime
:
Потенційний вплив: Непряме підвищення привілеїв шляхом знаходження чутливої інформації в таблиці
dynamodb:CreateTable
, dynamodb:RestoreTableFromBackup
, (dynamodb:CreateBackup)
З цими дозволами зловмисник зможе створити нову таблицю з резервної копії (або навіть створити резервну копію, щоб потім відновити її в іншій таблиці). Потім, з необхідними дозволами, він зможе перевірити інформацію з резервних копій, яка може більше не бути в продуктивній таблиці.
Потенційний вплив: Непряме підвищення привілеїв шляхом знаходження чутливої інформації в резервній копії таблиці
dynamodb:PutItem
Цей дозвіл дозволяє користувачам додавати новий елемент до таблиці або замінювати існуючий елемент новим елементом. Якщо елемент з таким же первинним ключем вже існує, весь елемент буде замінено новим елементом. Якщо первинний ключ не існує, буде створено новий елемент з вказаним первинним ключем.
Потенційний вплив: Експлуатація подальших вразливостей/обхідних шляхів, маючи можливість додавати/модифікувати дані в таблиці DynamoDB
dynamodb:UpdateItem
Цей дозвіл дозволяє користувачам модифікувати існуючі атрибути елемента або додавати нові атрибути до елемента. Він не замінює весь елемент; він лише оновлює вказані атрибути. Якщо первинний ключ не існує в таблиці, операція створить новий елемент з вказаним первинним ключем і встановить атрибути, вказані в виразі оновлення.
Потенційний вплив: Експлуатація подальших вразливостей/обхідних шляхів, маючи можливість додавати/змінювати дані в таблиці DynamoDB
dynamodb:DeleteTable
Зловмисник з цим дозволом може видалити таблицю DynamoDB, що призведе до втрати даних.
Потенційний вплив: Втрата даних та порушення роботи сервісів, що залежать від видаленої таблиці.
dynamodb:DeleteBackup
Зловмисник з цим дозволом може видалити резервну копію DynamoDB, що потенційно призведе до втрати даних у випадку сценарію відновлення після катастрофи.
Потенційний вплив: Втрата даних та неможливість відновлення з резервної копії під час сценарію відновлення після катастрофи.
dynamodb:StreamSpecification
, dynamodb:UpdateTable
, dynamodb:DescribeStream
, dynamodb:GetShardIterator
, dynamodb:GetRecords
TODO: Test if this actually works
Зловмисник з цими дозволами може увімкнути потік на таблиці DynamoDB, оновити таблицю, щоб почати трансляцію змін, а потім отримати доступ до потоку для моніторингу змін у таблиці в реальному часі. Це дозволяє зловмиснику моніторити та ексфільтрувати зміни даних, що потенційно призводить до витоку даних.
Увімкніть потік на таблиці DynamoDB:
Описати потік для отримання ARN та інших деталей:
Отримайте ітератор шардів, використовуючи ARN потоку:
Використовуйте ітератор шард для доступу та ексфільтрації даних з потоку:
Потенційний вплив: Моніторинг в реальному часі та витік даних про зміни таблиці DynamoDB.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)