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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
bbs — bbs هو موجّه لوكلاء SOCKS وHTTP. يعرض خدمة SOCKS5 (أو HTTP CONNECT) ويعيد توجيه الطلبات الواردة إلى وكلاء أو سلاسل وكلاء بناءً على هدف الطلب. يمكن ضبط التوجيه عبر سكربت PAC (إذا كان مبنيًا بدعم PAC)، أو من خلال ملف JSON. | Kitploit
أدوات/GitHubGitHub/synacktiv/bbs
بروكسيات الويب والاعتراضأمن الشبكاتاختبار الاختراقالأدوات والمكوناتالفريق الأحمر
GitHubsynacktiv/bbs

bbs

bbs هو موجّه لوكلاء SOCKS وHTTP. يعرض خدمة SOCKS5 (أو HTTP CONNECT) ويعيد توجيه الطلبات الواردة إلى وكلاء أو سلاسل وكلاء بناءً على هدف الطلب. يمكن ضبط التوجيه عبر سكربت PAC (إذا كان مبنيًا بدعم PAC)، أو من خلال ملف JSON.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

BBS

يمكن العثور على نسخة bbs القديمة هنا

الوصف

bbs هو موجّه لوكلاء SOCKS وHTTP. يقوم بتعريض خدمات SOCKS5 أو HTTP CONNECT أو إعادة توجيه المنافذ، ويحوّل الطلبات الواردة إلى وكلاء أو سلاسل من الوكلاء بناءً على هدف الطلب. يمكن ضبط التوجيه عبر نص PAC script (إذا تم البناء بدعم PAC)، أو عبر ملف JSON.

التثبيت

root@kitploit:~
go install github.com/synacktiv/bbs@master

لتثبيت bbs مع دعم نصوص PAC:

root@kitploit:~
go install -tags pac github.com/synacktiv/bbs@master

ملاحظة: يعتمد PAC على مكتبات خارجية غير مُدقَّقة.

واجهة أوامر bbs

تم توفير واجهة أوامر Python النصية bbscli.py لتسهيل إعداد bbs وتجنّب كتابة ملفات JSON يدويًا. تتطلب مكتبة pyparsing، وهي مُتوفرة في حزم Debian:

root@kitploit:~
apt install python3-pyparsing

إذا لم تكن المكتبة مُتوفرة في حزم توزيعتك، يمكن تثبيتها باستخدام pip:

root@kitploit:~
pip install pyparsing

التكوين

يتم التكوين في ملف JSON واحد يتكوّن من عدة أقسام:

  • Proxies : يعرّف جميع الوكلاء (الخوادم الوسيطة) المستخدمة من قبل bbs
  • Chains : يعرّف السلاسل المختلفة المكوّنة من الوكلاء المعرّفين سابقًا، وإعداداتها
  • Routes : يعرّف جداول التوجيه المختلفة
  • Servers : يعرّف المستمعين (SOCKS5 أو HTTP أو إعادة توجيه المنافذ) التي يفتحها bbs
  • Hosts : يعرّف تحليل أسماء مضيفين مخصص (على غرار /etc/hosts)

يتم تمرير مسار ملف التكوين عبر الوسيط -c <path> (الافتراضي إلى ./bbs.json). يعيد bbs تحميل ملفات التكوين عند استقبال SIGHUP، استخدم kill -HUP <pid> لإعادة التحميل.

فيما يلي مثال على هذا التكوين:

