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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
Panoptic — Panoptic هي أداة مفتوحة المصدر لاختبار الاختراق تعمل على أتمتة عملية البحث واسترجاع المحتوى لملفات السجلات والإعدادات الشائعة عبر ثغرات اجتياز المسار (Path Traversal). | Kitploit
أدوات/GitHubGitHub/lightos/panoptic
الاستطلاعماسحات الثغرات الأمنيةاستغلال تطبيقات الويبجمع المعلوماتاختبار الاختراق
GitHublightos/panoptic

Panoptic

Panoptic هي أداة مفتوحة المصدر لاختبار الاختراق تعمل على أتمتة عملية البحث واسترجاع المحتوى لملفات السجلات والإعدادات الشائعة عبر ثغرات اجتياز المسار (Path Traversal).

عرض المستودع
32574منذ 22 أيامتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

Panoptic

Panoptic Logo

License: MIT Python Versions Ruff mypy GitHub last commit CodeRabbit Pull Request Reviews

Panoptic هي أداة اختبار اختراق مفتوحة المصدر تعمل على أتمتة البحث عن ملفات السجلات والإعداد الشائعة واسترجاعها عبر ثغرات اجتياز المسار.

Panoptic Demo

الميزات

  • فحص متوازٍ غير متزامن مع تجمّع عمال قابل للتهيئة (--concurrency)
  • اكتشاف تلقائي لملفات السجلات والإعداد الشائعة عبر الحقن المستند إلى المعاملات، والمسارات، وPOST، وملفات تعريف الارتباط، والترويسات، ونص JSON
  • علامة FUZZ لنقاط الحقن العشوائية — ضع FUZZ في أي قيمة --header أو --data
  • ترميز Base64 للـ endpoints التي تفك ترميز مسارات الملفات (--base64)
  • كشف تلقائي لنظام التشغيل مع خيار تقييد الفحوصات الإضافية
  • مقارنة استجابات استدلالية مع تصفية رموز الحالة لتقليل النتائج الإيجابية الخاطئة
  • إضافة حالات ديناميكية — تحليل /etc/passwd لملفات الدليل الرئيسي، وmysql-bin.index لملفات binlog
  • تنسيقات مخرجات متعددة: نص (rich)، JSON، CSV (--output-format)
  • دعم الاستئناف/نقاط التفتيش للفحوصات طويلة الأمد (--resume-file)
  • ملفات إعداد TOML للإعدادات الدائمة (--config)
  • تقنيات متعددة لتجاوز الاجتياز: البادئات، اللواحق، المضاعف، استبدال الشرطة المائلة، الترميز المزدوج
  • دعم بروكسي HTTP/HTTPS وSOCKS5 مع التحقق
  • دعم User-Agent وملفات تعريف الارتباط والترويسات عشوائية أو مخصصة

المتطلبات

  • Python 3.10+
  • Git
  • التبعيات: httpx[socks]، وrich، وrich-argparse، وtomli على Python 3.10

التثبيت

root@kitploit:~
git clone https://github.com/lightos/Panoptic.git
cd Panoptic
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e .
panoptic --version

في موجه أوامر Windows، قم بالتفعيل عبر .venv\Scripts\activate.bat؛ وفي PowerShell استخدم .venv\Scripts\Activate.ps1. التثبيت القابل للتحرير يُبقي Panoptic مرتبطًا بهذا الاستنساخ من أجل --update، لذا أبقِ المجلد في مكانه. لا تشغّل pip install panoptic: هذا الاسم على PyPI يعود لمشروع غير ذي صلة.

للتطوير:

root@kitploit:~
python -m pip install -e ".[dev]"

الاستخدام

root@kitploit:~
panoptic --url "http://target/include.php?file=test.txt"

أمثلة

حقن LFI أساسي قائم على المعاملات

root@kitploit:~
panoptic --url "http://target/include.php?file=test.txt"
panoptic --url "http://target/include.php?file=test.txt&id=1" \
  --param file

حقن بيانات POST

root@kitploit:~
panoptic --url "http://target/include.php" \
  --data "file=test.txt&id=1" --param file

LFI قائم على المسار

root@kitploit:~
panoptic --url "http://target/view.php/test.txt" --path-based

معامل بترميز Base64

