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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
IPSpinner — يعمل IPSpinner كوكيل محلي يعيد توجيه الطلبات عبر خدمات خارجية. | Kitploit
أدوات/GitHubGitHub/synacktiv/ipspinner
هجمات كلمات المروربروكسيات الويب والاعتراضالتهرب من IDS/IPSاختبار الاختراقأمن السحابةالفريق الأحمر
GitHubsynacktiv/ipspinner

IPSpinner

يعمل IPSpinner كوكيل محلي يعيد توجيه الطلبات عبر خدمات خارجية.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

🔁 IPSpinner

IPSpinner هو وكيل محلي يمكن استخدامه لإعادة توجيه جميع الطلبات الواردة عبر موفّرين مختلفين يتم اختيارهم. الغرض هو إنشاء وكيل عبور يقوم بتدوير عنوان IP المصدر لكل طلب. على سبيل المثال، تشغيل عملية تخمين عنيفة (bruteforce) عبر IPSpinner سيساعد في تجنب اكتشافك لأن الخادم سيستقبل الطلبات من مئات عناوين IP المختلفة.

يدعم IPSpinner حاليًا AWS (API Gateway) وAzure (Cloud Shell) وGitHub (GitHub Actions).

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

  1. كيف يعمل؟
    1. عام
    2. حسب الموفّر والمُطلق (launcher)
      1. AWS API Gateway
      2. Azure Cloud Shell
      3. GitHub Actions
    3. مقارنة المُطلقات
  2. كيف يتم التثبيت؟
    1. تثبيت Go
    2. استنساخ وبناء IPSpinner
    3. التنظيف بعد البناء
  3. كيف يُستخدم؟
    1. عام
      1. وسائط سطر الأوامر
      2. ملف الإعدادات
    2. حسب الموفّر
      1. AWS
      2. Azure
      3. GitHub
  4. كيف ...؟
    1. دعم HTTP/2؟

I/ كيف يعمل؟

1) عام

الشكل 1: IPSpinner - المخطط العام الشكل 1: IPSpinner - المخطط العام

يعمل IPSpinner كوسيط محلي يعيد توجيه الطلبات عبر خدمات خارجية. ولتحقيق هذه الغاية، يستعين IPSpinner بالموفّرين والمُطلقات (launchers).

الموفّر (provider) هو موفّر سحابي أو موفّر خدمات عبر الإنترنت (AWS، Azure، GitHub، إلخ)، يقدّم خدمات مختلفة تُسمّى المُطلقات (launchers)، يمكن استخدامها لتوصيل طلبات المستخدم (AWS API Gateway، GitHub Actions، Azure Cloud Shells، إلخ).

وبالتالي، لتشغيل IPSpinner، سيتعين على المستخدم تقديم بيانات اعتماد للموفّرين الذين يريد استخدامها وإعدادات إضافية للمُطلقات. يمكن استخدام أنواع متعددة من المُطلقات في نفس الوقت، وسيختار IPSpinner عشوائيًا واحدًا من المتاح منها لكل طلب.

علاوة على ذلك، يوفّر IPSpinner ميزة التحميل المسبق (preload). يمكن تحميل بعض المُطلقات مسبقًا لتجنب تأخير إعادة الإعداد في حال ظهور مضيف جديد عبر الوسيط. بالنسبة لهذه المُطلقات، يُنصح بالتحميل المسبق لكنه ليس إلزاميًا. أما بالنسبة للباقي، فلا حاجة إلى التحميل المسبق.

2) حسب الموفّر والمُطلق

i. AWS API Gateway

مقدمة

يمكن لـ IPSpinner الاستفادة من AWS API Gateway لإرسال الطلبات. يعتمد هذا التنفيذ على FireProx، الذي ينشئ REST API Gateway لإعادة توجيه الطلبات الواردة. ولذلك تم تكييف FireProx للتعامل مع عدة مضيفات لكل API Gateway وتنفيذ ميزات جديدة. باختصار، عندما يستقبل IPSpinner طلبًا، فإنه يختار أو ينشئ مثيل API Gateway المناسب ويوجّه الطلب إليه. ثم يجمع الاستجابة ويعيدها إلى المستخدم. وبذلك، يكون الخادم المستهدف قد استلم الطلب من API Gateway وليس مباشرة من المستخدم. وبما أن API Gateway يدوّر عنوان IP الصادر الخاص به لكل طلب، يستخدم IPSpinner هذه الميزة لتدوير عنوان IP.

الشكل 2: AWS API Gateway - المخطط العام الشكل 2: AWS API Gateway - المخطط العام

يوضح الرسم البياني التالي، الذي أُعد في أكتوبر 2024، عدد عناوين IP الفريدة المتاحة لكل منطقة من مناطق AWS وفقًا لعدد الطلبات المرسلة. معظم المناطق توفّر أكثر من 100 عنوان IP، ويمكن استخدام مناطق متعددة في نفس الوقت، مما يسمح للمستخدم بتمرير طلباته عبر آلاف العناوين حول العالم.

الشكل 3: AWS API Gateway - عناوين IP المتاحة لكل منطقة الشكل 3: AWS API Gateway - عناوين IP المتاحة لكل منطقة

أخيرًا، يوضح الشكل 4، بمستوى لون أخضر لوغاريتمي، عدد العناوين المتاحة لكل دولة. ويُظهر أن المستخدم لديه إمكانية تزييف عنوان IP المصدر الخاص به باستخدام عناوين من أي قارة.

الشكل 4: AWS API Gateway - عناوين IP لكل دولة الشكل 4: AWS API Gateway - عناوين IP لكل دولة

تفاصيل جديرة بالملاحظة

ينفّذ IPSpinner ميزة التدوير التي تحذف وتجدّد مثيلات FireProx التي تم إنشاؤها بانتظام. وكما يوضح الرسم البياني التالي، فإن تدوير مثيل FireProx قد يوفّر مجموعة فرعية جديدة من عناوين IP. ومع ذلك، تمتلك كل منطقة AWS مجموعة محدودة من عناوين IP، وبالتالي في نقطة ما لن يوفر التدوير عناوين IP جديدة.

الشكل 5: AWS API Gateway - عملية التدوير الشكل 5: AWS API Gateway - عملية التدوير

ينفّذ هذا المُطلق إجراء التحميل المسبق. وكما ذُكر سابقًا، فهو ليس إلزاميًا، لكنه يمكن أن يمنع بعض تأخيرات إعادة الإعداد أو أخطاء المزامنة خلال الثواني الأولى بعد إعادة الإعداد.

بالإضافة إلى ذلك، تضبط API Gateways افتراضيًا ترويسة X-Forwarded-For، التي لا يمكن حذفها ولكن يمكن تجاوزها. وبالتالي، يمكن للمستخدم تحديد نطاق عناوين IP في إعدادات IPSpinner، ومنه سيتم اختيار عنوان IP عشوائي لكل طلب (نطاق IPv4 أو IPv6).

ii. Azure Cloud Shell

مقدمة

يستعين IPSpinner بـ Azure Cloud Shell لإرسال الطلبات. إن Azure Cloud Shell هو طرفية تفاعلية موثّقة ويمكن الوصول إليها عبر المتصفح لإدارة موارد Azure. يعمل Cloud Shell على مضيف مؤقت يُوفَّر لكل جلسة ولكل مستخدم.

وبالتالي، يستخدم IPSpinner عدة مستخدمين من Azure يتم تجهيز جلسة Cloud Shell لكل منهم. بعد ذلك، ستتم إعادة توجيه كل طلب إلى Cloud Shell تمت تهيئته، ثم يتم تجديده لإعادة تعيين عنوان IP الخاص به.

الشكل 6: Azure Cloud Shell - المخطط العام الشكل 6: Azure Cloud Shell - المخطط العام

كما يوضح الرسم البياني التالي، توفّر المناطق المختلفة المتاحة لنشر جلسات Cloud Shell العشرات من عناوين IP لكل منها. يمكن للمستخدم تكوين مناطق متعددة في نفس الوقت لزيادة مجموعة عناوين IP المتاحة لديه.

الشكل 7: Azure Cloud Shell - عناوين IP المتاحة لكل منطقة الشكل 7: Azure Cloud Shell - عناوين IP المتاحة لكل منطقة

ومع ذلك، فإن عناوين IP أكثر تركزًا مقارنة بـ AWS API Gateway. وكما توضح الخريطة التالية، يقع معظمها في الولايات المتحدة وأوروبا والهند.

الشكل 8: Azure Cloud Shell - عناوين IP لكل دولة الشكل 8: Azure Cloud Shell - عناوين IP لكل دولة

تفاصيل جديرة بالملاحظة

نظرًا لتأخير عملية تجديد Cloud Shell، ننصح بتقييد معدل تدفق الطلبات. مزيد من المعلومات في القسم الفرعي مقارنة المُطلقات.

iii. GitHub Actions

مقدمة

يمكن لـ IPSpinner أيضًا الاستفادة من GitHub Actions لإرسال الطلبات. هذا التنفيذ مستوحى من git-rotate ولكنه عُدّل بالكامل وجرى تكييفه للتخلص من خادم الالتقاط (catcher server).

ينشئ مستودعًا بقالب سير عمل (workflow) محدد مسبقًا. بعد ذلك، لكل طلب، يشغّل سير العمل عبر تمرير معلومات الطلب من خلال متغيرات البيئة. جميع البيانات مشفرة لتجنب إمكانية قراءتها من قبل مستخدم خارجي. أخيرًا، يجمع IPSpinner بيانات الاستجابة من سجلات سير العمل.

الشكل 9: GitHub Actions - المخطط العام الشكل 9: GitHub Actions - المخطط العام

يوضح الشكل التالي أن GitHub Actions توفّر آلافًا من عناوين IP المختلفة.

الشكل 10: GitHub Actions - عناوين IP المتاحة لكل منطقة الشكل 10: GitHub Actions - عناوين IP المتاحة لكل منطقة

ومع ذلك، توضح الخريطة التالية أن GitHub Actions توفّر عناوين IP أمريكية فقط. وبعد التحليل، يبدو أن العمال (workers) التابعين لها منشورون على بنية تحتية من Azure.

الشكل 11: GitHub Actions - عناوين IP لكل دولة الشكل 11: GitHub Actions - عناوين IP لكل دولة

تفاصيل جديرة بالملاحظة

⚠️ علاوة على ذلك، "تأخذ GitHub مسألة إساءة استخدام Actions والبريد العشوائي على محمل الجد، ولديهم فريق مخصص لتتبع «المستخدمين المزعجين»." وبالتالي، يجب على المستخدم ألا يستخدم هذا الموفّر مع حسابه الشخصي أو حساب الشركة لتجنب أي مشكلة إغلاق للحساب.

نظرًا لحدود GitHub REST API لكل ساعة، يجب تحديد الحد الأقصى لمعدل تدفق الطلبات لتجنب أي انقطاع. مزيد من المعلومات في القسم الفرعي مقارنة المُطلقات.

3) مقارنة المُطلقات

II/ كيف يتم التثبيت؟

1) تثبيت Go

تم اختبار هذا المشروع مع إصدار go >= 1.21، لكنه قد يعمل مع إصدارات أقل.

انظر وثائق تثبيت Go

بعد التثبيت، تأكد من أن ملف go الثنائي الافتراضي هو الصحيح:

root@kitploit:~
$ go version
go version go1.21.1 linux/amd64

2) استنساخ وبناء IPSpinner

root@kitploit:~
$ git clone https://github.com/synacktiv/IPSpinner.git
$ cd IPSpinner
$ go mod tidy

$ make build-linux # For Linux AMD64 arch
$ make build-windows # For Windows AMD64 arch

سيُطلق على الملف التنفيذي اسم "ipspinner" افتراضيًا على Linux أو "ipspinner.exe" على Windows.

3) التنظيف بعد البناء

في نهاية الاستخدام، يمكنك تنظيف ملفات البناء بتشغيل

root@kitploit:~
$ make clean

III/ كيف يُستخدم؟

1) عام

للحصول على مساعدة حول استخدام IPSpinner، يمكنك تشغيل الأمر بدون أي وسيط:

root@kitploit:~
$ ./ipspinner -h
    Help will be displayed

جميع المعلومات (باستثناء عمليات إعادة توجيه الطلبات) تُسجَّل في ملف ipspinner.log.

بعض الخيارات الشائعة متاحة كوسائط، بينما يجب تقديم معلومات الإعداد الأخرى في ملف إعدادات بصيغة INI.

i. وسائط سطر الأوامر

يمكن للمستخدم تحديد بعض وسائط سطر الأوامر:

يجب تحديد بعض المعاملات العامة ومعاملات الموفّرين في ملف إعدادات INI. يجب تجهيز ملف الإعدادات قبل تشغيل IPSpinner. سيتم شرح محتواه في الأقسام الفرعية التالية. افتراضيًا، يبحث IPSpinner عن ملف إعدادات باسم config.ini.

للتعامل مع طلبات https، يحتاج IPSpinner إلى شهادة من جهة تصديق (CA) ومفتاح. إذا لم يقدم المستخدم شهادة، فسيقوم IPSpinner بتوليد شهادة ومفتاح ذاتيين التوقيع خاصين به. يمكن للمستخدم طلب استرجاع الشهادة المولّدة باستخدام --export-ca-cert (مثل: لاستيرادها إلى المتصفح). بخلاف ذلك، يمكن للمستخدم توفير شهادة CA ومفتاح خاصين به في ملف الإعدادات (انظر الأجزاء التالية).

يمكن للمستخدم تحديد المضيف والمنفذ للاستماع باستخدام --host و --port.

أخيرًا، تتوفر ثلاثة أوضاع للمخرجات المفصلة (verbose):

  • --v: يعرض سجلات الإنشاء
  • --vv: مثل --v ويعرض عمليات إعادة توجيه الطلبات
  • --vvv: مثل --vv ويعرض معلومات تفصيلية عن الطلبات

ii. ملف الإعدادات

بعد ذلك، يتوفر قالب لـ ملف إعدادات INI في مستودع المشروع.

في قسم proxy، يمكن للمستخدم تحديد بعض المعاملات:

جميع الأقسام الأخرى سيتم وصفها في الفصل الخاص بالموفّر المقابل.

من المهم ملاحظة أنه يمكن للمستخدم تفعيل عدة موفّرين ومُطلقات في نفس الوقت. سيقوم IPSpinner بعد ذلك باختيار مُطلق عشوائي من بين جميع المُطلقات المتاحة لكل طلب.

2) حسب الموفّر

i. AWS

معاملات إعداد AWS، في قسم aws:


معاملات إعداد API Gateways، في قسم aws:

ii. Azure

معاملات إعداد Azure، في قسم azure:


معاملات إعداد Azure Cloud Shell، في قسم azure:

iii. GitHub

معاملات إعداد GitHub، في قسم github:

ParameterMandatoryDefault valueDescription
username✅اسم مستخدم GitHub
token✅رمز GitHub المرتبط باسم المستخدم المقدم

معاملات إعداد GitHub Actions، في قسم github:

ParameterMandatory
(if ga_enabled=true)
Default valueDescription
ga_enabled/تفعيل مُطلق GitHub Actions

IV/ كيف ...؟

1) دعم HTTP/2؟

لا يدعم IPSpinner بروتوكول HTTP/2. نظرًا لأن الوسيط ينهي اتصال TLS الأول، تُفقد مزايا البروتوكول ويظهر كاتصال HTTP/1.1 أساسي.

وبالتالي، لتجنب مشكلات HTTP/2 عند استخدام IPSpinner مع Burp Suite، يرجى إزالة دعم عميل HTTP/2: Settings > Network > HTTP > HTTP/2 > قم بإلغاء تحديد خانة HTTP/2.

تنزيل الأداة
AWS API GatewayAzure Cloud ShellGitHub Actions
عناوين IP المتاحة≈ 12,418≈ 276> 6,000
متوسط زمن الاستجابة0.46s13.04s21.42s
متوسط زمن إعادة الإعدادلا يوجد20sلا يوجد
أقصى معدل تدفق نظري4,000 to 16,000 req/h107 req/h/cloud shell instance1,000 req/h
هل يمكن/يلزم التحميل المسبق؟✅❌❌
الاستخدام: تصفح✅❌❌
الاستخدام: رش كلمات المرور (password spraying)✅✅✅
ParameterMandatoryDefault value
--config❌config.ini
--export-ca-cert❌
--host❌
--port❌8080
--v, --vv, --vvv❌
ParameterMandatoryDefault valueDescription
preload_hosts_file❌قائمة بعناوين URLs/المضيفات للتحميل المسبق، وذلك للموفّرين الذين يدعمون تحميل المضيفات مسبقًا
whitelist_hosts_file❌قائمة بعناوين URLs/المضيفات المسموح بها (جميع العناصر الأخرى ستُدرج في القائمة السوداء افتراضيًا)
blacklist_hosts_file❌قائمة بعناوين URLs/المضيفات المدرجة في القائمة السوداء (تُتجاهل إذا تم تعيين القائمة البيضاء)
ca_cert_file & ca_cert_key_file❌شهادة CA مقدمة من المستخدم (إذا أراد المستخدم استبدال الشهادة الافتراضية المولّدة)
user_agents_file❌قائمة بوكلاء المستخدم (user agents) التي سيتم اختيارها عشوائيًا للطلبات
debug_response_headers❌falseيضيف ترويستي تصحيح في استجابات الوسيط: X-IPSpinner-Provider و X-IPSpinner-Provider-NbTotalReqSent
wait_for_launcher_available_timeout❌60عدد الثواني قبل انتهاء مهلة الطلب إذا لم يتوفر أي مُطلق
ParameterMandatoryDefault valueDescription
regions✅قائمة بالمناطق، مفصولة بفاصلة، حيث يمكن نشر الموارد
profile❌ملف تعريف AWS CLI لاستخدامه
access_key✅
(or profile)
مفتاح وصول مستخدم AWS
secret_key✅
(or profile)
مفتاح سرّي لمستخدم AWS
session_token❌رمز جلسة مستخدم AWS
ParameterMandatory
(if ag_enabled=true)
Default valueDescription
ag_enabled/تفعيل مُطلق API Gateway
ag_max_instances❌5الحد الأقصى لمثيلات API Gateway التي يمكن نشرها (الحد الأقصى الإجمالي، وليس لكل منطقة)
ag_rotate_nb_requests❌5,000عدد الطلبات قبل تدوير API Gateway
ag_forwarded_for_range❌35.180.0.0/16نطاق عناوين IP لترويسة X-Forwarded-For (نطاق IPv4 أو IPv6)
ag_instance_title_prefix❌fprتخصيص معلومات API Gateway
ag_instance_deployment_description❌IPSpinner FireProx Prodتخصيص معلومات API Gateway
ag_instance_deployment_stage_description❌IPSpinner FireProx Prod Stageتخصيص معلومات API Gateway
ag_instance_deployment_stage_name❌3 random english wordsتخصيص معلومات API Gateway
ParameterMandatoryDefault valueDescription
admin_email✅
(or accounts_file)
البريد الإلكتروني لمسؤول Azure
admin_password✅
(or accounts_file)
كلمة مرور مسؤول Azure
tenant_id✅معرّف المستأجر (Tenant ID)
subscription_id✅معرّف الاشتراك
accounts_file❌قائمة بالحسابات المنشأة مسبقًا (البريد الإلكتروني وكلمة المرور، معلومة واحدة في كل سطر) والتي تتجاوز admin_email و admin_password
ParameterMandatory
(if cs_enabled=true)
Default valueDescription
cs_enabled/تفعيل مُطلق Cloud Shell
cs_preferred_locations✅المواقع المفضلة لنشر مثيلات Cloud Shell
cs_nb_instances❌5عدد مثيلات Cloud Shell التي سيتم نشرها