
إطار عمل اختبار الاختراق MODBUS
#smod smod هو إطار عمل معياري يتضمن كل أنواع الميزات التشخيصية والهجومية التي قد تحتاجها لاختبار اختراق بروتوكول modbus. وهو تطبيق كامل لبروتوكول Modbus باستخدام Python وScapy. يمكن تشغيل هذا البرنامج على Linux/OSX مع python 2.7.x.
##ملخص انتقلت الأنظمة القائمة على SCADA (شبكات التحكم في العمليات) في السنوات الأخيرة بشكل ثابت من الشبكات المغلقة الخاصة إلى الحلول مفتوحة المصدر والشبكات المفعلة عبر TCP/IP. وقد جعلها ذلك عرضة لنفس الثغرات الأمنية التي تواجه شبكات الحاسوب التقليدية.
تم استخدام بروتوكول Modbus/TCP كبروتوكول مرجعي لإظهار فعالية بيئة الاختبار في تنفيذ هجمات إلكترونية على بروتوكول نظام الطاقة. وقد تم اختيار Modbus/TCP تحديدًا للأسباب التالية:
يمكنك استخدام هذه الأداة لتقييم الثغرات الأمنية لبروتوكول modbus.
##عرض تجريبي مجرد عرض صغير يوضح الأساسيات
root@kali:~/smod# python smod.py
_______
< SMOD >
-------
\ ^__^
\ (xx)\_______
(__)\ )\/\
U ||----w |
SMOD >help
Command Description
------- -----------
back Move back from the current context
exit Exit the console
exploit Run module
help Help menu
show Displays modules of a given type, or all modules
set Sets a variable to a value
use Selects a module by name
SMOD >show modules
Modules Description
------- -----------
modbus/function/readCoils Fuzzing Read Coils Function
modbus/function/readDiscreteInput Fuzzing Read Discrete Inputs Function
modbus/function/readHoldingRegister Fuzzing Read Holding Registers Function
modbus/function/readInputRegister Fuzzing Read Input Registers Function
modbus/function/writeSingleCoils Fuzzing Write Single Coil Function
modbus/function/writeSingleRegister Fuzzing Write Single Register Function
modbus/scanner/discover Check Modbus Protocols
modbus/scanner/getfunc Enumeration Function on Modbus
modbus/scanner/uid Brute Force UID
SMOD >
تخمين UID الخاص بـ Modbus بالقوة الغاشمة
SMOD >use modbus/scanner/uid
SMOD modbus(uid) >show options
Name Current Setting Required Description
---- --------------- -------- -----------
Function 1 False Function code, Defualt:Read Coils.
Output True False The stdout save in output directory
RHOSTS True The target address range or CIDR identifier
RPORT 502 False The port number for modbus protocol
Threads 1 False The number of concurrent threads
SMOD modbus(uid) >set RHOSTS 192.168.1.6
SMOD modbus(uid) >exploit
[+] Module Brute Force UID Start
[+] Start Brute Force UID on : 192.168.1.6
[+] UID on 192.168.1.6 is : 10
SMOD modbus(uid) >
تعداد الوظائف على Modbus
SMOD >use modbus/scanner/getfunc
SMOD modbus(getfunc) >show options
Name Current Setting Required Description
---- --------------- -------- -----------
Output True False The stdout save in output directory
RHOSTS True The target address range or CIDR identifier
RPORT 502 False The port number for modbus protocol
Threads 1 False The number of concurrent threads
UID None True Modbus Slave UID.
SMOD modbus(getfunc) >set RHOSTS 192.168.1.6
SMOD modbus(getfunc) >set UID 10
SMOD modbus(getfunc) >exploit
[+] Module Get Function Start
[+] Looking for supported function codes on 192.168.1.6
[+] Function Code 1(Read Coils) is supported.
[+] Function Code 2(Read Discrete Inputs) is supported.
[+] Function Code 3(Read Multiple Holding Registers) is supported.
[+] Function Code 4(Read Input Registers) is supported.
[+] Function Code 5(Write Single Coil) is supported.
[+] Function Code 6(Write Single Holding Register) is supported.
[+] Function Code 7(Read Exception Status) is supported.
[+] Function Code 8(Diagnostic) is supported.
[+] Function Code 15(Write Multiple Coils) is supported.
[+] Function Code 16(Write Multiple Holding Registers) is supported.
[+] Function Code 17(Report Slave ID) is supported.
[+] Function Code 20(Read File Record) is supported.
[+] Function Code 21(Write File Record) is supported.
[+] Function Code 22(Mask Write Register) is supported.
[+] Function Code 23(Read/Write Multiple Registers) is supported.
SMOD modbus(getfunc) >