root@kitploit:~
panoptic --url "http://target/load.php?file=dGVzdC50eHQ=" \
  --base64 --auto

حقن ملف تعريف ارتباط (علامة FUZZ)

root@kitploit:~
panoptic --url "http://target/page.php" \
  --header "Cookie: lang=FUZZ" --auto

حقن نص JSON (علامة FUZZ)

root@kitploit:~
panoptic --url "http://target/api/load" \
  --data '{"file":"FUZZ"}' --auto

حقن ترويسة مخصصة (علامة FUZZ)

root@kitploit:~
panoptic --url "http://target/page.php" \
  --header "X-Template: FUZZ" --auto

معامل الامتداد

root@kitploit:~
panoptic --url "http://target/view.php?file=test&type=txt" \
  --param file --ext-param type

تجاوز الفلتر ببادئة

root@kitploit:~
panoptic --url "http://target/filtered.php?file=test.txt" \
  --prefix "....//....//....//....//"

فحوصات مفلترة

root@kitploit:~
panoptic --url "http://target/include.php?file=test.txt" \
  --os "*NIX" --type conf
panoptic --url "http://target/include.php?file=test.txt" \
  --software PostgreSQL

مخرجات JSON مع دعم الاستئناف

root@kitploit:~
panoptic --url "http://target/include.php?file=test.txt" \
  --output-format json --output-file results.json \
  --resume-file scan.checkpoint

بروكسي مع تجاهل أخطاء SSL

root@kitploit:~
panoptic --url "https://target/include.php?file=test.txt" \
  --proxy "socks5://127.0.0.1:9050" --invalid-ssl

سرد الفلاتر المتاحة

root@kitploit:~
panoptic --list software
panoptic --list category
panoptic --list os

فحص شامل

root@kitploit:~
panoptic --url "http://target/include.php?file=test.txt" \
  --auto --all-versions --concurrency 8

علامة FUZZ

ضع FUZZ في أي مكان داخل قيم --header أو --data لتحديد نقطة الحقن. يستبدل Panoptic FUZZ بكل مسار ملف أثناء الفحص. يتيح هذا اختبار نقاط الحقن التي لا يستطيع --param الوصول إليها:

نوع الحقنمثال
قيمة ملف تعريف ارتباط--header "Cookie: theme=FUZZ"
ترويسة مخصصة--header "X-Include: FUZZ"

عند وجود FUZZ، لا يكون --param مطلوبًا.

الإعداد

يدعم Panoptic ملفات إعداد TOML للإعدادات الدائمة:

root@kitploit:~
panoptic --url "http://target/include.php?file=test.txt" \
  --config ~/.config/panoptic/config.toml

موقع الإعداد الافتراضي: ~/.config/panoptic/config.toml (يُحمَّل تلقائيًا عند وجوده، حتى بدون --config).

root@kitploit:~
[defaults]
# Any long option name (with dashes as underscores) is accepted here,
# including the target and output destinations.
url = "http://target/include.php?file=test.txt"
concurrency = 8
verbose = true
automatic = true
all_versions = true
output_format = "json"
output_file = "results.json"
log_file = "scan.log"
resume_file = "scan.checkpoint"

[proxy]
url = "socks5://127.0.0.1:9050"

[headers]
user_agent = "Mozilla/5.0"
cookie = "sid=foobar; auth=1"
values = ["X-Forwarded-For: 127.0.0.1"]

الأولوية: وسائط سطر الأوامر > ملف الإعداد > الإعدادات الافتراضية المدمجة.

خيارات الهدف والمخرجات المدعومة في الإعداد

يقبل جدول [defaults] أي خيار فحص، وليس فقط ضبط الأداء. ويمكنك على وجه الخصوص حفظ:

  • url — الهدف الافتراضي (يمكن تجاوزه لكل تشغيل عبر --url)
  • output_format، output_file — أين تُحفظ النتائج القابلة للقراءة آليًا
  • log_file — مرآة لمخرجات وحدة التحكم في ملف
  • resume_file — موقع نقطة التفتيش للفحوصات القابلة للاستئناف

