Az - Azure Network

Reading time: 18 minutes

tip

Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Leer en oefen Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks

Basiese Inligting

Azure bied virtuele netwerke (VNet) wat gebruikers toelaat om geïsoleerde netwerke binne die Azure wolk te skep. Binne hierdie VNets kan hulpbronne soos virtuele masjiene, toepassings, databasisse... veilig gehos en bestuur word. Die netwerk in Azure ondersteun beide die kommunikasie binne die wolk (tussen Azure dienste) en die verbinding met eksterne netwerke en die internet.
Boonop is dit moontlik om VNets met ander VNets en met plaaslike netwerke te koppel.

Virtuele Netwerk (VNET) & Subnetwerke

'n Azure Virtuele Netwerk (VNet) is 'n voorstelling van jou eie netwerk in die wolk, wat logiese isolasie binne die Azure omgewing bied wat aan jou intekening toegewy is. VNets laat jou toe om virtuele privaat netwerke (VPNs) in Azure te voorsien en te bestuur, wat hulpbronne soos Virtuele Masjiene (VMs), databasisse en toepassingsdienste huisves. Hulle bied volledige beheer oor netwerkinstellings, insluitend IP-adresreekse, subnet skepping, roete tafels, en netwerk poorte.

Subnetwerke is onderafdelings binne 'n VNet, gedefinieer deur spesifieke IP-adresreekse. Deur 'n VNet in verskeie subnetwerke te segmenteer, kan jy hulpbronne organiseer en beveilig volgens jou netwerkargitektuur.
Standaard kan alle subnetwerke binne dieselfde Azure Virtuele Netwerk (VNet) met mekaar kommunikeer sonder enige beperkings.

Voorbeeld:

  • MyVNet met 'n IP-adresreeks van 10.0.0.0/16.
  • Subnet-1: 10.0.0.0/24 vir webbedieners.
  • Subnet-2: 10.0.1.0/24 vir databedieners.

Enumerasie

Om al die VNets en subnetwerke in 'n Azure rekening te lys, kan jy die Azure Command-Line Interface (CLI) gebruik. Hier is die stappe:

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

Netwerk Sekuriteits Groepe (NSG)

'n Netwerk Sekuriteits Groep (NSG) filter netwerkverkeer na en van Azure hulpbronne binne 'n Azure Virtuele Netwerk (VNet). Dit bevat 'n stel sekuriteitsreëls wat kan aandui watter poorte geopen moet word vir inkomende en uitgaande verkeer volgens bronpoort, bron IP, poortbestemming en dit is moontlik om 'n prioriteit toe te ken (hoe laer die prioriteitsnommer, hoe hoër die prioriteit).

NSG's kan geassosieer word met subnetwerke en NIC's.

Reëls voorbeeld:

  • 'n Inkomende reël wat HTTP-verkeer (poort 80) van enige bron na jou webbedieners toelaat.
  • 'n Uitgaande reël wat slegs SQL-verkeer (poort 1433) na 'n spesifieke bestemmings IP-adresreeks toelaat.

Enumerasie

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 is 'n bestuurde netwerk sekuriteitsdiens in Azure wat wolk hulpbronne beskerm deur verkeer te inspekteer en te beheer. Dit is 'n staatvolle firewall wat verkeer filter op grond van reëls vir Lae 3 tot 7, wat kommunikasie ondersteun beide binne Azure (oos-wes verkeer) en na/van eksterne netwerke (noord-suid verkeer). Ontplooi op die Virtuele Netwerk (VNet) vlak, bied dit gesentraliseerde beskerming vir alle subnetwerke in die VNet. Azure Firewall skaal outomaties om verkeer se vereistes te hanteer en verseker hoë beskikbaarheid sonder om handmatige opstelling te vereis.

Dit is beskikbaar in drie SKUs—Basies, Standaard, en Premium, elk aangepas vir spesifieke kliëntbehoeftes:

