AWS - DynamoDB Post Exploitation
DynamoDB
Vir meer inligting, kyk:
AWS - DynamoDB Enumdynamodb:BatchGetItem
dynamodb:BatchGetItem
'n Aanvaller met hierdie regte sal in staat wees om items van tabelle te kry deur die primêre sleutel (jy kan nie net vir al die data van die tabel vra nie). Dit beteken dat jy die primêre sleutels moet weet (jy kan dit kry deur die tafelmetadata te kry (describe-table
).
Potensiële Impak: Indirekte privilage-escalation deur sensitiewe inligting in die tabel te vind
dynamodb:GetItem
dynamodb:GetItem
Net soos die vorige toestemmings, maak hierdie een dit moontlik vir 'n aanvaller om waardes van net 1 tabel te lees deur die primêre sleutel van die inskrywing te gebruik om op te haal:
Met hierdie toestemming is dit ook moontlik om die transact-get-items
metode te gebruik soos:
Potensiële Impak: Indirekte privilage-escalation deur sensitiewe inligting in die tabel te vind
dynamodb:Query
dynamodb:Query
Soortgelyk aan die vorige toestemmings hierdie toelaat 'n potensiële aanvaller om waardes van net 1 tabel te lees deur die primêre sleutel van die inskrywing te gebruik om op te haal. Dit maak gebruik van 'n subreeks van vergelykings, maar die enigste vergelyking wat toegelaat word met die primêre sleutel (wat moet verskyn) is "EQ", so jy kan nie 'n vergelyking gebruik om die hele DB in 'n versoek te kry.
Potensiële Impak: Indirekte privilage-escalation deur sensitiewe inligting in die tabel te vind
dynamodb:Scan
dynamodb:Scan
Jy kan hierdie toestemming gebruik om die hele tabel maklik te dump.
Potensiële Impak: Indirekte privilage-escalation deur sensitiewe inligting in die tabel te vind
dynamodb:PartiQLSelect
dynamodb:PartiQLSelect
Jy kan hierdie toestemming gebruik om die hele tabel maklik te dump.
Hierdie toestemming maak dit ook moontlik om batch-execute-statement
uit te voer soos:
maar jy moet die primêre sleutel met 'n waarde spesifiseer, so dit is nie baie nuttig nie.
Potensiële Impak: Indirekte privesc deur die opsporing van sensitiewe inligting in die tabel
dynamodb:ExportTableToPointInTime|(dynamodb:UpdateContinuousBackups)
dynamodb:ExportTableToPointInTime|(dynamodb:UpdateContinuousBackups)
Hierdie toestemming sal 'n aanvaller toelaat om die hele tabel na 'n S3-emmer van sy keuse te uitvoer:
Merk op dat vir hierdie metode werk, die tabel moet punt-in-tyd-herwinning geaktiveer hê, jy kan nagaan of die tabel dit het met:
Indien dit nie geaktiveer is nie, sal jy dit moet aktiveer en daarvoor benodig jy die dynamodb:ExportTableToPointInTime
toestemming:
Potensiële Impak: Indirekte privilage-escalation deur die opsporing van sensitiewe inligting in die tabel
dynamodb:CreateTable
, dynamodb:RestoreTableFromBackup
, (dynamodb:CreateBackup)
dynamodb:CreateTable
, dynamodb:RestoreTableFromBackup
, (dynamodb:CreateBackup)
Met hierdie regte, sou 'n aanvaller in staat wees om 'n nuwe tabel van 'n rugsteun te skep (of selfs 'n rugsteun te skep om dit dan in 'n ander tabel te herstel). Dan, met die nodige regte, sou hy in staat wees om inligting van die rugsteune te ondersoek wat nie meer in die produksie tabel sou wees nie.
Potensiële Impak: Indirekte privilage-escalation deur sensitiewe inligting in die tabel se rugsteun te vind
dynamodb:PutItem
dynamodb:PutItem
Hierdie toestemming laat gebruikers toe om 'n nuwe item by die tabel te voeg of 'n bestaande item met 'n nuwe item te vervang. As 'n item met dieselfde primêre sleutel reeds bestaan, sal die volledige item vervang word met die nuwe item. As die primêre sleutel nie bestaan nie, sal 'n nuwe item met die gespesifiseerde primêre sleutel geskep word.
Potensiële Impak: Uitbuiting van verdere kwetsbaarhede/deurpasse deur in staat te wees om data by 'n DynamoDB-tabel by te voeg/wysig
dynamodb:UpdateItem
dynamodb:UpdateItem
Hierdie toestemming laat gebruikers toe om die bestaande eienskappe van 'n item te wysig of nuwe eienskappe by 'n item by te voeg. Dit vervang nie die hele item nie; dit werk net die gespesifiseerde eienskappe by. As die primêre sleutel nie in die tabel bestaan nie, sal die operasie 'n nuwe item skep met die gespesifiseerde primêre sleutel en die eienskappe wat in die opdateeruitdrukking gespesifiseer is.
Potensiële Impak: Uitbuiting van verdere kwesbaarhede/deurpasse deur in staat te wees om data by 'n DynamoDB-tabel by te voeg/wysig
dynamodb:DeleteTable
dynamodb:DeleteTable
'n Aanvaller met hierdie toestemming kan 'n DynamoDB-tabel verwyder, wat dataverlies veroorsaak.
Potensiële impak: Data verlies en ontwrigting van dienste wat afhanklik is van die verwyderde tabel.
dynamodb:DeleteBackup
dynamodb:DeleteBackup
'n Aanvaller met hierdie toestemming kan 'n DynamoDB-rugsteun verwyder, wat potensieel data verlies kan veroorsaak in geval van 'n rampherstelscenario.
Potensiële impak: Data verlies en onvermoë om tydens 'n rampherstelsituasie van 'n rugsteun te herstel.
dynamodb:StreamSpecification
, dynamodb:UpdateTable
, dynamodb:DescribeStream
, dynamodb:GetShardIterator
, dynamodb:GetRecords
dynamodb:StreamSpecification
, dynamodb:UpdateTable
, dynamodb:DescribeStream
, dynamodb:GetShardIterator
, dynamodb:GetRecords
TODO: Toets of dit werklik werk
'n Aanvaller met hierdie regte kan 'n stroom op 'n DynamoDB-tabel aktiveer, die tabel opdateer om veranderinge te begin stroom, en dan toegang verkry tot die stroom om veranderinge aan die tabel in werklikheid te monitor. Dit stel die aanvaller in staat om data veranderinge te monitor en uit te voer, wat moontlik tot data lekkasies kan lei.
Aktiveer 'n stroom op 'n DynamoDB-tabel:
Beskryf die stroom om die ARN en ander besonderhede te verkry:
Kry die skerf-iterateur deur die stroom ARN te gebruik:
Gebruik die skerf-iterateur om toegang te verkry en data uit die stroom te eksfiltreer:
Potensiële impak: Werklike monitering en datalek van die veranderinge aan die DynamoDB-tabel.
Last updated