
واجهة سطر أوامر Rust لاستطلاع الشبكة المحدود: اكتشاف منافذ TCP/UDP، وتحديد الخدمات، وجمع أدلة DNS/TLS/HTTP، والبحث عن أسماء المستخدمين من المصادر العامة مع الربط بينها.
محرك الاستطلاع والأدلة
استطلاع محدود وربط الأدلة بلغة Rust.
يجمع RXScan بين استطلاع الشبكة والبحث في المصادر العامة والتحقيق وربط الأدلة في واجهة سطر أوامر واحدة.
يمكنه اكتشاف المضيفين والمنافذ، وتحديد الخدمات المرصودة، وجمع أدلة محدودة من البروتوكولات والويب، والبحث في المزوّدين العامّين، وربط النتائج، وحفظ النتائج لتحليلها ومقارنتها لاحقًا.
يتحلّى RXScan بالتحفّظ المتعمّد فيما يبلّغ عنه. فرقم المنفذ لا يحدّد الخدمة، ونجاح طلب HTTP لا يؤكّد بحد ذاته وجود حساب، ويُبقى التغطية الناقصة منفصلة عن النتيجة السلبية.
البناء والتثبيت من المستودع:
git clone https://github.com/DarkRX1/RXScan.git
cd RXScan
cargo install --path . --locked
تحقق من البناء المثبّت:
rxscan --version
rxscan --help
شغّل فحص استطلاع عادي:
rxscan example.test
ابحث في المصادر العامة:
rxscan search --username exampleuser
تحقّق من النتائج العامة واربط بينها:
rxscan investigate --username exampleuser
هذه هي نقاط الدخول الرئيسية الثلاث:
rxscan TARGET
rxscan search ...
rxscan investigate ...
يستخدم الفحص الافتراضي سير العمل recon، والمستوى 3، وإعدادات تنفيذ متوازنة.
rxscan example.test
حدد المنافذ عندما تريد اختيار منفذ محدد:
rxscan example.test --ports 22,80,443
rxscan example.test --ports 1-1024
rxscan example.test --ports 22,80,443,8000-8100
افحص نطاق منافذ TCP الكامل:
rxscan example.test --all-ports
اكتشاف UDP صريح:
rxscan example.test --udp
اعرض الخطة الفعّالة وتفاصيل التنفيذ الإضافية:
rxscan example.test --explain
يدعم RXScan:
rxscan example.test --scan-mode auto
rxscan example.test --scan-mode connect
rxscan example.test --scan-mode syn
فحص TCP connect هو مسار الفحص المحمول الذي يستخدمه RXScan حاليًا على منصته المدعومة.
يتوفر فحص SYN الخام لعناوين IPv4 على Linux عند توفر القدرة المطلوبة. وعندما يتعذر استخدام مسار SYN المطلوب، يبلّغ RXScan عن مسار التراجع الفعلي بدلًا من تقديم فحص connect بصمت على أنه SYN.
يستخدم فحص UDP تحقيقات أصلية محدودة النطاق ويظل اختياريًا.
يشمل اكتشاف UDP الحالي المدرك للبروتوكول تحقيقات صغيرة لخدمات مثل DNS وNTP وSSDP.
لا يُبلَّغ عن صمت UDP كدليل على أن المنفذ مفتوح أو مغلق. يحافظ RXScan على حالة عدم اليقين الناتجة open|filtered.
اكتشاف نظام التشغيل صريح ومدعوم بالأدلة، وليس تخمينًا من مؤشر واحد:
rxscan example.test --os
--os يشغّل خطة فحص محدودة لكل مضيف ضمن النطاق (بحد أقصى 6 فحوصات TCP/ICMP عادية، مع إعادة استخدام المنافذ التي يعرفها الفحص مسبقًا) ويشرح كل مرشّح: الأدلة المطابقة، والأدلة المتعارضة، والأدلة غير المتاحة، والتغطية، والمصدر. وبدون قدرة الحزم الخام فإنه يتراجع بصدق إلى الأدلة السلبية بثقة منخفضة. وتُعد Unknown نتيجة من الدرجة الأولى عندما تكون الأدلة غير كافية. راجع docs/OS_FINGERPRINTING.md للاطلاع على نموذج الأدلة والقيود والواقع الحالي للمجموعة المرجعية.
يحدد RXScan الخدمات بناءً على سلوك البروتوكول المرصود بدلًا من تعيين خدمة بناءً على رقم المنفذ وحده.
يشمل التحديد الأصلي الحالي بروتوكولات شائعة منها:
اعتمادًا على البروتوكول والأدلة المتاحة، قد تشمل الملاحظات معلومات المنتج/الإصدار، ولافتات الترحيب، ونقاط نهاية HTTP وعناوينها، وبيانات شهادات TLS، ومعلومات هوية SSH، وأدلة تقنية موحّدة.
تبقى الخدمات غير المعروفة غير معروفة عندما لا يمتلك RXScan أدلة كافية لتحديدها.
لا يلزم أي مصادقة لفحوصات التحديد هذه.
يتوفر البحث عن أسماء المستخدمين عبر:
rxscan search --username exampleuser
يركّز الإخراج العادي على النتائج الإيجابية المفيدة والنتائج غير المؤكدة بدلاً من طباعة كل نتيجة سلبية من المزوّد.
يمكن للنتيجة أن تميّز بين ملف تعريف مُلاحَظ، ومورد آخر مُلاحَظ، وموقع مرشّح غير مؤكد.
على سبيل المثال:
FINDINGS
✓ provider / exampleuser
Profile https://example.test/exampleuser
high · 94% · public profile
? another-provider / exampleuser
Candidate https://example.test/u/exampleuser
low · 25% · weak evidence
التسميات مقصودة:
| التسمية | المعنى |
|---|---|
Profile | ملف تعريف عام خاص بالهوية تم رصده |
Resource | مورد خاص بالهوية تم رصده وليس بالضرورة ملف تعريف عام |
Candidate | موقع خاص بالهوية لم يتم تأكيده |
لا تُعرض الصفحات الرئيسية العامة لمزوّدي الخدمة أو نقاط نهاية API كعناوين URL مؤكدة للملفات الشخصية.
كما يحافظ RXScan على تمييز نتائج المزوّدين مثل المحظور، والمحدود المعدل، وغير المعروف، والخطأ، وغير المفحوص بدلاً من تحويلها إلى نتائج سلبية خاطئة.
اعرض مجموعة النتائج البشرية الكاملة باستخدام:
rxscan search --username exampleuser --all
أظهر تفاصيل إضافية حول التنفيذ والتصنيف باستخدام:
rxscan search --username exampleuser --explain
يمكن تمرير النتائج العامة عبر خط أنابيب التحقيق والربط في RXScan:
rxscan investigate --username exampleuser
يركز العرض الافتراضي على الحسابات وعناوين URL المفيدة ودرجة الثقة والعلاقات ذات المعنى.
تُحتفظ موارد الويب الثانوية مثل JavaScript الثابت وأوراق الأنماط والخطوط والصور عندما تكون ذات صلة بالأدلة الأساسية، لكنها لا تهيمن على التقرير البشري الافتراضي.
يمكن للعروض التفصيلية كشف المزيد من بيانات العلاقات المجمّعة.
يبقى التحقيق سلبياً افتراضياً. إن اكتشاف هدف شبكي عبر أدلة عامة لا يمنح تلقائياً تفويضاً أو يطلق فحصاً شبكياً.
يخزّن RXScan الملاحظات كأدلة مصنّفة تستخدمها مسارات التقارير والتحقيق والرسم البياني والسجل والتحليل الخاصة به.
تُفرض عدة قواعد عمداً في جميع أنحاء المشروع:
200 وحدها لا تثبت وجود حساب عام؛يُعد هذا التمييز بين الملاحظة والتفسير جزءاً أساسياً من تصميم RXScan.
بالنسبة لخدمات الويب المؤكدة، يمكن لـ RXScan جمع ملاحظات HTTP محدودة مثل:
robots.txtsitemap.xmlيمكن لسير العمل والأدلة أيضاً السماح بالزحف المحدود والفحوصات الأساسية واكتشاف المحتوى المُدار ومتابعات استعلامات GET السياقية.
تدعم ملاحظة DNS جمع السجلات المحدود بما في ذلك:
تسجّل ملاحظة TLS أدلة المصافحة والشهادات. وهي ليست ماسحاً شاملاً لحزم تشفير TLS.
تخضع النشاطات الشبكية لسياسة النطاق الخاصة بـ RXScan.
يمكن توفير أهداف إضافية مسموح بها صراحةً:
rxscan example.test --scope example.test
يمكن أيضًا استبعاد الأهداف:
rxscan example.test --exclude api.example.test
يُرفض العمل خارج النطاق قبل الاتصال الشبكي المقابل.
يقلل تطبيق النطاق من الاتصال العرضي. وهو لا يحل محل مسؤولية المشغّل في امتلاك التصريح.