Az - Azure Network
Reading time: 19 minutes
tip
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
Informações Básicas
Azure fornece redes virtuais (VNet) que permitem aos usuários criar redes isoladas dentro da nuvem Azure. Dentro dessas VNets, recursos como máquinas virtuais, aplicativos, bancos de dados... podem ser hospedados e gerenciados de forma segura. A rede no Azure suporta tanto a comunicação dentro da nuvem (entre serviços Azure) quanto a conexão com redes externas e a internet.
Além disso, é possível conectar VNets com outras VNets e com redes locais.
Rede Virtual (VNET) e Sub-redes
Uma Rede Virtual do Azure (VNet) é uma representação da sua própria rede na nuvem, proporcionando isolamento lógico dentro do ambiente Azure dedicado à sua assinatura. VNets permitem que você provisiona e gerencie redes privadas virtuais (VPNs) no Azure, hospedando recursos como Máquinas Virtuais (VMs), bancos de dados e serviços de aplicativos. Elas oferecem controle total sobre as configurações de rede, incluindo faixas de endereços IP, criação de sub-redes, tabelas de roteamento e gateways de rede.
Sub-redes são subdivisões dentro de uma VNet, definidas por faixas de endereços IP específicas. Ao segmentar uma VNet em várias sub-redes, você pode organizar e proteger recursos de acordo com sua arquitetura de rede.
Por padrão, todas as sub-redes dentro da mesma Rede Virtual do Azure (VNet) podem se comunicar entre si sem restrições.
Exemplo:
MyVNet
com uma faixa de endereços IP de 10.0.0.0/16.- Sub-rede-1: 10.0.0.0/24 para servidores web.
- Sub-rede-2: 10.0.1.0/24 para servidores de banco de dados.
Enumeração
Para listar todas as VNets e sub-redes em uma conta Azure, você pode usar a Interface de Linha de Comando do Azure (CLI). Aqui estão os passos:
# 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
Grupos de Segurança de Rede (NSG)
Um Grupo de Segurança de Rede (NSG) filtra o tráfego de rede tanto para quanto de recursos do Azure dentro de uma Rede Virtual do Azure (VNet). Ele abriga um conjunto de regras de segurança que podem indicar quais portas abrir para tráfego de entrada e saída por porta de origem, IP de origem, destino da porta e é possível atribuir uma prioridade (quanto menor o número da prioridade, maior a prioridade).
Os NSGs podem ser associados a sub-redes e NICs.
Exemplo de regras:
- Uma regra de entrada permitindo tráfego HTTP (porta 80) de qualquer origem para seus servidores web.
- Uma regra de saída permitindo apenas tráfego SQL (porta 1433) para um intervalo específico de endereços IP de destino.
Enumeração
# 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 é um serviço de segurança de rede gerenciado no Azure que protege recursos em nuvem inspecionando e controlando o tráfego. É um firewall com estado que filtra o tráfego com base em regras para as Camadas 3 a 7, suportando comunicação tanto dentro do Azure (tráfego leste-oeste) quanto para/de redes externas (tráfego norte-sul). Implantado no nível da Rede Virtual (VNet), fornece proteção centralizada para todas as sub-redes na VNet. O Azure Firewall escala automaticamente para lidar com as demandas de tráfego e garante alta disponibilidade sem exigir configuração manual.
Está disponível em três SKUs—Básico, Padrão e Premium, cada um adaptado para necessidades específicas dos clientes:
Critério/Recurso | Opção 1 | Opção 2 | Opção 3 |
---|---|---|---|
Caso de Uso Recomendado | Pequenas/Médias Empresas (PMEs) com necessidades limitadas | Uso geral em empresas, filtragem de Camadas 3–7 | Ambientes altamente sensíveis (por exemplo, processamento de pagamentos) |
Desempenho | Até 250 Mbps de throughput | Até 30 Gbps de throughput | Até 100 Gbps de throughput |
Inteligência de Ameaças | Apenas alertas | Alertas e bloqueio (IPs/domínios maliciosos) | Alertas e bloqueio (inteligência de ameaças avançada) |
Filtragem L3–L7 | Filtragem básica | Filtragem com estado entre protocolos | Filtragem com estado com inspeção avançada |
Proteção Avançada contra Ameaças | Não disponível | Filtragem baseada em inteligência de ameaças | Inclui Sistema de Detecção e Prevenção de Intrusões (IDPS) |
Inspeção TLS | Não disponível | Não disponível | Suporta terminação TLS de entrada/saída |
Disponibilidade | Backend fixo (2 VMs) | Escalonamento automático | Escalonamento automático |
Facilidade de Gerenciamento | Controles básicos | Gerenciado via Firewall Manager | Gerenciado via Firewall Manager |
Enumeração
# 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
Tabelas de Roteamento do Azure
As Tabelas de Roteamento do Azure são usadas para controlar o roteamento do tráfego de rede dentro de uma sub-rede. Elas definem regras que especificam como os pacotes devem ser encaminhados, seja para recursos do Azure, para a internet ou para um próximo salto específico, como um Appliance Virtual ou Firewall do Azure. Você pode associar uma tabela de roteamento a uma sub-rede, e todos os recursos dentro dessa sub-rede seguirão as rotas na tabela.
Exemplo: Se uma sub-rede hospeda recursos que precisam rotear o tráfego de saída através de um Appliance Virtual de Rede (NVA) para inspeção, você pode criar uma rota em uma tabela de roteamento para redirecionar todo o tráfego (por exemplo, 0.0.0.0/0
) para o endereço IP privado do NVA como o próximo salto.
Enumeração
# 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
Azure Private Link é um serviço no Azure que permite acesso privado aos serviços do Azure garantindo que o tráfego entre sua rede virtual do Azure (VNet) e o serviço viaje inteiramente dentro da rede backbone do Azure da Microsoft. Ele efetivamente traz o serviço para sua VNet. Essa configuração aumenta a segurança ao não expor os dados à internet pública.
Private Link pode ser usado com vários serviços do Azure, como Azure Storage, Azure SQL Database e serviços personalizados compartilhados via Private Link. Ele fornece uma maneira segura de consumir serviços de dentro de sua própria VNet ou até mesmo de diferentes assinaturas do Azure.
caution
NSGs não se aplicam a endpoints privados, o que significa claramente que associar um NSG a uma sub-rede que contém o Private Link não terá efeito.
Exemplo:
Considere um cenário onde você tem um Azure SQL Database que deseja acessar de forma segura a partir de sua VNet. Normalmente, isso poderia envolver a travessia da internet pública. Com o Private Link, você pode criar um endpoint privado em sua VNet que se conecta diretamente ao serviço Azure SQL Database. Esse endpoint faz com que o banco de dados pareça parte de sua própria VNet, acessível via um endereço IP privado, garantindo assim acesso seguro e privado.
Enumeração
# 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
Pontos de Extremidade do Serviço Azure
Os Pontos de Extremidade do Serviço Azure estendem o espaço de endereço privado da sua rede virtual e a identidade da sua VNet para serviços Azure por meio de uma conexão direta. Ao habilitar os pontos de extremidade de serviço, recursos na sua VNet podem se conectar com segurança a serviços Azure, como Azure Storage e Azure SQL Database, usando a rede backbone do Azure. Isso garante que o tráfego da VNet para o serviço Azure permaneça dentro da rede Azure, proporcionando um caminho mais seguro e confiável.
Exemplo:
Por exemplo, uma conta de Azure Storage por padrão é acessível pela internet pública. Ao habilitar um ponto de extremidade de serviço para Azure Storage dentro da sua VNet, você pode garantir que apenas o tráfego da sua VNet possa acessar a conta de armazenamento. O firewall da conta de armazenamento pode então ser configurado para aceitar tráfego apenas da sua VNet.
Enumeração
# 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
Diferenças Entre Endpoints de Serviço e Links Privados
A Microsoft recomenda o uso de Links Privados na docs:
.png)
Endpoints de Serviço:
- O tráfego da sua VNet para o serviço Azure viaja pela rede backbone da Microsoft Azure, contornando a internet pública.
- O endpoint é uma conexão direta ao serviço Azure e não fornece um IP privado para o serviço dentro da VNet.
- O serviço em si ainda é acessível através de seu endpoint público de fora da sua VNet, a menos que você configure o firewall do serviço para bloquear esse tráfego.
- É uma relação um-para-um entre a sub-rede e o serviço Azure.
- Menos caro do que Links Privados.
Links Privados:
- O Link Privado mapeia serviços Azure na sua VNet através de um endpoint privado, que é uma interface de rede com um endereço IP privado dentro da sua VNet.
- O serviço Azure é acessado usando este endereço IP privado, fazendo parecer que é parte da sua rede.
- Serviços conectados via Link Privado podem ser acessados apenas da sua VNet ou redes conectadas; não há acesso à internet pública ao serviço.
- Ele permite uma conexão segura a serviços Azure ou seus próprios serviços hospedados no Azure, bem como uma conexão a serviços compartilhados por outros.
- Proporciona um controle de acesso mais granular através de um endpoint privado na sua VNet, em oposição ao controle de acesso mais amplo no nível da sub-rede com endpoints de serviço.
Em resumo, enquanto ambos os Endpoints de Serviço e Links Privados fornecem conectividade segura a serviços Azure, Links Privados oferecem um nível mais alto de isolamento e segurança, garantindo que os serviços sejam acessados de forma privada sem expô-los à internet pública. Os Endpoints de Serviço, por outro lado, são mais fáceis de configurar para casos gerais onde é necessário um acesso simples e seguro aos serviços Azure sem a necessidade de um IP privado na VNet.
Azure Front Door (AFD) & AFD WAF
Azure Front Door é um ponto de entrada escalável e seguro para entrega rápida de suas aplicações web globais. Ele combina vários serviços como balanceamento de carga global, aceleração de site, descarregamento de SSL e capacidades de Firewall de Aplicação Web (WAF) em um único serviço. O Azure Front Door fornece roteamento inteligente com base na localização de borda mais próxima do usuário, garantindo desempenho e confiabilidade ideais. Além disso, oferece roteamento baseado em URL, hospedagem em múltiplos sites, afinidade de sessão e segurança em nível de aplicação.
Azure Front Door WAF é projetado para proteger aplicações web contra ataques baseados na web sem modificação do código de back-end. Inclui regras personalizadas e conjuntos de regras gerenciadas para proteger contra ameaças como injeção SQL, script entre sites e outros ataques comuns.
Exemplo:
Imagine que você tem uma aplicação distribuída globalmente com usuários em todo o mundo. Você pode usar o Azure Front Door para rotear solicitações de usuários para o data center regional mais próximo que hospeda sua aplicação, reduzindo assim a latência, melhorando a experiência do usuário e defendendo-a contra ataques web com as capacidades do WAF. Se uma região específica sofrer uma interrupção, o Azure Front Door pode automaticamente redirecionar o tráfego para a próxima melhor localização, garantindo alta disponibilidade.
Enumeração
# 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 e Azure Application Gateway WAF
Azure Application Gateway é um balanceador de carga de tráfego web que permite gerenciar o tráfego para suas aplicações web. Ele oferece balanceamento de carga de Camada 7, terminação SSL e capacidades de firewall de aplicação web (WAF) no Controlador de Entrega de Aplicação (ADC) como um serviço. As principais características incluem roteamento baseado em URL, afinidade de sessão baseada em cookie e descarregamento de camada de soquete seguro (SSL), que são cruciais para aplicações que requerem capacidades complexas de balanceamento de carga, como roteamento global e roteamento baseado em caminho.
Exemplo:
Considere um cenário onde você tem um site de e-commerce que inclui múltiplos subdomínios para diferentes funções, como contas de usuário e processamento de pagamentos. Azure Application Gateway pode rotear o tráfego para os servidores web apropriados com base no caminho da URL. Por exemplo, o tráfego para example.com/accounts
poderia ser direcionado para o serviço de contas de usuário, e o tráfego para example.com/pay
poderia ser direcionado para o serviço de processamento de pagamentos.
E proteger seu site contra ataques usando as capacidades do WAF.
Enumeração
# 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 e Peering de VNet
Peering de VNet é um recurso de rede no Azure que permite que diferentes Redes Virtuais (VNets) sejam conectadas diretamente e de forma contínua. Através do peering de VNet, recursos em uma VNet podem se comunicar com recursos em outra VNet usando endereços IP privados, como se estivessem na mesma rede.
O Peering de VNet também pode ser usado com redes locais configurando uma VPN site-a-site ou Azure ExpressRoute.
Azure Hub e Spoke é uma topologia de rede usada no Azure para gerenciar e organizar o tráfego de rede. O "hub" é um ponto central que controla e roteia o tráfego entre diferentes "spokes". O hub normalmente contém serviços compartilhados, como appliances virtuais de rede (NVAs), Azure VPN Gateway, Azure Firewall ou Azure Bastion. Os "spokes" são VNets que hospedam cargas de trabalho e se conectam ao hub usando peering de VNet, permitindo que aproveitem os serviços compartilhados dentro do hub. Este modelo promove um layout de rede limpo, reduzindo a complexidade ao centralizar serviços comuns que várias cargas de trabalho em diferentes VNets podem usar.
[!CAUTION] > O peering de VNET é não transitivo no Azure, o que significa que se o spoke 1 estiver conectado ao spoke 2 e o spoke 2 estiver conectado ao spoke 3, então o spoke 1 não pode se comunicar diretamente com o spoke 3.
Exemplo:
Imagine uma empresa com departamentos separados como Vendas, RH e Desenvolvimento, cada um com sua própria VNet (os spokes). Essas VNets precisam de acesso a recursos compartilhados como um banco de dados central, um firewall e um gateway de internet, que estão todos localizados em outra VNet (o hub). Usando o modelo Hub e Spoke, cada departamento pode conectar-se de forma segura aos recursos compartilhados através da VNet do hub sem expor esses recursos à internet pública ou criar uma estrutura de rede complexa com inúmeras conexões.
Enumeração
# 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
VPN Site-a-Site
Uma VPN Site-a-Site no Azure permite que você conecte sua rede local à sua Rede Virtual (VNet) do Azure, permitindo que recursos como VMs dentro do Azure apareçam como se estivessem em sua rede local. Essa conexão é estabelecida através de um gateway VPN que criptografa o tráfego entre as duas redes.
Exemplo:
Uma empresa com seu escritório principal localizado em Nova York possui um data center local que precisa se conectar de forma segura à sua VNet no Azure, que hospeda suas cargas de trabalho virtualizadas. Ao configurar uma VPN Site-a-Site, a empresa pode garantir conectividade criptografada entre os servidores locais e as VMs do Azure, permitindo que os recursos sejam acessados de forma segura em ambos os ambientes como se estivessem na mesma rede local.
Enumeração
# 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 é um serviço que fornece uma conexão privada, dedicada e de alta velocidade entre sua infraestrutura local e os data centers do Azure. Essa conexão é feita através de um provedor de conectividade, contornando a internet pública e oferecendo mais confiabilidade, velocidades mais rápidas, latências mais baixas e maior segurança do que as conexões típicas da internet.
Exemplo:
Uma corporação multinacional requer uma conexão consistente e confiável aos seus serviços do Azure devido ao alto volume de dados e à necessidade de alta capacidade de transferência. A empresa opta pelo Azure ExpressRoute para conectar diretamente seu data center local ao Azure, facilitando transferências de dados em larga escala, como backups diários e análises de dados em tempo real, com maior privacidade e velocidade.
Enumeração
# List ExpressRoute Circuits
az network express-route list --query "[].{name:name, location:location, resourceGroup:resourceGroup, serviceProviderName:serviceProviderName, peeringLocation:peeringLocation}" -o table
tip
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.