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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
riotpot — هونيبوت IoT والتكنولوجيا التشغيلية | Kitploit
أدوات/GitHubGitHub/aau-network-security/riotpot
أدوات دفاعيةأمان إنترنت الأشياءأمن SCADA/ICSجمع المعلوماتأمن الشبكات
GitHubaau-network-security/riotpot

riotpot

هونيبوت IoT والتكنولوجيا التشغيلية

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

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
📢 انتباه!!!
تم نقل هذا المستودع إلى مشروع Honeynet :)

RIoTPot

GitHub Actions status

RIoTPot هو وعاء تفاعل هجين، يركز بشكل أساسي على محاكاة بروتوكولات إنترنت الأشياء (IoT) والبروتوكولات التشغيلية (OT)، على الرغم من أنه قادر أيضًا على محاكاة خدمات أخرى. في جوهره، يعمل RIoTPot كخدمة وكيل (Proxy) للأوعية الأخرى المضمنة في النظام. لذلك، يمكنك تشغيل أي وعاء وخدمات أخرى جنبًا إلى جنب مع RIoTPot. بالإضافة إلى ذلك، يوجد تطبيق ويب للواجهة الرسومية يمكنك استخدامه لإدارة التوجيه الخاص بك.

يأتي الوعاء مزودًا بالعديد من الخدمات منخفضة التفاعل الجاهزة للاستخدام. نظرًا لأن هذه الخدمات مكتوبة كـ ملحقات (plugins)، فهي مدعومة فقط على نظام لينكس؛ ومع ذلك، يمكنك بدء تشغيل RIoTPot بدونها. يحتوي الجدول التالي على قائمة الخدمات المضمنة افتراضيًا في RIoTPot ومنفذها الداخلي ومنفذ الوكيل.

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

  • RIoTPoT
    • 1. البنية المعمارية
    • 2. كيفية استخدام RIoTPot
    • 3. الأوامر

1. البنية المعمارية

تعتمد بنية RIoTPot على اتصالات وكيلة (Proxy) للخدمات الداخلية والخدمات المحيطة (أو الخارجية) (مثل الأوعية، الخدمات الكاملة، الحاويات، المضيفين البعيدين، إلخ). لهذا، يدير الوعاء عددًا من الوكلاء (proxies) المعرفة من قبل المستخدم والتي تقوم بتوصيل الاتصالات بين الخدمات و RIoTPot 1. بهذه الطريقة، يمكن لـ RIoTPot أن يقرر كيفية وأين يقوم بتوجيه الهجمات الواردة. يتم تنفيذ المنطق المستخدم لتحديد كيفية معالجة الهجوم الوارد في شكل وسائط (middlewares) 2. لإدارة الخدمات والوسائط والوكلاء، يأتي RIoTPot مزودًا بواجهة برمجة تطبيقات REST (API) 3 وتطبيق ويب للواجهة الرسومية (UI) 4 بشكل افتراضي. يمكن الوصول إلى الواجهة الرسومية عبر المتصفح على العنوان localhost:2022 ويمكنك التفاعل مع نقاط نهاية واجهة API على العنوان localhost:2022/api/swagger الذي يعرض واجهة Swagger.

الشكل 1 يوضح بنية RIoTPot، بما في ذلك التطبيقين الرئيسيين اللذين يشكلان RIoTPot (RIoTPot نفسه، وواجهة RIoTPot الرسومية) ومكوناتهما، وقسم يضم الخدمات الخارجية (أو المجاورة).

الشكل 1. بنية RIoTPot، بما في ذلك التطبيق الرئيسي والخدمات الخارجية وتطبيق الويب للواجهة الرسومية لإدارة مثيلات RIoTPot.

RIoTPot مكتوب بلغة Golang5. كل مثيل من RIoTPot يعرض الوكلاء المسجلين (بناءً على منفذهم) عند الطلب. لخدمة وكيل، يجب أن يكون لديه خدمة مربوطة وأن يكون منفذ الوكيل متاحًا (حاليًا، لا يقبل RIoTPot تشغيل خدمات متعددة على نفس المنفذ). عند ربط وكيل وخدمته، سيتمكن المهاجمون من إرسال رسائل إلى RIoTPot على ذلك المنفذ، وسيتم تمرير الرسائل إلى الخدمة المربوطة ثم العودة إلى المهاجم6.

