Az - Azure Network

Reading time: 18 minutes

tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks

Grundinformationen

Azure bietet virtuelle Netzwerke (VNet), die es Benutzern ermöglichen, isolierte Netzwerke innerhalb der Azure-Cloud zu erstellen. Innerhalb dieser VNets können Ressourcen wie virtuelle Maschinen, Anwendungen, Datenbanken... sicher gehostet und verwaltet werden. Das Netzwerk in Azure unterstützt sowohl die Kommunikation innerhalb der Cloud (zwischen Azure-Diensten) als auch die Verbindung zu externen Netzwerken und dem Internet.
Darüber hinaus ist es möglich, VNets mit anderen VNets und mit lokalen Netzwerken zu verbinden.

Virtuelles Netzwerk (VNET) & Subnetze

Ein Azure Virtual Network (VNet) ist eine Darstellung Ihres eigenen Netzwerks in der Cloud, das logische Isolation innerhalb der Azure-Umgebung bietet, die Ihrer Abonnements zugeordnet ist. VNets ermöglichen es Ihnen, virtuelle private Netzwerke (VPNs) in Azure bereitzustellen und zu verwalten, die Ressourcen wie virtuelle Maschinen (VMs), Datenbanken und Anwendungsdienste hosten. Sie bieten vollständige Kontrolle über Netzwerkeinstellungen, einschließlich IP-Adressbereiche, Erstellung von Subnetzen, Routentabellen und Netzwerk-Gateways.

Subnetze sind Unterteilungen innerhalb eines VNet, die durch spezifische IP-Adressbereiche definiert sind. Durch die Segmentierung eines VNet in mehrere Subnetze können Sie Ressourcen gemäß Ihrer Netzwerkarchitektur organisieren und sichern.
Standardmäßig können alle Subnetze innerhalb des gleichen Azure Virtual Network (VNet) miteinander kommunizieren, ohne Einschränkungen.

Beispiel:

  • MyVNet mit einem IP-Adressbereich von 10.0.0.0/16.
  • Subnetz-1: 10.0.0.0/24 für Webserver.
  • Subnetz-2: 10.0.1.0/24 für Datenbankserver.

Aufzählung

Um alle VNets und Subnetze in einem Azure-Konto aufzulisten, können Sie die Azure Command-Line Interface (CLI) verwenden. Hier sind die Schritte:

bash
# List VNets
az network vnet list --query "[].{name:name, location:location, addressSpace:addressSpace}"

# List subnets of a VNet
az network vnet subnet list --resource-group <ResourceGroupName> --vnet-name <VNetName> --query "[].{name:name, addressPrefix:addressPrefix}" -o table

Netzwerk-Sicherheitsgruppen (NSG)

Eine Netzwerk-Sicherheitsgruppe (NSG) filtert den Netzwerkverkehr sowohl zu als auch von Azure-Ressourcen innerhalb eines Azure Virtual Network (VNet). Sie enthält eine Reihe von Sicherheitsregeln, die angeben können, welche Ports für eingehenden und ausgehenden Verkehr geöffnet werden sollen nach Quellport, Quell-IP, Zielport, und es ist möglich, eine Priorität zuzuweisen (je niedriger die Prioritätsnummer, desto höher die Priorität).

NSGs können mit Subnetzen und NICs verknüpft werden.

Beispielregeln:

  • Eine eingehende Regel, die HTTP-Verkehr (Port 80) von jeder Quelle zu Ihren Webservern erlaubt.
  • Eine ausgehende Regel, die nur SQL-Verkehr (Port 1433) zu einem bestimmten Ziel-IP-Adressbereich erlaubt.

Aufzählung

bash
# List NSGs
az network nsg list --query "[].{name:name, location:location}" -o table
az network nsg show --name <nsg-name>

# Get NSG rules
az network nsg rule list --nsg-name <NSGName> --resource-group <ResourceGroupName> --query "[].{name:name, priority:priority, direction:direction, access:access, protocol:protocol, sourceAddressPrefix:sourceAddressPrefix, destinationAddressPrefix:destinationAddressPrefix, sourcePortRange:sourcePortRange, destinationPortRange:destinationPortRange}" -o table

