
قم بالتخلص من عناوين Elastic IPs العالقة عن طريق إجراء تحليل على مواردك داخل جميع حسابات AWS الخاصة بك.
قم بإزالة عناوين IP المرنة العالقة (dangling elastic IPs) عن طريق تحليل مواردك داخل جميع حسابات AWS الخاصة بك.
يحصل Ghostbuster على جميع سجلات DNS الموجودة في جميع حسابات AWS الخاصة بك (Route53)، ويمكنه اختياريًا استقبال السجلات عبر إدخال CSV، أو عبر Cloudflare.
بعد جمع هذه السجلات، يتنقل Ghostbuster عبر جميع عناوين IP المرنة في AWS وعناوين IP العامة لواجهات الشبكة ويجمع هذه البيانات.
من خلال الحصول على صورة كاملة لسجلات DNS (من route53 أو إدخال ملف أو cloudflare) وصورة كاملة لعناوين IP الخاصة بـ AWS التي تمتلكها مؤسستك، يمكن لهذه الأداة اكتشاف النطاقات الفرعية التي تشير إلى عناوين IP مرنة عالقة (عناوين IP لم تعد تمتلكها).
عند نشر بنية تحتية على AWS، قد تقوم بتشغيل مثيلات EC2 لها عنوان IP مرتبط بها. عندما تُنشئ سجلات DNS تشير إلى عناوين IP هذه، لكنك تنسى إزالة سجلات DNS بعد تغيير عنوان IP لمثيل EC2 أو تدميره، فأنت عرضة لهجمات اختطاف النطاق الفرعي.
تم إجراء قدر كبير من الأبحاث حول عمليات الاستيلاء على عناوين IP المرنة، حيث يمكن للمهاجمين المطالبة بعناوين IP مرنة باستمرار حتى يحصلوا على عنوان IP مرتبط بنطاق فرعي للشركة التي يستهدفونها.
بينما تقوم AWS بشكل متكرر بحظر الحسابات التي تحاول تنفيذ نمط الهجوم هذا، لم يتم إصدار إصلاح طويل الأمد من AWS.
تأثير هجمات اختطاف النطاق الفرعي لعناوين IP المرنة العالقة أكثر خطورة من اختطاف النطاق الفرعي النموذجي حيث يمكنك فقط التحكم في المحتوى الذي يتم تقديمه. مع عمليات الاستيلاء على عناوين IP المرنة العالقة، يمكن للمهاجم القيام بما يلي:
*.domain.com.aws/configهام:
لكي تكون هذه الأداة فعالة، يجب أن يكون لديها صورة كاملة لبيئة AWS الخاصة بك. إذا لم تكن لديها صورة كاملة، فسيؤدي ذلك إلى نتائج إيجابية خاطئة.
تثبيت Ghostbuster بسيط مثل تشغيل: pip install ghostbuster. ستكون أداة CLI بعد ذلك متاحة عبر الأمر ghostbuster.
يتطلب هذا بيئة Python 3.x.
❯ ghostbuster scan aws --help
Usage: ghostbuster scan aws [OPTIONS]
افحص عناوين IP المرنة العالقة داخل حسابات AWS الخاصة بك.
Options:
--profile TEXT حدد ملف تعريف AWS معين لتشغيل ghostbuster عليه.
--skipascii تخطي طباعة الفن ASCII عند بدء تشغيل Ghostbuster.
--json إرجاع كائن JSON فقط.
--slackwebhook TEXT حدد عنوان URL لـ Slack webhook لإرسال إشعارات حول
عمليات الاستيلاء المحتملة.
--records PATH حدد يدويًا سجلات DNS للتحقق منها.
سيتحقق Ghostbuster من عناوين IP هذه بعد التحقق
من سجلات DNS المستردة. راجع records.csv كمثال.
--cloudflaretoken TEXT اسحب سجلات DNS من Cloudflare، قدم رمز API لـ CF.
--allregions التشغيل على جميع المناطق.
--exclude TEXT قائمة مفصولة بفواصل بأسماء الملفات الشخصية
لاستثنائها.
--regions TEXT قائمة مفصولة بفواصل بالمناطق للتشغيل عليها.
--help عرض هذه الرسالة والخروج.
أوامر مثال
قم بتشغيل Ghostbuster مع إمكانية الوصول إلى سجلات Cloudflare DNS، وأرسل الإشعارات إلى Slack webhook، وتنقل عبر كل ملف تعريف AWS تم تكوينه في .aws/config أو .aws/credentials لجميع مناطق AWS
❯ ghostbuster scan aws --cloudflaretoken APIKEY --slackwebhook https://hooks.slack.com/services/KEY --allregions
قم بتشغيل Ghostbuster مع قائمة مدخلة يدويًا من سجلات A للنطاق الفرعي (راجع records.csv في هذا المستودع لملف مثال):
❯ ghostbuster scan aws --records records.csv
يمكنك تحديد مناطق محددة باستخدام --regions مضبوطة على قائمة مفصولة بفواصل من المناطق، أي us-east-1,us-west-1.
❯ ghostbuster scan aws --cloudflaretoken whougonnacall
الحصول على جميع أسماء المناطق من Cloudflare.
الحصول على سجلات DNS A لجميع المناطق من Cloudflare.
تم الحصول على 33 سجل DNS A حتى الآن.
الحصول على مناطق Route53 المستضافة لملف تعريف AWS: default.
الحصول على مناطق Route53 المستضافة لملف تعريف AWS: account-five.
الحصول على مناطق Route53 المستضافة لملف تعريف AWS: account-four.
الحصول على مناطق Route53 المستضافة لملف تعريف AWS: account-four-deploy.
الحصول على مناطق Route53 المستضافة لملف تعريف AWS: account-two-deploy.
الحصول على مناطق Route53 المستضافة لملف تعريف AWS: account-one-deploy.
الحصول على مناطق Route53 المستضافة لملف تعريف AWS: account-three-deploy.
الحصول على مناطق Route53 المستضافة لملف تعريف AWS: account-six.
الحصول على مناطق Route53 المستضافة لملف تعريف AWS: account-seven.
الحصول على مناطق Route53 المستضافة لملف تعريف AWS: account-one.
تم الحصول على 124 سجل DNS A حتى الآن.
الحصول على EIPs للمنطقة: us-east-1، ملف التعريف: default
الحصول على عناوين IP لواجهات الشبكة للمنطقة: us-east-1، ملف التعريف: default
الحصول على EIPs للمنطقة: us-east-1، ملف التعريف: account-five
الحصول على عناوين IP لواجهات الشبكة للمنطقة: us-east-1، ملف التعريف: account-five
الحصول على EIPs للمنطقة: us-east-1، ملف التعريف: account-four
الحصول على عناوين IP لواجهات الشبكة للمنطقة: us-east-1، ملف التعريف: account-four
الحصول على EIPs للمنطقة: us-east-1، ملف التعريف: account-four-deploy
الحصول على عناوين IP لواجهات الشبكة للمنطقة: us-east-1، ملف التعريف: account-four-deploy
الحصول على EIPs للمنطقة: us-east-1، ملف التعريف: account-two-deploy
الحصول على عناوين IP لواجهات الشبكة للمنطقة: us-east-1، ملف التعريف: account-two-deploy
الحصول على EIPs للمنطقة: us-east-1، ملف التعريف: account-one-deploy
الحصول على عناوين IP لواجهات الشبكة للمنطقة: us-east-1، ملف التعريف: account-one-deploy
الحصول على EIPs للمنطقة: us-east-1، ملف التعريف: account-three-deploy
الحصول على عناوين IP لواجهات الشبكة للمنطقة: us-east-1، ملف التعريف: account-three-deploy
الحصول على EIPs للمنطقة: us-east-1، ملف التعريف: account-six
الحصول على عناوين IP لواجهات الشبكة للمنطقة: us-east-1، ملف التعريف: account-six
الحصول على EIPs للمنطقة: us-east-1، ملف التعريف: account-seven
الحصول على عناوين IP لواجهات الشبكة للمنطقة: us-east-1، ملف التعريف: account-seven
الحصول على EIPs للمنطقة: us-east-1، ملف التعريف: account-one
الحصول على عناوين IP لواجهات الشبكة للمنطقة: us-east-1، ملف التعريف: account-one
تم الحصول على 415 عنوان IP مرن فريد من AWS.
إمكانية الاستيلاء: {'name': 'takeover.assetnotecloud.com', 'records': ['52.54.24.193']}
الخطوة الأولى هي إنشاء مفاتيح أو أدوار في حسابات AWS الخاصة بك تمنح الصلاحيات اللازمة لقراءة سجلات Route53 ووصف العناوين المرنة وواجهات شبكة EC2.