root@kitploit:~
{
  "proxies": {
    "proxy1": {
      "connstring": "socks5://127.0.0.1:1337",
      "user": "user",
      "pass": "s3cr3t"
    },
    "proxy2": {
      "connstring": "http://127.0.0.1:1338"
    }
  },
  "chains": {
    "chain1": {
      "proxyDns": true,
      "tcpConnectTimeout": 1000,
      "tcpReadTimeout": 2000,
      "proxies": [
        "proxy1",
        "proxy2"
      ]
    },
    "direct": {
      "proxies": []
    }
  },
  "routes": {
    "table1": {
      "default": "direct",
      "blocks": [
        {
          "comment": "Block1 comment",
          "rules": {
            "rule": "regexp",
            "variable": "host",
            "content": "me\\.gandi\\.net"
          },
          "route": "chain1"
        },
        {
          "comment": "Route non web traffic towards 10.35.0.0/16 through proxy2",
          "rules": {
            "rule1": {
              "rule": "subnet",
              "content": "10.35.0.0/16"
            },
            "op": "AND",
            "rule2": {
              "rule": "regexp",
              "variable": "port",
              "content": "^(80|443)$",
              "negate": true
            }
          },
          "route": "proxy2"
        },
        {
          "comment": "Drop traffic to 445",
          "rules": {
            "rule": "regexp",
            "variable": "port",
            "content": "^445$"
          },
          "route": "drop"
        },
        {
          "comment": "Route *.corp.local through chain1",
          "rules": {
            "rule": "regexp",
            "variable": "host",
            "content": "(?i)^(.*\\.)?corp\\.local$"
          },
          "route": "chain1",
          "disable": true
        }
      ]
    },
    "table2": {
      "default": "drop",
      "blocks": [
        {
          "comment": "Route *.corp.local through chain2",
          "rules": {
            "rule": "regexp",
            "variable": "host",
            "content": "(?i)^(.*\\.)?corp\\.local$"
          },
          "route": "chain2"
        }     
      ]
    }
  },
  "servers": [
    "socks5://127.0.0.1:1081:table1",
    "http://127.0.0.1:1080:table2",
    "fwd://127.0.0.1:4445:chain1:10.0.0.1:445"
  ],
  "hosts": {
    "host1": "1.1.1.1",
    "host2": "10.0.0.1",
    "host3": "modified.host3",
    "10.1.1.4": "10.1.1.5"
  }
}

الوكلاء (Proxies)

يجب تعريف الوكلاء (الخوادم الوسيطة) في قسم proxies كخريطة من بنى الوكلاء. يتم اختيار مفاتيح الخريطة بحرية ولكن يجب أن تطابق المفاتيح المستخدمة في تعريف السلاسل. بنى الوكلاء تكون كما يلي:

  • connstring مطلوب بالتنسيق protocol://host:port (protocol يمكن أن تكون socks5 أو httpconnect/http)
  • user وpass اختياريان

لكل وكيل مُعرَّف، يتم إنشاء سلسلة ضمنية (انظر الفقرة التالية) بنفس الاسم. لها معاملات افتراضية وتتكوّن من الوكيل المرتبط الواحد. إذا كنت تريد استخدام معاملات غير افتراضية، يجب عليك إنشاء سلسلة صراحةً.

السلاسل (Chains)

