AWS - VPC & Networking Informations de base

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks

Mise en réseau AWS en bref

Un VPC contient un network CIDR comme 10.0.0.0/16 (avec sa table de routage et son ACL réseau).

Ce rĂ©seau VPC est divisĂ© en sous-rĂ©seaux, donc un sous-rĂ©seau est directement liĂ© au VPC, Ă  la table de routage et Ă  l’ACL rĂ©seau.

Ensuite, des Network Interface attachées aux services (comme les instances EC2) sont connectées aux sous-réseaux avec des security group(s).

Par consĂ©quent, un security group limitera les ports exposĂ©s des interfaces rĂ©seau qui l’utilisent, indĂ©pendamment du sous-rĂ©seau. Et un ACL rĂ©seau limitera les ports exposĂ©s pour l’ensemble du rĂ©seau.

De plus, pour accéder à Internet, il y a quelques configurations intéressantes à vérifier :

  • Un sous-rĂ©seau peut auto-attribuer des adresses IPv4 publiques
  • Une instance créée dans le rĂ©seau qui auto-attribue des adresses IPv4 peut en obtenir une
  • Une Internet gateway doit ĂȘtre attachĂ©e au VPC
  • Vous pouvez aussi utiliser des Egress-only internet gateways
  • Vous pouvez aussi avoir une NAT gateway dans un sous-rĂ©seau privĂ© afin qu’il soit possible de se connecter Ă  des services externes depuis ce sous-rĂ©seau privĂ©, mais il n’est pas possible d’y accĂ©der depuis l’extĂ©rieur.
  • La NAT gateway peut ĂȘtre publique (accĂšs Ă  Internet) ou privĂ©e (accĂšs Ă  d’autres VPCs)

VPC

Amazon Virtual Private Cloud (Amazon VPC) vous permet de lancer des ressources AWS dans un réseau virtuel que vous avez défini. Ce réseau virtuel comportera plusieurs sous-réseaux, des Internet Gateways pour accéder à Internet, des ACLs, des security groups, des IPs


Subnets

Les subnets aident à renforcer le niveau de sécurité. Le regroupement logique de ressources similaires facilite également la gestion de votre infrastructure.

  • Les CIDR valides vont d’un netmask /16 Ă  un netmask /28.
  • Un subnet ne peut pas ĂȘtre dans diffĂ©rentes zones de disponibilitĂ© en mĂȘme temps.
  • AWS rĂ©serve les trois premiĂšres adresses IP d’hĂŽte de chaque subnet pour l’usage interne d’AWS : la premiĂšre adresse d’hĂŽte est utilisĂ©e pour le routeur VPC. La seconde adresse est rĂ©servĂ©e pour le DNS AWS et la troisiĂšme adresse est rĂ©servĂ©e pour un usage futur.
  • On parle de public subnets pour ceux qui ont un accĂšs direct Ă  Internet, tandis que les subnets privĂ©s n’en ont pas.

Route Tables

Les tables de routage dĂ©terminent le routage du trafic pour un subnet au sein d’un VPC. Elles dĂ©terminent quel trafic rĂ©seau est acheminĂ© vers Internet ou vers une connexion VPN. Vous y trouverez gĂ©nĂ©ralement l’accĂšs vers :

  • Le VPC local
  • Le NAT
  • Les Internet Gateways / Egress-only Internet gateways (nĂ©cessaires pour donner l’accĂšs Ă  Internet Ă  un VPC).
  • Pour rendre un subnet public, vous devez crĂ©er et attacher une Internet gateway Ă  votre VPC.
  • Des VPC endpoints (pour accĂ©der Ă  S3 depuis des rĂ©seaux privĂ©s)

ACLs

Network Access Control Lists (ACLs) : Les ACLs rĂ©seau sont des rĂšgles de pare-feu qui contrĂŽlent le trafic rĂ©seau entrant et sortant vers un subnet. Elles peuvent ĂȘtre utilisĂ©es pour autoriser ou refuser le trafic vers des adresses IP ou des plages spĂ©cifiques.

  • Il est plus frĂ©quent d’autoriser/refuser l’accĂšs en utilisant des security groups, mais c’est la seule façon de couper complĂštement des reverse shells Ă©tablis. Une rĂšgle modifiĂ©e dans un security group n’arrĂȘte pas les connexions dĂ©jĂ  Ă©tablies.
  • Cependant, cela s’applique Ă  l’ensemble du sous-rĂ©seau : soyez prudent lorsque vous interdisez des choses, car des fonctionnalitĂ©s nĂ©cessaires peuvent ĂȘtre perturbĂ©es.

Security Groups