# Get NICs and subnets using this NSG
az network nsg show --name MyLowCostVM-nsg --resource-group Resource_Group_1 --query "{subnets: subnets, networkInterfaces: networkInterfaces}"

Azure Firewall

Azure Firewall ist ein verwalteter Netzwerk-Sicherheitsdienst in Azure, der Cloud-Ressourcen schützt, indem er den Datenverkehr inspiziert und kontrolliert. Es handelt sich um eine zustandsbehaftete Firewall, die den Datenverkehr basierend auf Regeln für die Schichten 3 bis 7 filtert und die Kommunikation sowohl innerhalb von Azure (East-West-Datenverkehr) als auch zu/von externen Netzwerken (North-South-Datenverkehr) unterstützt. Bereitgestellt auf der Virtual Network (VNet)-Ebene bietet es zentralisierten Schutz für alle Subnetze im VNet. Azure Firewall skaliert automatisch, um den Anforderungen des Datenverkehrs gerecht zu werden, und gewährleistet hohe Verfügbarkeit, ohne dass eine manuelle Einrichtung erforderlich ist.

Es ist in drei SKUs verfügbar—Basic, Standard und Premium, die jeweils auf spezifische Kundenbedürfnisse zugeschnitten sind:

Kriterien/FunktionOption 1Option 2Option 3
Empfohlener AnwendungsfallKleine/Mittlere Unternehmen (KMUs) mit begrenztem BedarfAllgemeine Unternehmensnutzung, Layer 3–7 FilteringHochsensible Umgebungen (z. B. Zahlungsabwicklung)
LeistungBis zu 250 Mbps DurchsatzBis zu 30 Gbps DurchsatzBis zu 100 Gbps Durchsatz
BedrohungsintelligenzNur WarnungenWarnungen und Blockierung (bösartige IPs/Domains)Warnungen und Blockierung (erweiterte Bedrohungsintelligenz)
L3–L7 FilteringBasisfilterungZustandsbehaftete Filterung über ProtokolleZustandsbehaftete Filterung mit erweiterter Inspektion
Erweiterter BedrohungsschutzNicht verfügbarBedrohungsintelligenz-basiertes FilternBeinhaltet Intrusion Detection and Prevention System (IDPS)
TLS-InspektionNicht verfügbarNicht verfügbarUnterstützt eingehende/ausgehende TLS-Terminierung
VerfügbarkeitFester Backend (2 VMs)AutoskalierungAutoskalierung
VerwaltungsaufwandGrundlegende SteuerungVerwaltet über Firewall ManagerVerwaltet über Firewall Manager

Enumeration

bash
# List Azure Firewalls
az network firewall list --query "[].{name:name, location:location, subnet:subnet, publicIp:publicIp}" -o table

# Get network rules of a firewall
az network firewall network-rule collection list --firewall-name <FirewallName> --resource-group <ResourceGroupName> --query "[].{name:name, rules:rules}" -o table

# Get application rules of a firewall
az network firewall application-rule collection list --firewall-name <FirewallName> --resource-group <ResourceGroupName> --query "[].{name:name, rules:rules}" -o table

# Get nat rules of a firewall
az network firewall nat-rule collection list --firewall-name <FirewallName> --resource-group <ResourceGroupName> --query "[].{name:name, rules:rules}" -o table

Azure-Routing-Tabellen

Azure Routing-Tabellen werden verwendet, um das Routing des Netzwerkverkehrs innerhalb eines Subnetzes zu steuern. Sie definieren Regeln, die angeben, wie Pakete weitergeleitet werden sollen, entweder zu Azure-Ressourcen, dem Internet oder einem bestimmten nächsten Hop wie einem Virtual Appliance oder Azure Firewall. Sie können eine Routing-Tabelle mit einem Subnetz verknüpfen, und alle Ressourcen innerhalb dieses Subnetzes folgen den Routen in der Tabelle.

