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