Les security groups sont un pare-feu virtuel qui contrÎle le trafic réseau entrant et sortant vers les instances dans un VPC. Relation 1 SG à N instances (généralement 1 à 1).
Généralement, cela sert à ouvrir des ports dangereux sur des instances, comme le port 22 par exemple :

Elastic IP Addresses

Une Elastic IP address est une adresse IPv4 statique conçue pour le cloud computing dynamique. Une Elastic IP address est allouĂ©e Ă  votre compte AWS, et vous appartient jusqu’à ce que vous la libĂ©riez. En utilisant une Elastic IP address, vous pouvez masquer la dĂ©faillance d’une instance ou d’un logiciel en remappant rapidement l’adresse vers une autre instance de votre compte.

Connection between subnets

Par dĂ©faut, tous les subnets ont l’attribution automatique d’adresses IP publiques dĂ©sactivĂ©e, mais cela peut ĂȘtre activĂ©.

Une route locale dans une table de routage permet la communication entre les sous-réseaux du VPC.

Si vous connectez un subnet avec un autre subnet, vous ne pouvez pas accĂ©der aux subnets connectĂ©s avec l’autre subnet, vous devez crĂ©er une connexion directe avec eux. Cela s’applique aussi aux Internet gateways. Vous ne pouvez pas passer par la connexion d’un subnet pour accĂ©der Ă  Internet ; vous devez assigner l’Internet gateway Ă  votre subnet.

VPC Peering

Le VPC peering vous permet de connecter deux VPC ou plus ensemble, en utilisant IPv4 ou IPv6, comme s’ils faisaient partie du mĂȘme rĂ©seau.

Une fois la connectivitĂ© de peering Ă©tablie, les ressources d’un VPC peuvent accĂ©der aux ressources de l’autre. La connectivitĂ© entre les VPC est mise en Ɠuvre via l’infrastructure rĂ©seau AWS existante, elle est donc hautement disponible sans goulot d’étranglement de bande passante. Comme les connexions en peering fonctionnent comme si elles faisaient partie du mĂȘme rĂ©seau, il existe des restrictions concernant les plages de blocs CIDR que vous pouvez utiliser.
Si vous avez des plages CIDR qui se chevauchent ou sont dupliquées pour vos VPC, alors vous ne pourrez pas faire de peering entre les VPC.
Chaque VPC AWS ne communiquera qu’avec son pair. Par exemple, si vous avez une connexion de peering entre VPC 1 et VPC 2, et une autre connexion entre VPC 2 et VPC 3 comme montrĂ©, alors VPC 1 et 2 pourraient communiquer directement entre eux, tout comme VPC 2 et VPC 3 ; cependant, VPC 1 et VPC 3 ne pourraient pas. Vous ne pouvez pas router Ă  travers un VPC pour atteindre un autre.

VPC Flow Logs

Au sein de votre VPC, vous pouvez potentiellement avoir des centaines voire des milliers de ressources qui communiquent entre différents sous-réseaux publics et privés et aussi entre différents VPCs via des connexions de peering. Les VPC Flow Logs vous permettent de capturer les informations de trafic IP qui circulent entre les interfaces réseau de vos ressources au sein de votre VPC.

Contrairement aux logs d’accĂšs S3 et aux logs d’accĂšs CloudFront, les donnĂ©es de logs gĂ©nĂ©rĂ©es par les VPC Flow Logs ne sont pas stockĂ©es dans S3. À la place, les donnĂ©es de logs capturĂ©es sont envoyĂ©es vers CloudWatch logs.

Limitations :

  • Si vous exĂ©cutez une connexion VPC en peering, alors vous ne pourrez voir les flow logs des VPC en peering que s’ils sont dans le mĂȘme compte.
  • Si vous exĂ©cutez encore des ressources dans l’environnement EC2-Classic, alors malheureusement vous ne pouvez pas rĂ©cupĂ©rer d’informations depuis leurs interfaces.
  • Une fois qu’un VPC Flow Log a Ă©tĂ© créé, il ne peut pas ĂȘtre modifiĂ©. Pour modifier la configuration du VPC Flow Log, vous devez le supprimer puis en recrĂ©er un nouveau.
  • Le trafic suivant n’est pas surveillĂ© ni capturĂ© par les logs : le trafic DHCP au sein du VPC, le trafic des instances Ă  destination du serveur DNS Amazon.
  • Tout trafic destinĂ© Ă  l’adresse IP du routeur par dĂ©faut du VPC et le trafic vers et depuis les adresses suivantes ne sont pas capturĂ©s : 169.254.169.254 (utilisĂ©e pour la collecte des metadata d’instance) et 169.254.169.123 (utilisĂ©e pour le Amazon Time Sync Service).
  • Trafic relatif Ă  une licence d’activation Windows Amazon depuis une instance Windows.
  • Trafic entre une interface de network load balancer et une interface d’endpoint rĂ©seau.

