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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
vi-bot — مكتبة كشف على جانب العميل مع 28 وحدة موزونة، تحليل سلوكي، بصمة متصفح، مصائد نحل، وتحقق من جانب الخادم. تكشف المتصفحات الخفية، Selenium، Puppeteer، Playwright، وأطر الأتمتة المخفية. | Kitploit
أدوات/GitHubGitHub/mohamedlahmeri01/vi-bot
أدوات دفاعيةالتهرب من IDS/IPSأمن الويبمكافحة الروبوتاتانتحال البصمة الرقميةكشف الشذوذ
GitHubmohamedlahmeri01/vi-bot

vi-bot

مكتبة كشف على جانب العميل مع 28 وحدة موزونة، تحليل سلوكي، بصمة متصفح، مصائد نحل، وتحقق من جانب الخادم. تكشف المتصفحات الخفية، Selenium، Puppeteer، Playwright، وأطر الأتمتة المخفية.

عرض المستودع
21منذ شهر واحدلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

BotDetect v2 — مكتبة كشف البوتات للبيئات الإنتاجية

BotDetect Logo

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

الإصدار v2.1.0 — مصائد مضادة للاكتشاف، بصمة كانفاس مستقرة لبطاقة الرسوميات GPU، تحليل سلوكي محسّن، تهيئة كسولة، كشف التلاعب من جانب الخادم، ربط بصمة الطلب، وتحديد معدل الطلبات.


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

  • الميزات
  • الهندسة المعمارية
  • البدء السريع
  • واجهة برمجة التطبيقات من جانب العميل
  • التكامل من جانب الخادم
  • وحدات الكشف
  • التكوين
  • قائمة التحقق للإنتاج
  • الاختبار

الميزات

  • 28 وحدة كشف تغطي أطر الأتمتة، والمتصفحات عديمة الرأس، والبصمة، والتحليل السلوكي، والمصائد، ومصائد تتبع مكدس الاستدعاءات
  • نظام تسجيل مرجح — لكل إشارة وزن قابل للتكوين؛ النتيجة النهائية تُحسب من جانب الخادم
  • ثلاثة مستويات حكم: human (بشري)، suspicious (مريب)، bot (بوت) مع إجراءات احتكاك مقابلة (monitor مراقبة، challenge تحدٍ، block حظر)
  • التحقق من جانب الخادم — مقيد بـ nonce، محمي من إعادة التشغيل، موقع بإثبات العمل
  • مصائد تتبع مكدس الاستدعاءات — تزييد واجهات برمجة تطبيقات DOM لالتقاط مكدسات استدعاء أدوات الأتمتة
  • التحليل السلوكي — انحناء الماوس، تباين توقيت ضغطات المفاتيح، تسارع التمرير، ديناميكيات اللمس
  • مصائد مضادة للاكتشاف — إخفاء عشوائي عبر CSS، حقول خادعة، أسماء حقول واقعية
  • كشف التلاعب من جانب الخادم — يتحقق من سلامة الإشارة، ويكشف محاولات التلاعب
  • ربط بصمة الطلب — ربط رموز إثبات العمل بخصائص طلب HTTP
  • تحديد معدل الطلبات — تحديد المعدل لكل جلسة على جميع نقاط التحقق
  • كشف عدم وجود سكريبت — يحدد العملاء الذين لا يرسلون حمولات الكشف مطلقًا
  • قائمة مسموح بها للزواحف المعروفة — أكثر من 20 بوتًا شرعيًا مستبعدًا من التسجيل

الهندسة المعمارية

root@kitploit:~
Browser                                  Your Server
┌──────────────────────────┐            ┌──────────────────────┐
│ Collector (singleton)    │  POST      │ Express Middleware    │
│  ├─ 28 detection modules│  signals   │  ├─ NonceManager      │
│  ├─ BehaviorTracker     │  + nonce   │  ├─ RateLimiter       │
│  ├─ HoneypotTraps       │───────────▶│  ├─ TamperDetector    │
│  ├─ Stack trace traps   │            │  ├─ computeVerdict()  │
│  └─ IframeContext       │            │  └─ Proof-of-Work     │
│                         │  verdict   │                        │
│  ↓ collect() →          │  + proof   │  Returns:             │
│  DetectionResult[]      │◀───────────│  { verdict, score,    │
└──────────────────────────┘            │    confidence, proof, │
                                        │    tamperScore }      │
                                        └──────────────────────┘
                                              │
                                              ▼
                                        Session-gated endpoint
                                        (login, checkout, etc.)
                                        validates proof before
                                        granting access