لسهولة الوصول، يمكن إدارة مثيلات متعددة من RIoTPot من تطبيق الويب الخاص بالواجهة الرسومية. بالإضافة إلى إدارة الوكلاء المسجلين في كل مثيل، تسمح لك الواجهة الرسومية بإنشاء واستخدام وتحرير الملفات التعريفية (profiles). يحتوي كل ملف تعريفي على عدد من الوكلاء المسماة حسب البروتوكولات أو الخدمات الأخرى مما يجعل مثيل RIoTPot يشبه أجهزة الحياة الواقعية (مثل مساعد منزلي). باختصار، تعمل الملفات التعريفية على تسريع عملية إعداد وتجهيز مثيل RIoTPot بإعدادات محددة. تمت كتابة الواجهة الرسومية باستخدام مكتبة React الأمامية (نستخدم TypeScript لهذا المشروع) ومكتبة إدارة الحالة Recoil. نظرًا لأن RIoTPot صغير نسبيًا، في الوقت الحالي، لا يستخدم قاعدة بيانات.

2. كيفية استخدام RIoTPot

تشغيل RIoTPot بسيط نسبيًا. بشكل عام، لديك ثلاثة خيارات. الأول هو تنزيل إصدار من RIoTPot؛ يمكنك إما اختيار تنزيل أحدث إصدار، أو إصدار سابق. الخيار الثاني هو بناء المشروع بنفسك. الخيار الأخير هو استخدام الكود المصدري لإنشاء حاوية Docker مع RIoTPot وبعض التطبيقات الإضافية لتعزيز الوعاء.

استخدام إصدار جاهز

معلومة: هذا الدليل مخصص للمستخدمين ذوي الاحتياجات الخاصة، الذين يريدون تجربة جاهزة وبسيطة.

يأتي كل إصدار في مجلد باسم riotpot مع ملف تنفيذي ثنائي (أيضًا) باسم riotpot ومجلد plugins مملوء بالعديد من الخدمات (أو الأوعية منخفضة التفاعل). من المهم الحفاظ على بنية المجلد الداخلية لكي يعمل RIoTPot كما هو مقصود.

root@kitploit:~
📁 riotpot
    ┕ riotpot
    ┕ 📁 plugins

  1. أولاً، قم بتنزيل الإصدار الذي تفضله من صفحة الإصدارات. اختر الإصدار الذي يناسب نظام التشغيل الخاص بك.
  2. قم باستخراج مجلد riotpot.
  3. قم بتشغيل الملف التنفيذي riotpot. سيؤدي ذلك إلى بدء تشغيل RIoTPot مع تمكين واجهة API، وجميع الملحقات جاهزة للاستخدام، وخادم الواجهة الرسومية.
    • يمكن الوصول إلى واجهة API والواجهة الرسومية عبر العنوان localhost:2022
بناءه بنفسك

معلومة: هذا الدليل مخصص للمستخدمين المتقدمين والمريحين في بيئات التطوير.

المتطلبات
  • Golang - مطلوب لبناء المشروع
  • Node - مطلوب لبناء الواجهة الرسومية

اختياري:

  • Git - يستخدم لتنزيل الكود المصدري
  • Make - لتشغيل الأوامر المُعدة مسبقًا

  1. قم بتنزيل الكود المصدري لـ RIoTPot من GitHub. افتح وحدة تحكم وأدخل السطر التالي.

    root@kitploit:~
    git clone [email protected]:aau-network-security/riotpot.git
    
  2. انتقل إلى المجلد الذي قمت بتنزيل الكود المصدري لـ RIoTPot فيه وقم بتثبيت حزم Node المطلوبة.

    root@kitploit:~
    npm install
    
  3. إذا كان لديك Make مثبتًا، فقد قمنا بتضمين العديد من مساعدات الأوامر لمساعدتك في بناء المشروع. ببساطة، يمكنك تشغيل أمرين بسيطين سيبنيان الملف الثنائي لـ RIoTPot والملحقات (ويضعانها في المجلد الصحيح).

    root@kitploit:~
    # بناء الخادم
    make build-ui
    # بناء RIoTPot والملحقات
    make riotpot-build
    

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

Docker (الافتراضية)

معلومة: هذا الدليل مخصص للمستخدمين المتقدمين الذين يفضلون استخدام RIoTPot في بيئة افتراضية.

المتطلبات
  • Docker - يستخدم لبناء صورة لمثيل RIoTPot وخادم الواجهة الرسومية.
  • Docker-compose - يستخدم لإنشاء حاوية واحدة تحتوي على مثيل RIoTPot والواجهة الرسومية والتطبيقات والخدمات الأخرى.

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

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

تحذير: من الناحية الفنية، قد يدرك المهاجم المخصص أن RIoTPot هو في الواقع وعاء من خلال تحليل ومقارنة تأخيرات وقت الاستجابة التي تقدمها الافتراضية مع الخوادم الحقيقية (!!). بينما تمت دراسة هذا النوع من بصمات الأوعية من قبل، فإن النتائج لخدمات الإنترنت الشائعة لا تزال غير حاسمة (مثل HTTP وTelnet وSSH)، بسبب تسليع خدمات الاستضافة السحابية باستخدام الآلات الافتراضية والتكوينات التفصيلية للخوادم.

يتضمن ملف docker-compose خدمات إضافية لتعزيز تجربة RIoTPot. يلخص الجدول التالي قائمة الخدمات والتطبيقات المجمعة في هذه الحاوية.

الخدمات

3. الأوامر

يأتي RIoTPot مع أوامر علامات (flag commands) تؤثر على كيفية تشغيله وما يتم تشغيله. مثال:

root@kitploit:~
# تشغيل RIoTPot بدون الواجهة الرسومية
./riotpot --ui false

Footnotes

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

  2. الوسائط قيد التطوير حاليًا. ↩

  3. يجب عدم تعريض واجهة API الخاصة بـ RIoTPot للإنترنت. بغض النظر، تقبل واجهة API حاليًا الاتصالات فقط من المضيف المحلي (localhost). قد يتغير هذا في المستقبل، مع توفير قائمة بيضاء بالمضيفين ومصادقة قياسية. ↩

  4. على الرغم من إمكانية استخدام الواجهة الرسومية كمكون منفصل، إلا أنها مدمجة مع ملف RIoTPot الثنائي. ↩

  5. بينما التطبيق الأساسي قابل للتشغيل البيني، يمكن استخدام الخدمات الداخلية (الملحقات) فقط في بيئات لينكس وFreeBSD وmacOS. نخطط لتجاوز هذا القيد عن طريق استبدال الملحقات بخدمات مصغرة تتواصل عبر gRPC. ↩

  6. لأسباب أخلاقية وأمنية، لا يسمح RIoTPot بالطلبات غير المرغوب فيها إلى الخارج، أي الصدف العكسية (reversed shells) وما شابه ذلك غير مسموح بها. ↩

تنزيل الأداة
الخدمةالمنفذ الداخليمنفذ الوكيل
Echo200077
SSH2002222
Telnet2002323
HTTP2808080
Modbus20502502
MQTT218831883
CoAP256835683
الخدمةالصورةالمنفذالتفاصيل
MQTTeclipse-mosquitto1883خادم MQTT الخاص بـ Mosquito
HTTPhttpd80خادم HTTP عادي
Modbusoitc/modbus-server502خادم Modbus
OCPPocpp1.6-central-system443OCPP v1.6 (يستخدم في محطات شحن السيارات)
التطبيقات
التطبيقالصورةالتفاصيل
TCPDumpkaazing/tcpdumpمسجل الحزم. يقوم بتخزين حركة مرور الشبكة في ملفات .pcap

يمكن إعداد الحاوية في ثلاث خطوات بسيطة:

  1. قم بتنزيل الكود المصدري لـ RIoTPot من GitHub. افتح وحدة تحكم وأدخل السطر التالي.

    root@kitploit:~
    git clone [email protected]:aau-network-security/riotpot.git
    
  2. انتقل إلى المجلد الذي قمت بتنزيل الكود المصدري لـ RIoTPot فيه.

  3. مع تشغيل Docker: إذا كان لديك Make مثبتًا، قم بتشغيل الأمر التالي. وإلا، قم بتشغيل أمر docker-compose باستخدام ملف docker-compose المضمن في مجلد build/docker.

    • مع make
    root@kitploit:~
    # مع make
    make up
    
    • مع Docker-compose
    root@kitploit:~
    # مع docker-compose
    docker-compose -p riotpot -f build/docker/docker-compose.yaml up -d --build
    
العلامةالنوعالافتراضيالوصف
debugBooleanfalseتعيين مستوى السجل إلى debug
apiBooleantrueبدء تشغيل واجهة API أم لا
pluginsBooleantrueتحميل ملحقات الوعاء منخفض التفاعل أم لا
whitelistStringhttp://localhost,http://localhost:3000قائمة بالمضيفين المسموح لهم بالاتصال بواجهة API، مفصولة بفاصلة
uiBooleantrueبدء تشغيل الواجهة الرسومية أم لا