Pour chaque interface rĂ©seau qui publie des donnĂ©es dans le groupe de logs CloudWatch, elle utilisera un flux de logs diffĂ©rent. Et Ă  l’intĂ©rieur de chacun de ces flux, il y aura les Ă©vĂ©nements de flow log qui montrent le contenu des entrĂ©es de log. Chacun de ces logs capture des donnĂ©es pendant une fenĂȘtre d’environ 10 Ă  15 minutes.

VPN

Basic AWS VPN Components

  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 les informations de routage et l’adresse IP publique de votre Ă©quipement 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 coĂ»ts supplĂ©mentaires.
  1. 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.
  • Le VPG est le endpoint cĂŽtĂ© AWS pour la connexion VPN.
  • Il gĂšre la communication sĂ©curisĂ©e entre votre VPC et votre rĂ©seau on-premises.
  1. Site-to-Site VPN Connection :
  • Une Site-to-Site VPN connection connecte votre rĂ©seau on-premises Ă  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 facturĂ© en fonction de la quantitĂ© de donnĂ©es transfĂ©rĂ©es sur la connexion.
  1. Client VPN Endpoint :
  • Un Client VPN endpoint est une ressource que vous crĂ©ez dans AWS pour activer et gĂ©rer des sessions VPN clients.
  • Il est utilisĂ© pour permettre Ă  des appareils individuels (comme des laptops, smartphones, etc.) de se connecter de maniĂšre sĂ©curisĂ©e aux ressources AWS ou Ă  votre rĂ©seau on-premises.
  • Il diffĂšre de la 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.

Site-to-Site VPN

Connectez votre réseau on-premises à votre VPC.

  • VPN connection : Une connexion sĂ©curisĂ©e entre votre Ă©quipement on-premises et vos VPCs.
  • VPN tunnel : Un lien chiffrĂ© oĂč des donnĂ©es peuvent passer du rĂ©seau client vers ou depuis AWS.

Chaque VPN connection inclut deux VPN tunnels que vous pouvez utiliser simultanément pour la haute disponibilité.

  • Customer gateway : Une ressource AWS qui fournit des informations Ă  AWS concernant votre appareil customer gateway.
  • Customer gateway device : Un appareil physique ou une application logicielle de votre cĂŽtĂ© de la connexion Site-to-Site VPN.
  • Virtual private gateway : Le concentrateur VPN du cĂŽtĂ© Amazon de la connexion Site-to-Site VPN. Vous utilisez un virtual private gateway ou un transit gateway comme gateway pour le cĂŽtĂ© Amazon de la connexion Site-to-Site VPN.
  • Transit gateway : Un hub de transit qui peut ĂȘtre utilisĂ© pour interconnecter vos VPCs et rĂ©seaux on-premises. Vous utilisez un transit gateway ou virtual private gateway comme gateway pour le cĂŽtĂ© Amazon de la connexion Site-to-Site VPN.

Limitations

  • Le trafic IPv6 n’est pas pris en charge pour les connexions VPN sur un virtual private gateway.
  • Une connexion AWS VPN ne prend pas en charge Path MTU Discovery.

De plus, prenez les éléments suivants en considération lorsque vous utilisez Site-to-Site VPN.

  • Lors de la connexion de vos VPCs Ă  un rĂ©seau on-premises commun, nous recommandons d’utiliser des blocs CIDR non chevauchants pour vos rĂ©seaux.

Client VPN

Se connecter depuis votre machine Ă  votre VPC

