AWS - GuardDuty Enum

htARTE(HackTricks AWS Red Team Expert)を通じて、ゼロからヒーローまでのAWSハッキングを学びましょう!

HackTricksをサポートする他の方法:

  • HackTricksで企業を宣伝したい場合やHackTricksをPDFでダウンロードしたい場合は、SUBSCRIPTION PLANSをチェックしてください!

  • The PEASS Familyを発見し、独占的なNFTsのコレクションを見つける

  • Discordグループ参加する💬(https://discord.gg/hRep4RUj7f)またはtelegramグループに参加するか、Twitter🐦でフォローする:@hacktricks_live(https://twitter.com/hacktricks_live)。

  • HackTricks(https://github.com/carlospolop/hacktricks)とHackTricks CloudのGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。

GuardDuty

ドキュメントによると、GuardDutyは、機械学習、異常検知、ネットワーク監視、および悪意のあるファイルの発見を組み合わせ、AWSおよび業界をリードするサードパーティソースを使用して、AWS上のワークロードとデータを保護するのに役立ちます。 GuardDutyは、AWS CloudTrailイベントログ、Amazon Virtual Private Cloud(VPC)Flow Logs、Amazon Elastic Kubernetes Service(EKS)監査およびシステムレベルログ、およびDNSクエリログなど、複数のAWSデータソース全体で数十億のイベントを分析できます。

Amazon GuardDutyは、アカウント内での異常なアクティビティを特定し、そのアクティビティのセキュリティの関連性を分析し、それが呼び出されたコンテキストを提供します。これにより、対応者はさらなる調査に時間を費やす必要があるかどうかを判断できます。

アラートは、GuardDutyコンソール(90日間)およびCloudWatch Eventsに表示されます。

ユーザーがGuardDutyを無効にすると、AWS環境の監視が停止され、新しい調査結果は生成されません。また、既存の調査結果が失われます。 単に停止するだけの場合は、既存の調査結果は残ります。

調査結果の例

  • 偵察: 攻撃者による偵察を示唆するアクティビティ、例えば異常なAPIアクティビティ、疑わしいデータベースのログイン試行、VPC内部のポートスキャン、異常な失敗したログインリクエストパターン、既知の悪意のあるIPからの未処理のポートプロービングなど。

  • インスタンスの侵害: インスタンスの侵害を示すアクティビティ、例えば暗号通貨の採掘、バックドアのコマンド制御(C&C)アクティビティ、ドメイン生成アルゴリズム(DGA)を使用したマルウェア、外部からのサービス拒否アクティビティ、異常に高いネットワークトラフィック量、異常なネットワークプロトコル、既知の悪意のあるIPとのアウトバウンドインスタンス通信、一時的なAmazon EC2資格情報を使用した外部IPアドレス、およびDNSを使用したデータの外部への持ち出し。

  • アカウントの侵害: アカウントの侵害を示す一般的なパターンには、異常な地理的位置情報や匿名プロキシからのAPI呼び出し、AWS CloudTrailログの無効化を試みる、アカウントパスワードポリシーを弱体化する変更、異常なインスタンスまたはインフラストラクチャの起動、異常な地域でのインフラストラクチャ展開、資格情報の盗難、疑わしいデータベースログインアクティビティ、既知の悪意のあるIPアドレスからのAPI呼び出しなどが含まれます。

  • バケットの侵害: バケットの侵害を示すアクティビティ、例えば資格情報の誤用を示す疑わしいデータアクセスパターン、リモートホストからの異常なAmazon S3 APIアクティビティ、既知の悪意のあるIPアドレスからの不正なS3アクセス、バケットへのデータの取得を目的としたAPI呼び出し(バケットへのアクセス履歴がないユーザーからのものまたは異常な場所から呼び出されたもの)などが含まれます。 Amazon GuardDutyは、すべてのAmazon S3バケットで疑わしいアクティビティを検出するためにAWS CloudTrail S3データイベント(例:GetObject、ListObjects、DeleteObject)を継続的に監視および分析します。

調査情報

調査概要:

  • 調査タイプ

  • 重要度:7-8.9 高、4-6.9 中、01-3.9 低

  • リージョン

  • アカウントID

  • リソースID

  • 検出時刻

  • 使用された脅威リスト

本文には次の情報が含まれています:

  • 影響を受けるリソース

  • アクション

  • アクター:IPアドレス、ポート、ドメイン

  • 追加情報

すべての調査結果

GuardDutyのすべての調査結果のリストにアクセス:https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html

複数のアカウント

招待による

他のアカウントを異なるAWS GuardDutyアカウントに招待して、すべてのアカウントが同じGuardDutyから監視されるようにすることができます。マスターアカウントはメンバーアカウントを招待し、その後、メンバーアカウントの代表者が招待を受け入れる必要があります。

組織を通じて

組織内の任意のアカウントをGuardDuty委任管理者に指定できます。委任管理者を指定できるのは組織管理アカウントだけです。

委任管理者として指定されたアカウントは、GuardDuty管理者アカウントとなり、指定されたAWSリージョンでGuardDutyが自動的に有効になり、そのリージョン内の組織内のすべてのアカウントのGuardDutyを有効にしたり管理する権限を持ちます。組織内の他のアカウントは、この委任管理者アカウントに関連付けられたGuardDutyメンバーアカウントとして表示および追加できます。

列挙

# Get Org config
aws guardduty list-organization-admin-accounts #Get Delegated Administrator
aws guardduty describe-organization-configuration --detector-id <id>

# Check external invitations
aws guardduty list-invitations
aws guardduty get-invitations-count

# Detector Information
aws guardduty list-detectors # 1 detector per account with GuardDuty
aws guardduty get-detector --detector-id <id> # Get detector info
aws guardduty get-master-account --detector-id <id>

# Get filters
aws guardduty list-filters --detector-id <id> # Check filters
aws guardduty get-filter --detector-id <id> --filter-name <name>

# Findings
aws guardduty list-findings --detector-id <id> # List findings
aws guardduty get-findings --detector-id <id> --finding-ids <id> # Get details about the finding
aws guardduty get-findings-statistics --detector-id <id> --finding-statistic-types <types>

# Get trusted IP addresses
aws guardduty list-ip-sets --detector-id <id>
aws guardduty get-ip-set --detector-id <id>

# Member accounts of the current AWS GuardDuty master account
aws guardduty list-members --detector-id <id>
aws guardduty get-members --detector-id <id> --account-ids <id>
aws guardduty get-member-detectors --detector-id <id> --account-ids <id>

# Continuously export its findings to an Amazon S3 bucket
aws guardduty list-publishing-destinations --detector-id <id>

# Intelligence sets that you have uploaded to GuardDuty
aws guardduty list-threat-intel-sets --detector-id <id>
aws guardduty get-threat-intel-set --detector-id <id> --threat-intel-set-id <id>

GuardDuty バイパス

一般的なガイダンス

使用する資格情報の動作について可能な限り多くの情報を収集しよう:

  • 使用される時間帯

  • 場所

  • ユーザーエージェント / サービス(awscli、webconsole、lambdaなどから使用される可能性があります)

  • 定期的に使用される権限

この情報を元に、アクセスを利用するためにできるだけ同じシナリオを再現しよう:

  • ユーザーまたはユーザーによってアクセスされるロールの場合、同じ時間帯に、同じ地理的位置から使用しよう(可能であれば同じISPおよびIPから)

  • サービスによって使用されるロールの場合、同じリージョンで同じサービスを作成し、同じ時間帯にそこから使用しよう

  • 常にこの主体が使用した同じ権限を使用しよう

  • 他の権限を使用する必要がある場合や権限を悪用する場合(たとえば、1,000,000のcloudtrailログファイルをダウンロードする)は、ゆっくりかつAWSとの最小限のやり取りで行おう(awscliは書き込みAPIの前に複数の読み取りAPIを呼び出すことがある)

GuardDuty の回避

guardduty:UpdateDetector

この権限を使用すると、アラートをトリガーさせるのを避けるためにGuardDutyを無効にすることができます。

aws guardduty update-detector --detector-id <detector-id> --no-enable
aws guardduty update-detector --detector-id <detector-id> --data-sources S3Logs={Enable=false}

guardduty:CreateFilter

この権限を持つ攻撃者は、調査結果の自動アーカイブ用のフィルターを適用する能力を持っています:

aws guardduty create-filter  --detector-id <detector-id> --name <filter-name> --finding-criteria file:///tmp/criteria.json --action ARCHIVE

guardduty:DeletePublishingDestination

攻撃者は、アラートを防ぐために宛先を削除する可能性があります:

aws guardduty delete-publishing-destination --detector-id <detector-id> --destination-id <dest-id>

この公開先を削除しても、GuardDutyコンソール内の調査結果の生成や表示に影響はありません。GuardDutyは引き続きAWS環境でイベントを分析し、疑わしい行動や予期しない動作を特定し、調査結果を生成します。

特定の調査結果の回避例

GuardDutyには数十の調査結果がありますが、Red Teamerとしてはすべてが影響を受けるわけではありません。さらに、それぞれの詳細なドキュメントがありますので、https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html を参照して、何らかのアクションを実行する前に確認してください。

以下に、特定のGuardDuty調査結果の回避例をいくつか示します:

GuardDutyは一般的な侵入テストツールからのAWS APIリクエストを検出し、PenTest Finding をトリガーします。 APIリクエストで渡されるユーザーエージェント名によって検出されます。 したがって、攻撃を検出されないようにするには、ユーザーエージェントを変更することが可能です。

これを防ぐためには、botocoreパッケージ内のsession.pyスクリプトを検索してユーザーエージェントを変更したり、AWS CLIプロキシとしてBurp Suiteを設定してユーザーエージェントをMitMで変更したり、Ubuntu、Mac、WindowsなどのOSを使用してこのアラートがトリガーされないようにすることができます。

UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration

メタデータサービスからEC2資格情報を抽出し、AWS環境外でそれらを利用すると、UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.OutsideAWS アラートが発生します。逆に、EC2インスタンスからこれらの資格情報を利用すると、UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.InsideAWS アラートがトリガーされます。しかし、同じアカウント内の別の侵害されたEC2インスタンスで資格情報を使用すると検出されず、アラートが発生しません

したがって、見つけたマシン内から抽出された資格情報を使用してアラートをトリガーしないようにしてください。

参考文献

htARTE(HackTricks AWS Red Team Expert) でAWSハッキングをゼロからヒーローまで学びましょう

HackTricksをサポートする他の方法:

最終更新