الدرس 22 من 24

اختبار اختراق السحابة والتقييم

تعداد السحابة والاستطلاع

4 دقيقة للقراءة

الاستطلاع الفعال للسحابة يحدد مسارات الهجوم قبل الاستغلال. فهم كيفية تعداد خدمات السحابة واكتشاف الأخطاء في التكوين ورسم علاقات الثقة أساسي لاختبار أمان السحابة.

تعداد AWS

اكتشاف الهوية

# الحصول على الهوية الحالية
aws sts get-caller-identity

# الإخراج:
# {
#     "UserId": "AIDAEXAMPLE123456789",
#     "Account": "123456789012",
#     "Arn": "arn:aws:iam::123456789012:user/compromised-user"
# }

# الحصول على أسماء الحساب المستعارة
aws iam list-account-aliases

تعداد IAM

# قائمة جميع المستخدمين
aws iam list-users

# الحصول على تفاصيل المستخدم
aws iam get-user --user-name target-user

# قائمة سياسات المستخدم (inline)
aws iam list-user-policies --user-name target-user

# قائمة السياسات المرفقة (managed)
aws iam list-attached-user-policies --user-name target-user

# الحصول على تفاصيل السياسة
aws iam get-policy-version \
    --policy-arn arn:aws:iam::123456789012:policy/CustomPolicy \
    --version-id v1

# قائمة الأدوار وسياسات الثقة
aws iam list-roles
aws iam get-role --role-name interesting-role

تعداد الخدمات

# EC2 instances
aws ec2 describe-instances \
    --query 'Reservations[*].Instances[*].[InstanceId,State.Name,PublicIpAddress,IamInstanceProfile]'

# دوال Lambda
aws lambda list-functions
aws lambda get-function --function-name target-function
aws lambda get-policy --function-name target-function  # سياسة المورد

# S3 buckets
aws s3 ls
aws s3 ls s3://bucket-name --recursive

# قواعد بيانات RDS
aws rds describe-db-instances

# Secrets Manager
aws secretsmanager list-secrets
aws secretsmanager get-secret-value --secret-id secret-name

# Parameter Store
aws ssm describe-parameters
aws ssm get-parameter --name /path/to/secret --with-decryption

اكتشاف الشبكة

# VPCs
aws ec2 describe-vpcs

# مجموعات الأمان
aws ec2 describe-security-groups \
    --query 'SecurityGroups[*].[GroupId,GroupName,IpPermissions]'

# البحث عن الموارد القابلة للوصول العام
aws ec2 describe-instances \
    --filters "Name=instance-state-name,Values=running" \
    --query 'Reservations[*].Instances[?PublicIpAddress!=`null`].[InstanceId,PublicIpAddress]'

تعداد Azure

المصادقة والسياق

# سياق المستخدم الحالي
az account show
az ad signed-in-user show

# قائمة الاشتراكات القابلة للوصول
az account list

# تبديل الاشتراك
az account set --subscription "subscription-name"

تعداد الموارد

# قائمة جميع الموارد في الاشتراك
az resource list --output table

# الآلات الافتراضية
az vm list --output table
az vm show --name vm-name --resource-group rg-name

# حسابات التخزين
az storage account list
az storage container list --account-name storage-account

# Key Vaults
az keyvault list
az keyvault secret list --vault-name vault-name

# App Services
az webapp list
az webapp config appsettings list --name app-name --resource-group rg-name

تعداد Azure AD

# المستخدمون
az ad user list --query "[].{UPN:userPrincipalName,DisplayName:displayName}"

# المجموعات
az ad group list
az ad group member list --group "group-name"

# Service principals
az ad sp list --all

# تسجيلات التطبيقات
az ad app list --all

# تعيينات الأدوار
az role assignment list --all

تعداد GCP

سياق المصادقة

# التكوين الحالي
gcloud config list

# الحساب النشط
gcloud auth list

# معلومات المشروع
gcloud projects describe PROJECT_ID

تعداد الخدمات

# Compute instances
gcloud compute instances list

# Cloud Storage
gsutil ls
gsutil ls gs://bucket-name

# Cloud Functions
gcloud functions list
gcloud functions describe function-name

# Cloud Run
gcloud run services list

# Secret Manager
gcloud secrets list
gcloud secrets versions access latest --secret="secret-name"

# سياسات IAM
gcloud projects get-iam-policy PROJECT_ID
gcloud iam service-accounts list

التعداد بدون مصادقة

اكتشاف التخزين العام

# S3 - الوصول المجهول
aws s3 ls s3://company-bucket --no-sign-request

# Azure Blob - حاوية عامة
curl "https://storage.blob.core.windows.net/container?restype=container&comp=list"

# GCP - bucket عام
gsutil ls gs://company-bucket

# أدوات آلية
# cloud_enum - تعداد متعدد السحابات
python3 cloud_enum.py -k company-name

# S3Scanner
s3scanner scan --bucket-file buckets.txt

استغلال خدمة البيانات الوصفية

AWS EC2 metadata (من instance مخترق):

# IMDSv1 (إذا كان متاحاً)
curl http://169.254.169.254/latest/meta-data/
curl http://169.254.169.254/latest/meta-data/iam/security-credentials/role-name

# IMDSv2 (يتطلب رمز)
TOKEN=$(curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600")
curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/iam/security-credentials/role-name

Azure IMDS:

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

GCP metadata:

curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/"
curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token"

رسم علاقات الثقة

الثقة عبر الحسابات (AWS)

# البحث عن الأدوار التي تثق بحسابات خارجية
aws iam list-roles --query 'Roles[?contains(AssumeRolePolicyDocument.Statement[0].Principal.AWS, `arn:aws:iam::`) && !contains(AssumeRolePolicyDocument.Statement[0].Principal.AWS, `'"$(aws sts get-caller-identity --query Account --output text)"'`)]'

# تحليل ثقة دور محدد
aws iam get-role --role-name CrossAccountRole \
    --query 'Role.AssumeRolePolicyDocument'

العلاقات المرتبطة بالخدمة

# البحث عن أدوار تنفيذ Lambda
aws lambda list-functions \
    --query 'Functions[*].[FunctionName,Role]'

# EC2 instance profiles
aws ec2 describe-instances \
    --query 'Reservations[*].Instances[*].[InstanceId,IamInstanceProfile.Arn]'

مرجع سريع للتعداد

السحابة الهوية الموارد الأسرار
AWS sts get-caller-identity ec2/s3/lambda list secretsmanager/ssm
Azure az account show az resource list az keyvault
GCP gcloud config list gcloud compute/storage gcloud secrets

التالي، سنستكشف تقنيات الاستغلال وتصعيد الصلاحيات في بيئات السحابة. :::

اختبار

الوحدة 6: اختبار اختراق السحابة والتقييم

خذ الاختبار
نشرة أسبوعية مجانية

ابقَ على مسار النيرد

بريد واحد أسبوعياً — دورات، مقالات معمّقة، أدوات، وتجارب ذكاء اصطناعي.

بدون إزعاج. إلغاء الاشتراك في أي وقت.