Concepts

  • Client VPN endpoint : La ressource que vous crĂ©ez et configurez pour activer et gĂ©rer les sessions VPN clients. C’est la ressource oĂč toutes les sessions Client VPN se terminent.
  • Target network : Un target network est le rĂ©seau que vous associez Ă  un Client VPN endpoint. Un subnet d’un VPC est un target network. Associer un subnet Ă  un Client VPN endpoint vous permet d’établir des sessions VPN. Vous pouvez associer plusieurs subnets Ă  un Client VPN endpoint pour la haute disponibilitĂ©. Tous les subnets doivent provenir du mĂȘme VPC. Chaque subnet doit appartenir Ă  une Availability Zone diffĂ©rente.
  • Route : Chaque Client VPN endpoint possĂšde une table de routage qui dĂ©crit les routes rĂ©seau de destination disponibles. Chaque route dans la table de routage spĂ©cifie le chemin pour le trafic vers des ressources ou rĂ©seaux spĂ©cifiques.
  • Authorization rules : Une authorization rule restreint les utilisateurs qui peuvent accĂ©der Ă  un rĂ©seau. Pour un rĂ©seau spĂ©cifiĂ©, vous configurez le groupe Active Directory ou identity provider (IdP) autorisĂ© Ă  l’accĂšs. Seuls les utilisateurs appartenant Ă  ce groupe peuvent accĂ©der au rĂ©seau spĂ©cifiĂ©. Par dĂ©faut, il n’y a pas de authorization rules et vous devez configurer des authorization rules pour permettre aux utilisateurs d’accĂ©der aux ressources et aux rĂ©seaux.
  • Client : L’utilisateur final se connectant au Client VPN endpoint pour Ă©tablir une session VPN. Les utilisateurs finaux doivent tĂ©lĂ©charger un client OpenVPN et utiliser le fichier de configuration Client VPN que vous avez créé pour Ă©tablir une session VPN.
  • Client CIDR range : Une plage d’adresses IP Ă  partir de laquelle attribuer des adresses IP aux clients. Chaque connexion au Client VPN endpoint se voit attribuer une adresse IP unique Ă  partir du client CIDR range. Vous choisissez le client CIDR range, par exemple, 10.2.0.0/16.
  • Client VPN ports : AWS Client VPN prend en charge les ports 443 et 1194 pour TCP et UDP. Le port par dĂ©faut est 443.
  • Client VPN network interfaces : Lorsque vous associez un subnet Ă  votre Client VPN endpoint, nous crĂ©ons des Client VPN network interfaces dans ce subnet. Le trafic envoyĂ© au VPC depuis le Client VPN endpoint est envoyĂ© via une Client VPN network interface. La traduction d’adresse rĂ©seau source (SNAT) est alors appliquĂ©e, oĂč l’adresse IP source provenant du client CIDR range est traduite vers l’adresse IP de la Client VPN network interface.
  • Connection logging : Vous pouvez activer la journalisation des connexions pour votre Client VPN endpoint afin d’enregistrer les Ă©vĂ©nements de connexion. Vous pouvez utiliser ces informations pour effectuer des analyses forensics, analyser comment votre Client VPN endpoint est utilisĂ©, ou dĂ©boguer des problĂšmes de connexion.
  • Self-service portal : Vous pouvez activer un self-service portal pour votre Client VPN endpoint. Les clients peuvent se connecter au portail web avec leurs identifiants et tĂ©lĂ©charger la derniĂšre version du fichier de configuration du Client VPN endpoint, ou la derniĂšre version du client fourni par AWS.

Limitations

  • Les client CIDR ranges ne peuvent pas se chevaucher avec le CIDR local du VPC dans lequel se trouve le subnet associĂ©, ou avec toute route ajoutĂ©e manuellement Ă  la table de routage du Client VPN endpoint.
  • Les client CIDR ranges doivent avoir une taille de bloc d’au moins /22 et ne doivent pas ĂȘtre supĂ©rieurs Ă  /12.
  • Une partie des adresses dans le client CIDR range est utilisĂ©e pour soutenir le modĂšle de disponibilitĂ© du Client VPN endpoint, et ne peut pas ĂȘtre attribuĂ©e aux clients. Par consĂ©quent, nous recommandons d’attribuer un bloc CIDR contenant deux fois le nombre d’adresses IP nĂ©cessaires pour permettre le nombre maximal de connexions simultanĂ©es que vous prĂ©voyez de supporter sur le Client VPN endpoint.
  • Le client CIDR range ne peut pas ĂȘtre modifiĂ© aprĂšs la crĂ©ation du Client VPN endpoint.
  • Les subnets associĂ©s Ă  un Client VPN endpoint doivent ĂȘtre dans le mĂȘme VPC.
  • Vous ne pouvez pas associer plusieurs subnets de la mĂȘme Availability Zone Ă  un Client VPN endpoint.
  • Un Client VPN endpoint ne prend pas en charge les associations de subnets dans un VPC Ă  tenancy dĂ©diĂ©e.
  • Client VPN prend en charge uniquement le trafic IPv4.
  • Client VPN n’est pas conforme aux Federal Information Processing Standards (FIPS).
  • Si l’authentification multi-facteurs (MFA) est dĂ©sactivĂ©e pour votre Active Directory, un mot de passe utilisateur ne peut pas ĂȘtre au format suivant.
SCRV1:<base64_encoded_string>:<base64_encoded_string>
  • Le self-service portal n’est pas disponible pour les clients qui s’authentifient en utilisant mutual authentication.

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks