AWS - DynamoDB Post Exploitation
Last updated
Last updated
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Daha fazla bilgi için kontrol edin:
AWS - DynamoDB Enumdynamodb:BatchGetItem
Bu izinlere sahip bir saldırgan, birincil anahtar ile tabloların içinden öğeleri alabilecektir (tablonun tüm verilerini isteyemezsiniz). Bu, birincil anahtarları bilmeniz gerektiği anlamına gelir (bunu tablo meta verilerini alarak (describe-table
) öğrenebilirsiniz).
Olası Etki: Tablo içinde hassas bilgilerin bulunmasıyla dolaylı yetki yükseltme
dynamodb:GetItem
Önceki izinlere benzer bu izin, potansiyel bir saldırganın, alınacak girişin birincil anahtarı verildiğinde yalnızca 1 tablodan değerleri okumasına olanak tanır:
Bu izinle transact-get-items
yöntemini şu şekilde kullanmak da mümkündür:
Potansiyel Etki: Tablo içinde hassas bilgilerin bulunmasıyla dolaylı yetki yükseltme
dynamodb:Query
Önceki izinlere benzer bu izin, potansiyel bir saldırganın, alınacak girişin birincil anahtarını vererek yalnızca 1 tablodan değerleri okumasına olanak tanır. Karşılaştırmaların bir alt kümesini kullanmaya izin verir, ancak birincil anahtar ile izin verilen tek karşılaştırma (görünmesi gereken) "EQ" olduğundan, bir istekte tüm veritabanını almak için bir karşılaştırma kullanamazsınız.
Olası Etki: Tablo içinde hassas bilgileri bulma yoluyla dolaylı yetki yükseltme
dynamodb:Scan
Bu izni kullanarak tüm tabloyu kolayca dökebilirsiniz.
Olası Etki: Tablo içinde hassas bilgileri bulma yoluyla dolaylı yetki yükseltme
dynamodb:PartiQLSelect
Bu izni kullanarak tüm tabloyu kolayca dökebilirsiniz.
Bu izin, batch-execute-statement
gibi işlemleri gerçekleştirmeye de olanak tanır:
ama bir değerle birincil anahtarı belirtmeniz gerekiyor, bu yüzden çok faydalı değil.
Olası Etki: Tablo içinde hassas bilgileri bulma yoluyla dolaylı yetki yükseltme
dynamodb:ExportTableToPointInTime|(dynamodb:UpdateContinuousBackups)
Bu izin, bir saldırgana tüm tabloyu seçtiği bir S3 kovasına dışa aktarma izni verecektir:
Not edin ki bunun çalışması için tablonun zamanında geri yükleme özelliği etkin olmalıdır, tablonun bunu yapıp yapmadığını kontrol edebilirsiniz:
Eğer etkin değilse, etkinleştirmeniz gerekecek ve bunun için dynamodb:ExportTableToPointInTime
iznine ihtiyacınız var:
Potansiyel Etki: Tablo içinde hassas bilgilerin bulunmasıyla dolaylı yetki yükseltme
dynamodb:CreateTable
, dynamodb:RestoreTableFromBackup
, (dynamodb:CreateBackup)
Bu izinlerle, bir saldırgan bir yedekten yeni bir tablo oluşturma (veya hatta bir yedek oluşturup bunu farklı bir tabloda geri yükleme) yeteneğine sahip olacaktır. Ardından, gerekli izinlere sahip olduğunda, üretim tablosunda artık bulunmayan bilgileri yedeklerden kontrol edebilecektir.
Olası Etki: Tablo yedeğinde hassas bilgilerin bulunmasıyla dolaylı yetki yükseltme
dynamodb:PutItem
Bu izin, kullanıcıların tabloya yeni bir öğe eklemesine veya mevcut bir öğeyi yeni bir öğe ile değiştirmesine olanak tanır. Aynı birincil anahtara sahip bir öğe zaten varsa, tüm öğe yeni öğe ile değiştirilecektir. Eğer birincil anahtar mevcut değilse, belirtilen birincil anahtara sahip yeni bir öğe oluşturulacaktır.
Olası Etki: DynamoDB tablosunda veri ekleyip/şekillendirebilme yeteneği ile daha fazla zafiyet/atlatma istismarları
dynamodb:UpdateItem
Bu izin, kullanıcıların bir öğenin mevcut niteliklerini değiştirmesine veya bir öğeye yeni nitelikler eklemesine olanak tanır. Bu, tüm öğeyi değiştirmez; yalnızca belirtilen nitelikleri günceller. Eğer birincil anahtar tabloda yoksa, işlem belirtilen birincil anahtara sahip yeni bir öğe oluşturur ve güncelleme ifadesinde belirtilen nitelikleri ayarlar.
Olası Etki: DynamoDB tablosunda veri ekleyip/değiştirerek daha fazla zafiyet/atlatma istismar etme
dynamodb:DeleteTable
Bu izne sahip bir saldırgan bir DynamoDB tablosunu silebilir, bu da veri kaybına neden olur.
Potansiyel etki: Silinen tabloya bağlı hizmetlerde veri kaybı ve kesinti.
dynamodb:DeleteBackup
Bu izne sahip bir saldırgan, bir DynamoDB yedeğini silebilir, bu da bir felaket kurtarma senaryosunda veri kaybına neden olabilir.
Potansiyel etki: Veri kaybı ve bir felaket kurtarma senaryosunda bir yedekten geri yükleme yapamama.
dynamodb:StreamSpecification
, dynamodb:UpdateTable
, dynamodb:DescribeStream
, dynamodb:GetShardIterator
, dynamodb:GetRecords
TODO: Bunun gerçekten çalışıp çalışmadığını test et
Bu izinlere sahip bir saldırgan, bir DynamoDB tablosunda bir akışı etkinleştirebilir, tabloyu güncelleyerek değişiklikleri akıtmaya başlayabilir ve ardından tabloya yapılan değişiklikleri gerçek zamanlı olarak izlemek için akışı erişebilir. Bu, saldırgana veri değişikliklerini izleme ve dışarıya aktarma imkanı tanır, bu da veri sızıntısına yol açabilir.
Bir DynamoDB tablosunda bir akışı etkinleştir:
ARN ve diğer detayları elde etmek için akışı tanımlayın:
Akış ARN'sini kullanarak shard iterator'ı alın:
Akıştan veri erişmek ve dışa aktarmak için shard iterator'ü kullanın:
Potansiyel etki: DynamoDB tablosundaki değişikliklerin gerçek zamanlı izlenmesi ve veri sızıntısı.
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Ekip Uzmanı (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Eğitim GCP Kırmızı Ekip Uzmanı (GRTE)