المبدأ الأساسي: يقوم المتصفح فقط بجمع إشارات DetectionResult[] الأولية. الخادم يحسب الحكم النهائي باستخدام جدول أوزان سري. لا يتم الوثوق أبدًا بالنتائج المحسوبة من جانب العميل.


البدء السريع

1. البناء

root@kitploit:~
npm install
npm run build

المخرجات إلى dist/:

  • botdetect.min.js (مع polyfills، حوالي 151 كيلوبايت)
  • botdetect-clean.min.js (للمتصفحات الحديثة فقط، حوالي 74 كيلوبايت)

2. تضمينه في صفحتك

root@kitploit:~
<script src="/path/to/botdetect.min.js"></script>
<script>
  BotDetect.collector.enableTraps();
  BotDetect.collector.enableBehavioralTracking();
  BotDetect.collector.enableHoneypots();
</script>

3. إعداد التحقق من جانب الخادم

root@kitploit:~
cd server
npm install express cors express-session
node example-integration.js

4. إرسال الإشارات عند إجراء حساس

root@kitploit:~
async function onLogin() {
  const { nonce } = await (await fetch('/api/botdetect/nonce')).json();
  BotDetect.collector.setNonce(nonce);

  const signals = await BotDetect.collector.collect();

  const resp = await fetch('/api/botdetect/verify', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ signals, nonce })
  });
  const { verdict, score, proof, friction } = await resp.json();

  document.getElementById('botdetect-proof').value = proof;
  document.getElementById('login-form').submit();
}

5. التحقق على الخادم

root@kitploit:~
app.post('/api/login', (req, res) => {
  const bd = req.session.botdetect;
  if (!bd) return res.status(403).json({ error: 'no_verification' });
  if (bd.verdict === 'bot') return res.status(403).json({ error: 'access_denied' });
  if (bd.verdict === 'suspicious') return challengeCaptcha(req, res);
  res.json({ success: true });
});

واجهة برمجة التطبيقات من جانب العميل

Collector (مفرد)

root@kitploit:~
import Collector from './collector/Collector';
// أو عبر الكائن العام: BotDetect.collector

Detector (للتصحيح فقط)

root@kitploit:~
import Detector from './detector/Detector';

تحذير: يتم تشغيل analyze() بالكامل في المتصفح. لا تستخدم مخرجاته أبدًا في قرارات الإنتاج.

الأنواع

root@kitploit:~
interface DetectionResult {
  name: string;      // اسم الوحدة
  score: number;     // 0.0 – 1.0
  weight: number;    // 1 – 10 (الأهمية)
  detail?: string;   // وصف قابل للقراءة البشرية
}

interface DetectionVerdict {
  verdict: 'bot' | 'suspicious' | 'human';
  score: number;       // 0.0 – 1.0
  confidence: number;  // 0.0 – 1.0
  signals: DetectionResult[];
  threshold: number;
  friction: 'monitor' | 'challenge' | 'block';
}

interface CollectorConfig {
  detectionTimeoutMs: number;   // مهلة لكل وحدة (الافتراضي: 3000)
  enableTraps: boolean;
  enableBehavioralTracking: boolean;
  enableHoneypots: boolean;
  thresholds: { strict: number; balanced: number; relaxed: number };
}

التكامل من جانب الخادم

الوسيط Express

root@kitploit:~
const { createBotDetectEndpoint } = require('./server');

const { router, generateProofOfWork, cleanup } = createBotDetectEndpoint({
  secretSalt: process.env.BOTDETECT_SALT,
  scoring: {
    threshold: 'balanced',       // 'strict' | 'balanced' | 'relaxed' | number
    minSignals: 2,
    signalBoostThreshold: 0.8,
    frictionThresholds: { monitor: 0.2, challenge: 0.5, block: 0.8 }
  },
  nonce: { ttl: 300000 },              // صلاحية nonce لمدة 5 دقائق
  noScript: { timeout: 10000 },         // نافذة عدم وجود سكريبت 10 ثوانٍ
  rateLimit: { maxRequests: 10, windowMs: 60000 },
  noScriptPaths: ['/api/login', '/api/checkout', '/api/register']
});

app.use('/api', router);

نقاط النهاية

نقطة النهايةالطريقةالغرض
/api/botdetect/nonceGET

تنسيق استجابة الخادم

root@kitploit:~
{
  "verdict": "human",
  "score": 0.125,
  "confidence": 0.85,
  "tamperScore": 0,
  "friction": "monitor",
  "threshold": 0.5,
  "proof": "a1b2c3d4e5f6..."
}

التسجيل من جانب الخادم (Node.js)