Beispiel: Wenn ein Subnetz Ressourcen hostet, die ausgehenden Verkehr über eine Network Virtual Appliance (NVA) zur Inspektion routen müssen, können Sie eine Route in einer Routing-Tabelle erstellen, um den gesamten Verkehr (z. B. 0.0.0.0/0) an die private IP-Adresse der NVA als nächsten Hop umzuleiten.

Enumeration

bash
# List Route Tables
az network route-table list --query "[].{name:name, resourceGroup:resourceGroup, location:location}" -o table

# List routes for a table
az network route-table route list --route-table-name <RouteTableName> --resource-group <ResourceGroupName> --query "[].{name:name, addressPrefix:addressPrefix, nextHopType:nextHopType, nextHopIpAddress:nextHopIpAddress}" -o table

Azure Private Link ist ein Dienst in Azure, der privaten Zugriff auf Azure-Dienste ermöglicht, indem sichergestellt wird, dass der Datenverkehr zwischen Ihrem Azure Virtual Network (VNet) und dem Dienst vollständig innerhalb des Backbone-Netzwerks von Microsoft Azure verläuft. Es bringt den Dienst effektiv in Ihr VNet. Diese Konfiguration verbessert die Sicherheit, indem die Daten nicht dem öffentlichen Internet ausgesetzt werden.

Private Link kann mit verschiedenen Azure-Diensten verwendet werden, wie Azure Storage, Azure SQL Database und benutzerdefinierten Diensten, die über Private Link geteilt werden. Es bietet eine sichere Möglichkeit, Dienste aus Ihrem eigenen VNet oder sogar aus verschiedenen Azure-Abonnements zu konsumieren.

caution

NSGs gelten nicht für private Endpunkte, was eindeutig bedeutet, dass die Zuordnung eines NSG zu einem Subnetz, das den Private Link enthält, keine Auswirkungen hat.

Beispiel:

Betrachten Sie ein Szenario, in dem Sie eine Azure SQL-Datenbank haben, auf die Sie sicher von Ihrem VNet aus zugreifen möchten. Normalerweise könnte dies den Zugriff über das öffentliche Internet erfordern. Mit Private Link können Sie einen privaten Endpunkt in Ihrem VNet erstellen, der direkt mit dem Azure SQL-Datenbankdienst verbunden ist. Dieser Endpunkt lässt die Datenbank so erscheinen, als wäre sie Teil Ihres eigenen VNet, zugänglich über eine private IP-Adresse, wodurch ein sicherer und privater Zugriff gewährleistet wird.

Enumeration

bash
# List Private Link Services
az network private-link-service list --query "[].{name:name, location:location, resourceGroup:resourceGroup}" -o table

# List Private Endpoints
az network private-endpoint list --query "[].{name:name, location:location, resourceGroup:resourceGroup, privateLinkServiceConnections:privateLinkServiceConnections}" -o table

Azure Service Endpoints

Azure Service Endpoints erweitern den privaten Adressraum Ihres virtuellen Netzwerks und die Identität Ihres VNet zu Azure-Diensten über eine direkte Verbindung. Durch die Aktivierung von Service-Endpunkten können Ressourcen in Ihrem VNet sicher mit Azure-Diensten verbinden, wie Azure Storage und Azure SQL Database, unter Verwendung des Backbone-Netzwerks von Azure. Dies stellt sicher, dass der Verkehr vom VNet zum Azure-Dienst innerhalb des Azure-Netzwerks bleibt, was einen sichereren und zuverlässigeren Pfad bietet.

Beispiel:

Ein Azure Storage-Konto ist standardmäßig über das öffentliche Internet zugänglich. Durch die Aktivierung eines Service-Endpunkts für Azure Storage innerhalb Ihres VNet können Sie sicherstellen, dass nur der Verkehr von Ihrem VNet auf das Speicherkonto zugreifen kann. Die Firewall des Speicherkontos kann dann so konfiguriert werden, dass sie nur Verkehr von Ihrem VNet akzeptiert.

Enumeration

bash
# List Virtual Networks with Service Endpoints
az network vnet list --query "[].{name:name, location:location, serviceEndpoints:serviceEndpoints}" -o table

