AWS - Kinesis Data Firehose Enum

htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hackleme öğrenin!

HackTricks'i desteklemenin diğer yolları:

Kinesis Data Firehose

Amazon Kinesis Data Firehose, gerçek zamanlı akış verilerinin teslimini kolaylaştıran tamamen yönetilen bir hizmettir. Amazon Simple Storage Service (Amazon S3), Amazon Redshift, Amazon OpenSearch Service, Splunk ve özel HTTP uç noktaları dahil olmak üzere çeşitli hedefleri destekler.

Bu hizmet, veri üreticilerinin verileri doğrudan Kinesis Data Firehose'a iletmek için yapılandırılabilmelerine olanak sağlayarak, uygulama yazma veya kaynak yönetimi gibi ihtiyaçları ortadan kaldırır. Bu hizmet, verilerin belirtilen hedefe otomatik olarak teslim edilmesinden sorumludur. Ayrıca, Kinesis Data Firehose, verinin tesliminden önce veriyi dönüştürme seçeneği sunarak, esnekliğini ve çeşitli kullanım durumlarına uygulanabilirliğini artırır.

Enumerasyon

# Get delivery streams
aws firehose list-delivery-streams

# Get stream info
aws firehose describe-delivery-stream --delivery-stream-name <name>
## Get roles
aws firehose describe-delivery-stream --delivery-stream-name <name> | grep -i RoleARN

Son işlem / Savunma Atlama

Firehose, günlükleri veya savunma bilgilerini göndermek için kullanıldığında, bir saldırgan bu işlevleri kullanarak onun düzgün çalışmasını engelleyebilir.

firehose:DeleteDeliveryStream

aws firehose delete-delivery-stream --delivery-stream-name <value> --allow-force-delete

firehose:UpdateDestination

Bu işlem, bir Kinesis Data Firehose hedefinin yapılandırmasını güncellemek için kullanılır. Bu API çağrısı, hedefin güncellenmesi için gerekli olan parametreleri alır ve hedefin yapılandırmasını değiştirir.

İstek Parametreleri

  • DeliveryStreamName: Güncellenmek istenen Kinesis Data Firehose hedefinin adı.

  • CurrentDeliveryStreamVersionId: Güncelleme işlemi sırasında hedefin mevcut sürümünü belirtir.

  • DestinationId: Güncellenmek istenen hedefin kimliği.

  • S3DestinationUpdate: Hedefin S3 yapılandırmasını güncellemek için kullanılır.

  • ExtendedS3DestinationUpdate: Hedefin genişletilmiş S3 yapılandırmasını güncellemek için kullanılır.

  • RedshiftDestinationUpdate: Hedefin Redshift yapılandırmasını güncellemek için kullanılır.

  • ElasticsearchDestinationUpdate: Hedefin Elasticsearch yapılandırmasını güncellemek için kullanılır.

  • SplunkDestinationUpdate: Hedefin Splunk yapılandırmasını güncellemek için kullanılır.

Yanıt Parametreleri

  • DeliveryStreamARN: Güncellenen Kinesis Data Firehose hedefinin Amazon Resource Name (ARN) değeri.

  • UpdateTimestamp: Güncelleme işleminin tamamlanma zamanı.

Örnek İstek

POST / HTTP/1.1
Host: firehose.<region>.amazonaws.com
Content-Type: application/x-amz-json-1.1
X-Amz-Target: Firehose_20150804.UpdateDestination
Content-Length: <PayloadSizeBytes>
Authorization: <AuthParams>

{
  "DeliveryStreamName": "example-stream",
  "CurrentDeliveryStreamVersionId": "1",
  "DestinationId": "destination-id",
  "S3DestinationUpdate": {
    "RoleARN": "arn:aws:iam::123456789012:role/firehose_delivery_role",
    "BucketARN": "arn:aws:s3:::example-bucket",
    "Prefix": "example-prefix",
    "BufferingHints": {
      "SizeInMBs": 128,
      "IntervalInSeconds": 300
    },
    "CompressionFormat": "UNCOMPRESSED",
    "EncryptionConfiguration": {
      "NoEncryptionConfig": "NoEncryption"
    }
  }
}

Örnek Yanıt

HTTP/1.1 200 OK
x-amzn-RequestId: <RequestId>
Content-Type: application/x-amz-json-1.1
Content-Length: <PayloadSizeBytes>
Date: <Date>

{
  "DeliveryStreamARN": "arn:aws:firehose:us-west-2:123456789012:deliverystream/example-stream",
  "UpdateTimestamp": "2022-01-01T00:00:00.000Z"
}
aws firehose update-destination --delivery-stream-name <value> --current-delivery-stream-version-id <value> --destination-id <value>

firehose:PutRecord | firehose:PutRecordBatch

Bu iki AWS Kinesis Data Firehose API çağrısı, verileri Kinesis Data Firehose akışına göndermek için kullanılır. firehose:PutRecord tek bir kaydı gönderirken, firehose:PutRecordBatch birden fazla kaydı toplu olarak gönderir.

firehose:PutRecord

Bu API çağrısıyla, belirli bir Kinesis Data Firehose akışına tek bir kayıt gönderebilirsiniz. Kayıt, bir veri kaynağından (örneğin, bir uygulama veya sensör) alınan veriyi temsil eder. Bu çağrı, kaydın boyutunu ve akışa gönderilme hızını kontrol etmek için kullanılan parametreleri kabul eder.

firehose:PutRecordBatch

Bu API çağrısıyla, birden fazla kaydı toplu olarak bir Kinesis Data Firehose akışına gönderebilirsiniz. Her bir kayıt, bir veri kaynağından alınan veriyi temsil eder. firehose:PutRecord çağrısına benzer şekilde, bu çağrı da kayıtların boyutunu ve akışa gönderilme hızını kontrol etmek için parametreleri kabul eder.

Bu API çağrılarının yetkilendirme kontrollerini dikkatlice yapılandırmak önemlidir, çünkü kötü niyetli bir saldırganın veri akışına izinsiz erişim sağlamasını önlemek için gerekli önlemleri almanız gerekir.

aws firehose put-record --delivery-stream-name my-stream --record '{"Data":"SGVsbG8gd29ybGQ="}'

aws firehose put-record-batch --delivery-stream-name my-stream --records file://records.json

Referanslar

htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile sıfırdan kahraman olmak için AWS hackleme öğrenin !

HackTricks'i desteklemenin diğer yolları:

Last updated