AWS - DynamoDB Post Exploitation
Last updated
Last updated
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Kwa maelezo zaidi angalia:
AWS - DynamoDB Enumdynamodb:BatchGetItem
Mshambuliaji mwenye ruhusa hii ataweza kupata vitu kutoka kwa meza kwa funguo za msingi (huwezi tu kuomba data zote za meza). Hii inamaanisha kuwa 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 sehemu ya kulinganisha, lakini kulinganisha pekee inayoruhusiwa na ufunguo wa msingi (ambayo lazima ionekane) 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: Kuongeza haki zisizo za 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 na thamani, hivyo siyo yenye manufaa 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 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 jedwali
dynamodb:PutItem
Ruhusa hii inawawezesha watumiaji kuongeza kitu kipya kwenye jedwali 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: Ukatili wa udhaifu zaidi/kuvunjwa kwa sheria kwa kuwa na uwezo wa kuongeza/kubadilisha data katika jedwali la DynamoDB
dynamodb:UpdateItem
Ruhusa hii inawaruhusu watumiaji kubadilisha sifa zilizopo za kipengee au kuongeza sifa mpya kwa kipengee. Haifanyi mabadiliko ya kipengee chote; inasasisha tu sifa zilizotajwa. Ikiwa funguo kuu haipo 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 kupoteza 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 kurejesha baada ya janga.
Madhara yanayoweza kutokea: Kupoteza data na kutoweza kurejesha kutoka kwa nakala ya akiba wakati wa hali ya kuokoa janga.
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)