Az - Virtual Machines & Network
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
From the docs: Les machines virtuelles Azure sont l'un des plusieurs types de ressources informatiques à la demande et évolutives que propose Azure. En général, vous choisissez une machine virtuelle lorsque vous avez besoin de plus de contrôle sur l'environnement informatique que les autres options ne le permettent. Cet article vous fournit des informations sur ce que vous devez considérer avant de créer une machine virtuelle, comment vous la créez et comment vous la gérez.
Les réseaux Azure contiennent différentes entités et façons de les configurer. Vous pouvez trouver une brève description, exemples et commandes d'énumération des différentes entités réseau Azure dans :
Az - Azure NetworkAzure Bastion offre une solution d'accès RDP (Remote Desktop Protocol) et SSH (Secure Shell) sécurisée et entièrement gérée via SSL à travers le portail Azure. Il est intégré dans un réseau virtuel Azure, permettant la connectivité RDP et SSH aux machines virtuelles en utilisant des IP privées, évitant ainsi le besoin d'IP publiques. Cela en fait une alternative plus sûre et plus pratique aux méthodes traditionnelles impliquant des attributions d'IP publiques et des configurations de règles NSG pour l'accès aux machines virtuelles. Les développeurs et le personnel informatique peuvent accéder en toute sécurité aux machines virtuelles depuis le portail Azure en utilisant leurs navigateurs web, simplifiant ainsi le processus pour les environnements de développement et de test.
Pour lister tous les hôtes Azure Bastion dans votre abonnement, vous pouvez utiliser la commande suivante :
Il est possible de permettre l'accès aux utilisateurs authentifiés via AzureAD. Par exemple, en essayant d'accéder à une linux VM : ssh username@azure-corp.com@1.1.1.1
(il est important d'utiliser l'email avec le azurecorp utilisé lors de la tentative de connexion) vous pourriez obtenir une erreur comme :
Il suffit de suivre ces instructions en allant sur https://microsoft.com/devicelogin et en indiquant le code, utilisez l'email et le mot de passe comme identifiants et vous pourrez vous connecter via SSH (si cet utilisateur a suffisamment de permissions pour le faire : rôle Virtual Machine Administrator Login
ou Virtual Machine User Login
).
Les extensions de machine virtuelle (VM) Azure sont de petites applications qui fournissent des configurations et des tâches d'automatisation après le déploiement sur les VM Azure. Par exemple, si une machine virtuelle nécessite l'installation de logiciels, une protection antivirus ou la capacité d'exécuter un script à l'intérieur, vous pouvez utiliser une extension de VM.
Par conséquent, si vous avez accès pour l'écrire, vous pouvez exécuter du code arbitraire :
DesiredConfigurationState (DSC) est un outil PowerShell similaire à Ansible, utilisé pour configurer un hôte par le biais de code. DSC s'intègre à Azure, permettant le téléchargement de fichiers de configuration spécifiques. Ces fichiers doivent respecter une syntaxe stricte. Notamment, l'extension DSC dans Azure peut exécuter des commandes à partir de fichiers qui répondent à certains critères de formatage, même si la syntaxe n'est pas correcte selon les normes DSC, comme le montre la figure fournie.
L'exécution de ces commandes est facilitée par la fonction Publish-AzVMDscConfiguration
dans Az PowerShell. Les exigences incluent un fichier .PS1 avec une fonction définie et le fichier doit être compressé dans un fichier .zip. Même si la syntaxe peut ne pas être précise pour DSC, le code s'exécutera toujours. Cependant, l'extension marquera l'état d'exécution comme "échec", et aucune sortie de la commande ne sera visible en raison du statut étant écrasé par le message d'échec.
Les définitions d'application VM permettent le déploiement répétable d'applications versionnées sur une VM Azure. Cette ressource prend en charge le déploiement et la mise à jour d'applications sur plusieurs VMs. Pour configurer cela, plusieurs étapes sont nécessaires, impliquant des commandes comme New-AzGalleryApplication
et New-AzGalleryApplicationVersion
dans Az PowerShell.
L'exécution d'applications ou de commandes par cette méthode implique le "VMAppExtension", qui est installé automatiquement lorsqu'une application est appliquée à une VM. L'extension récupère le fichier à partir de l'URI spécifié et le nomme exactement comme l'application, sans extension. Pour exécuter correctement le fichier, le champ "ManageActions" dans l'appel API REST doit être configuré pour renommer le fichier avec l'extension appropriée. La configuration de cette méthode, une fois terminée, ressemblera à la structure montrée dans la figure fournie.
Cependant, cette méthode d'exécution est relativement lente, prenant environ 3-4 minutes pour exécuter une application ou une commande. Les fichiers liés à ce processus sont stockés dans des répertoires spécifiques (C:\Packages\Plugins\Microsoft.CPlat.Core.VMApplicationManagerWindows\1.0.4\Downloads\
pour la copie de l'application et C:\Packages\Plugins\Microsoft.CPlat.Core.VMApplicationManagerWindows\1.0.4\Status\
pour l'état d'exécution).
Les deux techniques offrent des moyens uniques d'exécuter des commandes et de déployer des applications dans des environnements Azure, chacune avec son propre ensemble d'exigences, d'étapes et de considérations.
Hybrid Worker Groups (HWGs) sont une fonctionnalité d'Azure qui permet aux Runbooks, configurés dans un compte d'automatisation, d'être exécutés sur une machine virtuelle Azure (VM) qui fait partie du HWG désigné. Cette exécution est facilitée par une extension installée sur la VM, qui déploie le code du Runbook sur la VM. Un aspect significatif de ce processus est que les véritables identifiants ne sont pas un facteur dans l'exécution car le code s'exécute avec des privilèges élevés, spécifiquement en tant que SYSTEM ou root, comme illustré dans la figure fournie.
Un détail crucial pour ceux utilisant des VMs Windows 10 est la nécessité de spécifier la version de PowerShell pour le Runbook. Il doit être configuré pour s'exécuter en tant que PowerShell Version 5.1 au lieu de 7.1. Cette exigence découle du fait que PowerShell 7.1 n'est pas installé par défaut sur ces VMs, entraînant un échec de l'exécution du script si la version 7.1 est spécifiée.
Cette fonctionnalité d'Azure offre une méthode robuste pour automatiser et gérer des tâches dans des environnements hybrides, permettant une gestion et une exécution centralisées des tâches sur les VMs Azure.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)