AWS - VPC & Networking Grundlegende Informationen

Tip

Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Lerne & übe Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstütze HackTricks

AWS Networking im Überblick

Eine VPC enthält einen Netzwerk-CIDR wie 10.0.0.0/16 (mit seiner Routing-Tabelle und network ACL).

Dieses VPC-Netzwerk ist in Subnetze unterteilt, daher ist ein Subnetz direkt mit der VPC, der Routing-Tabelle und der network ACL verknüpft.

Network Interfaces, die an Dienste (z. B. EC2-Instanzen) angehängt sind, sind mit den Subnetzen verbunden und nutzen Security Group(s).

Daher begrenzt eine Security Group die exponierten Ports der Netzwerkschnittstellen, die sie verwenden, unabhängig vom Subnetz. Und eine network ACL begrenzt die exponierten Ports für das gesamte Netzwerk.

Außerdem gibt es einige interessante Konfigurationen, die man prüfen sollte, um auf das Internet zuzugreifen:

  • Ein Subnetz kann automatisch öffentliche IPv4-Adressen zuweisen.
  • Eine Instanz, die in einem Subnetz erstellt wird, das automatisch IPv4-Adressen zuweist, kann eine solche Adresse erhalten.
  • Ein Internet gateway muss an die VPC angehängt werden.
  • Es können auch Egress-only internet gateways verwendet werden.
  • Man kann auch ein NAT gateway in einem privaten Subnetz haben, sodass aus diesem privaten Subnetz heraus eine Verbindung zu externen Diensten möglich ist, es aber nicht möglich ist, von außen darauf zuzugreifen.
  • Das NAT gateway kann öffentlich (Zugriff auf das Internet) oder privat (Zugriff auf andere VPCs) sein.

VPC

Amazon Virtual Private Cloud (Amazon VPC) ermöglicht es Ihnen, AWS-Ressourcen in ein von Ihnen definiertes virtuelles Netzwerk zu starten. Dieses virtuelle Netzwerk hat mehrere Subnetze, Internet Gateways für den Internetzugang, ACLs, Security Groups, IPs…

Subnets

Subnetze helfen, ein höheres Maß an Sicherheit durchzusetzen. Die logische Gruppierung ähnlicher Ressourcen erleichtert auch die Verwaltung Ihrer Infrastruktur.

  • Gültige CIDR sind von einer /16-Netzmaske bis zu einer /28-Netzmaske.
  • Ein Subnetz kann nicht gleichzeitig in verschiedenen Availability Zones liegen.
  • AWS reserviert die ersten drei Host-IP-Adressen jedes Subnetzes für interne AWS-Nutzung: Die erste Host-Adresse wird vom VPC-Router verwendet. Die zweite Adresse ist für AWS DNS reserviert und die dritte Adresse ist für die zukünftige Nutzung reserviert.
  • Subnetze, die direkten Zugriff auf das Internet haben, werden als public subnets bezeichnet, während private Subnetze dies nicht tun.

Route Tables

Route Tables bestimmen die Routing-Entscheidungen für ein Subnetz innerhalb einer VPC. Sie legen fest, welcher Netzwerkverkehr an das Internet oder eine VPN-Verbindung weitergeleitet wird. Üblicherweise findet man Routen zu:

  • Lokales VPC
  • NAT
  • Internet Gateways / Egress-only Internet Gateways (benötigt, um einer VPC Zugriff auf das Internet zu geben).
  • Um ein Subnetz öffentlich zu machen, müssen Sie ein Internet gateway erstellen und an Ihre VPC anhängen.
  • VPC Endpoints (um z. B. S3 aus privaten Netzwerken zu erreichen)

ACLs

Network Access Control Lists (ACLs): Network ACLs sind Firewall-Regeln, die eingehenden und ausgehenden Netzwerkverkehr zu einem Subnetz kontrollieren. Sie können verwendet werden, um Verkehr zu bestimmten IP-Adressen oder -Bereichen zu erlauben oder zu blockieren.

  • Am häufigsten wird der Zugriff mit Security Groups erlaubt/abgelehnt, aber ACLs sind die einzige Möglichkeit, bereits etablierte Reverse Shells vollständig zu unterbrechen. Eine geänderte Regel in einer Security Group stoppt bereits etablierte Verbindungen nicht.
  • Allerdings gilt dies für das gesamte Subnetz; seien Sie vorsichtig beim Sperren, da dadurch benötigte Funktionalität gestört werden könnte.

