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)
Kwa maelezo zaidi angalia:
dynamodb:BatchGetItem
Mshambuliaji mwenye ruhusa hii ataweza kupata vitu kutoka kwenye meza kwa ufunguo wa msingi (huwezi tu kuomba data zote za meza). Hii inamaanisha unahitaji kujua funguo za msingi (unaweza kupata hii kwa kupata metadata ya meza (describe-table
).
Madhara Yanayoweza Kutokea: Privesc isiyo ya moja kwa moja kwa kutafuta taarifa nyeti katika jedwali
dynamodb:GetItem
Kama ruhusa za awali hii inaruhusu mshambuliaji mwenye uwezo kusoma thamani kutoka jedwali moja tu kwa kutolewa funguo kuu ya kuingia ili kupata:
Kwa ruhusa hii pia inawezekana kutumia njia ya transact-get-items
kama:
Madhara Yanayoweza Kutokea: Privesc isiyo ya moja kwa moja kwa kutafuta taarifa nyeti katika jedwali
dynamodb:Query
Kama ruhusa za awali hii inaruhusu mshambuliaji mwenye uwezo kusoma thamani kutoka jedwali 1 tu kwa kutolewa kwa ufunguo wa msingi wa kipengee cha kupata. Inaruhusu kutumia seti ndogo ya kulinganisha, lakini kulinganisha pekee linaloruhusiwa na ufunguo wa msingi (ambalo lazima lionekane) ni "EQ", hivyo huwezi kutumia kulinganisha kupata DB nzima katika ombi.
Madhara Yanayoweza Kutokea: Privesc isiyo ya moja kwa moja kwa kutafuta taarifa nyeti katika jedwali
dynamodb:Scan
Unaweza kutumia ruhusa hii kutoa jedwali zima kwa urahisi.
Madhara Yanayoweza Kutokea: Privesc isiyo ya moja kwa moja kwa kutafuta taarifa nyeti katika jedwali
dynamodb:PartiQLSelect
Unaweza kutumia ruhusa hii kutoa jedwali zima kwa urahisi.
Hii ruhusa pia inaruhusu kutekeleza batch-execute-statement
kama:
lakini unahitaji kubainisha ufunguo wa msingi wenye thamani, hivyo siyo faida sana.
Madhara Yanayoweza Kutokea: Privesc isiyo ya moja kwa moja kwa kutafuta taarifa nyeti katika jedwali
dynamodb:ExportTableToPointInTime|(dynamodb:UpdateContinuousBackups)
Ruhusa hii itamruhusu mshambuliaji kutoa jedwali lote kwenye kikasha cha S3 cha uchaguzi wake:
Kumbuka kwamba ili hii ifanye kazi, jedwali linahitaji kuwa na point-in-time-recovery imewezeshwa, unaweza kuangalia kama jedwali lina hiyo kwa:
Ikiwa haijawashwa, utahitaji kuwasha na kwa hiyo unahitaji ruhusa ya dynamodb:ExportTableToPointInTime
:
Madhara Yanayoweza Kutokea: Privesc isiyo ya moja kwa moja kwa kutafuta taarifa nyeti katika jedwali
dynamodb:CreateTable
, dynamodb:RestoreTableFromBackup
, (dynamodb:CreateBackup)
Kwa ruhusa hizi, mshambuliaji angeweza kuunda jedwali jipya kutoka kwa nakala ya akiba (au hata kuunda akiba ili kisha aifufue katika jedwali tofauti). Kisha, kwa ruhusa zinazohitajika, angeweza kuangalia taarifa kutoka kwa akiba ambazo zingekuwa hazipo tena katika uzalishaji jedwali.
Madhara Yanayoweza Kutokea: Privesc isiyo ya moja kwa moja kwa kutafuta taarifa nyeti katika nakala ya meza
dynamodb:PutItem
Ruhusa hii inawawezesha watumiaji kuongeza kitu kipya kwenye meza au kubadilisha kitu kilichopo na kitu kipya. Ikiwa kitu chenye ufunguo wa msingi sawa tayari kipo, kitu chote kitabadilishwa na kitu kipya. Ikiwa ufunguo wa msingi haupo, kitu kipya chenye ufunguo wa msingi ulioainishwa kitaundwa mpya.
Madhara Yanayoweza Kutokea: Kutumiwa kwa udhaifu zaidi/kuvunjwa kwa usalama kwa kuwa na uwezo wa kuongeza/kubadilisha data katika jedwali la DynamoDB
dynamodb:UpdateItem
Ruhusa hii inaruhusu watumiaji kubadilisha sifa zilizopo za kipengee au kuongeza sifa mpya kwa kipengee. Haifanyi mabadiliko ya kipengee chote; inasasisha tu sifa zilizotajwa. Ikiwa funguo kuu hazipo katika jedwali, operesheni hiyo itafanya kipengee kipya na funguo kuu iliyotajwa na kuweka sifa zilizotajwa katika muktadha wa sasisho.
Madhara Yanayoweza Kutokea: Kutumiwa kwa udhaifu/kuvunjwa zaidi kwa kuwa na uwezo wa kuongeza/kubadilisha data katika jedwali la DynamoDB
dynamodb:DeleteTable
Mshambuliaji mwenye ruhusa hii anaweza kufuta jedwali la DynamoDB, na kusababisha kupotea kwa data.
Madhara yanayoweza kutokea: Kupoteza data na kuingiliwa kwa huduma zinazotegemea meza iliyofutwa.
dynamodb:DeleteBackup
Mshambuliaji mwenye ruhusa hii anaweza kufuta nakala ya akiba ya DynamoDB, ambayo inaweza kusababisha kupoteza data katika hali ya kuokoa dharura.
Madhara yanayoweza kutokea: Kupoteza data na kutoweza kurejesha kutoka kwa nakala ya akiba wakati wa hali ya dharura ya urejeleaji.
dynamodb:StreamSpecification
, dynamodb:UpdateTable
, dynamodb:DescribeStream
, dynamodb:GetShardIterator
, dynamodb:GetRecords
TODO: Jaribu kama hii inafanya kazi
Mshambuliaji mwenye ruhusa hizi anaweza kuwezesha mtiririko kwenye meza ya DynamoDB, kusasisha meza ili kuanza kutiririsha mabadiliko, na kisha kufikia mtiririko ili kufuatilia mabadiliko kwenye meza kwa wakati halisi. Hii inamruhusu mshambuliaji kufuatilia na kuhamasisha mabadiliko ya data, ambayo yanaweza kusababisha uvujaji wa data.
Wezesha mtiririko kwenye meza ya DynamoDB:
Eleza mchakato wa kupata ARN na maelezo mengine:
Pata iterator ya shard ukitumia ARN ya mtiririko:
Tumia iterator ya shard kufikia na kutoa data kutoka kwa mtiririko:
Madhara yanayoweza kutokea: Ufuatiliaji wa wakati halisi na uvujaji wa data za mabadiliko ya meza ya DynamoDB.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)