root@kitploit:~
const { computeVerdict, RateLimiter, NonceManager } = require('./scoring');

const verdict = computeVerdict(signals, {
  threshold: 'balanced',
  minSignals: 2,
  signalBoostThreshold: 0.8,
  frictionThresholds: { monitor: 0.2, challenge: 0.5, block: 0.8 }
});

// verdict.tamperScore > 0 إذا تم الكشف عن تلاعب بالإشارة

وحدات الكشف

أطر الأتمتة (الأوزان 5–7)

خاصة بـ Playwright (الأوزان 3–4)

الوحدةتكتشفالوزن
playwrightWebKitأثر أتمتة WebKit4
playwrightOrientationعدم تناسق الاتجاه مع chrome.runtime3

التحليل السلوكي (الوزن 7)

الوحدةالإشارات المحللةالوزن
behavioralAnalysisانحناء الماوس + نسبة الخط المستقيم، تباين ضغطات المفاتيح + أنماط الاندفاع + KPM، تسارع التمرير + تغيرات الاتجاه، تباين قوة اللمس + نصف القطر7

بصمة المتصفح (الأوزان 3–4)

خصائص Navigator و نظام التشغيل (الوزن 5)

الوحدةالفحوصاتالوزن
navigatorInconsistencies11 فحصًا: languages، plugins، mimeTypes، platform، UA، cookies، DNT، touch، hardwareConcurrency، deviceMemory، connection5

الشاشة و الأداء (الوزن 3)

الوحدةتكتشف

المصائد النشطة و المصائد الخادعة (الأوزان 8–9)

الوحدةتكتشفالوزن
honeypotTrapsحقول مخفية عشوائية + حقول خادعة + نقطة نهاية كناري9

الشبكة و السياق (الأوزان 1–2)

القائمة المسموح بها (الوزن 0)

الوحدةتكتشفالوزن
verifiedBotsأكثر من 20 زاحفًا معروفًا (Googlebot، Bingbot، Yandex، Facebook، Twitter، إلخ) — يُرجع -1، مستبعد من التسجيل0

التكوين

Collector

root@kitploit:~
const collector = Collector.getInstance({
  detectionTimeoutMs: 1000,    // أقل لتجربة مستخدم أسرع
  enableTraps: true,
  enableBehavioralTracking: true,
  enableHoneypots: true,
  thresholds: {
    strict: 0.3,     // عدواني (تسجيل الدخول، الدفع)
    balanced: 0.5,   // افتراضي
    relaxed: 0.7     // متساهل (تصفح المحتوى)
  }
});

Detector (للتصحيح فقط)

root@kitploit:~
const detector = Detector.getInstance({
  threshold: 'balanced',      // 'strict' | 'balanced' | 'relaxed' | number
  minSignals: 2,              // الحد الأدنى من الإشارات قبل التعزيز
  signalBoostThreshold: 0.8,  // الإشارات فوق هذا تحصل على وزن إضافي
  failPolicy: 'open',         // 'open' = بشري عند الخطأ، 'closed' = بوت عند الخطأ
  frictionThresholds: {
    monitor: 0.2,
    challenge: 0.5,
    block: 0.8
  }
});

الخادم

root@kitploit:~
createBotDetectEndpoint({
  secretSalt: process.env.BOTDETECT_SALT,  // حافظ على السرية
  scoring: { threshold: 'balanced' },
  nonce: { ttl: 300000, cleanupInterval: 60000 },
  noScript: { timeout: 10000 },
  rateLimit: { maxRequests: 10, windowMs: 60000 },
  requestFingerprint: true,                // ربط PoW بخصائص الطلب
  noScriptPaths: ['/api/login', '/api/checkout']
});

قائمة التحقق للإنتاج

الأمان

  • secretSalt مخزنة في متغير بيئة، لا في الكود أبدًا
  • HTTPS + HSTS مفعل
  • CORS مقيد بنطاقك
  • صلاحية Nonce ≤ 5 دقائق
  • أسرار الجلسة يتم تدويرها بانتظام
  • تحديد معدل الطلبات مكوّن لكل نقطة نهاية
  • ربط بصمة الطلب مفعل

الأداء

  • detectionTimeoutMs مضبوط (1000–2000 مللي ثانية موصى بها)
  • الحزمة النظيفة (botdetect-clean.min.js) للمتصفحات الحديثة
  • تحميل الكشف مسبقًا أثناء الخمول قبل الإجراء الحساس
  • مراقبة زمن الاستجابة في الإنتاج (performance.measure)

