AWS - EC2, EBS, ELB, SSM, VPC & VPN Enum
Last updated
Last updated
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
VPCとは何か、その構成要素について学ぶ:
AWS - VPC & Networking Basic InformationAmazon EC2は仮想サーバーを起動するために利用されます。セキュリティやネットワーキングの設定、ストレージの管理が可能です。Amazon EC2の柔軟性は、リソースを上方および下方にスケールさせる能力に明らかであり、要求の変化や人気の急増に効果的に適応します。この機能により、正確なトラフィック予測の必要性が減少します。
EC2で列挙するのに興味深い項目:
仮想マシン
SSHキー
ユーザーデータ
既存のEC2/AMI/スナップショット
ネットワーキング
ネットワーク
サブネットワーク
パブリックIP
開いているポート
AWS外の他のネットワークとの統合接続
EC2インスタンス上で実行されるアプリケーションに権限を付与するためにロールを使用するには、少し追加の設定が必要です。EC2インスタンス上で実行されるアプリケーションは、仮想化されたオペレーティングシステムによってAWSから抽象化されています。この追加の分離のため、EC2インスタンスにAWSロールとその関連する権限を割り当て、それをアプリケーションで利用可能にするための追加のステップが必要です。
この追加のステップは、インスタンスに添付されたインスタンスプロファイルの作成です。インスタンスプロファイルにはロールが含まれ、インスタンス上で実行されるアプリケーションにロールの一時的な資格情報を提供できます。これらの一時的な資格情報は、アプリケーションのAPI呼び出しでリソースにアクセスし、ロールが指定するリソースのみにアクセスを制限するために使用できます。EC2インスタンスには同時に1つのロールしか割り当てられず、インスタンス上のすべてのアプリケーションは同じロールと権限を共有します。
AWS EC2メタデータは、Amazon Elastic Compute Cloud (EC2)インスタンスにランタイムで利用可能な情報です。このメタデータは、インスタンスのID、実行中のアベイラビリティゾーン、インスタンスに関連付けられたIAMロール、インスタンスのホスト名など、インスタンスに関する情報を提供するために使用されます。
次のページでは、EC2の権限を悪用して特権を昇格させる方法を確認できます:
AWS - EC2 PrivescAmazon EBS (Elastic Block Store) スナップショットは基本的にAWS EBSボリュームの静的なバックアップです。言い換えれば、特定の時点でEC2インスタンスに接続されているディスクのコピーです。EBSスナップショットは、リージョンやアカウントを越えてコピーしたり、ローカルにダウンロードして実行したりできます。
スナップショットには、ソースコードやAPIキーなどの機密情報が含まれている可能性があるため、機会があれば確認することをお勧めします。
AMIはEC2インスタンスを起動するために使用され、EC2 スナップショットはEBSボリュームに保存されたデータをバックアップおよび復元するために使用されます。EC2スナップショットは新しいAMIを作成するために使用できますが、AMIとは異なり、アプリケーションを実行するために必要なオペレーティングシステム、アプリケーションサーバー、またはその他のソフトウェアに関する情報は含まれていません。
次のページでは、EBSの権限を悪用して特権を昇格させる方法を確認できます:
AWS - EBS Privesc**Amazon Simple Systems Manager (SSM)**は、EC2インスタンスのフロートをリモートで管理し、その管理をはるかに簡単にします。これらのインスタンスの各々は、SSMエージェントサービスを実行している必要があり、サービスがAWS APIからアクションを取得して実行します。
SSMエージェントは、システムマネージャーがこれらのリソースを更新、管理、構成することを可能にします。エージェントは、AWSクラウド内のシステムマネージャーサービスからのリクエストを処理し、リクエストに指定された通りに実行します。
SSMエージェントは一部のAMIにプリインストールされていますが、インスタンスに手動でインストールする必要があります。また、インスタンス内で使用されるIAMロールには、通信を行うためにAmazonEC2RoleforSSMポリシーがアタッチされている必要があります。
EC2インスタンスでSystems Managerが実行されているかどうかを確認するには、次のコマンドを実行するだけです:
次のページでは、SSMの権限を悪用して特権を昇格させる方法を確認できます:
AWS - SSM PrivescElastic Load Balancing (ELB) は、Amazon Web Services (AWS) デプロイメントのための負荷分散サービスです。ELBは自動的に受信アプリケーショントラフィックを分散し、トラフィックの需要に応じてリソースをスケールします。
AWS Nitroは、AWS EC2インスタンスの基盤となる革新的な技術のスイートです。Amazonによってセキュリティ、パフォーマンス、信頼性を向上させるために導入され、Nitroはカスタムハードウェアコンポーネントと軽量ハイパーバイザーを活用しています。従来の仮想化機能の多くを専用のハードウェアとソフトウェアに抽象化し、攻撃面を最小限に抑え、リソース効率を向上させます。仮想化機能をオフロードすることで、NitroはEC2インスタンスにほぼベアメタルのパフォーマンスを提供し、リソース集約型アプリケーションに特に有益です。さらに、Nitroセキュリティチップはハードウェアとファームウェアのセキュリティを特に確保し、その堅牢なアーキテクチャをさらに強化します。
詳細情報と列挙方法については、以下を参照してください:
AWS - Nitro EnumVPNは、オンプレミスネットワーク(サイト間VPN)または作業者のラップトップ(クライアントVPN)をAWS VPCに接続し、サービスをインターネットに公開することなくアクセスできるようにします。
カスタマーゲートウェイ:
カスタマーゲートウェイは、VPN接続のあなたの側を表すためにAWSで作成するリソースです。
これは、サイト間VPN接続のあなたの側にある物理デバイスまたはソフトウェアアプリケーションです。
あなたのネットワークデバイス(ルーターやファイアウォールなど)のルーティング情報とパブリックIPアドレスをAWSに提供してカスタマーゲートウェイを作成します。
VPN接続を設定するための参照ポイントとして機能し、追加料金は発生しません。
仮想プライベートゲートウェイ:
仮想プライベートゲートウェイ(VPG)は、サイト間VPN接続のAmazon側のVPN集中装置です。
あなたのVPCに接続され、VPN接続のターゲットとして機能します。
VPGはVPN接続のAWS側エンドポイントです。
あなたのVPCとオンプレミスネットワーク間の安全な通信を処理します。
サイト間VPN接続:
サイト間VPN接続は、オンプレミスネットワークを安全なIPsec VPNトンネルを介してVPCに接続します。
このタイプの接続にはカスタマーゲートウェイと仮想プライベートゲートウェイが必要です。
データセンターやネットワークとAWS環境間の安全で安定した一貫した通信に使用されます。
通常、定期的で長期的な接続に使用され、接続を介して転送されたデータ量に基づいて請求されます。
クライアントVPNエンドポイント:
クライアントVPNエンドポイントは、クライアントVPNセッションを有効にし管理するためにAWSで作成するリソースです。
個々のデバイス(ラップトップ、スマートフォンなど)がAWSリソースまたはオンプレミスネットワークに安全に接続できるようにするために使用されます。
サイト間VPNとは異なり、全体のネットワークを接続するのではなく、個々のクライアント向けに設計されています。
クライアントVPNでは、各クライアントデバイスがVPNクライアントソフトウェアを使用して安全な接続を確立します。
AWS VPNの利点とコンポーネントについての詳細情報はこちら。
ローカル一時資格情報
AWS VPN Clientを使用してVPNに接続する際、ユーザーは通常AWSにログインしてVPNにアクセスします。その後、VPN接続を確立するためにAWS資格情報が作成され、ローカルに保存されます。これらの資格情報は**$HOME/.config/AWSVPNClient/TemporaryCredentials//temporary-credentials.txtに保存され、AccessKey、SecretKey、およびToken**が含まれています。
資格情報はユーザーarn:aws:sts::<acc-id>:assumed-role/aws-vpn-client-metrics-analytics-access-role/CognitoIdentityCredentials
に属します(TODO: この資格情報の権限についてさらに調査する)。
opvn設定ファイル
VPN接続が確立された場合、システム内で**.opvn
設定ファイルを検索する必要があります。さらに、$HOME/.config/AWSVPNClient/OpenVpnConfigsに設定**が見つかる場所の一つです。
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)