Security Groups

Security Groups sind eine virtuelle Firewall, die den eingehenden und ausgehenden Netzwerkverkehr zu Instanzen in einer VPC kontrolliert. Verhältnis 1 SG zu mehreren Instanzen (normalerweise 1 zu 1).
Üblicherweise werden damit gefährliche Ports in Instanzen geöffnet, wie zum Beispiel Port 22:

Elastic IP Addresses

Eine Elastic IP address ist eine statische IPv4-Adresse, die für dynamisches Cloud-Computing vorgesehen ist. Eine Elastic IP-Adresse wird Ihrem AWS-Konto zugewiesen und gehört Ihnen, bis Sie sie freigeben. Durch die Verwendung einer Elastic IP-Adresse können Sie das Versagen einer Instanz oder Software kaschieren, indem Sie die Adresse schnell einer anderen Instanz in Ihrem Konto zuordnen.

Verbindung zwischen Subnetzen

Standardmäßig ist die automatische Zuweisung öffentlicher IP-Adressen für alle Subnetze deaktiviert, kann aber aktiviert werden.

Eine lokale Route innerhalb einer Route Table ermöglicht die Kommunikation zwischen VPC-Subnetzen.

Wenn Sie ein Subnetz mit einem anderen Subnetz verbinden, können Sie nicht automatisch auf die Subnetze zugreifen, die mit dem anderen Subnetz verbunden sind; Sie müssen direkte Verbindungen zu ihnen erstellen. Dies gilt auch für Internet Gateways. Sie können nicht über eine Subnetz-Verbindung auf das Internet zugreifen; das Internet Gateway muss Ihrem Subnetz zugewiesen werden.

VPC Peering

VPC Peering ermöglicht es Ihnen, zwei oder mehr VPCs miteinander zu verbinden, unter Verwendung von IPv4 oder IPv6, als wären sie Teil desselben Netzwerks.

Sobald die Peering-Verbindung hergestellt ist, können Ressourcen in einer VPC auf Ressourcen in der anderen zugreifen. Die Konnektivität zwischen den VPCs wird über die vorhandene AWS-Netzwerkinfrastruktur implementiert und ist daher hochverfügbar ohne Bandbreitenengpässe. Da peered connections so agieren, als wären sie Teil desselben Netzwerks, gibt es Einschränkungen bei den verwendbaren CIDR-Blockbereichen.
Wenn Sie überlappende oder gleiche CIDR-Bereiche für Ihre VPCs haben, können Sie die VPCs nicht peeren.
Jede AWS VPC kommuniziert nur mit ihrem Peer. Zum Beispiel: Wenn Sie eine Peering-Verbindung zwischen VPC 1 und VPC 2 haben und eine weitere Verbindung zwischen VPC 2 und VPC 3 wie gezeigt, dann könnten VPC 1 und VPC 2 direkt miteinander kommunizieren, ebenso VPC 2 und VPC 3; VPC 1 und VPC 3 könnten jedoch nicht kommunizieren. Sie können nicht durch eine VPC routen, um zu einer anderen zu gelangen.

VPC Flow Logs

Innerhalb Ihrer VPC könnten Hunderte oder Tausende von Ressourcen sein, die zwischen verschiedenen Subnetzen (öffentlich und privat) und auch zwischen verschiedenen VPCs über VPC Peering-Verbindungen kommunizieren. VPC Flow Logs ermöglichen es Ihnen, IP-Verkehrsinformationen zu erfassen, die zwischen den Network Interfaces Ihrer Ressourcen innerhalb Ihrer VPC fließen.

Im Gegensatz zu S3 Access Logs und CloudFront Access Logs werden die durch VPC Flow Logs erzeugten Logdaten nicht in S3 gespeichert. Stattdessen werden die erfassten Logdaten an CloudWatch Logs gesendet.