الملفات الحساسة التي يكتبها Panoptic — ملف السجل، وملف مخرجات النتائج/القائمة، وأي ملفات تُحفظ عبر --write-files — تُفرَض لها أذونات 0600 للمالك فقط على POSIX. المنصات التي تعرض O_NOFOLLOW ترفض أيضًا ذريًا أي رابط رمزي موجود مسبقًا في مكوّن المسار النهائي. على المنصات التي لا تحتوي O_NOFOLLOW، يقوم Panoptic بفحص أفضل جهد قبل الفتح للروابط الرمزية/الوصلات، لكن الفحص لا يمكنه إزالة سباق (race). بتات الوضع في Windows لا تهيئ قوائم NTFS ACL، لذا استخدم مجلدًا مقيدًا بشكل مناسب عندما قد تحتوي الملفات على بيانات حساسة.

تجاوز القيم المنطقية في الإعداد من سطر الأوامر

لكل علامة (flag) منطقية نظير --no-، لذا يمكن إيقاف قيمة مضبوطة على true في ملف الإعداد لتشغيل واحد دون تعديل الملف:

root@kitploit:~
# config.toml sets verbose = true and automatic = true
panoptic --url "http://target/x.php?file=test.txt" --no-verbose --no-auto

لأن العلامة المنطقية المحذوفة تُترك غير معينة (بدلاً من أن تكون افتراضية على false)، تُستخدم قيمة الإعداد ما لم تمرر العلامة أو صيغة --no- الخاصة بها صراحة.

البروكسي

وجّه الحركة عبر بروكسي HTTP(S) أو SOCKS:

root@kitploit:~
panoptic --url "https://target/x.php?file=test.txt" \
  --proxy "socks5://127.0.0.1:9050"
  • المخططات المقبولة: http://، https://، socks5://، socks5h:// (socks5h يحل DNS عبر البروكسي — مفيد لتور ولتجنب تسرب DNS المحلي). لا يدعم عميل HTTP الأساسي SOCKS4. يُتحقق من المخطط والمضيف قبل بدء الفحص.
  • يأتي دعم SOCKS من الإضافة httpx[socks]، المثبتة افتراضيًا.
  • افتراضيًا يلتزم Panoptic بمتغيرات البيئة القياسية HTTP_PROXY / HTTPS_PROXY / NO_PROXY. مرر --ignore-proxy لتجاوزها والاتصال مباشرة (يعطل هذا أيضًا أي بروكسي مضبوط عبر البيئة).
  • ادمجه مع --invalid-ssl عند اعتراض HTTPS عبر بروكسي له شهادة CA خاصة به. يعطل هذا التحقق من الشهادة وهو غير آمن على الشبكات غير الموثوقة.

توسيع الإصدارات (--all-versions)

بعض المسارات المرفقة هي قوالب إصدارات (مثل مجلدات إصدارات JBoss المكتوبة كـ [JBOSS]). افتراضيًا تُتخطى صفوف القوالب هذه، لأن مسار [JBOSS] الحرفي لا يمكن أن يطابق ملفًا حقيقيًا أبدًا. تمرير --all-versions يوسّع كل قالب مقابل قائمة الإصدارات المرفقة، مضيفًا مسارًا ملموسًا واحدًا لكل إصدار معروف — فحص أكبر بكثير لكنه أكثر شمولاً:

root@kitploit:~
panoptic --url "http://target/x.php?file=test.txt" --auto --all-versions

مقارنة الاستجابات

لا يعتمد Panoptic في تصنيف مسار على ترويسة Content-Length التي يتحكم فيها الهدف وحدها. يقارن النص الكامل المطبَّع مقابل خط الأساس للمسار غير الصالح. يتجنب حد أعلى رخيص للتشابه المقارنة الكاملة فقط عندما يمكنه بالفعل إثبات اختلاف النصوص؛ وتستخدم الاستجابات الغامضة النسبة الدقيقة لتجنب النتائج السلبية الخاطئة الناتجة عن إعادة ترتيب النص.

الاستئناف / نقاط التفتيش

يسجل --resume-file PATH الحالات المكتملة حتى يتمكن الفحص المتقطع من الاستمرار من حيث توقف:

root@kitploit:~
panoptic --url "http://target/x.php?file=test.txt" \
  --resume-file scan.checkpoint
# ... interrupt with Ctrl-C, then re-run the same command to resume

