mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-06-12 19:11:44 -07:00
Translated ['', 'src/pentesting-cloud/aws-security/aws-services/aws-ec2-
This commit is contained in:
+71
-68
@@ -2,9 +2,9 @@
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
## VPC & Networking
|
||||
## VPC & ネットワーキング
|
||||
|
||||
VPCとは何か、その構成要素について学ぶには:
|
||||
Learn what a VPC is and about its components in:
|
||||
|
||||
{{#ref}}
|
||||
aws-vpc-and-networking-basic-information.md
|
||||
@@ -12,36 +12,36 @@ aws-vpc-and-networking-basic-information.md
|
||||
|
||||
## EC2
|
||||
|
||||
Amazon EC2は**仮想サーバー**を起動するために利用されます。**セキュリティ**や**ネットワーキング**の設定、**ストレージ**の管理が可能です。Amazon EC2の柔軟性は、リソースを上方および下方にスケールさせる能力に明らかであり、要求の変化や人気の急増に効果的に適応します。この機能により、正確なトラフィック予測の必要性が減少します。
|
||||
Amazon EC2 is utilized for initiating **virtual servers**. It allows for the configuration of **security** and **networking** and the management of **storage**. The flexibility of Amazon EC2 is evident in its ability to scale resources both upwards and downwards, effectively adapting to varying requirement changes or surges in popularity. This feature diminishes the necessity for precise traffic predictions.
|
||||
|
||||
EC2で列挙するのに興味深い項目:
|
||||
Interesting things to enumerate in EC2:
|
||||
|
||||
- 仮想マシン
|
||||
- SSHキー
|
||||
- ユーザーデータ
|
||||
- 既存のEC2/AMI/スナップショット
|
||||
- 既存の EC2/AMIs/Snapshots
|
||||
- ネットワーキング
|
||||
- ネットワーク
|
||||
- サブネットワーク
|
||||
- サブネット
|
||||
- パブリックIP
|
||||
- 開いているポート
|
||||
- AWS外の他のネットワークとの統合接続
|
||||
- AWS外のネットワークとの接続
|
||||
|
||||
### インスタンスプロファイル
|
||||
### Instance Profiles
|
||||
|
||||
**EC2インスタンス**上で実行されるアプリケーションに権限を付与するために**ロール**を使用するには、少し追加の設定が必要です。EC2インスタンス上で実行されるアプリケーションは、仮想化されたオペレーティングシステムによってAWSから抽象化されています。この追加の分離のため、AWSロールとその関連する権限をEC2インスタンスに割り当て、それをアプリケーションで利用可能にするための追加のステップが必要です。
|
||||
EC2インスタンス上で実行されるアプリケーションに権限を付与するために**ロール**を使用するには、少し追加の設定が必要です。EC2インスタンス上で動作するアプリケーションは、仮想化されたオペレーティングシステムによってAWSから抽象化されています。この追加の分離のため、AWSロールとその関連する権限をEC2インスタンスに割り当て、アプリケーションが利用できるようにするために追加の手順が必要です。
|
||||
|
||||
この追加のステップは、インスタンスに添付された[_**インスタンスプロファイル**_](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html)の**作成**です。**インスタンスプロファイルにはロールが含まれ**、インスタンス上で実行されるアプリケーションにロールの一時的な資格情報を提供できます。これらの一時的な資格情報は、アプリケーションのAPI呼び出しでリソースにアクセスし、ロールが指定するリソースのみにアクセスを制限するために使用できます。**EC2インスタンスには同時に1つのロールしか割り当てられず**、インスタンス上のすべてのアプリケーションは同じロールと権限を共有します。
|
||||
この追加手順は、インスタンスにアタッチされた[_**instance profile**_](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html)の作成です。**インスタンスプロファイルはロールを含み**、そのロールの一時的な認証情報をインスタンス上で実行されるアプリケーションに提供できます。それらの一時認証情報はアプリケーションのAPIコールでリソースにアクセスするために使用でき、ロールが指定するリソースのみにアクセスを限定することができます。**1つのEC2インスタンスに割り当てられるロールは同時に1つだけ**であり、インスタンス上のすべてのアプリケーションは同じロールと権限を共有する点に注意してください。
|
||||
|
||||
### メタデータエンドポイント
|
||||
### Metadata Endpoint
|
||||
|
||||
AWS EC2メタデータは、Amazon Elastic Compute Cloud (EC2)インスタンスに関する情報で、インスタンスが実行時に利用可能です。このメタデータは、インスタンスID、実行中のアベイラビリティゾーン、インスタンスに関連付けられたIAMロール、インスタンスのホスト名など、インスタンスに関する情報を提供するために使用されます。
|
||||
AWS EC2 metadataは、ランタイム時にインスタンスから利用可能なAmazon Elastic Compute Cloud (EC2) インスタンスに関する情報です。このメタデータは、インスタンスID、稼働しているアベイラビリティゾーン、インスタンスに関連付けられたIAMロール、インスタンスのホスト名など、インスタンスに関する情報を提供するために使用されます。
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html
|
||||
{{#endref}}
|
||||
|
||||
### 列挙
|
||||
### Enumeration
|
||||
```bash
|
||||
# Get EC2 instances
|
||||
aws ec2 describe-instances
|
||||
@@ -81,6 +81,9 @@ aws ec2 describe-addresses
|
||||
# Get current output
|
||||
aws ec2 get-console-output --instance-id [id]
|
||||
|
||||
# Get a JPG-format screenshot of a running instance
|
||||
aws ec2 get-console-screenshot --instance [id]
|
||||
|
||||
# Get VPN customer gateways
|
||||
aws ec2 describe-customer-gateways
|
||||
aws ec2 describe-vpn-gateways
|
||||
@@ -127,21 +130,21 @@ aws ec2 describe-route-tables
|
||||
aws ec2 describe-vpcs
|
||||
aws ec2 describe-vpc-peering-connections
|
||||
```
|
||||
### 認証されていないアクセス
|
||||
### Unauthenticated Access
|
||||
|
||||
{{#ref}}
|
||||
../../aws-unauthenticated-enum-access/aws-ec2-unauthenticated-enum/README.md
|
||||
{{#endref}}
|
||||
|
||||
### 特権昇格
|
||||
### Privesc
|
||||
|
||||
次のページでは、**EC2の権限を悪用して特権を昇格させる方法**を確認できます:
|
||||
In the following page you can check how to **abuse EC2 permissions to escalate privileges**:
|
||||
|
||||
{{#ref}}
|
||||
../../aws-privilege-escalation/aws-ec2-privesc/README.md
|
||||
{{#endref}}
|
||||
|
||||
### ポストエクスプロイト
|
||||
### Post-Exploitation
|
||||
|
||||
{{#ref}}
|
||||
../../aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/
|
||||
@@ -149,17 +152,17 @@ aws ec2 describe-vpc-peering-connections
|
||||
|
||||
## EBS
|
||||
|
||||
Amazon **EBS** (Elastic Block Store) **スナップショット**は、基本的にAWS EBSボリュームの静的な**バックアップ**です。言い換えれば、特定の時点で**EC2**インスタンスに接続されている**ディスク**の**コピー**です。EBSスナップショットは、リージョンやアカウントを跨いでコピーしたり、ダウンロードしてローカルで実行したりできます。
|
||||
Amazon **EBS** (Elastic Block Store) の **スナップショット** は基本的に AWS EBS ボリュームの静的な **バックアップ** です。言い換えれば、特定の時点で **EC2** インスタンスに接続されている **ディスク** の **コピー** です。EBS スナップショットはリージョンやアカウント間でコピーしたり、ダウンロードしてローカルで実行することもできます。
|
||||
|
||||
スナップショットには、**ソースコードやAPIキー**などの**機密情報**が含まれている可能性があるため、機会があれば確認することをお勧めします。
|
||||
スナップショットには **機密情報**(**ソースコードやAPIキー** など)が含まれている場合があるため、機会があれば確認することをお勧めします。
|
||||
|
||||
### AMIとEBSの違い
|
||||
### Difference AMI & EBS
|
||||
|
||||
**AMI**は**EC2インスタンスを起動するために使用され**、EC2 **スナップショット**は**EBSボリュームに保存されたデータのバックアップと復元に使用されます**。EC2スナップショットは新しいAMIを作成するために使用できますが、AMIとは異なり、アプリケーションを実行するために必要なオペレーティングシステム、アプリケーションサーバー、またはその他のソフトウェアに関する情報は含まれていません。
|
||||
An **AMI** is used to **launch an EC2 instance**, while an EC2 **Snapshot** is used to **backup and recover data stored on an EBS volume**. While an EC2 Snapshot can be used to create a new AMI, it is not the same thing as an AMI, and it does not include information about the operating system, application server, or other software required to run an application.
|
||||
|
||||
### 特権昇格
|
||||
### Privesc
|
||||
|
||||
次のページでは、**EBSの権限を悪用して特権を昇格させる方法**を確認できます:
|
||||
In the following page you can check how to **abuse EBS permissions to escalate privileges**:
|
||||
|
||||
{{#ref}}
|
||||
../../aws-privilege-escalation/aws-ebs-privesc/README.md
|
||||
@@ -167,13 +170,13 @@ Amazon **EBS** (Elastic Block Store) **スナップショット**は、基本的
|
||||
|
||||
## SSM
|
||||
|
||||
**Amazon Simple Systems Manager (SSM)**は、EC2インスタンスのフロートをリモートで管理し、その管理をはるかに簡単にします。これらのインスタンスの各々は、**SSMエージェントサービスを実行している必要があり、サービスがAWS APIからアクションを受け取り、それを実行します**。
|
||||
Amazon Simple Systems Manager (SSM) は、EC2 インスタンスのフリートをリモートで管理し、運用を容易にします。これらの各インスタンスは、AWS API からの操作を受け取りそれを実行するために、**SSM Agent service as the service will be the one getting the actions and performing them** を実行している必要があります。
|
||||
|
||||
**SSMエージェント**は、システムマネージャーがこれらのリソースを更新、管理、構成することを可能にします。エージェントは、**AWSクラウド内のシステムマネージャーサービスからのリクエストを処理し**、リクエストに指定された通りに実行します。
|
||||
**SSM Agent** により、Systems Manager はこれらのリソースを更新、管理、構成できるようになります。エージェントは **processes requests from the Systems Manager service in the AWS Cloud**, そしてリクエストに指定されたとおりに実行します。
|
||||
|
||||
**SSMエージェントは**[ **一部のAMIにプリインストールされています**](https://docs.aws.amazon.com/systems-manager/latest/userguide/ami-preinstalled-agent.html)が、インスタンスに[**手動でインストールする必要があります**](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-manual-agent-install.html)。また、インスタンス内で使用されるIAMロールには、通信を行うために**AmazonEC2RoleforSSM**ポリシーがアタッチされている必要があります。
|
||||
**SSM Agent comes**[ **preinstalled in some AMIs**](https://docs.aws.amazon.com/systems-manager/latest/userguide/ami-preinstalled-agent.html) or you need to [**manually install them**](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-manual-agent-install.html) on the instances. また、インスタンス内で使用される IAM Role には通信を行うために **AmazonEC2RoleforSSM** ポリシーがアタッチされている必要があります。
|
||||
|
||||
### 列挙
|
||||
### Enumeration
|
||||
```bash
|
||||
aws ssm describe-instance-information
|
||||
aws ssm describe-parameters
|
||||
@@ -182,21 +185,21 @@ aws ssm describe-instance-patches --instance-id <id>
|
||||
aws ssm describe-instance-patch-states --instance-ids <id>
|
||||
aws ssm describe-instance-associations-status --instance-id <id>
|
||||
```
|
||||
EC2インスタンスでSystems Managerが実行されているかどうかを確認するには、次のコマンドを実行するだけです:
|
||||
EC2 インスタンスで Systems Manager が実行されているかどうかは、次のコマンドを実行するだけで確認できます:
|
||||
```bash
|
||||
ps aux | grep amazon-ssm
|
||||
```
|
||||
### プリベス
|
||||
### Privesc
|
||||
|
||||
次のページでは、**SSMの権限を悪用して特権を昇格させる方法**を確認できます:
|
||||
次のページでは、**abuse SSM permissions to escalate privileges** の方法を確認できます:
|
||||
|
||||
{{#ref}}
|
||||
../../aws-privilege-escalation/aws-ssm-privesc/README.md
|
||||
{{#endref}}
|
||||
|
||||
### 永続性
|
||||
### Perssistence
|
||||
|
||||
次のページでは、**SSMの権限を悪用して永続性を達成する方法**を確認できます:
|
||||
次のページでは、**abuse SSM permissions to achieve persistence** の方法を確認できます:
|
||||
|
||||
{{#ref}}
|
||||
../../aws-persistence/aws-ssm-persistence/README.md
|
||||
@@ -204,9 +207,9 @@ ps aux | grep amazon-ssm
|
||||
|
||||
## ELB
|
||||
|
||||
**Elastic Load Balancing** (ELB) は、**Amazon Web Services** (AWS) デプロイメントのための**負荷分散サービス**です。ELBは自動的に**受信アプリケーショントラフィックを分散**し、トラフィックの需要に応じてリソースをスケールします。
|
||||
**Elastic Load Balancing** (ELB) は、**load-balancing service for Amazon Web Services** (AWS) のデプロイで使用されるサービスです。ELB は自動的に**受信するアプリケーショントラフィックを配分し**、トラフィックの需要に応じてリソースをスケールします。
|
||||
|
||||
### 列挙
|
||||
### Enumeration
|
||||
```bash
|
||||
# List internet-facing ELBs
|
||||
aws elb describe-load-balancers
|
||||
@@ -217,7 +220,7 @@ aws elbv2 describe-load-balancers
|
||||
aws elbv2 describe-load-balancers | jq '.LoadBalancers[].DNSName'
|
||||
aws elbv2 describe-listeners --load-balancer-arn <load_balancer_arn>
|
||||
```
|
||||
## ランチテンプレートとオートスケーリンググループ
|
||||
## Launch Templates & Autoscaling Groups
|
||||
|
||||
### 列挙
|
||||
```bash
|
||||
@@ -236,9 +239,9 @@ aws autoscaling describe-load-balancers
|
||||
```
|
||||
## Nitro
|
||||
|
||||
AWS Nitroは、AWS EC2インスタンスの基盤となる**革新的な技術**のスイートです。Amazonによって**セキュリティ、パフォーマンス、信頼性を向上させる**ために導入され、Nitroはカスタム**ハードウェアコンポーネントと軽量ハイパーバイザー**を活用しています。従来の仮想化機能の多くを専用のハードウェアとソフトウェアに抽象化し、**攻撃面を最小限に抑え**、リソース効率を改善します。仮想化機能をオフロードすることで、NitroはEC2インスタンスに**ほぼベアメタルのパフォーマンス**を提供し、リソース集約型アプリケーションに特に有益です。さらに、Nitro Security Chipは**ハードウェアとファームウェアのセキュリティ**を特に確保し、その堅牢なアーキテクチャをさらに強化します。
|
||||
AWS Nitro は、AWS EC2 インスタンスの基盤を成す**革新的なテクノロジー**群です。Amazon によって導入され、**セキュリティ、パフォーマンス、信頼性を向上させる**ために、Nitro はカスタムの**ハードウェアコンポーネントと軽量なハイパーバイザー**を活用します。従来の仮想化機能の多くを専用ハードウェアとソフトウェアへ抽象化し、**攻撃対象領域を最小化**するとともにリソース効率を改善します。仮想化機能をオフロードすることで、Nitro は EC2 インスタンスに**ほぼベアメタルに近いパフォーマンス**を提供し、リソース集約型アプリケーションに特に有利になります。さらに、Nitro Security Chip は**ハードウェアとファームウェアのセキュリティ**を特に確保し、その堅牢なアーキテクチャをさらに強化します。
|
||||
|
||||
詳細情報と列挙方法については、以下を参照してください:
|
||||
Get more information and how to enumerate it from:
|
||||
|
||||
{{#ref}}
|
||||
aws-nitro-enum.md
|
||||
@@ -246,34 +249,34 @@ aws-nitro-enum.md
|
||||
|
||||
## VPN
|
||||
|
||||
VPNは、**オンプレミスネットワーク(サイト間VPN)**または**作業者のラップトップ(クライアントVPN)**を**AWS VPC**に接続し、サービスをインターネットに公開することなくアクセスできるようにします。
|
||||
VPN は、**on-premise network (site-to-site VPN)** や **workers laptops (Client VPN)** を **AWS VPC** に接続し、サービスをインターネットに公開することなくアクセスできるようにします。
|
||||
|
||||
#### 基本的なAWS VPNコンポーネント
|
||||
#### Basic AWS VPN Components
|
||||
|
||||
1. **カスタマーゲートウェイ**:
|
||||
- カスタマーゲートウェイは、VPN接続のあなたの側を表すためにAWSで作成するリソースです。
|
||||
- これは、サイト間VPN接続のあなたの側にある物理デバイスまたはソフトウェアアプリケーションです。
|
||||
- ルーティング情報とネットワークデバイス(ルーターやファイアウォールなど)のパブリックIPアドレスをAWSに提供してカスタマーゲートウェイを作成します。
|
||||
- VPN接続を設定するための参照ポイントとして機能し、追加料金は発生しません。
|
||||
2. **仮想プライベートゲートウェイ**:
|
||||
- 仮想プライベートゲートウェイ(VPG)は、サイト間VPN接続のAmazon側のVPN集中装置です。
|
||||
- あなたのVPCに接続され、VPN接続のターゲットとして機能します。
|
||||
- VPGはVPN接続のAWS側エンドポイントです。
|
||||
- あなたのVPCとオンプレミスネットワーク間の安全な通信を処理します。
|
||||
3. **サイト間VPN接続**:
|
||||
- サイト間VPN接続は、オンプレミスネットワークを安全なIPsec VPNトンネルを介してVPCに接続します。
|
||||
- このタイプの接続にはカスタマーゲートウェイと仮想プライベートゲートウェイが必要です。
|
||||
- データセンターやネットワークとAWS環境間の安全で安定した一貫した通信に使用されます。
|
||||
- 通常、定期的で長期的な接続に使用され、接続を介して転送されたデータ量に基づいて請求されます。
|
||||
4. **クライアントVPNエンドポイント**:
|
||||
- クライアントVPNエンドポイントは、クライアントVPNセッションを有効にし管理するためにAWSで作成するリソースです。
|
||||
- 個々のデバイス(ラップトップ、スマートフォンなど)がAWSリソースまたはオンプレミスネットワークに安全に接続できるようにするために使用されます。
|
||||
- サイト間VPNとは異なり、全体のネットワークを接続するのではなく、個々のクライアント向けに設計されています。
|
||||
- クライアントVPNでは、各クライアントデバイスがVPNクライアントソフトウェアを使用して安全な接続を確立します。
|
||||
1. **Customer Gateway**:
|
||||
- A Customer Gateway は、VPN 接続のあなた側を表すために AWS に作成するリソースです。
|
||||
- これは実質的に、Site-to-Site VPN 接続のあなた側にある物理デバイスまたはソフトウェアアプリケーションです。
|
||||
- Customer Gateway を作成する際に、ルーティング情報とネットワーク機器(例: router や firewall)のパブリック IP アドレスを AWS に提供します。
|
||||
- VPN 接続の設定の参照点として機能し、追加料金は発生しません。
|
||||
2. **Virtual Private Gateway**:
|
||||
- A Virtual Private Gateway (VPG) は、Site-to-Site VPN 接続の Amazon 側の VPN コンセントレーターです。
|
||||
- VPC にアタッチされ、VPN 接続のターゲットとして機能します。
|
||||
- VPG は VPN 接続の AWS 側エンドポイントです。
|
||||
- VPC とオンプレミスネットワーク間のセキュアな通信を処理します。
|
||||
3. **Site-to-Site VPN Connection**:
|
||||
- Site-to-Site VPN 接続は、IPsec VPN トンネルを通じてオンプレミスネットワークを VPC に接続します。
|
||||
- このタイプの接続には Customer Gateway と Virtual Private Gateway が必要です。
|
||||
- データセンターやネットワークと AWS 環境間のセキュアで安定した一貫した通信に使用されます。
|
||||
- 通常は定期的かつ長期的な接続に使用され、接続を通じて転送されたデータ量に基づいて課金されます。
|
||||
4. **Client VPN Endpoint**:
|
||||
- Client VPN endpoint は、クライアント VPN セッションを有効化および管理するために AWS に作成するリソースです。
|
||||
- 個々のデバイス(laptops、smartphones など)が AWS リソースやオンプレミスネットワークにセキュアに接続するために使用されます。
|
||||
- Site-to-Site VPN とは異なり、ネットワーク全体を接続するのではなく個々のクライアント向けに設計されています。
|
||||
- Client VPN では、各クライアントデバイスが VPN クライアントソフトウェアを使用してセキュアな接続を確立します。
|
||||
|
||||
[**AWS VPNの利点とコンポーネントについての詳細情報はこちらで見つけることができます**](aws-vpc-and-networking-basic-information.md#vpn)。
|
||||
You can [**find more information about the benefits and components of AWS VPNs here**](aws-vpc-and-networking-basic-information.md#vpn).
|
||||
|
||||
### 列挙
|
||||
### Enumeration
|
||||
```bash
|
||||
# VPN endpoints
|
||||
## Check used subnetwork, authentication, SGs, connected...
|
||||
@@ -299,23 +302,23 @@ aws ec2 describe-vpn-connections
|
||||
```
|
||||
### ローカル列挙
|
||||
|
||||
**ローカル一時資格情報**
|
||||
**ローカル一時認証情報**
|
||||
|
||||
AWS VPN Clientを使用してVPNに接続する際、ユーザーは通常**AWSにログイン**してVPNにアクセスします。その後、VPN接続を確立するために**AWS資格情報が作成され、ローカルに保存されます**。これらの資格情報は**$HOME/.config/AWSVPNClient/TemporaryCredentials/<region>/temporary-credentials.txt**に保存され、**AccessKey**、**SecretKey**、および**Token**が含まれています。
|
||||
When AWS VPN Client is used to connect to a VPN, the user will usually **login in AWS** to get access to the VPN. Then, some **AWS credentials are created and stored** locally to establish the VPN connection. These credentials are **stored in** `$HOME/.config/AWSVPNClient/TemporaryCredentials/<region>/temporary-credentials.txt` and contains an **AccessKey**, a **SecretKey** and a **Token**.
|
||||
|
||||
資格情報はユーザー`arn:aws:sts::<acc-id>:assumed-role/aws-vpn-client-metrics-analytics-access-role/CognitoIdentityCredentials`に属します(TODO: この資格情報の権限についてさらに調査する)。
|
||||
これらの資格情報はユーザー `arn:aws:sts::<acc-id>:assumed-role/aws-vpn-client-metrics-analytics-access-role/CognitoIdentityCredentials` に属します(TODO: これらの資格情報の権限についてさらに調査する)。
|
||||
|
||||
**opvn設定ファイル**
|
||||
**opvn 設定ファイル**
|
||||
|
||||
**VPN接続が確立された場合**、システム内で**`.opvn`**設定ファイルを検索する必要があります。さらに、**$HOME/.config/AWSVPNClient/OpenVpnConfigs**に**設定**が見つかる場所の1つです。
|
||||
もし **VPN 接続が確立されている** 場合、システム上で **`.opvn`** 設定ファイルを検索すべきです。さらに、設定が見つかる場所のひとつは **`$HOME/.config/AWSVPNClient/OpenVpnConfigs`** です。
|
||||
|
||||
#### **ポストエクスプロイト**
|
||||
#### **Post Exploitaiton**
|
||||
|
||||
{{#ref}}
|
||||
../../aws-post-exploitation/aws-vpn-post-exploitation/README.md
|
||||
{{#endref}}
|
||||
|
||||
## 参考文献
|
||||
## 参考
|
||||
|
||||
- [https://docs.aws.amazon.com/batch/latest/userguide/getting-started-ec2.html](https://docs.aws.amazon.com/batch/latest/userguide/getting-started-ec2.html)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user