Einschränkungen:

  • Wenn Sie eine VPC Peering-Verbindung betreiben, können Sie nur Flow Logs von gepeerten VPCs sehen, die sich im selben Account befinden.
  • Wenn Sie Ressourcen im EC2-Classic-Umfeld betreiben, können Sie leider keine Informationen von deren Schnittstellen abrufen.
  • Sobald ein VPC Flow Log erstellt wurde, kann es nicht geändert werden. Um die VPC Flow Log-Konfiguration zu ändern, müssen Sie es löschen und neu erstellen.
  • Folgender Verkehr wird nicht von den Logs überwacht oder erfasst: DHCP-Verkehr innerhalb der VPC, Verkehr von Instanzen, der für den Amazon DNS-Server bestimmt ist.
  • Jeglicher Verkehr, der an die IP-Adresse des VPC-Standardrouters gerichtet ist, sowie Verkehr zu und von den folgenden Adressen: 169.254.169.254 (wird zur Abfrage von Instance-Metadaten verwendet) und 169.254.169.123 (wird für den Amazon Time Sync Service verwendet).
  • Verkehr im Zusammenhang mit einer Amazon Windows-Aktivierungslizenz von einer Windows-Instanz.
  • Verkehr zwischen einer Network Load Balancer-Schnittstelle und einer Endpoint Network Interface.

Für jede Network Interface, die Daten an die CloudWatch-Loggruppe veröffentlicht, wird ein eigener Log Stream verwendet. Innerhalb jedes dieser Streams befinden sich die Flow Log-Event-Daten, die den Inhalt der Logeinträge zeigen. Jeder dieser Logs erfasst Daten in einem Zeitfenster von ungefähr 10 bis 15 Minuten.

VPN

Grundlegende AWS VPN-Komponenten

  1. Customer Gateway:
  • Ein Customer Gateway ist eine Ressource, die Sie in AWS erstellen, um Ihre Seite einer VPN-Verbindung darzustellen.
  • Es ist im Wesentlichen ein physisches Gerät oder eine Software-Anwendung auf Ihrer Seite der Site-to-Site VPN-Verbindung.
  • Sie geben Routing-Informationen und die öffentliche IP-Adresse Ihres Netzwerkgeräts (z. B. eines Routers oder einer Firewall) an AWS an, um ein Customer Gateway zu erstellen.
  • Es dient als Referenzpunkt für das Einrichten der VPN-Verbindung und verursacht keine zusätzlichen Gebühren.
  1. Virtual Private Gateway:
  • Ein Virtual Private Gateway (VPG) ist der VPN-Konzentrator auf der Amazon-Seite der Site-to-Site VPN-Verbindung.
  • Es ist an Ihre VPC angehängt und dient als Ziel für Ihre VPN-Verbindung.
  • VPG ist der AWS-seitige Endpunkt der VPN-Verbindung.
  • Es übernimmt die sichere Kommunikation zwischen Ihrer VPC und Ihrem On-Premises-Netzwerk.
  1. Site-to-Site VPN Connection:
  • Eine Site-to-Site VPN-Verbindung verbindet Ihr On-Premises-Netzwerk mit einer VPC über einen sicheren IPsec-VPN-Tunnel.
  • Diese Art der Verbindung erfordert ein Customer Gateway und ein Virtual Private Gateway.
  • Sie wird für sichere, stabile und konsistente Kommunikation zwischen Ihrem Rechenzentrum oder Netzwerk und Ihrer AWS-Umgebung verwendet.
  • Typischerweise für regelmäßige, langfristige Verbindungen verwendet und nach der über die Verbindung übertragenen Datenmenge abgerechnet.
  1. Client VPN Endpoint:
  • Ein Client VPN Endpoint ist eine Ressource, die Sie in AWS erstellen, um Client-VPN-Sitzungen zu ermöglichen und zu verwalten.
  • Sie wird verwendet, um einzelnen Geräten (wie Laptops, Smartphones usw.) den sicheren Zugriff auf AWS-Ressourcen oder Ihr On-Premises-Netzwerk zu ermöglichen.
  • Sie unterscheidet sich vom Site-to-Site VPN, da sie für einzelne Clients und nicht für die Verbindung ganzer Netzwerke ausgelegt ist.
  • Bei Client VPN verwendet jedes Client-Gerät eine VPN-Client-Software, um eine sichere Verbindung herzustellen.