تخزن نقطة التفتيش معرفات الحالات المكتملة فقط بالإضافة إلى بصمة SHA-256 لتعريف الفحص (URL، ومعاملات الحقن، وخيارات الكشف، والترويسات، وملف تعريف الارتباط، وUser-Agent، ومجموعة الحالات الدقيقة). لا تخزن أبدًا بيانات الاعتماد أو الترويسات أو عناوين URL كنص عادي.

عند الاستئناف، تُعاد حساب البصمة ومقارنتها. إذا اختلف أي شيء من شأنه تغيير معنى الفحص — هدف مختلف، أو معامل، أو ترويسة، أو ملف تعريف ارتباط، أو مجموعة فلاتر، أو تبديل --all-versions — تُرفض نقطة التفتيش مع تحذير ويبدأ الفحص من جديد، بحيث لا يمكن لنقطة تفتيش قديمة تخطي حالات من فحص مختلف بصمت. تُقبل نقاط التفتيش القديمة ذات القائمة البسيطة مع تحذير وتُقيَّد بمعرفات الحالات الموجودة في الفحص الحالي؛ ولأن تلك الصيغة القديمة لا تحتوي بصمة، يجب على المستخدمين استبدالها بالصيغة المكتوبة حديثًا. الطلبات الفاشلة (خطأ شبكة) لا تُسجَّل عمدًا في نقاط التفتيش حتى تُعاد محاولتها عند الاستئناف.

الإصدار والتحديث

root@kitploit:~
panoptic --version   # print the installed version and exit
panoptic --update    # fast-forward update from the official GitHub repo

يعمل --update فقط من استنساخ git يكون جهاز التحكم عن بُعد origin فيه يستخدم HTTPS أو SSH ويطابق المصدر الرسمي (يُتحقق منه قبل السحب، لمقاومة إعدادات التحكم عن بُعد غير الآمنة أو العابثة). يجري تقديمًا سريعًا (fast-forward) لفرع main المسحوب من مرجع main الصريح في المصدر. يمكن تحديث التثبيتات غير القائمة على استنساخ بأمان من أرشيف GitHub الرسمي:

root@kitploit:~
python -m pip install --upgrade https://github.com/lightos/Panoptic/archive/refs/heads/main.zip

عند التشغيل من استنساخ، تعرض اللافتة أيضًا مراجعة git القصيرة الحالية.

رموز الخروج

يستخدم Panoptic رموز خروج تقليدية للعمليات بحيث يمكن برمجته:

  • 0 — نجاح: اكتمل الفحص (أو --list / --update). تُحذَّر الطلبات الفردية التي تستنفد محاولات إعادة المحاولة وتبقى مؤهلة لفحص مستأنف، لكنها لا تفشل تشغيلًا ناجحًا بخلاف ذلك.
  • 1 — استخدام غير صالح: وسائط مفقودة أو غير صالحة، أو لا يمكن العثور على معامل قابل للحقن.
  • 2 — فشل تشغيلي: تعذر الاتصال، أو لا توجد حالات اختبار مطابقة، أو فشلت جميع الطلبات المجدولة، أو فشل عامل، أو نقطة تفتيش، أو كتابة مخرجات، أو إعداد.
  • 130 — قاطعه المستخدم (Ctrl-C / SIGINT).

المساهمة

المساهمات مرحب بها! يرجى فتح المشكلات أو طلبات السحب على GitHub.

بيئة الاختبار

لإجراء اختبار شامل (end-to-end) آمن وقابل للتكرار، راجع Panoptic LFI Testbed. يوفر endpoints ضعيفة عمدًا تغطي طرق الحقن وتحويلات الاجتياز التي يدعمها Panoptic.

الترخيص

هذا المشروع مرخص بموجب رخصة MIT — راجع ملف LICENSE للتفاصيل.

تنزيل الأداة
  • تنقيح بيانات الاعتماد في اللافتة والسجل والمخرجات القابلة للقراءة آليًا (بما في ذلك قيم JSON الرقمية والمنطقية)
  • تحصين الملفات الحساسة بأذونات 0600 للمالك فقط على POSIX وحماية الروابط الرمزية للمكوّن النهائي حيث يدعم نظام التشغيل ذلك
  • تحديث ذاتي مع التحقق من عنوان URL البعيد (--update)
  • نص JSON--data '{"template":"FUZZ"}'
    قيمة متداخلة--header "Cookie: sid=abc; lang=FUZZ"