Az - Virtual Machines & Network
Aprende y practica Hacking en AWS: HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP:
HackTricks Training GCP Red Team Expert (GRTE)
Información Básica
Desde la documentación: Las máquinas virtuales de Azure son uno de varios tipos de recursos informáticos escalables bajo demanda que Azure ofrece. Normalmente, eliges una máquina virtual cuando necesitas más control sobre el entorno informático de lo que ofrecen las otras opciones. Este artículo te proporciona información sobre lo que debes considerar antes de crear una máquina virtual, cómo crearla y cómo gestionarla.
Información de Red en Azure
Las redes de Azure contienen diferentes entidades y formas de configurarlas. Puedes encontrar descripciones breves, ejemplos y comandos de enumeración de las diferentes entidades de red de Azure en:
Az - Azure NetworkAzure Bastion
Azure Bastion ofrece una solución de acceso seguro y completamente gestionado a través de SSL para RDP (Protocolo de Escritorio Remoto) y SSH (Shell Seguro) a través del portal de Azure. Está integrado dentro de una Red Virtual de Azure, permitiendo conectividad RDP y SSH a las VM utilizando IPs privadas, evitando la necesidad de IPs públicas. Esto lo convierte en una alternativa más segura y conveniente a los métodos tradicionales que implican asignaciones de IP públicas y configuraciones de reglas NSG para el acceso a las VM. Los desarrolladores y el personal de TI pueden acceder de forma segura a las VM desde el portal de Azure utilizando sus navegadores web, agilizando el proceso para entornos de desarrollo y pruebas.
Para listar todos los Hosts de Azure Bastion en tu suscripción, puedes utilizar el siguiente comando:
Enumeración de VM
Ejecutar comandos en una VM
Inicio de sesión de AAD en una VM
Es posible permitir el acceso a usuarios autenticados a través de AzureAD. Por ejemplo, al intentar acceder a una VM de Linux: ssh username@azure-corp.com@1.1.1.1
(es importante utilizar el correo electrónico con el azurecorp utilizado al intentar iniciar sesión) podrías recibir un error como:
Simplemente siga esas instrucciones yendo a https://microsoft.com/devicelogin e indicando el código, use el correo electrónico y la contraseña como credenciales y podrá conectarse a través de SSH (si ese usuario tiene suficientes permisos para hacerlo: rol Inicio de sesión de administrador de máquinas virtuales
o rol Inicio de sesión de usuario de máquinas virtuales
).
Ejecutar comando
Ejecutar Extensión de Script Personalizado
Las extensiones de máquinas virtuales (VM) de Azure son pequeñas aplicaciones que proporcionan configuración posterior a la implementación y tareas de automatización en las VMs de Azure. Por ejemplo, si una máquina virtual requiere instalación de software, protección antivirus o la capacidad de ejecutar un script en su interior, puedes utilizar una extensión de VM.
Por lo tanto, si tienes acceso para escribirlo, puedes ejecutar código arbitrario:
Estado de Configuración Deseado (DSC)
El Estado de Configuración Deseado (DSC) es una herramienta de PowerShell similar a Ansible, utilizada para configurar un host a través de código. DSC se integra con Azure, permitiendo la carga de archivos de configuración específicos. Estos archivos deben cumplir con una sintaxis estricta. Es importante destacar que la extensión DSC en Azure puede ejecutar comandos desde archivos que cumplen ciertos criterios de formato, incluso si la sintaxis no es correcta según los estándares de DSC, como se muestra en la figura proporcionada.
La ejecución de estos comandos es facilitada por la función Publish-AzVMDscConfiguration
en Az PowerShell. Los requisitos incluyen un archivo .PS1 con una función definida y el archivo debe estar comprimido en un archivo .zip. Aunque la sintaxis puede no ser precisa para DSC, el código aún se ejecutará. Sin embargo, la extensión marcará el estado de ejecución como "fallido" y no se mostrará ninguna salida del comando debido a que el estado será sobrescrito por el mensaje de error.
Definiciones de Aplicaciones de VM
Las Definiciones de Aplicaciones de VM permiten la implementación repetible de aplicaciones versionadas en una VM de Azure. Este recurso admite la implementación y actualización de aplicaciones en varias VM. Para configurar esto, se requieren varios pasos, que involucran comandos como New-AzGalleryApplication
y New-AzGalleryApplicationVersion
en Az PowerShell.
La ejecución de aplicaciones o comandos a través de este método implica el "VMAppExtension", que se instala automáticamente cuando se aplica una aplicación a una VM. La extensión recupera el archivo desde la URI especificada y lo nombra exactamente como la aplicación, sin una extensión. Para ejecutar el archivo correctamente, el campo "ManageActions" en la llamada de la API REST debe estar configurado para renombrar el archivo con la extensión adecuada. La configuración de este método, una vez completada, se asemejará a la estructura mostrada en la figura proporcionada.
Sin embargo, este método de ejecución es relativamente lento, tardando aproximadamente de 3 a 4 minutos en ejecutar una aplicación o comando. Los archivos relacionados con este proceso se almacenan en directorios específicos (C:\Packages\Plugins\Microsoft.CPlat.Core.VMApplicationManagerWindows\1.0.4\Downloads\
para la copia de la aplicación y C:\Packages\Plugins\Microsoft.CPlat.Core.VMApplicationManagerWindows\1.0.4\Status\
para el estado de ejecución).
Ambas técnicas proporcionan formas únicas de ejecutar comandos e implementar aplicaciones en entornos de Azure, cada una con su propio conjunto de requisitos, pasos y consideraciones.
Grupos de Trabajadores Híbridos (HWGs) en Azure
Grupos de Trabajadores Híbridos (HWGs) son una característica en Azure que permite que los Runbooks, configurados en una Cuenta de Automatización, se ejecuten en una Máquina Virtual (VM) de Azure que forma parte del HWG designado. Esta ejecución se facilita a través de una extensión instalada en la VM, que despliega el código del Runbook en la VM. Un aspecto significativo de este proceso es que las credenciales reales no son un factor en la ejecución porque el código se ejecuta con privilegios elevados, específicamente como SYSTEM o root, como se ilustra en la figura proporcionada.
Un detalle crucial para aquellos que utilizan VMs con Windows 10 es la necesidad de especificar la versión de PowerShell para el Runbook. Debe configurarse para ejecutarse como la Versión de PowerShell 5.1 en lugar de 7.1. Este requisito se deriva del hecho de que PowerShell 7.1 no está instalado de forma predeterminada en estas VM, lo que lleva a un fallo en la ejecución del script si se especifica la versión 7.1.
Esta característica de Azure ofrece un método sólido para automatizar y gestionar tareas en entornos híbridos, permitiendo la gestión centralizada y la ejecución de tareas en VMs de Azure.
Referencias
Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP:
HackTricks Training GCP Red Team Expert (GRTE)
Last updated