# List Subnets with Service Endpoints
az network vnet subnet list --resource-group <ResourceGroupName> --vnet-name <VNetName> --query "[].{name:name, serviceEndpoints:serviceEndpoints}" -o table

Microsoft empfiehlt die Verwendung von privaten Links in den docs:

Service-Endpunkte:

  • Der Datenverkehr von Ihrem VNet zum Azure-Dienst verläuft über das Microsoft Azure Backbone-Netzwerk und umgeht das öffentliche Internet.
  • Der Endpunkt ist eine direkte Verbindung zum Azure-Dienst und bietet keine private IP für den Dienst innerhalb des VNet.
  • Der Dienst selbst ist weiterhin über seinen öffentlichen Endpunkt von außerhalb Ihres VNet zugänglich, es sei denn, Sie konfigurieren die Dienstfirewall, um solchen Datenverkehr zu blockieren.
  • Es besteht eine Eins-zu-eins-Beziehung zwischen dem Subnetz und dem Azure-Dienst.
  • Günstiger als private Links.

Private Links:

  • Private Link ordnet Azure-Dienste über einen privaten Endpunkt in Ihr VNet zu, der eine Netzwerkschnittstelle mit einer privaten IP-Adresse innerhalb Ihres VNet ist.
  • Der Azure-Dienst wird über diese private IP-Adresse aufgerufen, wodurch er wie ein Teil Ihres Netzwerks erscheint.
  • Dienste, die über Private Link verbunden sind, können nur von Ihrem VNet oder verbundenen Netzwerken aus aufgerufen werden; es gibt keinen öffentlichen Internetzugang zu dem Dienst.
  • Es ermöglicht eine sichere Verbindung zu Azure-Diensten oder Ihren eigenen in Azure gehosteten Diensten sowie eine Verbindung zu von anderen geteilten Diensten.
  • Es bietet eine granularere Zugriffskontrolle über einen privaten Endpunkt in Ihrem VNet, im Gegensatz zu einer breiteren Zugriffskontrolle auf Subnetzebene mit Service-Endpunkten.

Zusammenfassend lässt sich sagen, dass sowohl Service-Endpunkte als auch private Links eine sichere Konnektivität zu Azure-Diensten bieten, aber private Links ein höheres Maß an Isolation und Sicherheit bieten, indem sie sicherstellen, dass Dienste privat ohne Exposition gegenüber dem öffentlichen Internet aufgerufen werden. Service-Endpunkte hingegen sind einfacher einzurichten für allgemeine Fälle, in denen ein einfacher, sicherer Zugriff auf Azure-Dienste erforderlich ist, ohne dass eine private IP im VNet benötigt wird.

Azure Front Door (AFD) & AFD WAF

Azure Front Door ist ein skalierbarer und sicherer Einstiegspunkt für die schnelle Bereitstellung Ihrer globalen Webanwendungen. Es kombiniert verschiedene Dienste wie globale Lastverteilung, Standortbeschleunigung, SSL-Offloading und Web Application Firewall (WAF)-Funktionen in einem einzigen Dienst. Azure Front Door bietet intelligentes Routing basierend auf dem nächsten Edge-Standort zum Benutzer, um optimale Leistung und Zuverlässigkeit zu gewährleisten. Darüber hinaus bietet es URL-basiertes Routing, Hosting mehrerer Standorte, Sitzungsaffinität und Sicherheit auf Anwendungsebene.

Azure Front Door WAF ist darauf ausgelegt, Webanwendungen vor web-basierten Angriffen zu schützen, ohne dass Änderungen am Backend-Code erforderlich sind. Es umfasst benutzerdefinierte Regeln und verwaltete Regelsets, um vor Bedrohungen wie SQL-Injection, Cross-Site-Scripting und anderen gängigen Angriffen zu schützen.

Beispiel:

