AWS - EC2, EBS, ELB, SSM, VPC & VPN Enum
VPC & Réseautage
Apprenez ce qu'est un VPC et ses composants dans :
AWS - VPC & Networking Basic InformationEC2
Amazon EC2 est utilisé pour lancer des serveurs virtuels. Il permet de configurer la sécurité et le réseautage et de gérer le stockage. La flexibilité d'Amazon EC2 se manifeste par sa capacité à faire évoluer les ressources à la hausse et à la baisse, s'adaptant efficacement aux changements de besoins ou aux pics de popularité. Cette fonctionnalité réduit la nécessité de prédictions précises du trafic.
Choses intéressantes à énumérer dans EC2 :
Machines Virtuelles
Clés SSH
Données Utilisateur
EC2/AMIs/Snapshots existants
Réseautage
Réseaux
Sous-réseaux
IPs Publiques
Ports ouverts
Connexions intégrées avec d'autres réseaux en dehors d'AWS
Profils d'Instance
Utiliser des rôles pour accorder des permissions aux applications qui s'exécutent sur des instances EC2 nécessite une 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, une étape supplémentaire est nécessaire 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 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 spécifiées par le rôle. Notez qu'un seul 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.
Endpoint de Métadonnées
Les métadonnées AWS EC2 sont des informations sur une instance Amazon Elastic Compute Cloud (EC2) 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.
Énumération
Accès non authentifié
AWS - EC2 Unauthenticated EnumPrivesc
Sur la page suivante, vous pouvez voir comment abuser des permissions EC2 pour escalader les privilèges :
AWS - EC2 PrivescPost-Exploitation
AWS - EC2, EBS, SSM & VPC Post ExploitationEBS
Les snapshots Amazon EBS (Elastic Block Store) 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 précis. 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 des codes sources ou des clés API, donc, si vous en avez l'occasion, il est recommandé de les vérifier.
Différence 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 les 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 les informations sur le système d'exploitation, le serveur d'applications ou d'autres logiciels nécessaires pour exécuter une application.
Privesc
Sur la page suivante, vous pouvez voir comment abuser des permissions EBS pour escalader les privilèges :
AWS - EBS PrivescSSM
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 à partir de l'API AWS.
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 est préinstallé dans certaines AMIs ou vous devez les installer manuellement 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.
Énumération
Vous pouvez vérifier si Systems Manager est en cours d'exécution sur une instance EC2 simplement en exécutant :
Privesc
Sur la page suivante, vous pouvez voir comment abuser des permissions SSM pour escalader les privilèges :
AWS - SSM PrivescELB
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 entrant des applications et ajuste les ressources pour répondre aux demandes de trafic.
Enumeration
Modèles de lancement et groupes d'autoscaling
Énumération
Nitro
AWS Nitro est une suite de technologies innovantes qui forment la plateforme sous-jacente pour les instances AWS EC2. Introduit par Amazon pour améliorer la sécurité, la performance et la fiabilité, Nitro utilise des composants matériels personnalisés et un hyperviseur léger. Il abstrait une grande partie des fonctionnalités 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 de fournir des performances proches 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 assure spécifiquement la sécurité du matériel et du firmware, renforçant ainsi son architecture robuste.
Obtenez plus d'informations et comment l'énumérer à partir de :
AWS - Nitro EnumVPN
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.
Composants de base du VPN AWS
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 configurer la connexion VPN et n'entraîne pas de frais supplémentaires.
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 d'extrémité côté AWS pour la connexion VPN.
Il gère la communication sécurisée entre votre VPC et votre réseau sur site.
Site-to-Site VPN Connection :
Une connexion Site-to-Site VPN connecte 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.
Client VPN Endpoint :
Un Client VPN endpoint est une ressource que vous créez dans AWS pour activer et gérer les sessions VPN client.
Il est utilisé pour permettre aux appareils individuels (comme les ordinateurs portables, les 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 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.
Énumération
Local Enumeration
Local Temporary Credentials
Lorsque le client AWS VPN est utilisé pour se connecter à un VPN, l'utilisateur se connecte généralement à AWS pour accéder 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 une AccessKey, une 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 d'informations sur les permissions de ces identifiants).
fichiers de configuration opvn
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 $HOME/.config/AWSVPNClient/OpenVpnConfigs
.
Post Exploitation
AWS - VPN Post ExploitationRéférences
Last updated