Kriteria/FunksieOpsie 1Opsie 2Opsie 3
Aanbevole GebruiksgelukKlein/Gemiddelde Besighede (SMBs) met beperkte behoeftesAlgemene ondernemingsgebruik, Laag 3–7 filteringHoog sensitiewe omgewings (bv. betalingsverwerking)
PrestasieTot 250 Mbps deursetTot 30 Gbps deursetTot 100 Gbps deurset
DreigingsintelligensieSlegs waarskuwingsWaarskuwings en blokkering (kwaadwillige IP's/domeine)Waarskuwings en blokkering (geavanceerde dreigingsintelligensie)
L3–L7 FilteringBasiese filteringStaatvolle filtering oor protokolleStaatvolle filtering met geavanceerde inspeksie
Geavanceerde DreigingsbeskermingNie beskikbaarDreigingsintelligensie-gebaseerde filteringSluit Inbraakdetectie en Voorkomingstelsel (IDPS) in
TLS InspeksieNie beskikbaarNie beskikbaarOndersteun inkomende/uitgaande TLS terminering
BeskikbaarheidVaste agtergrond (2 VM's)OutoskaleringOutoskalering
Gemak van BestuurBasiese kontrolesBestuur via Firewall BestuurderBestuur via Firewall Bestuurder

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 Roete Tabel

Azure Roete Tabels word gebruik om die routing van netwerkverkeer binne 'n subnet te beheer. Hulle definieer reëls wat spesifiseer hoe pakkette gestuur moet word, hetsy na Azure hulpbronne, die internet, of 'n spesifieke volgende stap soos 'n Virtuele Toestel of Azure Firewall. Jy kan 'n roete tabel met 'n subnet assosieer, en alle hulpbronne binne daardie subnet sal die roetes in die tabel volg.

Voorbeeld: As 'n subnet hulpbronne huisves wat uitgaande verkeer deur 'n Netwerk Virtuele Toestel (NVA) vir inspeksie moet roete, kan jy 'n roete in 'n roete tabel skep om alle verkeer (bv. 0.0.0.0/0) na die NVA se private IP-adres as die volgende stap te herlei.

Enumerasie

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 is 'n diens in Azure wat privaat toegang tot Azure-dienste moontlik maak deur te verseker dat verkeer tussen jou Azure virtuele netwerk (VNet) en die diens heeltemal binne Microsoft se Azure rugsteun netwerk beweeg. Dit bring die diens effektief in jou VNet. Hierdie opstelling verbeter sekuriteit deur die data nie aan die openbare internet bloot te stel nie.

Private Link kan gebruik word met verskeie Azure-dienste, soos Azure Storage, Azure SQL Database, en pasgemaakte dienste wat via Private Link gedeel word. Dit bied 'n veilige manier om dienste van binne jou eie VNet of selfs van verskillende Azure-subskripsies te verbruik.

caution

NSG's is nie van toepassing op private eindpunte nie, wat duidelik beteken dat die assosiasie van 'n NSG met 'n subnet wat die Private Link bevat, geen effek sal hê nie.

Voorbeeld:

Overweeg 'n scenario waar jy 'n Azure SQL Database het wat jy veilig van jou VNet wil toegang. Normaalweg kan dit behels dat jy die openbare internet oorsteek. Met Private Link kan jy 'n private eindpunt in jou VNet skep wat direk met die Azure SQL Database-diens verbind. Hierdie eindpunt laat die databasis lyk asof dit deel van jou eie VNet is, toeganklik via 'n private IP-adres, wat dus veilige en private toegang verseker.

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 Diens Eindpunte

Azure Diens Eindpunte brei jou virtuele netwerk se private adresruimte en die identiteit van jou VNet uit na Azure dienste oor 'n direkte verbinding. Deur diens eindpunte in te skakel, kan hulpbronne in jou VNet veilig met Azure dienste verbind, soos Azure Storage en Azure SQL Database, met behulp van Azure se rugsteun netwerk. Dit verseker dat die verkeer van die VNet na die Azure diens binne die Azure netwerk bly, wat 'n meer veilige en betroubare pad bied.

Voorbeeld:

Byvoorbeeld, 'n Azure Storage rekening is standaard oor die openbare internet toeganklik. Deur 'n diens eindpunt vir Azure Storage binne jou VNet in te skakel, kan jy verseker dat slegs verkeer van jou VNet toegang tot die stoorrekening het. Die stoorrekening se vuurmuur kan dan gekonfigureer word om slegs verkeer van jou VNet te aanvaar.

Enumerasie

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

Verskille Tussen Diens Eindpunte en Privaat Skakels

Microsoft beveel aan om Privaat Skakels te gebruik in die docs:

Diens Eindpunte:

  • Verkeer van jou VNet na die Azure diens beweeg oor die Microsoft Azure rugsteun netwerk, wat die openbare internet omseil.
  • Die eindpunt is 'n direkte verbinding na die Azure diens en bied nie 'n privaat IP vir die diens binne die VNet nie.
  • Die diens self is steeds toeganklik via sy openbare eindpunt van buite jou VNet tensy jy die diens vuurmuur konfigureer om sulke verkeer te blokkeer.
  • Dit is 'n een-tot-een verhouding tussen die subnet en die Azure diens.
  • Goedkoper as Privaat Skakels.

Privaat Skakels:

  • Privaat Skakel kaart Azure dienste in jou VNet via 'n privaat eindpunt, wat 'n netwerkinterface met 'n privaat IP adres binne jou VNet is.
  • Die Azure diens word toeganklik gemaak met hierdie privaat IP adres, wat dit laat lyk asof dit deel van jou netwerk is.
  • Dienste wat via Privaat Skakel gekoppel is, kan slegs vanaf jou VNet of gekonnekteerde netwerke toeganklik wees; daar is geen openbare internettoegang tot die diens nie.
  • Dit stel 'n veilige verbinding met Azure dienste of jou eie dienste wat in Azure gehoste is, asook 'n verbinding met dienste wat deur ander gedeel word, moontlik.
  • Dit bied meer gedetailleerde toegangbeheer via 'n privaat eindpunt in jou VNet, in teenstelling met breër toegangbeheer op subnetvlak met diens eindpunte.

In samevatting, terwyl beide Diens Eindpunte en Privaat Skakels veilige konnektiwiteit na Azure dienste bied, bied Privaat Skakels 'n hoër vlak van isolasie en sekuriteit deur te verseker dat dienste privaat toeganklik is sonder om hulle aan die openbare internet bloot te stel. Diens Eindpunte, aan die ander kant, is makliker om op te stel vir algemene gevalle waar eenvoudige, veilige toegang tot Azure dienste benodig word sonder die behoefte aan 'n privaat IP in die VNet.

Azure Front Door (AFD) & AFD WAF

Azure Front Door is 'n skaalbare en veilige toegangspunt vir vinnige aflewering van jou globale webtoepassings. Dit kombineer verskeie dienste soos globale laaibalansering, webwerfversnelling, SSL-aflaai, en Webtoepassing Vuurmuur (WAF) vermoëns in 'n enkele diens. Azure Front Door bied intelligente roetering gebaseer op die nabyste rand ligging aan die gebruiker, wat optimale prestasie en betroubaarheid verseker. Daarbenewens bied dit URL-gebaseerde roetering, veelvuldige webwerfgasheer, sessie affiniteid, en toepassingslaagnavorsing.

Azure Front Door WAF is ontwerp om webtoepassings te beskerm teen web-gebaseerde aanvalle sonder om agtergrondkode te wysig. Dit sluit pasgemaakte reëls en bestuurde reëlstelle in om teen bedreigings soos SQL-inspuiting, kruis-webwerf skripting, en ander algemene aanvalle te beskerm.

Voorbeeld:

Stel jou voor jy het 'n globaal verspreide toepassing met gebruikers regoor die wêreld. Jy kan Azure Front Door gebruik om gebruikers versoeke na die naaste streeksdatacentrum wat jou toepassing gasheer, te roeteer, wat latensie verminder, gebruikerservaring verbeter en dit te verdedig teen webaanvalle met die WAF vermoëns. As 'n spesifieke streek stilstand ervaar, kan Azure Front Door verkeer outomaties na die volgende beste ligging herroeteer, wat hoë beskikbaarheid verseker.

Enumerasie

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 en Azure Application Gateway WAF

Azure Application Gateway is 'n webverkeer laaibalanser wat jou in staat stel om verkeer na jou web toepassings te bestuur. Dit bied Laag 7 laaibalansering, SSL-terminering, en webtoepassing vuurmuur (WAF) vermoëns in die Toepassing Aflewering Beheerder (ADC) as 'n diens. Sleutelkenmerke sluit URL-gebaseerde roetering, koekie-gebaseerde sessie affiniteid, en veilige sokkellaag (SSL) aflaai in, wat noodsaaklik is vir toepassings wat komplekse laaibalansering vermoëns vereis soos globale roetering en pad-gebaseerde roetering.

Voorbeeld:

Oorweeg 'n scenario waar jy 'n e-handelswebwerf het wat verskeie subdomeine vir verskillende funksies insluit, soos gebruikersrekeninge en betalingsverwerking. Azure Application Gateway kan verkeer na die toepaslike webbedieners roeteer op grond van die URL-pad. Byvoorbeeld, verkeer na example.com/accounts kan na die gebruikersrekeninge diens gelei word, en verkeer na example.com/pay kan na die betalingsverwerkingsdiens gelei word.
En beskerm jou webwerf teen aanvalle met die WAF vermoëns.

Enumerasie

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 is 'n netwerkfunksie in Azure wat verskillende Virtuele Netwerke (VNets) toelaat om direk en naatloos gekoppel te word. Deur VNet-peering kan hulpbronne in een VNet met hulpbronne in 'n ander VNet kommunikeer met behulp van private IP-adresse, asof hulle in dieselfde netwerk is.
VNet Peering kan ook met 'n plaaslike netwerk gebruik word deur 'n site-to-site VPN of Azure ExpressRoute op te stel.

Azure Hub en Spoke is 'n netwerktopologie wat in Azure gebruik word om netwerkverkeer te bestuur en te organiseer. Die "hub" is 'n sentrale punt wat verkeer tussen verskillende "spokes" beheer en roete. Die hub bevat tipies gedeelde dienste soos netwerk virtuele toestelle (NVAs), Azure VPN Gateway, Azure Firewall, of Azure Bastion. Die "spokes" is VNets wat werklas huisves en met die hub verbind deur VNet-peering, wat hulle toelaat om die gedeelde dienste binne die hub te benut. Hierdie model bevorder 'n skoon netwerkopstelling, wat kompleksiteit verminder deur algemene dienste te sentraliseer wat verskeie werklas oor verskillende VNets kan gebruik.

[!CAUTION] > VNET-peering is nie-transitief in Azure, wat beteken dat as spoke 1 met spoke 2 verbind is en spoke 2 met spoke 3 verbind is, dan kan spoke 1 nie direk met spoke 3 praat nie.

Voorbeeld:

Stel jou 'n maatskappy voor met aparte afdelings soos Verkope, HR, en Ontwikkeling, elke met sy eie VNet (die spokes). Hierdie VNets vereis toegang tot gedeelde hulpbronne soos 'n sentrale databasis, 'n firewall, en 'n internetgateway, wat almal in 'n ander VNet (die hub) geleë is. Deur die Hub en Spoke-model te gebruik, kan elke afdeling veilig met die gedeelde hulpbronne deur die hub VNet verbind sonder om daardie hulpbronne aan die openbare internet bloot te stel of 'n komplekse netwerkstruktuur met talle verbindings te skep.

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

'n Site-to-Site VPN in Azure laat jou toe om jou on-premises netwerk aan jou Azure Virtuele Netwerk (VNet) te verbind, wat dit moontlik maak dat hulpbronne soos VMs binne Azure lyk asof hulle op jou plaaslike netwerk is. Hierdie verbinding word tot stand gebring deur 'n VPN-gateway wat verkeer enkripteer tussen die twee netwerke.

Voorbeeld:

'n Besigheid met sy hoofkantoor in New York het 'n on-premises datacentrum wat veilig aan sy VNet in Azure moet verbind, wat sy gevirtualiseerde werklas huisves. Deur 'n Site-to-Site VPN op te stel, kan die maatskappy verseker dat daar enkripteerde konneksie tussen die on-premises bedieners en die Azure VMs is, wat dit moontlik maak om hulpbronne veilig oor beide omgewings te benader asof hulle in dieselfde plaaslike netwerk is.

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 is 'n diens wat 'n privaat, toegewyde, hoëspoedverbinding tussen jou plaaslike infrastruktuur en Azure datacenters bied. Hierdie verbinding word gemaak deur 'n verbindingsverskaffer, wat die publieke internet omseil en meer betroubaarheid, vinniger spoed, laer latensies en hoër sekuriteit as tipiese internetverbindinge bied.

Voorbeeld:

'n Multinasionale korporasie vereis 'n konstante en betroubare verbinding met sy Azure dienste weens die hoë volume data en die behoefte aan hoë deurset. Die maatskappy kies vir Azure ExpressRoute om sy plaaslike datacentrum direk aan Azure te verbind, wat grootmaat data-oordragte, soos daaglikse rugsteun en regstreekse data-analise, met verbeterde privaatheid en spoed fasiliteer.

Enumeration

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

tip

Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Leer en oefen Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks