Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
warcannon — عالية السرعة/منخفضة التكلفة CommonCrawl RegExp في Node.js | Kitploit
أدوات/GitHubGitHub/c6fc/warcannon
الاستخبارات مفتوحة المصدر (OSINT)تسريب البياناتجمع المعلوماتأمن السحابةالأدوات والمكوناتزاحف الويب
GitHubc6fc/warcannon

warcannon

عالية السرعة/منخفضة التكلفة CommonCrawl RegExp في Node.js

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

الأكثر شعبية

عرض الكل →

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

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

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

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

WARCannon - معالجة متوازية قوية بشكل كارثي لـ WARC

Image

تم بناء WARCannon لتبسيط وتقليل تكلفة عملية 'البحث في الإنترنت'.

مع WARCannon، يمكنك:

  • بناء واختبار أنماط التعبيرات العادية (regex) ضد بيانات Common Crawl الحقيقية
  • تحميل مجموعات بيانات Common Crawl بسهولة للمعالجة المتوازية
  • توسيع قدرات الحوسبة لمعالجة ملفات WARC بشكل غير متزامن وبسعة غير معقولة بصراحة
  • تخزين النتائج واسترجاعها بسهولة

كيف يعمل

يستفيد WARCannon من الاستخدام الذكي لتقنيات AWS للتوسع أفقيًا إلى أي سعة، وتقليل التكلفة من خلال أساطيل الفوري (spot fleets) ونقل البيانات في نفس المنطقة، وسحب البيانات من S3 بسرعات لا تصدق (تصل إلى 100 جيجابت في الثانية لكل عقدة)، والتوازي عبر مئات نوى وحدة المعالجة المركزية، وإبلاغ الحالة عبر DynamoDB وCloudFront، وتخزين النتائج عبر S3.

بشكل عام، يمكن لـ WARCannon معالجة أنماط متعددة من التعبيرات العادية عبر 400 تيرابايت في بضع ساعات بتكلفة حوالي 30 دولارًا.

التثبيت عبر CloudShell

أسرع وأسهل طريقة للبدء هي استخدام AWS CloudShell. فقط الصق هذا السطر الواحد:

source <(curl https://raw.githubusercontent.com/c6fc/warcannon/master/cloudshell/deploy.sh)

إذا كنت تريد استخدام فرع غير master من WARCannon، فقط اكتب:

export GIT_BRANCH=branch_name
source <(curl https://raw.githubusercontent.com/c6fc/warcannon/$GIT_BRANCH/cloudshell/deploy.sh)

ملاحظة: يستخدم نشر CloudShell تخزينًا مؤقتًا، مما يعني فقدان أنماط regex المخصصة عند خروج CloudShell. إذا كنت ستستخدم WARCannon بشكل متكرر، أوصي باستخدام 'التثبيت المحلي' أدناه.

التثبيت المحلي

يتطلب WARCannon تثبيت ما يلي:

  • awscli (v2)
  • cmake3
  • node.js (v17.0.1+)

نصيحة احترافية: للحفاظ على الأشياء نظيفة ومميزة عن غيرها مما قد يكون لديك في AWS، يُوصى بشدة بنشر WARCannon في حساب جديد. يمكنك إنشاء حساب جديد بسهولة من وحدة تحكم 'Organizations' في AWS. بتعبير 'موصى به بشدة'، أعني 'لا تقم بتثبيت هذا بجانب أشياء أخرى بجدية'.

أولاً، استنسخ المستودع وانسخ الإعدادات المثال.

$ git clone [email protected]:c6fc/warcannon.git
$ cd warcannon
warcannon$ cp settings.json.sample settings.json

قم بتعديل settings.json حسب رغبتك:

الإعدادات المطلوبة

  • nodeInstanceType: مصفوفة من أنواع المثيلات لاستخدامها في المعالجة المتوازية. أنواع 'c' هي الأفضل قيمة لهذا الغرض، ويمكن استخدام أي حجم. القيمة الموصى بها للحملات الحقيقية هي ["c5n.18xlarge"].
  • nodeCapacity: عدد العقد المطلوب طلبها أثناء المعالجة المتوازية. ستكون العقد الناتجة توزيعًا عشوائيًا لأنواع nodeInstanceTypes التي تحددها.
  • nodeParallelism: عدد ملفات WARC المتزامنة للمعالجة لكل vCPU. الرقم 2 هو رقم جيد هنا. إذا كانت العقد لا تحتوي على ذاكرة وصول عشوائي كافية للتشغيل عند هذا المستوى من التوازي (كما قد تواجهه مع مثيلات من نوع 'c')، فستعمل بدلاً من ذلك بأعلى مستوى أمان من التوازي.
  • nodeMaxDuration: أقصى عمر افتراضي لعقد الحوسبة بالثواني. سيتم إنهاء العقد تلقائيًا بعد هذا الوقت إذا لم تكتمل المهمة بعد. القيمة الافتراضية هي 24 ساعة.

الإعدادات الاختيارية (اتركها بالكامل إذا لم تكن مستخدمة)

  • sshKeyName: اسم مفتاح SSH الخاص بـ EC2 موجود بالفعل في us-east-1.
  • allowSSHFrom: قناع CIDR للسماح باتصال SSH منه. سيكون هذا عادةً &lt;yourpublicip&gt;/32

للتثبيت، قم بتشغيل هذا:

$ npm install
$ npm link
$ warcannon deploy

بداية سريعة

تشغيل حملة في WARCannon يستخدم سير عمل بسيط وسهل المتابعة يمكن وصفه بشكل أفضل في هذه الخطوات القليلة:

  1. انشر البنية التحتية: warcannon deploy
  2. قم بتطوير أنماط regex ثم اختبرها محليًا: warcannon testLocal -s
  3. تحقق من أنماط regex في AWS عبر Lambda: warcannon test
  4. أظهر الزحفات المتاحة: warcannon list 2022
  5. املأ قائمة الانتظار بالزحف الذي تختاره: warcannon populate 2022-21
  6. قم بتنفيذ الحملة: warcannon fire
  7. انتظر حتى تنتهي الحملة، ثم استرجع النتائج من S3 باستخدام warcannon syncResults

تابع القراءة لفهم أكثر تفصيلاً لكل خطوة.

استخدام WARCannon

يغذي WARCannon بواسطة Common Crawl عبر برنامج AWS Open Data. يتميز Common Crawl بأن البيانات التي يسترجعها عناكبها لا تلتقط نص موقع الويب فحسب، بل تلتقط أيضًا محتوى نصيًا آخر مثل JavaScript وTypeScript وHTML الكامل وCSS وما إلى ذلك. من خلال إنشاء تعبيرات عادية مناسبة قادرة على تحديد المكونات الفريدة، يمكن للباحثين تحديد مواقع الويب بناءً على التقنيات التي تستخدمها، دون لمس الموقع نفسه أبدًا. المشكلة هي أن هذا يتطلب تحليل مئات التيرابايت من البيانات، وهي مهمة صعبة بغض النظر عن الموارد المتاحة لك. لحسن الحظ، يوفر WARCannon عدة أدوات يمكنك استخدامها لإنجاز ذلك!

تطوير التعبيرات العادية

البحث في الإنترنت ليس لضعاف القلوب، لكن البدء بمنخل فعال هو الخطوة الأولى. يدعم WARCannon ذلك من خلال تمكين التحقق المحلي من التعبيرات العادية ضد بيانات Common Crawl الحقيقية. أولاً، افتح lambda_functions/warcannon/matches.js وقم بتعديل كائن regex_patterns ليشمل التعبيرات العادية التي ترغب في استخدامها بتنسيق name: pattern. إليك مثال من مجموعة البحث الافتراضية:

exports.regex_patterns = {
	"access_key_id": /(\'A|"A)(SIA|KIA|IDA|ROA)[JI][A-Z0-9]{14}[AQ][\'"]/g,
};

سيتم حفظ السلاسل المطابقة لهذا التعبير تحت المفتاح المقابل في النتائج؛ access_key_id في هذه الحالة. نصيحة احترافية: استخدم RegExr بتنسيق 'JavaScript' لبناء واختبار التعبيرات العادية ضد المطابقات المعروفة الجيدة.

لديك أيضًا خيار التقاط النتائج فقط من نطاقات محددة. للقيام بذلك، ما عليك سوى ملء مصفوفة domains بأسماء النطاقات المؤهلة بالكامل (FQDNs) التي ترغب في تضمينها. يُوصى بتركها فارغة [] لأنها لا تستحق العناء تقريبًا أبدًا (الجهد المحفوظ في المعالجة صغير جدًا)، ولكن يمكن أن تكون مفيدة في بعض الحالات المحددة.

exports.domains = ["example1.com", "example2.com"];

بمجرد ملء matches.js، قم بتشغيل الأمر التالي:

warcannon$ warcannon testLocal -s

يمكنك اختياريًا إضافة مسار إلى ملف WARC في دلو S3 commoncrawl إذا أردت، ولكن سيتم استخدام مسار افتراضي ثابت بخلاف ذلك.

سيقوم WARCannon بمعالجة ملف WARC بتدفق (أو تنزيله بالكامل إذا حذفت -s) للعثور على المطابقات التي قمت بتكوينها. سيحفظ WARCannon النتائج في مجلد ~/.warcannon/ عند المقاطعة بـ ctrl+c أو عند انتهاء المعالجة. هذا يسهل اختبار المطابقات الشائعة بسرعة كبيرة مع الحد الأدنى من عرض النطاق الترددي.

علاوة على كل شيء آخر، سيحاول WARCannon تقييم التكلفة الحسابية الإجمالية لتعبيراتك العادية عند تشغيلها محليًا. بهذه الطريقة، يمكنك أن تكون على علم ما إذا كان تعبير عادي معين سيؤثر بشكل كبير على الأداء قبل تنفيذ حملتك.

Image

إجراء معالجة مخصصة

أحيانًا لا يكون نمط regex البسيط كافيًا بمفرده، وتحتاج إلى بعض الخطوات الإضافية لضمان إرجاع المعلومات الصحيحة. في هذه الحالة، مجرد إضافة دالة إلى كائن exports.custom_functions بنفس اسم المفتاح يسمح لك بإجراء أي معالجة إضافية تراها مناسبة.

exports.regex_patterns = {
	"access_key_id": /(\'A|"A)(SIA|KIA|IDA|ROA)[JI][A-Z0-9]{14}[AQ][\'"]/g,
};

exports.custom_functions = {
	"access_key_id": function(match) {
		// تجاهل المطابقات التي تحتوي على 'EXAMPLE' في النص، لأن هذا شائع في التوثيق.
		if (match.text(/EXAMPLE/) != null) {
			// إرجاع قيمة منطقية 'false' يتجاهل المطابقة.
			return false
		}
	}
}

ملاحظة: WARCANNON مصمم لمعالجة النصوص بسرعات مذهلة. بينما من الممكن بالتأكيد إجراء أي نوع من العمليات التي ترغب فيها، فإن إضافة وظائف مخصصة عالية زمن الوصول مثل استدعاءات الشبكة يمكن أن تزيد بشكل كبير من وقت المعالجة والتكاليف. قد تؤدي استدعاءات الشبكة أيضًا إلى الكثير من الاستدعاءات لموقع ويب، مما قد يجعلك في مشكلة. كن ذكيًا في كيفية استخدام هذه الوظائف.

إجراء اختبار لمرة واحدة في AWS

يمكن أن تكون تكاليف AWS مصدر قلق، خاصة عندما تبحث فقط عن إجراء بعض الأبحاث. تم بناء WARCannon للسماح بالتنفيذات الفردية بالإضافة إلى الحملات الكاملة، حتى تكون واثقًا من النتائج التي ستحصل عليها. بمجرد أن تصبح راضيًا عن النتائج التي تحصل عليها باستخدام testLocal، يمكنك نشر المطابقات المحدثة وإجراء اختبار مدعوم من السحابة بسهولة:

warcannon$ warcannon deploy
warcannon$ warcannon test

مرة أخرى، يمكنك اختياريًا تضمين مسار WARC إذا أردت، على الرغم من أنه ليس مطلوبًا.

تنزيل الأداة