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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
Redpoint — سكربتات Nmap NSE لاكتشاف وتعداد أنظمة ICS/SCADA—BACnet وEtherNet/IP وCoDeSys وFox وModicon وOmron وS7—باستخدام استعلامات البروتوكول لتقييمات الأمان. | Kitploit
أدوات/GitHubGitHub/digitalbond/redpoint
الاستطلاعأمن SCADA/ICSجمع المعلوماتأمن الشبكاتاختبار الاختراق
GitHubdigitalbond/redpoint

Redpoint

سكربتات Nmap NSE لاكتشاف وتعداد أنظمة ICS/SCADA—BACnet وEtherNet/IP وCoDeSys وFox وModicon وOmron وS7—باستخدام استعلامات البروتوكول لتقييمات الأمان.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

#Redpoint

###أدوات تعداد ICS من Digital Bond

Redpoint هو مشروع بحثي من Digital Bond لتعداد تطبيقات وأجهزة ICS.

نستخدم أدوات Redpoint في التقييمات لاكتشاف أجهزة ICS وسحب المعلومات التي قد تكون مفيدة في الاختبارات الثانوية. سيتم إتاحة جزء من هذه الأدوات للعموم كبرامج نصية Nmap NSE في هذا المستودع.

تستخدم أدوات Redpoint أوامر بروتوكول أو تطبيقات مشروعة لاكتشاف وتعداد الأجهزة والتطبيقات. لا يوجد أي جهد لاستغلال أو تعطيل أي شيء. ومع ذلك، فإن العديد من أجهزة وتطبيقات ICS هشة ويمكن أن تتعطل أو تستجيب بطريقة غير متوقعة لأي حركة مرور غير متوقعة، لذا استخدمها بحذر.

كل برنامج نصي موثق أدناه ومتوفر كملف .nse في هذا المستودع.

  • BACnet-discover-enumerate.nse - تحديد وتعداد أجهزة BACnet

  • codesys-v2-discover.nse - تحديد وتعداد وحدات التحكم CoDeSys V2

  • enip-enumerate.nse - تحديد وتعداد أجهزة EtherNet/IP من Rockwell Automation وبائعين آخرين

  • fox-info.nse - تحديد وتعداد أجهزة Niagara Fox

  • modicon-info.nse - تحديد وتعداد وحدات التحكم المنطقية Modicon من Schneider Electric

  • omron-info.nse - تحديد وتعداد وحدات التحكم المنطقية Omron

  • pcworx-info.nse - تحديد وتعداد وحدات التحكم المنطقية التي تدعم بروتوكول PC Worx

  • proconos-info.nse - تحديد وتعداد وحدات التحكم المنطقية التي تدعم ProConOS

  • s7-enumerate.nse - تحديد وتعداد وحدات التحكم المنطقية Siemens SIMATIC S7

==

###BACnet-discover-enumerate.nse