Stellen Sie sich vor, Sie haben eine global verteilte Anwendung mit Benutzern auf der ganzen Welt. Sie können Azure Front Door verwenden, um Benutzeranfragen an das nächstgelegene regionale Rechenzentrum weiterzuleiten, das Ihre Anwendung hostet, wodurch die Latenz verringert, die Benutzererfahrung verbessert und es vor Webangriffen mit den WAF-Funktionen geschützt wird. Wenn eine bestimmte Region Ausfallzeiten hat, kann Azure Front Door den Datenverkehr automatisch an den nächstbesten Standort umleiten, um eine hohe Verfügbarkeit sicherzustellen.

Aufzählung

bash
# List Azure Front Door Instances
az network front-door list --query "[].{name:name, resourceGroup:resourceGroup, location:location}" -o table

# List Front Door WAF Policies
az network front-door waf-policy list --query "[].{name:name, resourceGroup:resourceGroup, location:location}" -o table

Azure Application Gateway und Azure Application Gateway WAF

Azure Application Gateway ist ein Web-Traffic-Lastenausgleich-Dienst, der es Ihnen ermöglicht, den Traffic zu Ihren Web-Anwendungen zu verwalten. Es bietet Layer 7 Lastenausgleich, SSL-Terminierung und Webanwendungsfirewall (WAF) Funktionen im Application Delivery Controller (ADC) als Dienst. Zu den Hauptfunktionen gehören URL-basiertes Routing, cookie-basiertes Sitzungsaffinität und SSL-Offloading, die für Anwendungen, die komplexe Lastenausgleichsfunktionen wie globales Routing und pfadbasiertes Routing erfordern, entscheidend sind.

Beispiel:

Betrachten Sie ein Szenario, in dem Sie eine E-Commerce-Website haben, die mehrere Subdomains für verschiedene Funktionen umfasst, wie z.B. Benutzerkonten und Zahlungsabwicklung. Azure Application Gateway kann Traffic basierend auf dem URL-Pfad an die entsprechenden Webserver weiterleiten. Zum Beispiel könnte der Traffic zu example.com/accounts an den Dienst für Benutzerkonten geleitet werden, und der Traffic zu example.com/pay könnte an den Zahlungsabwicklungsdienst geleitet werden.
Und schützen Sie Ihre Website vor Angriffen mit den WAF-Funktionen.

Enumeration

bash
# List the Web Application Firewall configurations for your Application Gateways
az network application-gateway waf-config list --gateway-name <AppGatewayName> --resource-group <ResourceGroupName> --query "[].{name:name, firewallMode:firewallMode, ruleSetType:ruleSetType, ruleSetVersion:ruleSetVersion}" -o table

Azure Hub, Spoke & VNet Peering

VNet Peering ist eine Netzwerkfunktion in Azure, die es ermöglicht, verschiedene Virtuelle Netzwerke (VNets) direkt und nahtlos zu verbinden. Durch VNet Peering können Ressourcen in einem VNet mit Ressourcen in einem anderen VNet über private IP-Adressen kommunizieren, als ob sie im selben Netzwerk wären.
VNet Peering kann auch mit On-Premise-Netzwerken verwendet werden, indem ein Site-to-Site-VPN oder Azure ExpressRoute eingerichtet wird.

Azure Hub und Spoke ist eine Netzwerk-Topologie, die in Azure verwendet wird, um den Netzwerkverkehr zu verwalten und zu organisieren. Der "Hub" ist ein zentraler Punkt, der den Verkehr zwischen verschiedenen "Spokes" steuert und leitet. Der Hub enthält typischerweise gemeinsame Dienste wie Netzwerkvirtualgeräte (NVAs), Azure VPN Gateway, Azure Firewall oder Azure Bastion. Die "Spokes" sind VNets, die Workloads hosten und über VNet Peering mit dem Hub verbunden sind, wodurch sie die gemeinsamen Dienste im Hub nutzen können. Dieses Modell fördert eine saubere Netzwerkstruktur und reduziert die Komplexität, indem es gemeinsame Dienste zentralisiert, die von mehreren Workloads in verschiedenen VNets genutzt werden können.

[!CAUTION] > VNET-Peering ist in Azure nicht transitiv, was bedeutet, dass, wenn Spoke 1 mit Spoke 2 verbunden ist und Spoke 2 mit Spoke 3 verbunden ist, Spoke 1 nicht direkt mit Spoke 3 kommunizieren kann.

