mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-03-12 21:22:57 -07:00
Translated ['', 'src/pentesting-cloud/aws-security/aws-services/aws-ec2-
This commit is contained in:
@@ -2,9 +2,9 @@
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
## VPC & Réseautage
|
||||
## VPC & mise en réseau
|
||||
|
||||
Apprenez ce qu'est un VPC et ses composants dans :
|
||||
Learn what a VPC is and about its components in:
|
||||
|
||||
{{#ref}}
|
||||
aws-vpc-and-networking-basic-information.md
|
||||
@@ -12,30 +12,30 @@ aws-vpc-and-networking-basic-information.md
|
||||
|
||||
## EC2
|
||||
|
||||
Amazon EC2 est utilisé pour initier des **serveurs virtuels**. Il permet la configuration de la **sécurité** et du **réseautage** ainsi que la gestion du **stockage**. La flexibilité d'Amazon EC2 est évidente dans sa capacité à faire évoluer les ressources à la hausse et à la baisse, s'adaptant efficacement aux variations des besoins ou aux pics de popularité. Cette fonctionnalité réduit la nécessité de prévisions de trafic précises.
|
||||
Amazon EC2 is utilized for initiating **serveurs virtuels**. It permet la configuration de la **sécurité** et du **réseau** ainsi que la gestion du **stockage**. La flexibilité d'Amazon EC2 se manifeste par sa capacité à faire évoluer les ressources vers le haut ou vers le bas, s'adaptant efficacement aux variations de besoins ou aux pics de trafic. Cette fonctionnalité réduit la nécessité de prévoir précisément le trafic.
|
||||
|
||||
Choses intéressantes à énumérer dans EC2 :
|
||||
|
||||
- Machines Virtuelles
|
||||
- Machines virtuelles
|
||||
- Clés SSH
|
||||
- Données Utilisateur
|
||||
- EC2/AMIs/Snapshots existants
|
||||
- Réseautage
|
||||
- User Data
|
||||
- EC2s/AMIs/Snapshots existants
|
||||
- mise en réseau
|
||||
- Réseaux
|
||||
- Sous-réseaux
|
||||
- IPs Publiques
|
||||
- IP publiques
|
||||
- Ports ouverts
|
||||
- Connexions intégrées avec d'autres réseaux en dehors d'AWS
|
||||
|
||||
### Profils d'Instance
|
||||
### Instance Profiles
|
||||
|
||||
Utiliser des **rôles** pour accorder des permissions aux applications qui s'exécutent sur des **instances EC2** nécessite un peu de configuration supplémentaire. Une application s'exécutant sur une instance EC2 est abstraite d'AWS par le système d'exploitation virtualisé. En raison de cette séparation supplémentaire, vous devez effectuer une étape supplémentaire pour attribuer un rôle AWS et ses permissions associées à une instance EC2 et les rendre disponibles pour ses applications.
|
||||
L'utilisation de **roles** pour accorder des permissions aux applications qui s'exécutent sur des **EC2 instances** nécessite une configuration supplémentaire. Une application exécutée sur une instance EC2 est abstraite d'AWS par le système d'exploitation virtualisé. En raison de cette séparation supplémentaire, il est nécessaire d'effectuer une étape additionnelle pour attribuer un rôle AWS et ses permissions associées à une instance EC2 et les rendre disponibles pour ses applications.
|
||||
|
||||
Cette étape supplémentaire est la **création d'un** [_**profil d'instance**_](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) attaché à l'instance. Le **profil d'instance contient le rôle et** peut fournir les identifiants temporaires du rôle à une application qui s'exécute sur l'instance. Ces identifiants temporaires peuvent ensuite être utilisés dans les appels API de l'application pour accéder aux ressources et limiter l'accès uniquement à celles que le rôle spécifie. Notez que **seul un rôle peut être attribué à une instance EC2** à la fois, et toutes les applications sur l'instance partagent le même rôle et les mêmes permissions.
|
||||
Cette étape supplémentaire est la **création d'un** [_**instance profile**_](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) attaché à l'instance. L'**instance profile contient le role et** peut fournir les credentials temporaires du role à une application qui s'exécute sur l'instance. Ces credentials temporaires peuvent ensuite être utilisés dans les appels API de l'application pour accéder aux ressources et limiter l'accès uniquement aux ressources spécifiées par le role. Notez que **un seul role peut être assigné à une EC2 instance** à la fois, et toutes les applications sur l'instance partagent le même role et les mêmes permissions.
|
||||
|
||||
### Point de terminaison des métadonnées
|
||||
### Metadata Endpoint
|
||||
|
||||
Les métadonnées EC2 d'AWS sont des informations sur une instance Amazon Elastic Compute Cloud (EC2) qui sont disponibles pour l'instance à l'exécution. Ces métadonnées sont utilisées pour fournir des informations sur l'instance, telles que son ID d'instance, la zone de disponibilité dans laquelle elle s'exécute, le rôle IAM associé à l'instance et le nom d'hôte de l'instance.
|
||||
Les metadata AWS EC2 sont des informations sur une instance Amazon Elastic Compute Cloud (EC2) qui sont disponibles pour l'instance à l'exécution. Ces metadata servent à fournir des informations sur l'instance, telles que son instance ID, la zone de disponibilité dans laquelle elle s'exécute, le IAM role associé à l'instance, et le hostname de l'instance.
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html
|
||||
@@ -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,7 +130,7 @@ aws ec2 describe-route-tables
|
||||
aws ec2 describe-vpcs
|
||||
aws ec2 describe-vpc-peering-connections
|
||||
```
|
||||
### Accès non authentifié
|
||||
### Unauthenticated Access
|
||||
|
||||
{{#ref}}
|
||||
../../aws-unauthenticated-enum-access/aws-ec2-unauthenticated-enum/README.md
|
||||
@@ -135,7 +138,7 @@ aws ec2 describe-vpc-peering-connections
|
||||
|
||||
### Privesc
|
||||
|
||||
Dans la page suivante, vous pouvez vérifier comment **abuser des permissions EC2 pour élever les privilèges** :
|
||||
In the following page you can check how to **abuse EC2 permissions to escalate privileges**:
|
||||
|
||||
{{#ref}}
|
||||
../../aws-privilege-escalation/aws-ec2-privesc/README.md
|
||||
@@ -149,17 +152,17 @@ Dans la page suivante, vous pouvez vérifier comment **abuser des permissions EC
|
||||
|
||||
## EBS
|
||||
|
||||
Amazon **EBS** (Elastic Block Store) **snapshots** sont essentiellement des **sauvegardes** statiques des volumes AWS EBS. En d'autres termes, ce sont des **copies** des **disques** attachés à une **instance EC2** à un moment donné. Les snapshots EBS peuvent être copiés entre régions et comptes, ou même téléchargés et exécutés localement.
|
||||
Amazon **EBS** (Elastic Block Store) **instantanés** sont essentiellement des **sauvegardes** statiques des volumes AWS EBS. En d'autres termes, ce sont des **copies** des **disques** attachés à une **EC2** Instance à un moment donné. Les snapshots EBS peuvent être copiés entre régions et comptes, ou même téléchargés et exécutés localement.
|
||||
|
||||
Les snapshots peuvent contenir des **informations sensibles** telles que **du code source ou des clés API**, donc, si vous en avez l'occasion, il est recommandé de les vérifier.
|
||||
Les snapshots peuvent contenir des **informations sensibles** telles que du **code source** ou des **clés API**, donc, si vous en avez la possibilité, il est recommandé de les vérifier.
|
||||
|
||||
### Différence AMI & EBS
|
||||
### Difference AMI & EBS
|
||||
|
||||
Une **AMI** est utilisée pour **lancer une instance EC2**, tandis qu'un **snapshot EC2** est utilisé pour **sauvegarder et récupérer des données stockées sur un volume EBS**. Bien qu'un snapshot EC2 puisse être utilisé pour créer une nouvelle AMI, ce n'est pas la même chose qu'une AMI, et il n'inclut pas d'informations sur le système d'exploitation, le serveur d'application ou d'autres logiciels nécessaires pour exécuter une application.
|
||||
Un **AMI** est utilisé pour **lancer une EC2 instance**, tandis qu'un **EC2 Snapshot** est utilisé pour **sauvegarder et récupérer les données stockées sur un volume EBS**. Bien qu'un EC2 Snapshot puisse être utilisé pour créer un nouvel AMI, ce n'est pas la même chose qu'un AMI, et il n'inclut pas d'informations sur le système d'exploitation, le serveur d'applications ou les autres logiciels nécessaires pour exécuter une application.
|
||||
|
||||
### Privesc
|
||||
|
||||
Dans la page suivante, vous pouvez vérifier comment **abuser des permissions EBS pour élever les privilèges** :
|
||||
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,11 +170,11 @@ Dans la page suivante, vous pouvez vérifier comment **abuser des permissions EB
|
||||
|
||||
## SSM
|
||||
|
||||
**Amazon Simple Systems Manager (SSM)** permet de gérer à distance des flottes d'instances EC2 pour faciliter leur administration. Chacune de ces instances doit exécuter le **service SSM Agent car c'est ce service qui recevra les actions et les exécutera** via l'API AWS.
|
||||
**Amazon Simple Systems Manager (SSM)** permet de gérer à distance des flottes d'EC2 instances pour faciliter leur administration. Chacune de ces instances doit exécuter le **service SSM Agent car c'est ce service qui recevra les actions et les exécutera** depuis l'AWS API.
|
||||
|
||||
**SSM Agent** permet à Systems Manager de mettre à jour, gérer et configurer ces ressources. L'agent **traite les demandes du service Systems Manager dans le Cloud AWS**, puis les exécute comme spécifié dans la demande.
|
||||
Le **SSM Agent** permet à Systems Manager de mettre à jour, gérer et configurer ces ressources. L'agent **traite les requêtes du service Systems Manager dans l'AWS Cloud**, puis les exécute comme spécifié dans la requête.
|
||||
|
||||
L'**agent SSM est** [**préinstallé dans certaines AMIs**](https://docs.aws.amazon.com/systems-manager/latest/userguide/ami-preinstalled-agent.html) ou vous devez [**les installer manuellement**](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-manual-agent-install.html) sur les instances. De plus, le rôle IAM utilisé à l'intérieur de l'instance doit avoir la politique **AmazonEC2RoleforSSM** attachée pour pouvoir communiquer.
|
||||
The **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. Also, the IAM Role used inside the instance needs to have the policy **AmazonEC2RoleforSSM** attached to be able to communicate.
|
||||
|
||||
### Énumération
|
||||
```bash
|
||||
@@ -182,13 +185,13 @@ 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>
|
||||
```
|
||||
Vous pouvez vérifier dans une instance EC2 si Systems Manager est en cours d'exécution simplement en exécutant :
|
||||
Vous pouvez vérifier sur une instance EC2 si Systems Manager est en cours d'exécution simplement en exécutant :
|
||||
```bash
|
||||
ps aux | grep amazon-ssm
|
||||
```
|
||||
### Privesc
|
||||
|
||||
Dans la page suivante, vous pouvez vérifier comment **abuser des permissions SSM pour escalader les privilèges** :
|
||||
Sur la page suivante vous pouvez vérifier comment **abuser des permissions SSM pour escalader les privilèges**:
|
||||
|
||||
{{#ref}}
|
||||
../../aws-privilege-escalation/aws-ssm-privesc/README.md
|
||||
@@ -196,7 +199,7 @@ Dans la page suivante, vous pouvez vérifier comment **abuser des permissions SS
|
||||
|
||||
### Perssistence
|
||||
|
||||
Dans la page suivante, vous pouvez vérifier comment **abuser des permissions SSM pour atteindre la persistance** :
|
||||
Sur la page suivante vous pouvez vérifier comment **abuser des permissions SSM pour obtenir une persistance**:
|
||||
|
||||
{{#ref}}
|
||||
../../aws-persistence/aws-ssm-persistence/README.md
|
||||
@@ -204,9 +207,9 @@ Dans la page suivante, vous pouvez vérifier comment **abuser des permissions SS
|
||||
|
||||
## ELB
|
||||
|
||||
**Elastic Load Balancing** (ELB) est un **service de répartition de charge pour les déploiements Amazon Web Services** (AWS). ELB distribue automatiquement **le trafic d'application entrant** et ajuste les ressources pour répondre aux demandes de trafic.
|
||||
**Elastic Load Balancing** (ELB) est un **service d'équilibrage de charge pour les déploiements Amazon Web Services** (AWS). ELB distribue automatiquement **le trafic applicatif entrant** et ajuste les ressources pour répondre à la demande.
|
||||
|
||||
### Enumeration
|
||||
### Enumération
|
||||
```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>
|
||||
```
|
||||
## Modèles de lancement et groupes d'autoscaling
|
||||
## Modèles de lancement & groupes Auto Scaling
|
||||
|
||||
### Énumération
|
||||
```bash
|
||||
@@ -236,9 +239,9 @@ aws autoscaling describe-load-balancers
|
||||
```
|
||||
## Nitro
|
||||
|
||||
AWS Nitro est une suite de **technologies innovantes** qui forme la plateforme sous-jacente pour les instances AWS EC2. Introduit par Amazon pour **améliorer la sécurité, la performance et la fiabilité**, Nitro tire parti de **composants matériels personnalisés et d'un hyperviseur léger**. Il abstrait une grande partie de la fonctionnalité de virtualisation traditionnelle vers du matériel et des logiciels dédiés, **minimisant la surface d'attaque** et améliorant l'efficacité des ressources. En déchargeant les fonctions de virtualisation, Nitro permet aux instances EC2 de fournir une **performance proche du bare-metal**, ce qui est particulièrement bénéfique pour les applications gourmandes en ressources. De plus, la puce de sécurité Nitro garantit spécifiquement la **sécurité du matériel et du firmware**, renforçant ainsi son architecture robuste.
|
||||
AWS Nitro est une suite de **technologies innovantes** qui constituent la plateforme sous-jacente pour les instances AWS EC2. Introduit par Amazon pour **améliorer la sécurité, les performances et la fiabilité**, Nitro s'appuie sur des **composants matériels personnalisés et un hyperviseur léger**. Il déplace une grande partie des fonctions de virtualisation traditionnelles vers du matériel et des logiciels dédiés, **minimisant la surface d'attaque** et améliorant l'efficacité des ressources. En déchargeant les fonctions de virtualisation, Nitro permet aux instances EC2 d'offrir des **performances proches du bare-metal**, ce qui est particulièrement avantageux pour les applications gourmandes en ressources. De plus, le Nitro Security Chip garantit spécifiquement la **sécurité du matériel et du firmware**, renforçant encore son architecture robuste.
|
||||
|
||||
Obtenez plus d'informations et comment l'énumérer à partir de :
|
||||
Get more information and how to enumerate it from:
|
||||
|
||||
{{#ref}}
|
||||
aws-nitro-enum.md
|
||||
@@ -246,32 +249,32 @@ aws-nitro-enum.md
|
||||
|
||||
## VPN
|
||||
|
||||
Un VPN permet de connecter votre **réseau sur site (site-to-site VPN)** ou les **ordinateurs portables des travailleurs (Client VPN)** avec un **AWS VPC** afin que les services puissent être accessibles sans avoir besoin de les exposer à Internet.
|
||||
Un VPN permet de connecter votre **réseau sur site (site-to-site VPN)** ou les **ordinateurs portables des collaborateurs (Client VPN)** à un **AWS VPC**, afin que les services puissent être accessibles sans avoir à les exposer sur Internet.
|
||||
|
||||
#### Composants de base d'AWS VPN
|
||||
#### Basic AWS VPN Components
|
||||
|
||||
1. **Customer Gateway** :
|
||||
1. **Customer Gateway**:
|
||||
- Un Customer Gateway est une ressource que vous créez dans AWS pour représenter votre côté d'une connexion VPN.
|
||||
- C'est essentiellement un dispositif physique ou une application logicielle de votre côté de la connexion Site-to-Site VPN.
|
||||
- Vous fournissez des informations de routage et l'adresse IP publique de votre dispositif réseau (comme un routeur ou un pare-feu) à AWS pour créer un Customer Gateway.
|
||||
- Il sert de point de référence pour établir la connexion VPN et n'entraîne pas de frais supplémentaires.
|
||||
2. **Virtual Private Gateway** :
|
||||
- Il s'agit essentiellement d'un périphérique physique ou d'une application logicielle de votre côté de la connexion Site-to-Site VPN.
|
||||
- Vous fournissez les informations de routage et l'adresse IP publique de votre périphérique réseau (comme un router ou un firewall) à AWS pour créer un Customer Gateway.
|
||||
- Il sert de point de référence pour la configuration de la connexion VPN et n'entraîne pas de frais supplémentaires.
|
||||
2. **Virtual Private Gateway**:
|
||||
- Un Virtual Private Gateway (VPG) est le concentrateur VPN du côté Amazon de la connexion Site-to-Site VPN.
|
||||
- Il est attaché à votre VPC et sert de cible pour votre connexion VPN.
|
||||
- VPG est le point de terminaison du côté AWS pour la connexion VPN.
|
||||
- Le VPG est le point de terminaison côté AWS pour la connexion VPN.
|
||||
- Il gère la communication sécurisée entre votre VPC et votre réseau sur site.
|
||||
3. **Site-to-Site VPN Connection** :
|
||||
- Une connexion Site-to-Site VPN connecte votre réseau sur site à un VPC via un tunnel VPN IPsec sécurisé.
|
||||
3. **Site-to-Site VPN Connection**:
|
||||
- Une connexion Site-to-Site VPN relie votre réseau sur site à un VPC via un tunnel VPN sécurisé IPsec.
|
||||
- Ce type de connexion nécessite un Customer Gateway et un Virtual Private Gateway.
|
||||
- Il est utilisé pour une communication sécurisée, stable et cohérente entre votre centre de données ou réseau et votre environnement AWS.
|
||||
- Typiquement utilisé pour des connexions régulières et à long terme, et est facturé en fonction de la quantité de données transférées sur la connexion.
|
||||
4. **Client VPN Endpoint** :
|
||||
- Un point de terminaison Client VPN est une ressource que vous créez dans AWS pour activer et gérer les sessions VPN client.
|
||||
- Il est utilisé pour permettre à des dispositifs individuels (comme des ordinateurs portables, des smartphones, etc.) de se connecter en toute sécurité aux ressources AWS ou à votre réseau sur site.
|
||||
- Il diffère du Site-to-Site VPN en ce sens qu'il est conçu pour des clients individuels plutôt que de connecter des réseaux entiers.
|
||||
- Avec Client VPN, chaque dispositif client utilise un logiciel client VPN pour établir une connexion sécurisée.
|
||||
- Elle est utilisée pour une communication sécurisée, stable et cohérente entre votre centre de données ou réseau et votre environnement AWS.
|
||||
- Typiquement utilisée pour des connexions régulières et à long terme et facturée en fonction du volume de données transférées via la connexion.
|
||||
4. **Client VPN Endpoint**:
|
||||
- Un Client VPN endpoint est une ressource que vous créez dans AWS pour activer et gérer des sessions VPN client.
|
||||
- Il est utilisé pour permettre à des dispositifs individuels (comme des ordinateurs portables, smartphones, etc.) de se connecter de manière sécurisée aux ressources AWS ou à votre réseau sur site.
|
||||
- Il diffère du Site-to-Site VPN en ce qu'il est conçu pour des clients individuels plutôt que pour connecter des réseaux entiers.
|
||||
- Avec Client VPN, chaque appareil client utilise un logiciel client VPN pour établir une connexion sécurisée.
|
||||
|
||||
Vous pouvez [**trouver plus d'informations sur les avantages et les composants des VPN AWS ici**](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
|
||||
@@ -297,19 +300,19 @@ aws ec2 describe-vpn-gateways
|
||||
# Get VPN site-to-site connections
|
||||
aws ec2 describe-vpn-connections
|
||||
```
|
||||
### Énumération Locale
|
||||
### Énumération locale
|
||||
|
||||
**Identifiants Temporaires Locaux**
|
||||
**Identifiants temporaires locaux**
|
||||
|
||||
Lorsque le client VPN AWS est utilisé pour se connecter à un VPN, l'utilisateur se **connecte généralement à AWS** pour accéder au VPN. Ensuite, certains **identifiants AWS sont créés et stockés** localement pour établir la connexion VPN. Ces identifiants sont **stockés dans** `$HOME/.config/AWSVPNClient/TemporaryCredentials/<region>/temporary-credentials.txt` et contiennent une **AccessKey**, une **SecretKey** et un **Token**.
|
||||
Lorsque AWS VPN Client est utilisé pour se connecter à un VPN, l'utilisateur va généralement **se connecter à AWS** pour obtenir l'accès au VPN. Ensuite, des **identifiants AWS sont créés et stockés** localement pour établir la connexion VPN. Ces identifiants sont **stockés dans** `$HOME/.config/AWSVPNClient/TemporaryCredentials/<region>/temporary-credentials.txt` et contiennent un **AccessKey**, un **SecretKey** et un **Token**.
|
||||
|
||||
Les identifiants appartiennent à l'utilisateur `arn:aws:sts::<acc-id>:assumed-role/aws-vpn-client-metrics-analytics-access-role/CognitoIdentityCredentials` (TODO : rechercher plus sur les permissions de ces identifiants).
|
||||
Les identifiants appartiennent à l'utilisateur `arn:aws:sts::<acc-id>:assumed-role/aws-vpn-client-metrics-analytics-access-role/CognitoIdentityCredentials` (TODO: rechercher plus d'informations sur les permissions de ces identifiants).
|
||||
|
||||
**Fichiers de configuration opvn**
|
||||
**opvn config files**
|
||||
|
||||
Si une **connexion VPN a été établie**, vous devriez rechercher des fichiers de configuration **`.opvn`** dans le système. De plus, un endroit où vous pourriez trouver les **configurations** est dans **`$HOME/.config/AWSVPNClient/OpenVpnConfigs`**
|
||||
Si une **connexion VPN a été établie** vous devriez rechercher des fichiers de config **`.opvn`** sur le système. De plus, un endroit où vous pourriez trouver les **configurations** est **`$HOME/.config/AWSVPNClient/OpenVpnConfigs`**
|
||||
|
||||
#### **Post Exploitation**
|
||||
#### **Post Exploitaiton**
|
||||
|
||||
{{#ref}}
|
||||
../../aws-post-exploitation/aws-vpn-post-exploitation/README.md
|
||||
|
||||
Reference in New Issue
Block a user