المراقبة

  • تسجيل أحداث tamperScore > 0 (محاولات تلاعب بالإشارة)
  • تتبع معدل friction === 'block' بمرور الوقت
  • التنبيه عند تجاوز حد معدل الطلبات
  • مراجعة فعالية الكشف كل ربع سنة (البوتات تتطور)

الاختبار

root@kitploit:~
npm test              # 74 اختبار Jest عبر 6 مجموعات
npm run typecheck     # وضع TypeScript الصارم
npm run lint          # ESLint
npm run build         # حزمة Webpack للإنتاج

الترخيص

Apache — Lahmeri Mohamed Amine

تنزيل الأداة
الطريقةالإرجاعالوصف
getInstance(config?)Collectorالوصول إلى المفرد
configure(config)voidتحديث الإعدادات وقت التشغيل
getConfig()CollectorConfigالإعدادات الحالية
init()voidتهيئة كسولة للمصائد، التتبع، المصائد الخادعة
enableTraps()voidتثبيت مصائد تتبع المكدس على واجهات DOM
enableBehavioralTracking()voidبدء مراقبة الماوس/لوحة المفاتيح/التمرير
enableHoneypots(container?)voidتثبيت حقول المصائد الخادعة
collect()Promise<DetectionResult[]>تشغيل جميع عمليات الكشف
setNonce(nonce)voidتخزين nonce الصادر من الخادم
getSessionId()stringمعرف جلسة فريد
getFingerprint()stringتجزئة بصمة الجلسة
resetBehavioralData()voidمسح البيانات السلوكية
destroy()voidتنظيف جميع المستمعين وعناصر DOM
الطريقةالإرجاعالوصف
getInstance(config?)Detectorالوصول إلى المفرد
configure(config)voidتحديث الإعدادات
analyze(results)DetectionVerdictتسجيل + تصنيف (تصحيح محلي فقط)
handleError(error)DetectionVerdictحكم احتياطي عند الفشل
إصدار nonce للاستخدام الفردي
/api/botdetect/verifyPOSTإرسال الإشارات، استلام حكم موقع
/api/botdetect/midcyclePOSTإعادة تحقق خلال الجلسة
الوحدةتكتشفالوزن
webdrivernavigator.webdriver، خصائص selenium، واصفات getter5
chromeDriverمضاعفات مدمجة على window، cache_ في document6
fakeCreateElementdocument.createElement المزيف7
toStringSpoofedالتلاعب بـ Function.prototype.toString6
cdpDetectionالمتغيرات العالمية cdc_*، __playwright__، __puppeteer__، chrome.runtime7
stealthDetectionسلامة الدوال الأصلية (Notification، Navigator، Permissions، plugins، languages، canvas)5
inconsistentCloneErrorتناقضات خوارزمية الاستنساخ المهيكلة5
iframeChromeRuntimechrome.runtime في سياق iframe5
inconsistentChromeObjectكائن chrome مختلف بين iframe والنافذة الرئيسية4
الوحدةتكتشفالوزن
canvasFingerprintاختلافات عرض الكانفاس، مجموع البكسل، نسبة الكانفاس الفارغ4
webglFingerprintSwiftShader، llvmpipe، محركات Brian Paul، دقة التظليل4
fingerprintConsistencyفحص تبادلي: تماسك كانفاس + WebGL + الشاشة + navigator4
audioFingerprintمعدل عينة AudioContext، شذوذ بيانات التردد3
fontEnumerationمجموعات خطوط محدودة (≤15 خط أساسي ← متصفح عديم الرأس)3
timingAnomaliesدقة performance.now()، توقيت الحلقة، تأخير rAF، زمن eval3
الوزن
screenAnomaliesأبعاد صفرية، عمق لوني، عدم تناسق المساحة المتاحة3
performanceAnomaliesتوقيت التنقل، الذاكرة، أصل الزمن، performance.now()3
navigationFlowمدخلات الأداء، تتبع pushState، مرجع مفقود3
stackTraceTraps
تحليل مكدس استدعاء querySelector/getElementById/eval
8
الوحدةتكتشفالوزن
webrtcCheckكشف عنوان IP المحلي، شذوذ مرشح ICE2
hardwareConcurrencyنسبة عدد وحدات المعالجة إلى الذاكرة، قيم غير منطقية2
hiddenScrollشريط التمرير المخفي في المتصفح عديم الرأس (سطح المكتب فقط)2
noHovermqعدم دعم استعلام الوسائط hover (سطح المكتب فقط)1
webGLDisabledتعطيل WebGL، SwiftShader1
inconsistentPermissionsحالات صلاحية API غير متطابقة4