Beispiel:

Stellen Sie sich ein Unternehmen mit separaten Abteilungen wie Vertrieb, Personalwesen und Entwicklung vor, die jeweils ihr eigenes VNet (die Spokes) haben. Diese VNets benötigen Zugriff auf gemeinsame Ressourcen wie eine zentrale Datenbank, eine Firewall und ein Internet-Gateway, die sich alle in einem anderen VNet (dem Hub) befinden. Durch die Verwendung des Hub- und Spoke-Modells kann jede Abteilung sicher auf die gemeinsamen Ressourcen über das Hub-VNet zugreifen, ohne diese Ressourcen dem öffentlichen Internet auszusetzen oder eine komplexe Netzwerkstruktur mit zahlreichen Verbindungen zu schaffen.

Enumeration

bash
# List all VNets in your subscription
az network vnet list --query "[].{name:name, location:location, addressSpace:addressSpace}" -o table

# List VNet peering connections for a given VNet
az network vnet peering list --resource-group <ResourceGroupName> --vnet-name <VNetName> --query "[].{name:name, peeringState:peeringState, remoteVnetId:remoteVnetId}" -o table

# List Shared Resources (e.g., Azure Firewall) in the Hub
az network firewall list --query "[].{name:name, location:location, resourceGroup:resourceGroup}" -o table

Site-to-Site VPN

Ein Site-to-Site VPN in Azure ermöglicht es Ihnen, Ihr lokales Netzwerk mit Ihrem Azure Virtual Network (VNet) zu verbinden, sodass Ressourcen wie VMs innerhalb von Azure so erscheinen, als wären sie in Ihrem lokalen Netzwerk. Diese Verbindung wird über ein VPN-Gateway hergestellt, das den Datenverkehr zwischen den beiden Netzwerken verschlüsselt.

Beispiel:

Ein Unternehmen mit seinem Hauptbüro in New York hat ein lokales Rechenzentrum, das sicher mit seinem VNet in Azure verbunden werden muss, das seine virtualisierten Workloads hostet. Durch die Einrichtung eines Site-to-Site VPN kann das Unternehmen eine verschlüsselte Verbindung zwischen den lokalen Servern und den Azure VMs sicherstellen, sodass Ressourcen sicher über beide Umgebungen hinweg zugegriffen werden kann, als wären sie im selben lokalen Netzwerk.

Enumeration

bash
# List VPN Gateways
az network vnet-gateway list --query "[].{name:name, location:location, resourceGroup:resourceGroup}" -o table

# List VPN Connections
az network vpn-connection list --gateway-name <VpnGatewayName> --resource-group <ResourceGroupName> --query "[].{name:name, connectionType:connectionType, connectionStatus:connectionStatus}" -o table

Azure ExpressRoute

Azure ExpressRoute ist ein Dienst, der eine private, dedizierte, hochgeschwindigkeits Verbindung zwischen Ihrer lokalen Infrastruktur und den Azure-Rechenzentren bereitstellt. Diese Verbindung erfolgt über einen Konnektivitätsanbieter, umgeht das öffentliche Internet und bietet mehr Zuverlässigkeit, schnellere Geschwindigkeiten, geringere Latenzen und höhere Sicherheit als typische Internetverbindungen.

Beispiel:

Ein multinationales Unternehmen benötigt eine konstante und zuverlässige Verbindung zu seinen Azure-Diensten aufgrund des hohen Datenvolumens und des Bedarfs an hoher Durchsatzrate. Das Unternehmen entscheidet sich für Azure ExpressRoute, um sein lokales Rechenzentrum direkt mit Azure zu verbinden, was großangelegte Datenübertragungen, wie tägliche Backups und Echtzeitanalysen, mit verbesserter Privatsphäre und Geschwindigkeit erleichtert.

Enumeration

bash
# List ExpressRoute Circuits
az network express-route list --query "[].{name:name, location:location, resourceGroup:resourceGroup, serviceProviderName:serviceProviderName, peeringLocation:peeringLocation}" -o table

tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks