Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
ghostbuster — قم بالتخلص من عناوين Elastic IPs العالقة عن طريق إجراء تحليل على مواردك داخل جميع حسابات AWS الخاصة بك. | Kitploit
أدوات/GitHubGitHub/assetnote/ghostbuster
الاستطلاعماسحات الثغرات الأمنيةأمن السحابةتعداد النطاقات الفرعيةتحليل DNS
GitHubassetnote/ghostbuster

ghostbuster

قم بالتخلص من عناوين Elastic IPs العالقة عن طريق إجراء تحليل على مواردك داخل جميع حسابات AWS الخاصة بك.

عرض المستودع
27836منذ سنة واحدةتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

جدول المحتويات

  • جدول المحتويات
  • Ghostbuster
    • المشكلة
    • ميزات المشروع
    • تثبيت Ghostbuster
    • استخدام Ghostbuster
    • مثال على المخرجات
    • إعداد حسابات AWS الخاصة بك
    • إعداد Cloudflare (اختياري)
    • المؤلفون
    • الترخيص

Ghostbuster

قم بإزالة عناوين 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 المرنة العالقة، يمكن للمهاجم القيام بما يلي:

  • المطالبة بشهادات SSL للنطاق الفرعي
  • الاستماع لحركة المرور على جميع المنافذ (ربما اكتشاف معلومات حساسة لا تزال تُرسل إلى النطاق الفرعي)
  • تشغيل نصوص من جانب الخادم مع القدرة على سرقة ملفات تعريف الارتباط HTTPOnly، مما يؤدي عادةً إلى هجوم اختطاف حساب بنقرة واحدة عندما تكون ملفات تعريف الارتباط مقيدة بـ *.domain.com

ميزات المشروع

  • التنقل ديناميكيًا عبر كل ملف تعريف AWS تم تكوينه في .aws/config
  • سحب سجلات A من AWS Route53
  • سحب سجلات A من Cloudflare (اختياري)
  • سحب سجلات A من إدخال CSV (اختياري)
  • التنقل عبر جميع المناطق، أو منطقة واحدة، أو قائمة مفصولة بفواصل من المناطق
  • الحصول على جميع عناوين IP المرنة المرتبطة بجميع حسابات AWS الخاصة بك
  • الحصول على جميع عناوين IP العامة المرتبطة بجميع حسابات AWS الخاصة بك
  • التحقق المتبادل من سجلات DNS مع عناوين IP المملوكة لمؤسستك لاكتشاف عمليات الاستيلاء المحتملة
  • دعم Slack Webhook لإرسال إشعارات حول عمليات الاستيلاء

هام:

لكي تكون هذه الأداة فعالة، يجب أن يكون لديها صورة كاملة لبيئة AWS الخاصة بك. إذا لم تكن لديها صورة كاملة، فسيؤدي ذلك إلى نتائج إيجابية خاطئة.

تثبيت Ghostbuster

تثبيت Ghostbuster بسيط مثل تشغيل: pip install ghostbuster. ستكون أداة CLI بعد ذلك متاحة عبر الأمر ghostbuster.

يتطلب هذا بيئة Python 3.x.

استخدام Ghostbuster

root@kitploit:~
❯ 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

root@kitploit:~
❯ ghostbuster scan aws --cloudflaretoken APIKEY --slackwebhook https://hooks.slack.com/services/KEY --allregions

قم بتشغيل Ghostbuster مع قائمة مدخلة يدويًا من سجلات A للنطاق الفرعي (راجع records.csv في هذا المستودع لملف مثال):

root@kitploit:~
❯ ghostbuster scan aws --records records.csv

يمكنك تحديد مناطق محددة باستخدام --regions مضبوطة على قائمة مفصولة بفواصل من المناطق، أي us-east-1,us-west-1.

مثال على المخرجات

root@kitploit:~
❯ 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 الخاصة بك

الخطوة الأولى هي إنشاء مفاتيح أو أدوار في حسابات AWS الخاصة بك تمنح الصلاحيات اللازمة لقراءة سجلات Route53 ووصف العناوين المرنة وواجهات شبكة EC2.

  1. لإنشاء مستخدم IAM جديد في AWS، قم بزيارة الرابط التالي: https://console.aws.amazon.com/iam/home#/users$new?step=details
  2. اختر Access key - Programmatic access فقط، وانقر على Next: Permissions.
  3. انقر على Attach existing policies directly ثم انقر على Create policy.
  4. انقر على JSON ثم الصق السياسة التالية:
root@kitploit:~
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "GhostbusterPolicy",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeAddresses",
                "ec2:DescribeNetworkInterfaces",
                "route53:ListResourceRecordSets",
                "route53:ListHostedZonesByName",
                "route53:GetTrafficPolicyInstance",
                "route53:GetTrafficPolicy"
            ],
            "Resource": "*"
        }
    ]
}
  1. انقر على Next: Tags ثم Next: Review.
  2. قم بتعيين اسم السياسة ليكون GhostbusterPolicy.
  3. انقر على Create Policy.
  4. اذهب إلى https://console.aws.amazon.com/iam/home#/users$new?step=permissions&accessKey&userNames=ghostbuster&permissionType=policies
  5. حدد GhostbusterPolicy.
  6. انقر على Next: Tags ثم Next: Review.
  7. انقر على Create user وقم بإعداد بيانات اعتماد AWS في ملف .aws/credentials الخاص بك.

كرر الخطوات أعلاه لكل حساب AWS تمتلكه.

ستعمل هذه الأداة مع أي طريقة قمت بها بإعداد تكوين AWS (مفاتيح متعددة، أو ملفات تعريف دور افتراضية عبر الحسابات). يتم إدارة ذلك بواسطة boto3، المكتبة المستخدمة للتواصل مع AWS.

مثال على تكوين يبدو هكذا:

.aws/credentials:

root@kitploit:~
[default]
aws_access_key_id = AKIAIII...
aws_secret_access_key = faAaAaA...

.aws/config:

root@kitploit:~
[default]
output = table
region = us-east-1

[profile account-one]
role_arn = arn:aws:iam::911111111113:role/Ec2Route53Access
source_profile = default
region = us-east-1

[profile account-two]
role_arn = arn:aws:iam::911111111112:role/Ec2Route53Access
source_profile = default
region = us-east-1

[profile account-three]
region = us-east-1
role_arn = arn:aws:iam::911111111111:role/Ec2Route53Access
source_profile = default

بدلاً من ذلك، بدلاً من وجود أدوار يتم افتراضها، يمكنك أيضًا تكوين ملف .aws/credentials ليكون لديه قائمة بملفات التعريف والمفاتيح المرتبطة مع وصول محدود.

بمجرد تعيين تكوين AWS الخاص بك مع جميع الحسابات في بيئة AWS الخاصة بك، يمكنك بعد ذلك تشغيل الأداة باستخدام الأمر التالي:

إعداد صلاحيات AWS لـ --roles

يمكن لـ Ghostbuster استخدام الأدوار بدلاً من ملفات التعريف مما يلغي الحاجة إلى وجود العديد من بيانات الاعتماد في مكان واحد. ومع ذلك، سيتطلب نهج الأدوار إنشاء سياسات IAM إضافية داخل مؤسستك.

يمكن استخدام الأدوار عبر علامات --roles roles.csv أو --autoroles. لإعداد --roles ليعمل، يجب إنشاء دور GhostbusterTargetAccountRole باسمه تمامًا في كل حساب يتم فحصه:

root@kitploit:~
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "GhostbusterTargetAccountRole",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeAddresses",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeRegions",
                "route53:ListResourceRecordSets",
                "route53:ListHostedZonesByName",
                "route53:GetTrafficPolicyInstance",
                "route53:GetTrafficPolicy"
            ],
            "Resource": "*"
        }
    ]
}

سيتم تشغيل ghostbuster في lambda/ec2/أياً كان مع دور ghostbuster - دعنا نسميه دور ghostbuster الرئيسي. يجب أن يكون الدور الرئيسي قادرًا على افتراض أدوار الحساب المستهدف.

root@kitploit:~
resource "aws_iam_policy" "ghostbuster_target_account_roles" {
  name        = "ghostbuster_target_account_roles"
  path        = "/"
  description = "السماح بفحص DNS وبيانات IP المرنة."

  policy = jsonencode({
    "Version" : "2012-10-17",
    "Statement" : [
      {
        "Effect" : "Allow",
        "Action" : "sts:AssumeRole",
        "Resource" : ["arn:aws:iam::*:role/GhostbusterTargetAccountRole"]
    }]
  })

  tags = {
    Project = "ghostbuster"
  }
}

إعداد صلاحيات AWS لـ --autoroles

يتطلب الاكتشاف التلقائي للحسابات صلاحية إضافية مقارنة بـ --roles. بعد إعداد --roles لتعمل، ضع في اعتبارك إضافة سياسة IAM التالية في حساب لديه نظرة عامة على المؤسسة:

root@kitploit:~
{
    sid = "BaseAccess"

    actions = [
      "organizations:DescribeAccount",
      "organizations:ListAccounts"
    ]

    resources = ["*"]
    effect    = "Allow"
  }
}

ثم، في الحساب الذي يقوم بتشغيل ghostbuster، قم بإرفاق السياسة التالية بدور ghostbuster الرئيسي حتى يتمكن من افتراض دور البحث في المؤسسة:

root@kitploit:~
{
    "Version" : "2012-10-17",
    "Statement" : [
      {
        "Effect" : "Allow",
        "Action" : "sts:AssumeRole",
        "Resource" : ["arn:aws:iam::ORG_LOOKUP_ACCOUNT_ID:role/ghostbuster-org-role"]
    }]
}

لا تنس استبدال ORG_LOOKUP_ACCOUNT_ID بمعرف الحساب الفعلي.

إعداد Cloudflare (اختياري)

إذا كنت تريد أن يسحب Ghostbuster جميع سجلات A التي قمت بتعيينها في Cloudflare، فستحتاج إلى إعداد رمز API يمكنه قراءة المناطق.

https://dash.cloudflare.com/profile/api-tokens

قم بإعداد رمز API لـ Cloudflare كما هو موضح في لقطة الشاشة أدناه:

بمجرد الحصول على رمز API هذا، قم بتدوينه في مكان ما (مدير كلمات المرور). لاستخدامه مع Ghostbuster، قم بتمريره عبر وسيطة cloudflaretoken.

المؤلفون

  • Shubham Shah - العمل الأولي - github

راجع أيضًا قائمة المساهمين الذين شاركوا في هذا المشروع.

الترخيص

رخصة GNU Affero العامة العامة

اختبار Ghostbusters

  1. قم باستنساخ هذا المستودع.
  2. قم بتثبيت virtualenv باستخدام pip3 install virtualenv
  3. قم بإنشاء بيئة افتراضية باستخدام virtualenv venv
  4. قم بتنشيط البيئة الافتراضية باستخدام . venv/bin/activate
  5. قم بتثبيت ghostbuster بالذهاب إلى جذر المستودع. pip3 install --editable .
  6. قم بإجراء تغييراتك وقم بتشغيل الأمر ghostbuster.
تنزيل الأداة