Site-to-Site VPN

Verbinden Sie Ihr On-Premises-Netzwerk mit Ihrer VPC.

  • VPN connection: Eine sichere Verbindung zwischen Ihrer On-Premises-Ausrüstung und Ihren VPCs.
  • VPN tunnel: Eine verschlüsselte Verbindung, über die Daten vom Kundennetzwerk zu oder von AWS übertragen werden können.

Jede VPN-Verbindung beinhaltet zwei VPN-Tunnel, die Sie gleichzeitig für hohe Verfügbarkeit nutzen können.

  • Customer gateway: Eine AWS-Ressource, die AWS Informationen über Ihr Customer Gateway-Gerät bereitstellt.
  • Customer gateway device: Ein physisches Gerät oder eine Software-Anwendung auf Ihrer Seite der Site-to-Site VPN-Verbindung.
  • Virtual private gateway: Der VPN-Konzentrator auf der Amazon-Seite der Site-to-Site VPN-Verbindung. Sie verwenden ein Virtual Private Gateway oder ein Transit Gateway als Gateway für die Amazon-Seite der Site-to-Site VPN-Verbindung.
  • Transit gateway: Ein Transit-Hub, der verwendet werden kann, um Ihre VPCs und On-Premises-Netzwerke zu verbinden. Sie verwenden ein Transit Gateway oder Virtual Private Gateway als Gateway für die Amazon-Seite der Site-to-Site VPN-Verbindung.

Einschränkungen

  • IPv6-Verkehr wird für VPN-Verbindungen an einem Virtual Private Gateway nicht unterstützt.
  • Eine AWS VPN-Verbindung unterstützt kein Path MTU Discovery.

Berücksichtigen Sie außerdem Folgendes bei der Verwendung von Site-to-Site VPN.

  • Wenn Sie Ihre VPCs mit einem gemeinsamen On-Premises-Netzwerk verbinden, empfehlen wir die Verwendung nicht überlappender CIDR-Blöcke für Ihre Netzwerke.

Client VPN

Verbinden Sie sich von Ihrem Gerät mit Ihrer VPC