يجب تعريف السلاسل في قسم chains كخريطة من بنى السلاسل. يتم اختيار مفاتيح الخريطة بحرية ولكن يجب أن تطابق المفاتيح المستخدمة في تعريف التوجيهات، ويجب أن تكون مختلفة عن مفاتيح خريطة قسم proxies. تمتلك بنى السلاسل معاملات شبيهة بسلاسل الـ proxychains (راجع https://github.com/rofl0r/proxychains-ng):

  • proxyDns: قيمة منطقية، اختيارية، القيمة الافتراضية true
  • tcpConnectTimeout: عدد صحيح، اختياري، القيمة الافتراضية 1000 (يُستخدم عند توصيل المقابس، سواء إلى أول وكيل في السلسلة أو مباشرة إلى الهدف)
  • tcpReadTimeout: عدد صحيح، اختياري، القيمة الافتراضية 2000 (يُستخدم عند قراءة استجابات المصافحة للوكلاء على المقابس المتصلة)
  • proxies: قائمة سلاسل نصية، اختيارية، القيمة الافتراضية قائمة فارغة

يجب أن يحتوي مفتاح proxies في chain على مصفوفة من أسماء الوكلاء المُعرَّفة كمفاتيح في قسم proxies. كما ذُكر في الفقرة السابقة، لكل وكيل مُعرَّف في قسم proxies، يتم إنشاء سلسلة ضمنية (انظر الفقرة التالية) بنفس الاسم. لها معاملات افتراضية وتتكوّن من الوكيل المرتبط الواحد.

التوجيه (Routes)

نمط التكوين المدمج للتوجيه هو عبر ملف التكوين. فهو يربط العناوين بأسماء السلاسل. يجب أن يحتوي الملف على خريطة من جداول التوجيه. يتم اختيار مفاتيح الخريطة بحرية ولكن يجب أن تطابق المفاتيح المستخدمة في قسم servers. يحتوي كل جدول توجيه على مفتاح default يمثل المسار الافتراضي ومفتاح blocks وهو مصفوفة من كتل القواعد. تحتوي كل كتلة قاعدة على comment (تعليق)، ومجموعة rules (قواعد)، واسم سلسلة مرتبط. يتم تقييم القواعد: بالنظر إلى عنوان بصيغة host:port، يمكن أن تكون true أو false. بالنسبة لعنوان معيّن، يتم تقييم الكتل بترتيب تعريفها. يمكن تعطيل الكتل عن طريق ضبط الحقل disable على true. يتيح ذلك شكلاً من أشكال "التعليق"، وهو غير ممكن في JSON. يتوقف التقييم عند أول كتلة تكون true ويتم إرجاع اسم السلسلة المرتبط بها. كل خادم مفتوح (من قسم servers) يرتبط بجدول توجيه واحد من التكوين. يتم توجيه الطلبات المستلمة على كل خادم وفقًا لجدول التوجيه المطابق. إذا تم تقييم جميع الكتل على أنها فسيتم استخدام المسار الافتراضي. إذا لم يتم تعريف ، فسيتم إسقاط الاتصالات افتراضيًا.

حقول الكتلة:

  • comment (سلسلة نصية)
  • rules (Rule أو RuleCombo)
  • route (سلسلة نصية)
  • disable (قيمة منطقية)

حقول القاعدة:

  • rule (سلسلة نصية): نوع القاعدة، regexp، subnet.
  • variable (سلسلة نصية): المتغير لتقييم regexp، host، port أو addr (host:port).
  • content (سلسلة نصية): محتوى القاعدة، يعتمد على نوع القاعدة (انظر أدناه).
  • negate (قيمة منطقية) [اختياري]: ما إذا كان يجب نفي القاعدة.

حقول RuleCombo:

  • rule1 (Rule أو RuleCombo): المعامل الأيسر.
  • op (سلسلة نصية): العامل، AND، And، and، &، &&، OR، Or، or، |، ||.
  • rule2 (Rule أو RuleCombo): المعامل الأيمن.

أنواع القواعد:

  • regexp: مطابقة المتغير المُعرَّف في variable (host، port أو addr=host:port) مع regexp في content.
  • subnet: يتحقق مما إذا كان المضيف ضمن الشبكة الفرعية المُعرَّفة في content. إذا كان المضيف اسم نطاق وليس عنوان شبكة فرعية، تُرجع القاعدة false.

يجب أن تُرجع كتل القواعد من قسم routes أو دالة PAC أسماء سلاسل مُعرَّفة، وليس أسماء وكلاء. إذا كنت تريد استخدام وكيل واحد، فيجب عليك تغليفه في سلسلة. اسم drop خاص ولا يحتاج إلى تعريف في هذا التكوين. إذا أرجعت دالة PAC أو كتلة التوجيه drop كاسم سلسلة، فسيتم إسقاط الاتصال.

إذا تم بناء bbs بدعم PAC وكانت وسائط -pac تشير إلى ملف PAC، فلن يتم استخدام التوجيهات المعرفة في ملف التكوين. لا يدعم توجيه ملف PAC جداول توجيه متعددة. سيتم استخدام نفس ملف PAC لكل خادم مفتوح.

الخوادم (Servers)

يجب تعريف المستمعين الذين يفتحهم bbs في قسم servers كقائمة من سلاسل الاتصال بالتنسيق protocol://bind_addr:bind_port:routing_table أو protocol://bind_addr:bind_port:chain:dest_addr:dest_port.

  • protocol يمكن أن تكون http أو socks5 إذا تم توفير routing_table
  • protocol يمكن أن تكون fwd إذا تم توفير chain وdest_addr وdest_port
  • يجب أن يطابق routing_table أحد الجداول المعرّفة في قسم routes
  • يجب أن يطابق chain أحد السلاسل المعرّفة في قسم chains

المضيفون (Hosts)

يمكن ضبط تحليل اسم مضيف مخصص (مشابه لـ /etc/hosts) في قسم hosts كخريطة من السلاسل النصية. تتوافق مفاتيح الخريطة مع اسم المضيف والقيم مع عنوان IP الذي يجب أن يحلّ إليه المضيف.

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

إذا تم تعريفها، يحدث تحليل الأسماء المخصص في بداية مرحلة الاتصال، بعد اتخاذ قرار التوجيه وقبل أي تحليل DNS محلي (إذا كانت السلسلة مُهيأة بـ proxyDns=false) وقبل إرسال عنوان الوجهة إلى الوكلاء المختلفين في السلسلة.

نص PAC script

إذا تم بناء bbs بدعم PAC، يمكن ضبط التوجيه باستخدام نص PAC script بدلاً من ملف تكوين JSON. ومع ذلك، يتطلب هذا استخدام مكتبة Go غير موثوقة. يجب توفير مسار ملف PAC باستخدام -pac.

يجب أن يعرّف نص PAC الدالة FindProxyForURL(url, host). يجب أن تطابق القيم التي تُرجعها هذه الدالة أسماء السلاسل (وليس الوكلاء) المُعرَّفة في تكوين JSON.

تنزيل الأداة
false
default