Az - Virtual Machines & Network
Informazioni di base
Dalla documentazione: Le macchine virtuali di Azure sono uno dei vari tipi di risorse di calcolo scalabili su richiesta offerte da Azure. Di solito, si sceglie una macchina virtuale quando si ha bisogno di un maggiore controllo sull'ambiente di calcolo rispetto alle altre opzioni offerte. Questo articolo fornisce informazioni su cosa si dovrebbe considerare prima di creare una macchina virtuale, come crearla e come gestirla.
Informazioni sulla rete di Azure
Le reti di Azure contengono entità diverse e modi per configurarle. Puoi trovare una breve descrizione, esempi e comandi di enumerazione delle diverse entità di rete di Azure in:
pageAz - Azure NetworkAzure Bastion
Azure Bastion offre una soluzione di accesso sicura e completamente gestita tramite SSL per RDP (Remote Desktop Protocol) e SSH (Secure Shell) tramite il portale di Azure. È integrato all'interno di una rete virtuale di Azure, consentendo la connettività RDP e SSH alle VM utilizzando indirizzi IP privati, evitando la necessità di indirizzi IP pubblici. Questo lo rende un'alternativa più sicura e conveniente rispetto ai metodi tradizionali che coinvolgono l'assegnazione di indirizzi IP pubblici e la configurazione delle regole NSG per l'accesso alle VM. Sviluppatori e personale IT possono accedere in modo sicuro alle VM dal portale di Azure utilizzando i loro browser web, semplificando il processo per gli ambienti di sviluppo e test.
Per elencare tutti gli host Azure Bastion nella tua sottoscrizione, puoi utilizzare il seguente comando:
Enumerazione delle VM
When conducting a penetration test on Azure, it is important to enumerate the virtual machines (VMs) present in the environment. This allows for a better understanding of the target system and potential attack vectors.
Azure CLI
The Azure CLI provides a command-line interface for interacting with Azure resources. To enumerate VMs using Azure CLI, the following command can be used:
This command will list all the VMs in the current subscription. Additional filters can be applied to narrow down the results, such as specifying a resource group or using the --query
parameter to filter based on specific criteria.
Azure PowerShell
Azure PowerShell is another tool that can be used to interact with Azure resources. To enumerate VMs using Azure PowerShell, the following command can be used:
This command will retrieve information about all the VMs in the current subscription. Similar to Azure CLI, additional filters can be applied to narrow down the results.
Azure Portal
The Azure Portal provides a graphical user interface for managing Azure resources. To enumerate VMs using the Azure Portal, follow these steps:
Navigate to the Azure Portal (https://portal.azure.com) and sign in to your account.
In the left-hand menu, click on "Virtual machines" to view the list of VMs in the current subscription.
Use the search bar or filters to find specific VMs based on criteria such as name, resource group, or location.
Summary
Enumerating VMs is an important step in the penetration testing process. By using tools like Azure CLI, Azure PowerShell, or the Azure Portal, you can gather information about the VMs present in an Azure environment and identify potential targets for further analysis and exploitation.
Esegui comandi in una VM
Accesso AAD nella VM
È possibile consentire l'accesso agli utenti autenticati tramite AzureAD. Ad esempio, provando ad accedere a una VM Linux: ssh username@azure-corp.com@1.1.1.1
(è importante utilizzare l'email con azurecorp utilizzato durante il tentativo di accesso) potresti ottenere un errore come:
Basta seguire queste istruzioni andando su https://microsoft.com/devicelogin e inserendo il codice, utilizzare l'email e la password come credenziali e sarai in grado di connetterti tramite SSH (se l'utente ha le autorizzazioni necessarie: ruolo Virtual Machine Administrator Login
o Virtual Machine User Login
).
Esegui Comando
Esegui l'estensione di script personalizzato
Le estensioni delle macchine virtuali (VM) di Azure sono piccole applicazioni che forniscono configurazioni post-deployment e compiti di automazione su VM di Azure. Ad esempio, se una macchina virtuale richiede l'installazione di software, la protezione antivirus o la possibilità di eseguire uno script al suo interno, è possibile utilizzare un'estensione VM.
Pertanto, se hai accesso per scriverlo, puoi eseguire codice arbitrario:
DesiredConfigurationState (DSC)
DesiredConfigurationState (DSC) è uno strumento PowerShell simile ad Ansible, utilizzato per configurare un host tramite codice. DSC si integra con Azure, consentendo il caricamento di file di configurazione specifici. Questi file devono seguire una sintassi rigorosa. In particolare, l'estensione DSC in Azure può eseguire comandi da file che soddisfano determinati criteri di formattazione, anche se la sintassi non è corretta secondo gli standard DSC, come mostrato nella figura fornita.
L'esecuzione di questi comandi è facilitata dalla funzione Publish-AzVMDscConfiguration
in Az PowerShell. I requisiti includono un file .PS1 con una funzione definita e il file deve essere compresso in un file .zip. Anche se la sintassi potrebbe non essere accurata per DSC, il codice verrà comunque eseguito. Tuttavia, l'estensione segnerà lo stato di esecuzione come "failure" e nessun output del comando sarà visibile a causa dell'overwrite dello stato da parte del messaggio di errore.
Definizioni delle applicazioni VM
Le definizioni delle applicazioni VM consentono il deployment ripetibile di applicazioni versionate su una VM di Azure. Questa risorsa supporta il deployment e l'aggiornamento di applicazioni su VM. Per configurare questo, sono necessari diversi passaggi, che coinvolgono comandi come New-AzGalleryApplication
e New-AzGalleryApplicationVersion
in Az PowerShell.
L'esecuzione di applicazioni o comandi tramite questo metodo coinvolge il "VMAppExtension", che viene installato automaticamente quando un'applicazione viene applicata a una VM. L'estensione recupera il file dall'URI specificato e lo rinomina esattamente come l'applicazione, senza estensione. Per eseguire correttamente il file, il campo "ManageActions" nella chiamata API REST deve essere configurato per rinominare il file con l'estensione appropriata. Una volta completata la configurazione di questo metodo, la struttura assumerà la forma mostrata nella figura fornita.
Tuttavia, questo metodo di esecuzione è relativamente lento, impiegando circa 3-4 minuti per eseguire un'applicazione o un comando. I file relativi a questo processo sono archiviati in directory specifiche (C:\Packages\Plugins\Microsoft.CPlat.Core.VMApplicationManagerWindows\1.0.4\Downloads\
per la copia dell'applicazione e C:\Packages\Plugins\Microsoft.CPlat.Core.VMApplicationManagerWindows\1.0.4\Status\
per lo stato di esecuzione).
Entrambe le tecniche offrono modi unici per eseguire comandi e distribuire applicazioni in ambienti Azure, ognuna con i propri requisiti, passaggi e considerazioni.
Gruppi di Hybrid Worker (HWGs) in Azure
Gruppi di Hybrid Worker (HWGs) sono una funzionalità in Azure che consente l'esecuzione di Runbook, configurati in un Automation Account, su una Virtual Machine (VM) di Azure che fa parte dell'HWG designato. Questa esecuzione è facilitata da un'estensione installata sulla VM, che distribuisce il codice del Runbook sulla VM. Un aspetto significativo di questo processo è che le credenziali effettive non sono un fattore nell'esecuzione perché il codice viene eseguito con privilegi elevati, specificamente come SYSTEM o root, come illustrato nella figura fornita.
Un dettaglio cruciale per coloro che utilizzano VM Windows 10 è la necessità di specificare la versione di PowerShell per il Runbook. Dovrebbe essere impostato per eseguire come PowerShell Versione 5.1 invece di 7.1. Questo requisito deriva dal fatto che PowerShell 7.1 non è installato di default su queste VM, portando a un fallimento nell'esecuzione dello script se viene specificata la versione 7.1.
Questa funzionalità di Azure offre un metodo robusto per automatizzare e gestire attività in ambienti ibridi, consentendo la gestione e l'esecuzione centralizzate delle attività su VM di Azure.
Riferimenti
Last updated