Konzepte

  • Client VPN endpoint: Die Ressource, die Sie erstellen und konfigurieren, um Client-VPN-Sitzungen zu ermöglichen und zu verwalten. Dies ist die Ressource, an der alle Client-VPN-Sitzungen terminiert werden.
  • Target network: Ein Target Network ist das Netzwerk, das Sie mit einem Client VPN Endpoint assoziieren. Ein Subnetz aus einer VPC ist ein Target Network. Die Zuordnung eines Subnetzes zu einem Client VPN Endpoint ermöglicht es Ihnen, VPN-Sitzungen herzustellen. Sie können mehrere Subnetze einem Client VPN Endpoint zuordnen, um hohe Verfügbarkeit zu erreichen. Alle Subnetze müssen aus derselben VPC stammen. Jedes Subnetz muss zu einer anderen Availability Zone gehören.
  • Route: Jeder Client VPN Endpoint hat eine Route Table, die die verfügbaren Zielnetzwerkrouten beschreibt. Jede Route in der Route Table gibt den Pfad für Verkehr zu bestimmten Ressourcen oder Netzwerken an.
  • Authorization rules: Eine Authorization Rule beschränkt die Benutzer, die auf ein Netzwerk zugreifen können. Für ein angegebenes Netzwerk konfigurieren Sie die Active Directory- oder Identity Provider (IdP)-Gruppe, die Zugriff hat. Nur Benutzer, die dieser Gruppe angehören, können auf das angegebene Netzwerk zugreifen. Standardmäßig gibt es keine Authorization Rules und Sie müssen Authorization Rules konfigurieren, damit Benutzer auf Ressourcen und Netzwerke zugreifen können.
  • Client: Der Endbenutzer, der sich mit dem Client VPN Endpoint verbindet, um eine VPN-Sitzung herzustellen. Endbenutzer müssen einen OpenVPN-Client herunterladen und die Client VPN Konfigurationsdatei verwenden, die Sie erstellt haben, um eine VPN-Sitzung herzustellen.
  • Client CIDR range: Ein IP-Adressbereich, aus dem Client-IP-Adressen zugewiesen werden. Jede Verbindung zum Client VPN Endpoint erhält eine eindeutige IP-Adresse aus dem Client CIDR Range. Sie wählen den Client CIDR Range, z. B. 10.2.0.0/16.
  • Client VPN ports: AWS Client VPN unterstützt die Ports 443 und 1194 für sowohl TCP als auch UDP. Standardmäßig ist Port 443.
  • Client VPN network interfaces: Wenn Sie ein Subnetz mit Ihrem Client VPN Endpoint assoziieren, erstellt AWS Client VPN network interfaces in diesem Subnetz. Verkehr, der vom Client VPN Endpoint an die VPC gesendet wird, wird über ein Client VPN network interface geleitet. Es wird Source Network Address Translation (SNAT) angewendet, wobei die Quell-IP-Adresse aus dem Client CIDR Range auf die IP-Adresse des Client VPN network interface übersetzt wird.
  • Connection logging: Sie können Connection Logging für Ihren Client VPN Endpoint aktivieren, um Verbindungsereignisse zu protokollieren. Sie können diese Informationen für forensische Analysen, zur Analyse der Nutzung Ihres Client VPN Endpoints oder zur Fehlerbehebung bei Verbindungsproblemen verwenden.
  • Self-service portal: Sie können ein Self-Service-Portal für Ihren Client VPN Endpoint aktivieren. Clients können sich mit ihren Anmeldedaten in das webbasierte Portal einloggen und die neueste Version der Client VPN Endpoint-Konfigurationsdatei oder die neueste Version des von AWS bereitgestellten Clients herunterladen.

Einschränkungen

  • Client CIDR ranges dürfen sich nicht mit dem lokalen CIDR der VPC, in der das assoziierte Subnetz liegt, oder mit Routen, die manuell zur Route Table des Client VPN Endpoints hinzugefügt wurden, überlappen.
  • Client CIDR Ranges müssen eine Blockgröße von mindestens /22 haben und dürfen nicht größer als /12 sein.
  • Ein Teil der Adressen im Client CIDR Range wird verwendet, um das Verfügbarkeitsmodell des Client VPN Endpoints zu unterstützen, und kann nicht an Clients zugewiesen werden. Daher empfehlen wir, einen CIDR-Block zuzuweisen, der die doppelte Anzahl der IP-Adressen enthält, die erforderlich sind, um die maximale Anzahl gleichzeitiger Verbindungen zu ermöglichen, die Sie unterstützen möchten.
  • Der Client CIDR Range kann nach Erstellung des Client VPN Endpoints nicht geändert werden.
  • Die Subnetze, die mit einem Client VPN Endpoint assoziiert sind, müssen sich in derselben VPC befinden.
  • Sie können nicht mehrere Subnetze aus derselben Availability Zone mit einem Client VPN Endpoint assoziieren.
  • Ein Client VPN Endpoint unterstützt keine Subnetz-Assoziationen in einer VPC mit dedizierter Tenancy.
  • Client VPN unterstützt nur IPv4-Verkehr.
  • Client VPN ist nicht Federal Information Processing Standards (FIPS) konform.
  • Wenn die Multi-Factor Authentication (MFA) für Ihr Active Directory deaktiviert ist, darf ein Benutzerpasswort nicht im folgenden Format vorliegen:
SCRV1:<base64_encoded_string>:<base64_encoded_string>
  • Das Self-Service-Portal ist nicht verfügbar für Clients, die sich mit gegenseitiger Authentifizierung (mutual authentication) authentifizieren.

Tip

Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Lerne & übe Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstütze HackTricks