![BACnet-discover-enumerate Sample Output] (http://digibond.wpengine.netdna-cdn.com/wp-content/uploads/2014/03/BACnet-nse.png)

####المؤلفون

Stephen Hilt and Michael Toecker
Digital Bond, Inc

####الغرض والوصف

الغرض من BACnet-discover-enumerate.nse هو أولاً تحديد ما إذا كان جهاز متصل بالإنترنت (IP) يشغّل BACnet. يعمل هذا من خلال استعلام الجهاز برسالة BACnet مولّدة مسبقاً. الإصدارات الأحدث من بروتوكول BACnet سترد بإقرار (acknowledgement)، بينما سترجع الإصدارات الأقدم رسالة خطأ BACnet. وجود أي من الإقرار أو الخطأ كافٍ لإثبات وجود جهاز يدعم BACnet على عنوان IP المستهدف.

ثانياً، إذا تم استلام إقرار، سيحاول هذا البرنامج النصي أيضاً تعداد العديد من خصائص BACnet على جهاز BACnet مستجيب. مرة أخرى، يتم استعلام الجهاز برسالة BACnet مولّدة مسبقاً. التعداد الناجح يستخدم طلبات مصممة خصيصاً، ولن ينجح إذا كان جهاز BACnet لا يدعم الخاصية.

خصائص BACnet التي يتم الاستعلام عنها بواسطة هذا البرنامج النصي هي:

  1. معرّف البائع (Vendor ID) - رقم يقابل بائع BACnet مسجلاً. كما يعيد البرنامج النصي اسم البائع المرتبط.

  2. رقم البائع (Vendor Number) - سلسلة نصية تمثل اسم البائع الذي تم تكوينه على الجهاز. يمكن أن يختلف عن معرّف البائع لأن معرّف البائع هو الرقم المسجل لدى ASHARE.

  3. معرّف الكائن (Object Identifier) - رقم يحدد الجهاز بشكل فريد. إذا كان معرّف الكائن معروفاً، فمن الممكن إرسال أوامر باستخدام برنامج عميل BACnet، بما في ذلك تلك التي تغيّر القيم والبرامج والجداول الزمنية وغيرها من المعلومات التشغيلية على أجهزة BACnet. هذه خاصية إلزامية لجميع أجهزة BACnet.

  4. مراجعة البرنامج الثابت (Firmware Revision) - رقم مراجعة البرنامج الثابت على جهاز BACnet.

  5. مراجعة برنامج التطبيق (Application Software Revision) - رقم مراجعة البرنامج المستخدم للاتصال عبر BACnet.

  6. اسم الكائن (Object Name) - سلسلة نصية يحددها المستخدم لتعيين اسم لجهاز BACnet، وعادة ما يتم إدخالها من قبل الفنيين أثناء التشغيل (commissioning). هذه خاصية إلزامية لجميع أجهزة BACnet.

  7. اسم الطراز (Model Name) - طراز جهاز BACnet

  8. الوصف (Description) - سلسلة نصية يحددها المستخدم لوصف الجهاز، وعادة ما يتم إدخالها من قبل الفنيين أثناء التشغيل

  9. الموقع (Location) - سلسلة نصية يحددها المستخدم لتسجيل الموقع الفعلي للجهاز، وعادة ما يتم إدخالها من قبل الفنيين أثناء التشغيل

  10. جدول توزيع البث (Broadcast Distribution Table - BDT) - قائمة بأجهزة إدارة بث BACnet (BBMD) في شبكة BACnet. سيحدد هذا جميع الشبكات الفرعية التي تشكل جزءاً من شبكة BACnet.

  11. جدول الأجهزة الخارجية (Foreign Device Table - FDT) - قائمة بالأجهزة الخارجية المسجلة لدى جهاز BACnet. الجهاز الخارجي هو أي جهاز ليس على شبكة فرعية تشكل جزءاً من شبكة BACnet وليس في BDT. غالباً ما توجد الأجهزة الخارجية على شبكات خارجية وقد تكون عنوان IP للمهاجم.

يمكن أن تكون BDT وFDT قائمتين كبيرتين وقد لا تكونان مرغوبتين في فحص Nmap كبير. البرنامج النصي الأساسي لن يسحب BDT وFDT. قم بتشغيل الأمر مع --script-args full=yes لسحب BDT وFDT، انظر قسم الاستخدام.

![BACnet-discover-enumerate Sample Output with BDT and FDT] (http://digibond.wpengine.netdna-cdn.com/wp-content/uploads/2014/08/screenshot_bacnet-1.png)

يستخدم هذا البرنامج النصي ميزة أُضيفت في عام 2004 إلى مواصفة BACnet من أجل استرداد معرّف الكائن لجهاز بطلب واحد، دون الانضمام إلى شبكة BACnet كجهاز خارجي. (انظر الملحق a من ANSI/ASHRAE للمعيار ANSI/ASHRAE 135-2001 للحصول على التفاصيل)

####التاريخ والخلفية

من مقال ويكيبيديا حول BACnet http://en.wikipedia.org/wiki/BACnet:

BACnet هو بروتوكول اتصالات لشبكات أتمتة المباني والتحكم فيها. وهو بروتوكول معياري وفق ASHRAE وANSI وISO[1]. المنفذ الافتراضي لحركة مرور BACnet هو UDP/47808.

يُستخدم BACnet في أنظمة أتمتة المباني والتحكم فيها لتطبيقات مثل التحكم في التدفئة والتهوية وتكييف الهواء، والتحكم في الإضاءة، والتحكم في الدخول، وأنظمة كشف الحرائق ومعداتها المرتبطة. يوفر بروتوكول BACnet آليات لأجهزة أتمتة المباني المحوسبة لتبادل المعلومات، بغض النظر عن خدمة المبنى الخاصة التي تؤديها.

####التثبيت

يتطلب هذا البرنامج النصي nmap للعمل. إذا لم يكن لديك Nmap، فقم بتنزيله وتثبيته وفقاً لتعليمات Nmap. http://nmap.org/download.html

#####ويندوز

بعد تنزيل bacnet-discover.nse ستحتاج إلى نقله إلى دليل NSE Scripts، ويجب أن يتم ذلك كمسؤول. انتقل إلى Start -> Programs -> Accessories، وانقر بزر الماوس الأيمن على 'Command Prompt'. اختر 'Run as Administrator'.

root@kitploit:~
move BACnet-discover-enumerate.nse C:\Program Files (x86)\Nmap\scripts

#####لينكس

بعد تنزيل BACnet-discover-enumerate.nse ستحتاج إلى نقله إلى دليل NSE Scripts، ويجب أن يتم ذلك باستخدام sudo/root.

root@kitploit:~
sudo mv BACnet-discover-enumerate.nse /usr/share/nmap/scripts
	

####الاستخدام

داخل نافذة طرفية/موجه أوامر استخدم أحد الأوامر التالية حيث host هو الهدف الذي ترغب في فحصه بحثاً عن BACNet. استخدم --script-args full=yes إذا أردت أن يتضمن الإخراج BDT وFDT.

root@kitploit:~
Windows: nmap -sU -p 47808 --script BACnet-discover-enumerate <host>
Windows: nmap -sU -p 47808 --script BACnet-discover-enumerate --script-args full=yes <host>

Linux: sudo nmap -sU -p 47808 --script BACnet-discover-enumerate <host> 
Linux: sudo nmap -sU -p 47808 --script BACnet-discover-enumerate --script-args full=yes <host>

لتسريع النتائج بعدم إجراء عمليات بحث DNS أثناء الفحص استخدم الخيار -n، كما يمكنك تعطيل فحوصات ping لتحديد ما إذا كان الجهاز يعمل عن طريق استخدام الخيار -Pn للحصول على نتائج كاملة.

root@kitploit:~
nmap -sU -Pn -p 47808 -n --script BACnet-discover-enumerate <host>

	

####ملاحظات

النسخة الرسمية من هذا البرنامج النصي تُحفظ على: https://github.com/digitalbond/Redpoint/blob/master/BACnet-discover-enumerate.nse

يستخدم هذا البرنامج النصي منفذ BACnet القياسي للمصدر والوجهة UDP 47808.

أجهزة BACnet الأحدث (بعد 25 فبراير 2004) مطلوبة حسب المواصفة للاستجابة لطلبات محددة تستخدم معرّف كائن 'catchall' مع رقم مثيل صالح خاص بها (انظر الملحق a من ANSI/ASHRAE للمعيار ANSI/ASHRAE 135-2001). قد لا تستجيب الإصدارات الأقدم من أجهزة BACnet لهذا الـ catchall، وستستجيب بدلاً من ذلك بحزمة خطأ BACnet.

لا يحاول هذا البرنامج النصي الانضمام إلى شبكة BACnet كجهاز خارجي، بل يرسل ببساطة طلبات BACnet مباشرة إلى جهاز قابل للعنونة عبر IP.

== ###codesys-v2-discover.nse ![codesys-v2-discover Sample Output] (http://digibond.wpengine.netdna-cdn.com/wp-content/uploads/2016/03/codesys-v2-discover-win.png)

####المؤلفون

Stephen Hilt، Reid Wightman

####الغرض والوصف

يحدد البرنامج النصي codesys-v2-discover.nse وحدات التحكم المنطقية PLC التي تشغّل إصدار 2 من بيئة تشغيل منطق السلم (ladder logic) المصنوعة من 3S-Software GmbH. تتحدث هذه المتحكمات بروتوكولاً ثنائياً خاصاً (proprietary) لتثبيت منطق سلم جديد، وكذلك لتصحيح أخطاء منطق السلم الجاري. يمكن أن يتطلب البروتوكول مصادقة. عملياً، عدد قليل من الأجهزة يدعم هذا السلوك. لا يختبر هذا البرنامج النصي المصادقة.

يرسل هذا البرنامج النصي طلباً بسيطاً لتحديد الهوية إلى الجهاز. قد تتضمن رسالة الاستجابة نظام التشغيل وإصدار النقطة المحدد لـ CoDeSys الذي يعمل على PLC.

####التاريخ والخلفية

أصدرت Digital Bond تفاصيل حول نظام تشغيل CoDeSys كونه غير آمن بالتصميم في أبريل 2012. يستخدم البروتوكول عادة TCP/1200 أو TCP/2455 كمنفذ تحكم. يحتوي بروتوكول التحكم على وظائف لرفع وتنزيل الملفات من المتحكمات. قد يوفر البروتوكول أيضاً غلاف أوامر (command shell)، والذي يقدم وظائف إضافية. تتضمن ميزات الغلاف عادة القدرة على بدء وإيقاف منطق السلم الجاري حالياً، بالإضافة إلى استرداد معلومات التصحيح من المتحكم.

ينطبق النشر الأولي (advisory) فقط على إصدار 2 من بيئة التشغيل. كما أصدرت Digital Bond برنامجاً نصياً Nmap كإثبات للمفهوم، كتبه في الأصل HD Moore كجزء من مشروعه لمسح الإنترنت.

تم إنتاج برنامج نصي لـ Nessus أيضاً لهذا الإصدار من البروتوكول، ومع ذلك يحتوي برنامج Nessus النصي على خطأ ولا يتحقق بشكل صحيح من المتحكمات ذات معالجات big-endian.

####التثبيت

يتطلب هذا البرنامج النصي Nmap للعمل. إذا لم يكن لديك Nmap، فقم بتنزيله وتثبيته وفقاً لتعليمات Nmap. http://nmap.org/download.html

#####ويندوز

بعد تنزيل enip-enumerate.nse ستحتاج إلى نقله إلى دليل NSE Scripts، ويجب أن يتم ذلك كمسؤول. انتقل إلى Start -> Programs -> Accessories، وانقر بزر الماوس الأيمن على 'Command Prompt'. اختر 'Run as Administrator'.

root@kitploit:~
    move codesys-v2-discover.nse C:\Program Files (x86)\Nmap\scripts

#####لينكس

بعد تنزيل enip-enumerate.nse ستحتاج إلى نقله إلى دليل NSE Scripts، ويجب أن يتم ذلك باستخدام sudo/root.

root@kitploit:~
    sudo mv codesys-v2-discover.nse /usr/share/nmap/scripts

####الاستخدام

داخل نافذة طرفية/موجه أوامر استخدم أحد الأوامر التالية حيث هو الهدف الذي ترغب في فحصه بحثاً عن EtherNet/IP.

root@kitploit:~
    Windows: nmap -p 1200,2455 --script codesys-v2-discover <host>

    Linux: sudo nmap -p 1200,2455 --script codesys-v2-discover <host>

####ملاحظات

النسخة الرسمية من هذا البرنامج النصي تُحفظ على:https://github.com/digitalbond/Redpoint/codesys-v2-discover.nse

سيحاول هذا البرنامج النصي إرسال طلبات CoDeSys على أي منفذ مفتوح. في حين أن المنافذ القياسية 1200 أو 2455 تُستخدم من قبل معظم المتحكمات، فإن بعض المتحكمات تستخدم منافذ بديلة مثل 1201 و1217 ومنافذ أخرى.

== ###enip-enumerate.nse ![enip-enumerate Sample Output] (http://digibond.wpengine.netdna-cdn.com/wp-content/uploads/2014/04/enip.png)

####المؤلف

Stephen Hilt
Digital Bond, Inc

####الغرض والوصف

الغرض من enip-enumerate.nse هو تحديد وتعداد أجهزة EtherNet/IP. طوّرت Rockwell Automation / Allen Bradley البروتوكول وهي الشركة المصنعة الأساسية لهذه الأجهزة، مثل ControlLogix وMicroLogix، ولكنه معيار مفتوح ويقدم عدد من البائعين بطاقة واجهة أو حلاً لـ EtherNet/IP.

يتم تحديد جهاز EtherNet/IP بشكل إيجابي عن طريق استعلام TCP/44818 برسالة قائمة الهويات (List Identities Message) (0x63). ستحدد رسائل الاستجابة ما إذا كان جهاز EtherNet/IP وتقوم بتحليل المعلومات لتعداد الجهاز.

طلب EtherNet/IP لقائمة الهويات يسحب معلومات أساسية عن الجهاز تُعرف باسم "المفتاح الإلكتروني" للجهاز. تشمل المعلومات البائع واسم المنتج والرقم التسلسلي ونوع الجهاز ورمز المنتج ورقم المراجعة. كما يحلل البرنامج النصي عنوان IP المكوّن للجهاز من حقل عنوان المقبس (Socket Address Field) داخل إطار EtherNet/IP للحزمة.

خصائص EtherNet/IP التي يحللها هذا البرنامج النصي هي:

  1. البائع (Vendor) - عدد صحيح ثنائي البايت يُستخدم للبحث عن اسم البائع

  2. اسم المنتج (Product Name) - سلسلة نصية تمثل وصفاً قصيراً للمنتج/عائلة المنتجات، الحد الأقصى للطول هو 32 حرفاً

  3. الرقم التسلسلي (Serial Number) - رقم سداسي عشري من ستة بايتات يُخزَّن بترتيب little Endian

  4. نوع الجهاز (Device Type) - عدد صحيح ثنائي البايت يُستخدم للبحث عن نوع الجهاز. غالباً لا يُستخدم هذا الحقل ويُضبط على 0.

  5. رمز المنتج (Product Code) - يحدد رمز المنتج المعيَّن من قبل البائع منتجاً معيناً ضمن نوع جهاز. لا يملك البرنامج النصي إمكانية الوصول إلى جداول رموز منتجات البائع لذلك يتم عرض الرقم.

  6. المراجعة (Revision) - عددان صحيحان من بايت واحد يسردان رقم المراجعة الرئيسية والثانوية للجهاز

  7. IP الجهاز (Device IP) - أربعة أعداد صحيحة من بايت واحد تمثل عنوان IP المكوّن للجهاز. غالباً ما يختلف هذا العنوان عن عنوان IP الذي تم فحصه بواسطة البرنامج النصي.

####التاريخ والخلفية

من مقال ويكيبيديا حول EtherNet/IP http://en.wikipedia.org/wiki/EtherNet/IP

تم تطوير EtherNet/IP في أواخر التسعينيات من قبل Rockwell Automation كجزء من حلول شبكات Rockwell الصناعية Ethernet. أعطت Rockwell لـ EtherNet/IP اسمها ثم سلّمته إلى ODVA، التي تدير الآن البروتوكول وتضمن قابلية التشغيل البيني لأنظمة متعددة البائعين من خلال اشتراط الالتزام بالمعايير المعتمدة كلما تم تطوير منتجات جديدة تستخدم البروتوكول اليوم.

يُستخدم EtherNet/IP بشكل شائع في أنظمة التحكم في الأتمتة الصناعية، مثل محطات معالجة المياه ومرافق التصنيع والمرافق العامة. طوّرت العديد من بائعي أنظمة التحكم وحدات تحكم أتمتة قابلة للبرمجة ووحدات إدخال/إخراج قادرة على الاتصال عبر EtherNet/IP.

####التثبيت

يتطلب هذا البرنامج النصي Nmap للعمل. إذا لم يكن لديك Nmap، فقم بتنزيله وتثبيته وفقاً لتعليمات Nmap. http://nmap.org/download.html

#####ويندوز

بعد تنزيل enip-enumerate.nse ستحتاج إلى نقله إلى دليل NSE Scripts، ويجب أن يتم ذلك كمسؤول. انتقل إلى Start -> Programs -> Accessories، وانقر بزر الماوس الأيمن على 'Command Prompt'. اختر 'Run as Administrator'.

root@kitploit:~
move enip-enumerate.nse C:\Program Files (x86)\Nmap\scripts

#####لينكس

بعد تنزيل enip-enumerate.nse ستحتاج إلى نقله إلى دليل NSE Scripts، ويجب أن يتم ذلك باستخدام sudo/root.

root@kitploit:~
sudo mv enip-enumerate.nse /usr/share/nmap/scripts
	

####الاستخدام

داخل نافذة طرفية/موجه أوامر استخدم أحد الأوامر التالية حيث هو الهدف الذي ترغب في فحصه بحثاً عن EtherNet/IP.

root@kitploit:~
Windows: nmap -p 44818 --script enip-enumerate <host>

Linux: sudo nmap -p 44818 --script enip-enumerate <host> 

	

####ملاحظات

النسخة الرسمية من هذا البرنامج النصي تُحفظ على:https://github.com/digitalbond/Redpoint/enip-enumerate.nse

يستخدم هذا البرنامج النصي منفذ الوجهة القياسي لـ Ethernet/IP وهو TCP 44818.

==

###fox-info.nse ![fox-info Sample Output] (http://www.digitalbond.com/wp-content/uploads/2014/10/fox-example.png)

####المؤلف

Stephen Hilt
Digital Bond, Inc

####الغرض والوصف

الغرض من fox-info.nse هو أولاً تحديد الأجهزة التي تشغّل بروتوكول Niagara Fox. يستند هذا البرنامج النصي إلى العمل والأمثلة المقدمة من Billy Rios وTerry McCorkle.

عند الاتصال الناجح بجهاز Niagara Fox، سيقوم البرنامج النصي بتحليل الاستجابة المرسلة من الجهاز وعرض المعلومات التي تم تعدادها.

خصائص Niagara Fox التي يتم الاستعلام عنها بواسطة هذا البرنامج النصي هي:

  1. إصدار Fox - إصدار بروتوكول Fox الذي يعمل حالياً على الجهاز.

  2. اسم المضيف (Host Name) - اسم مضيف الجهاز. عادة ما يكون اسم محطة العمل للجهاز البعيد.

  3. عنوان المضيف (Host Address) - عنوان IP المكوّن على الجهاز. يمكن أن يكون عنوان IP الذي تم فحصه أو عنواناً خاصاً إذا كان الجهاز خلف شيء يقوم بترجمة عناوين الشبكة (NAT).

  4. اسم التطبيق - اسم التطبيق الذي يعمل على الجهاز البعيد. عادة ما يكون إما "Workbench" أو "Station".

  5. إصدار التطبيق - رقم إصدار اسم التطبيق الذي تم تعداده سابقاً.

  6. اسم VM - اسم الآلة الافتراضية Java (Java Virtual Machine) التي تشغّل التطبيق.

  7. إصدار VM - رقم إصدار الآلة الافتراضية التي تعمل على الجهاز البعيد. سيكون على الأرجح رقم إصدار Java HotSpot.

  8. اسم نظام التشغيل - اسم نظام التشغيل الذي يشغّل بروتوكول Fox على الجهاز، مثل QNX أو Windows XP.

  9. المنطقة الزمنية - المنطقة الزمنية المحلية المكوّنة على الجهاز.

  10. معرف المضيف (Host ID) - معرّف فريد يُستخدم لتحديد الجهاز.

  11. VM UUID - المعرّف الفريد العام لآلة Java الافتراضية.

  12. معرّف العلامة التجارية (Brand ID) - كل محطة وأداة مرخصة لها معرّف علامة تجارية. يحمل هذا الحقل واصفاً نصياً تختاره الشركة المصنعة الأصلية (OEM) كمعرّف لخط إنتاجها. يمكن أن يكون لكل محطة أو أداة إدخال BrandID واحد فقط.

####التاريخ والخلفية

Fox هو بروتوكول TCP/IP مملوك يستخدم للاتصال من محطة إلى محطة ومن workbench إلى محطة في إطار Niagara Framework الخاص بحلول أتمتة المباني من Tridium. Tridium هي شركة فرعية مملوكة بالكامل لشركة Honeywell.

####التثبيت

يتطلب هذا البرنامج النصي Nmap للعمل. إذا لم يكن لديك Nmap، فقم بتنزيل وتثبيت Nmap، انظر: http://nmap.org/download.html

#####ويندوز

بعد تنزيل fox-info.nse، انقله إلى دليل NSE Scripts. يجب أن يتم هذا النقل كمسؤول. انتقل إلى Start -> Programs -> Accessories، وانقر بزر الماوس الأيمن على 'Command Prompt'. اختر 'Run as Administrator'.

root@kitploit:~
move fox-info.nse C:\Program Files (x86)\Nmap\scripts

#####لينكس

بعد تنزيل fox-info.nse، انقله إلى دليل NSE Scripts. يجب أن يتم ذلك باستخدام sudo/root.

root@kitploit:~
sudo mv fox-info.nse /usr/share/nmap/scripts
	

####الاستخدام

داخل نافذة طرفية/موجه أوامر استخدم أحد الأوامر التالية حيث host هو الهدف الذي ترغب في فحصه بحثاً عن الأجهزة التي تدعم بروتوكول Niagara Fox.

root@kitploit:~
Windows: nmap -p 1911 --script fox-info <host>
	
Linux: sudo nmap -p 1911 --script fox-info <host> 

####ملاحظات

النسخة الرسمية من هذا البرنامج النصي تُحفظ على: https://github.com/digitalbond/Redpoint/blob/master/fox-info.nse

يستخدم هذا البرنامج النصي منفذ Niagara Fox القياسي للمصدر والوجهة وهو TCP 1911.

==

###modicon-info.nse ![modicon-info sample output] (http://www.digitalbond.com/wp-content/uploads/2014/09/Modicon.png)

####المؤلف

Stephen Hilt
Digital Bond, Inc

####الغرض والوصف

الغرض من modicon-info.nse هو أولاً تحديد وتعداد وحدات التحكم المنطقية Modicon المصنوعة من Schneider Electric.

يحدد البرنامج النصي أولاً ما إذا كان جهاز متصل عبر IP يرسل طلب كود وظيفة Modbus 43. الاستجابة كافية لتحديد أجهزة Modbus حتى لو لم تدعم كود الوظيفة 43. إذا كان اسم البائع في الاستجابة يحتوي على السلسلة Schneider، فسيقوم البرنامج النصي بتعداد الجهاز باستخدام كود وظيفة Modbus 90 الخاص بشركة Schneider Electric.

خصائص كود وظيفة Modbus 43 وكود الوظيفة 90 المضمنة في مخرجات البرنامج النصي هي:

  1. اسم البائع (Vendor Name) - سيتجاهل هذا البرنامج النصي جميع الأجهزة التي لا تحتوي على "Schneider".2) وحدة الشبكة - وحدة الاتصالات الإيثرنت في PLC من نوع Modicon.

  2. وحدة المعالجة المركزية (CPU) - وحدة المعالجة المركزية في PLC من نوع Modicon.

  3. البرنامج الثابت (Firmware) - إصدار البرنامج الثابت على وحدة المعالجة المركزية في PLC من نوع Modicon.

  4. بطاقة الذاكرة - رقم طراز بطاقة الذاكرة في وحدة المعالجة المركزية.

  5. معلومات المشروع - معلومات متنوعة حول المشروع، مثل اسم المشروع، وإصدار Unity Pro الذي استُخدم لإعداده، بالإضافة إلى اسم محطة العمل التي برمجت الـ PLC. توفر بعض الأجهزة موقع ملف .stu على محطة العمل التي قامت بإعداد الجهاز.

  6. مراجعة المشروع - مراجعة المشروع الذي يعمل على الـ PLC، يزداد رقم مراجعة المشروع بمقدار 1 في كل مرة يتم فيها بناء المشروع ونقله إلى الـ PLC.

  7. تاريخ آخر تعديل للمشروع - طابع زمني يُخزَّن لآخر مرة تم فيها تعديل الـ PLC بواسطة فني.

####التاريخ والخلفية

من مقالة ويكيبيديا حول وحدات التحكم المنطقية القابلة للبرمجة http://en.wikipedia.org/wiki/Programmable_logic_controller#History:

في عام 1968، أصدرت GM Hydra-Matic (قسم ناقل الحركة الأوتوماتيكي في جنرال موتورز) طلبًا لتقديم مقترحات لاستبدال إلكتروني لأنظمة المرحلات ذات التوصيلات السلكية الثابتة، استنادًا إلى ورقة بيضاء كتبها المهندس إدوارد ر. كلارك. جاء الاقتراح الفائز من شركة Bedford Associates في بيدفورد، ماساتشوستس. كان أول PLC، الذي أُطلق عليه اسم 084 لأنه كان المشروع الرابع والثمانين لشركة Bedford Associates، هو النتيجة.[2] أسست Bedford Associates شركة جديدة مكرسة لتطوير وتصنيع وبيع وصيانة هذا المنتج الجديد: Modicon، والتي تعني MOdular DIgital CONtroller (وحدة تحكم رقمية معيارية). كان من بين الأشخاص الذين عملوا على هذا المشروع ديك مورلي، الذي يُعتبر "أب" الـ PLC.[3] تم بيع علامة Modicon التجارية في عام 1977 لشركة Gould Electronics، ثم استحوذت عليها لاحقًا الشركة الألمانية AEG ثم الفرنسية Schneider Electric، المالكة الحالية.

####التثبيت

يتطلب هذا البرنامج النصي تشغيل Nmap. إذا لم يكن لديك Nmap، فقم بتنزيله وتثبيته.

root@kitploit:~
http://nmap.org/download.html

#####ويندوز

بعد تنزيل modicon-info.nse، انقله إلى دليل NSE Scripts. سيتطلب ذلك صلاحيات المسؤول. اذهب إلى Start -> Programs -> Accessories، وانقر بزر الماوس الأيمن على 'Command Prompt'. اختر 'Run as Administrator'.

root@kitploit:~
move modicon-info.nse C:\Program Files (x86)\Nmap\scripts

#####لينكس

بعد تنزيل modicon-info.nse، انقله إلى دليل NSE Scripts. يجب أن يتم ذلك بصلاحيات sudo/root.

root@kitploit:~
sudo mv modicon-info.nse /usr/share/nmap/scripts
	

####الاستخدام

داخل نافذة طرفية/موجه الأوامر، استخدم أحد الأوامر التالية حيث هو الهدف الذي ترغب في فحصه بحثًا عن أجهزة Modicon PLC.

root@kitploit:~
Windows: nmap -p 502 --script modicon-info.nse -sV <host>

Linux: sudo nmap -p 502 --script modicon-info.nse -sV <host> 

	

####ملاحظات

يتم الحفاظ على النسخة الرسمية من هذا البرنامج النصي على:https://github.com/digitalbond/Redpoint/modicon-info.nse

يستخدم هذا البرنامج النصي منفذ الوجهة القياسي لبروتوكول Modbus عبر TCP 502.

== ###omrontcp-info.nse & omronudp-info.nse ![omrontcp/udp-info Sample Output] (http://www.digitalbond.com/wp-content/uploads/2015/02/Region.png)

####المؤلف

Stephen Hilt
Digital Bond, Inc

####الغرض والوصف

الغرض من omrontcp-info و omronudp-info هو تحديد وتعداد أجهزة OMRON FINS. طورت Omron البروتوكول وهي الشركة المصنعة الأساسية للأجهزة التي تدعم هذا البروتوكول.

يتم التعرف على جهاز OMRON FINS بشكل مؤكد عن طريق الاستعلام إلى TCP/9600 أو UDP 9600 بأمر Read Controller Satus (0x0501). ستحدد رسائل الاستجابة ما إذا كان الجهاز جهاز OMRON FINS، ويتم تحليل المعلومات لتعداد الجهاز.

يجلب أمر OMRON FINS Read Controller Status المعلومات الأساسية حول الجهاز مثل طراز وحدة التحكم (Controller Model)، وإصدار وحدة التحكم (Controller Version)، وحجم منطقة البرنامج، وحجم IOM، وعدد كلمات DM، وحجم المؤقت/العداد، وحجم DMZ الموسع، وعدد الخطوات/الانتقالات، ونوع بطاقة الذاكرة وحجمها.

خصائص OMRON FINS التي يحللها هذا البرنامج النصي هي:

  1. طراز وحدة التحكم (Controller Model) - سلسلة لا يزيد حجمها عن 20 بايت تمثل طراز وحدة التحكم

  2. إصدار وحدة التحكم (Controller Version) - سلسلة تمثل رقم الإصدار ولا يزيد حجمها عن 20 بايت.

  3. للاستخدام النظامي - محجوز لاستخدام النظام. يتم جمع المعلومات فقط لمعرفة ما إذا كان هناك أي شيء مثير للاهتمام في هذا الحقل

  4. حجم منطقة البرنامج - حجم إعداد الكمبيوتر (PC Setup) ومنطقة البرنامج.

  5. حجم IOM - حجم المنطقة التي يمكن فيها استخدام أوامر البت/الكلمة.

  6. عدد كلمات DM - إجمالي الكلمات في منطقة DM.

  7. حجم المؤقت/العداد - أقصى عدد متاح من المؤقتات/العدادات.

  8. حجم DM الموسع - البنوك في منطقة DM الموسعة

  9. عدد الخطوات/الانتقالات - أقصى عدد متاح من الخطوات/الانتقالات

  10. نوع بطاقة الذاكرة - 00: لا توجد بطاقة ذاكرة 01: SPRAM 02: EPROM 03: EEPROM

  11. حجم بطاقة الذاكرة - حجم بطاقة الذاكرة بالكيلوبايت (Kb)

####التاريخ والخلفية

FINS أو Factory Intelligent Network Services هو بروتوكول يستخدم الأوامر للتواصل مع أجهزة PLC. يدعم البروتوكول إصدارًا عبر UDP بالإضافة إلى إصدار عبر TCP. توجد بعض الاختلافات بين البروتوكولين، ولهذا تمت كتابة نصين لدعم فحص خدمات TCP و UDP معًا.

يُستخدم OMRON FINS في أنظمة التحكم في الأتمتة الصناعية، مثل محطات معالجة المياه، ومرافق التصنيع، والمرافق العامة.

####التثبيت

يتطلب هذا البرنامج النصي تشغيل Nmap. إذا لم يكن لديك Nmap، فقم بتنزيل Nmap وتثبيته وفقًا لتعليمات Nmap. http://nmap.org/download.html

#####ويندوز

بعد تنزيل enip-enumerate.nse، ستحتاج إلى نقله إلى دليل NSE Scripts، ويجب أن يتم ذلك بصلاحيات المسؤول. اذهب إلى Start -> Programs -> Accessories، وانقر بزر الماوس الأيمن على 'Command Prompt'. اختر 'Run as Administrator'.

root@kitploit:~
move omron*.nse C:\Program Files (x86)\Nmap\scripts

#####لينكس

بعد تنزيل enip-enumerate.nse، ستحتاج إلى نقله إلى دليل NSE Scripts، ويجب أن يتم ذلك بصلاحيات sudo/root.

root@kitploit:~
sudo mv omron*.nse /usr/share/nmap/scripts
	

####الاستخدام

داخل نافذة طرفية/موجه الأوامر، استخدم أحد الأوامر التالية حيث هو الهدف الذي ترغب في فحصه بحثًا عن أجهزة OMRON FINS.

root@kitploit:~
Windows: nmap -p 9600 --script omrontcp-info <host> 
Windows: nmap -sU -p 9600 --script omronudp-info <host>

Linux: nmap -p 9600 --script omrontcp-info <host> 
Linux: sudo nmap -sU -p 9600 --script omronudp-info <host>

	

####ملاحظات

يتم الحفاظ على النسخة الرسمية من إصدار TCP لهذا البرنامج النصي على:https://github.com/digitalbond/Redpoint/omrontcp-info.nse

يتم الحفاظ على النسخة الرسمية من إصدار UDP لهذا البرنامج النصي على:https://github.com/digitalbond/Redpoint/omronudp-info.nse

تستخدم هذه النصوص منفذ الوجهة القياسي FINS و TCP/FINS لكل من UDP 9600 و TCP 9600.

== ###pcworx-info.nse ![pcworx-info Sample Output] (http://www.digitalbond.com/wp-content/uploads/2015/02/pcworx.png)

####المؤلف

Stephen Hilt
Digital Bond, Inc

####الغرض والوصف

الغرض من pcworx-info.nse هو تحديد وتعداد أجهزة Phoenix Contact ILC PLC عبر بروتوكول PC Worx. يتم التعرف على جهاز PLC بشكل مؤكد عن طريق الاستعلام إلى TCP/1962 بطلبات مولّدة مسبقًا. ستحدد رسائل الاستجابة ما إذا كان الجهاز PLC يدعم PC Worx، وتؤدي إلى تعداد إضافي.

في المجمل، سيتم إرسال ثلاث حزم إلى الـ PLC بهذا البرنامج النصي لبناء الاتصالات ثم لطلب المعلومات من الـ PLC.

خصائص PC Worx التي يحللها هذا البرنامج النصي هي:

  1. نوع الـ PLC - سلسلة تمثل نوع ILC PLC.

  2. رقم الطراز - سلسلة من أرقام ASCII تمثل طراز الـ PLC مثل 2737193.

  3. إصدار البرنامج الثابت (Firmware Version) - سلسلة تمثل إصدار البرنامج الثابت الذي يعمل على الـ PLC.

  4. تاريخ البرنامج الثابت - سلسلة تمثل تاريخ بناء البرنامج الثابت الذي يعمل على الـ PLC.

  5. وقت البرنامج الثابت - سلسلة تمثل وقت بناء البرنامج الثابت الذي يعمل على الـ PLC.

####التاريخ والخلفية

من صفحة منتج Phoenix Contact على الويب الرابط

PC Worx هو البرنامج الهندسي المتسق لجميع وحدات التحكم من Phoenix Contact. فهو يجمع بين البرمجة - وفقًا لمعيار IEC 61131، وإعداد ناقل المجال (fieldbus)، وتشخيص النظام - في حل برمجي واحد. وهذا يوفر تفاعلًا أمثل بين العتاد والبرمجيات. يمكن استخدام PC Worx لتنفيذ مفاهيم أتمتة معقدة. اعتمادًا على عدد الإدخالات/المخرجات (I/Os) المطلوب دعمها، يتوفر إصداران للاختيار من بينهما: PC WORX BASIC و PC WORX PRO.

####التثبيت

يتطلب هذا البرنامج النصي تشغيل Nmap. إذا لم يكن لديك Nmap، فقم بتنزيل Nmap وتثبيته وفقًا لتعليمات Nmap. http://nmap.org/download.html

#####ويندوز

بعد تنزيل pcworx-info.nse، ستحتاج إلى نقله إلى دليل NSE Scripts، ويجب أن يتم ذلك بصلاحيات المسؤول. اذهب إلى Start -> Programs -> Accessories، وانقر بزر الماوس الأيمن على 'Command Prompt'. اختر 'Run as Administrator'.

root@kitploit:~
move pcworx-info.nse C:\Program Files (x86)\Nmap\scripts

#####لينكس

بعد تنزيل pcworx-info.nse، ستحتاج إلى نقله إلى دليل NSE Scripts، ويجب أن يتم ذلك بصلاحيات sudo/root.

root@kitploit:~
sudo mv pcworx-info.nse /usr/share/nmap/scripts
	

####الاستخدام

داخل نافذة طرفية/موجه الأوامر، استخدم أحد الأوامر التالية حيث هو الهدف الذي ترغب في فحصه بحثًا عن أجهزة Phoenix Contact PLC.

root@kitploit:~
Windows: nmap -p 1962 --script pcworx-info -sV <host>

Linux: nmap -p 1962 --script pcworx-info -sV <host> 

	

####ملاحظات

يتم الحفاظ على النسخة الرسمية من هذا البرنامج النصي على:https://github.com/digitalbond/Redpoint/pcworx-info.nse

يستخدم هذا البرنامج النصي منفذ الوجهة القياسي PC Worx عبر TCP 1962.

==

###proconos-info.nse ![proconos-info Sample Output] (http://www.digitalbond.com/wp-content/uploads/2015/02/pcworx.png)

####المؤلف

Stephen Hilt
Digital Bond, Inc

####الغرض والوصف

الغرض من proconos-info.nse هو تحديد وتعداد أجهزة PLC عبر بروتوكول ProConOS/MultiProg. يتم التعرف على جهاز PLC بشكل مؤكد عن طريق الاستعلام إلى TCP/20547 بطلبات مولّدة مسبقًا. ستحدد رسائل الاستجابة ما إذا كان الجهاز PLC يدعم ProConOS/MultiProg، وتؤدي إلى تعداد إضافي.

يلزم طلب واحد فقط للاستعلام عن هذه المعلومات من الـ PLC.

خصائص ProConOS/MultiProg التي يحللها هذا البرنامج النصي هي:

  1. بيئة تشغيل منطق السلالم (Ladder Logic Runtime) - سلسلة تعرض اسم بيئة التشغيل وإصدارها وتاريخ بنائها.

  2. نوع الـ PLC - سلسلة تمثل نوع الـ PLC وإصدار البرنامج الثابت (Firmware Version)

  3. اسم المشروع - سلسلة تمثل اسم المشروع الذي يعمل حاليًا على الـ PLC.

  4. مشروع الإقلاع (Boot Project) - سلسلة تمثل اسم المشروع المضبوط للإقلاع على الـ PLC.

  5. الكود المصدري للمشروع - سلسلة توضح ما إذا كان الكود المصدري للمشروع متاحًا أم لا.

####التثبيت

يتطلب هذا البرنامج النصي تشغيل Nmap. إذا لم يكن لديك Nmap، فقم بتنزيل Nmap وتثبيته وفقًا لتعليمات Nmap. http://nmap.org/download.html

#####ويندوز

بعد تنزيل proconos-info.nse، ستحتاج إلى نقله إلى دليل NSE Scripts، ويجب أن يتم ذلك بصلاحيات المسؤول. اذهب إلى Start -> Programs -> Accessories، وانقر بزر الماوس الأيمن على 'Command Prompt'. اختر 'Run as Administrator'.

root@kitploit:~
move proconos-info.nse C:\Program Files (x86)\Nmap\scripts

#####لينكس

بعد تنزيل proconos-info.nse، ستحتاج إلى نقله إلى دليل NSE Scripts، ويجب أن يتم ذلك بصلاحيات sudo/root.

root@kitploit:~
sudo mv proconos-info.nse /usr/share/nmap/scripts
	

####الاستخدام

داخل نافذة طرفية/موجه الأوامر، استخدم أحد الأوامر التالية حيث هو الهدف الذي ترغب في فحصه بحثًا عن أجهزة ProConOS/MultiProg PLC.

root@kitploit:~
Windows: nmap -p 20547 --script proconos-info -sV <host>

Linux: nmap -p 20547 --script proconos-info -sV <host> 

	

####ملاحظات

يتم الحفاظ على النسخة الرسمية من هذا البرنامج النصي على:https://github.com/digitalbond/Redpoint/proconos-info.nse

يستخدم هذا البرنامج النصي منفذ الوجهة القياسي ProConOS/MultiProg عبر TCP 20547.

==

###s7-enumerate.nse ![s7-enumerate Sample Output] (http://digibond.wpengine.netdna-cdn.com/wp-content/uploads/2014/04/S7screenshot.png)

####المؤلف

Stephen Hilt
Digital Bond, Inc

ملاحظة: يهدف هذا البرنامج النصي إلى توفير نفس وظيفة PLCScan داخل Nmap. بعض المعلومات التي يجمعها PLCScan لم يتم نقلها إلى هذا البرنامج النصي NSE، ويمكن استخراج هذه المعلومات من الحزم المستلمة.

شكرًا لـ Positive Research و Dmitry Efanov على إنشاء PLCScan

####الغرض والوصف

الغرض من s7-enumerate.nse هو تحديد وتعداد أجهزة Siemens SIMATIC S7 PLC. يتم التعرف على جهاز S7 بشكل مؤكد عن طريق الاستعلام إلى TCP/102 برسائل COTP و S7COMM مولّدة مسبقًا. ستحدد رسائل الاستجابة ما إذا كان الجهاز S7 PLC وتؤدي إلى تعداد إضافي. ملاحظة: يُستخدم TCP/102 بواسطة تطبيقات متعددة، أحدها S7COMM.

يتم إرسال طلبي S7 بعد إنشاء اتصال S7 بنجاح.

تجلب هذه الطلبات معلومات العتاد الأساسية، ومعلومات البرنامج الثابت، وبعض المعلومات الوصفية مثل تعريف المصنع (plant identification) واسم النظام. يتم بعد ذلك إرجاع هذه المعلومات إلى Nmap وعرضها بتنسيقات الإخراج القياسية التي يدعمها Nmap.

خصائص S7 التي يحللها هذا البرنامج النصي هي:

  1. الوحدة - سلسلة تمثل تعريف الوحدة التي يتم الاستعلام عنها. يحدد هذا طراز S7، على سبيل المثال 315، 412، 1200، ...

  2. العتاد الأساسي - سلسلة تمثل تعريف العتاد الأساسي الذي يتم الاستعلام عنه.

  3. الإصدار - سلسلة تمثل تعريف إصدار العتاد الأساسي.

  4. اسم النظام - سلسلة تمثل اسم النظام الذي تم إعطاؤه للجهاز. يمكن أن يوفر هذا معلومات مفيدة إذا كان مالك الأصل قد طبق اصطلاح تسمية منظمًا.

  5. نوع الوحدة - سلسلة هي اسم نوع الوحدة المدرجة.

  6. الرقم التسلسلي - سلسلة هي الرقم التسلسلي للوحدة. هذا مهم بشكل أساسي لأغراض الجرد.

  7. حقوق النشر - سلسلة هي معلومات حقوق النشر. عادةً ما تقرأ "Original Siemens Equipment"، ولكن من الممكن أن يوفر تطبيق طرف ثالث لحزمة بروتوكول S7 معلومات إضافية.

  8. تعريف المصنع - سلسلة تمثل تعريف المصنع الذي تم إعداده على الجهاز. نادرًا ما شوهدت هذه السلسلة في عمليات الفحص لدينا، لكنها قد توفر معلومات مفيدة.

####التاريخ والخلفية

من مقالة ويكيبيديا حول SIMATIC http://simple.wikipedia.org/wiki/SIMATIC:

SIMATIC هو اسم نظام أتمتة طورته الشركة الألمانية Siemens. يتحكم نظام الأتمتة في الآلات المستخدمة في الإنتاج الصناعي. يتيح هذا النظام للآلات العمل تلقائيًا.

####التثبيت

يتطلب هذا البرنامج النصي تشغيل Nmap. إذا لم يكن لديك Nmap، فقم بتنزيل Nmap وتثبيته وفقًا لتعليمات Nmap. http://nmap.org/download.html

#####ويندوز

بعد تنزيل s7-enumerate.nse، ستحتاج إلى نقله إلى دليل NSE Scripts، ويجب أن يتم ذلك بصلاحيات المسؤول. اذهب إلى Start -> Programs -> Accessories، وانقر بزر الماوس الأيمن على 'Command Prompt'. اختر 'Run as Administrator'.

root@kitploit:~
move s7-enumerate.nse C:\Program Files (x86)\Nmap\scripts

#####لينكس

بعد تنزيل s7-enumerate.nse، ستحتاج إلى نقله إلى دليل NSE Scripts، ويجب أن يتم ذلك بصلاحيات sudo/root.

root@kitploit:~
sudo mv s7-enumerate.nse /usr/share/nmap/scripts
	

####الاستخدام

داخل نافذة طرفية/موجه الأوامر، استخدم أحد الأوامر التالية حيث هو الهدف الذي ترغب في فحصه بحثًا عن أجهزة S7 PLC.

root@kitploit:~
Windows: nmap -p 102 --script s7-enumerate -sV <host>

Linux: sudo nmap -p 102 --script s7-enumerate -sV <host> 

	

####ملاحظات

يتم الحفاظ على النسخة الرسمية من هذا البرنامج النصي على:https://github.com/digitalbond/Redpoint/s7-enumerate.nse

يستخدم هذا البرنامج النصي منفذ الوجهة القياسي S7COMMS عبر TCP 102.

تنزيل الأداة