SCADA Hacking: Προσομοίωση Modbus Master/Slave

Τα συστήματα SCADA/ICS χρησιμοποιούν πολλά διαφορετικά πρωτόκολλα επικοινωνίας από τα τυπικά συστήματα πληροφορικής. Το πιο ευρέως χρησιμοποιούμενο και το de facto πρότυπο είναι το πρωτόκολλο modbus. Αναπτύχθηκε για πρώτη φορά από την Modicon (σήμερα Schneider Electric) το 1979 ως σειριακό πρωτόκολλο, έχει τροποποιηθεί και επικαιροποιηθεί για να εκτελείται μέσω TCP και συχνά αναφέρεται ως Modbus TCP. Παρακάτω μπορείτε να δείτε ένα διάγραμμα των δύο δομών πακέτων.

sca

Σε αυτόν τον οδηγό, θα προσομοιώσουμε μια διαμόρφωση των modbus master και slave σε μια προσπάθεια να δείξουμε πώς λειτουργεί αυτό το πανταχού παρόν πρωτόκολλο SCADA σε ένα βιομηχανικό περιβάλλον. Αυτή η προσομοίωση μας βοηθά να κατανοήσουμε καλύτερα πώς λειτουργεί αυτό το πρωτόκολλο και πώς μπορεί να παραβιαστεί, να χειραγωγηθεί και να προστατευτεί.

Βήμα #1 Λήψη και εγκατάσταση

Μπορείτε να κατεβάσετε τα αρχεία .jar των Modbus Master και Modbus PAL (slave) κάνοντας κλικ στους συνδέσμους. Πρόκειται για αρχεία Java και μπορούν να χρησιμοποιηθούν σε οποιοδήποτε με δυνατότητα Java. Εδώ θα τα εκτελέσουμε στο σύστημα Windows, αλλά μπορούν εξίσου εύκολα να χρησιμοποιηθούν σε Linux, OSX και σε οποιοδήποτε άλλο σύστημα με δυνατότητα Java.

Αφού εκτελέσετε αυτά τα δύο αρχεία, θα πρέπει να έχετε μια που μοιάζει με την παρακάτω.

sca0

 

Βήμα #2 Επιλέξτε να εκτελέσετε το Modbus TCP

Για να ξεκινήσουμε, πρέπει να ρυθμίσουμε τους προσομοιωτές αυτούς ώστε να λειτουργούν σε λειτουργία TCP. Όπως γνωρίζετε, το modbus σχεδιάστηκε αρχικά για να εκτελείται μέσω σειριακής σύνδεσης και αυτός ο προσομοιωτής είναι ικανός να χρησιμοποιεί TCP ή σειριακή σύνδεση.

Βεβαιωθείτε ότι και οι δύο λειτουργούν στη θύρα 502. Στη συνέχεια, μεταβείτε στο Master και στο πτυσσόμενο Options (Επιλογές) επιλέξτε Modbus TCP.

sca1

Αυτό θα πρέπει να ανοίξει ένα παράθυρο όπως το παρακάτω, όπου μπορούμε να ρυθμίσουμε τη θύρα και τη διεύθυνση IP. Προς το παρόν, ας αφήσουμε τις προεπιλογές 127.0.0.1 και θύρα 502. Κάντε κλικ στο OK.

sca2

Βήμα #3 Προσθήκη Slaves

Στη συνέχεια, πρέπει να προσθέσουμε έναν slave στον προσομοιωτή slave. Κάντε κλικ στο κουμπί Add (Προσθήκη) και θα εμφανιστεί το παράθυρο New Slave. Προσθέστε 8 slaves και κάντε κλικ στο κουμπί Add (Προσθήκη) όπως φαίνεται παρακάτω.

sca3

Βήμα #4 Προσθέστε τιμές στα coils

Κάντε κλικ στο εικονίδιο “eye” και θα εμφανιστεί ένα νέο παράθυρο. Εδώ μπορούμε να προσθέσουμε τιμές στους καταχωρητές και τα coils.

sca4

Κάντε κλικ στην καρτέλα coils και επιλέξτε 8 πηνία.

sca5

Τώρα, προχωρήστε και προσθέστε τις τιμές που βλέπετε παρακάτω στα οκτώ (8) coils. Για λόγους απλότητας, προσθέτουμε ένα “1” για κάθε περιττό coil και ένα μηδενικό “0” για κάθε ζυγό coil.

sca6

Τώρα, κάντε κλικ στο κουμπί Εκτέλεση στον Modbus slave.

sca7

Στη συνέχεια, ας προσθέσουμε 8 coils στο Master και ας ορίσουμε το Unit ID σε 8.

Τέλος, κάντε κλικ στο εικονίδιο Connect (Σύνδεση) στο αριστερό άκρο του επάνω μενού και στη συνέχεια στο εικονίδιο Read/Write (Ανάγνωση/Εγγραφή) δίπλα του. Θα πρέπει να δείτε τα δεδομένα να μετακινούνται από το slave στο master.

sca8

Βήμα #5 Αλλάξτε τα δεδομένα του coil

Τώρα, ας αλλάξουμε τα δεδομένα στα coils και ας τα διαβάσουμε στο Master. Ας βάλουμε μονάδες σε κάθε coil και στη συνέχεια πατάμε Read/Write.

sca9

Βήμα #6 Προσθήκη τιμών στους καταχωρητές

Σε αυτό το βήμα, θα προσθέσουμε τιμές στους καταχωρητές μνήμης. Κάντε κλικ στην καρτέλα Holding registers στο επάνω μέρος του παραθύρου slave data.

sca10

Σε αυτή την περίπτωση, θα προσθέσουμε μόνο τέσσερις (4) καταχωρητές.

Στη συνέχεια, εισαγάγετε τις τιμές για τους τέσσερις (4) καταχωρητές που θα κρατήσετε. Σε αυτή την περίπτωση, πρόσθεσα τις ακόλουθες τιμές,

sca11

Στο Master, επιλέξτε 4 για τον αριθμό των καταχωρητών και επιλέξτε “Read Holding Registers” ως Function Code.

sca12

Τέλος, κάντε κλικ στο εικονίδιο Read/Write. Τα δεδομένα στους καταχωρητές κράτησης θα πρέπει να μεταφερθούν στο Master και να εμφανιστούν στους καταχωρητές Master όπως φαίνεται παραπάνω.

Βήμα #7 Εγγραφή πολλαπλών καταχωρητών

Τώρα που δείξαμε πώς ένα Modbus Master μπορεί να διαβάσει τόσο τα coils όσο και τους καταχωρητές, ας προσπαθήσουμε να στείλουμε τα δεδομένα προς την άλλη κατεύθυνση. Εδώ θα χρησιμοποιήσουμε το Master για να στείλουμε δεδομένα στα coils. Με αυτόν τον τρόπο, ο διαχειριστής του συστήματος ή ο προγραμματιστής του PLC μπορεί να αλλάξει τις τιμές στους καταχωρητές και έτσι να αλλάξει τη λειτουργία του PLC.

Ας πάμε στο Master και ας επιλέξουμε τη λειτουργία “Write Multiple Registers” και στη συνέχεια επιλέξτε 4 καταχωρητές.

sca13

Στη συνέχεια, τοποθετήστε νέα δεδομένα στα πεδία μητρώου στο Master. Τέλος, πατήστε Read/Write και οι νέες τιμές θα πρέπει να εμφανιστούν στα πεδία δεδομένων του καταχωρητή Slave.

Συμπέρασμα

Ελπίζουμε ότι αυτός ο προσομοιωτής modbus σας έδειξε τα βασικά στοιχεία της επικοινωνίας μεταξύ του master και του slave modbus. Παρόλο που χρησιμοποιήσαμε μόνο μερικές , ο προσομοιωτής είναι ικανός για όλες σχεδόν τις λειτουργίες του modbus. Ίσως αξίζει τον κόπο να “παίξετε” με μερικές από αυτές τις λειτουργίες.

iGuRu.gr The Best Technology Site in Greecefgns

κάθε δημοσίευση, άμεσα στο inbox σας

Προστεθείτε στους 2.082 εγγεγραμμένους.
SCADA Hacking

Written by Anastasis Vasileiadis

Οι μεταφράσεις είναι σαν τις γυναίκες. Όταν είναι ωραίες δεν είναι πιστές και όταν είναι πιστές δεν είναι ωραίες.

Αφήστε μια απάντηση

Η ηλ. διεύθυνση σας δεν δημοσιεύεται. Τα υποχρεωτικά πεδία σημειώνονται με *

Το μήνυμα σας δεν θα δημοσιευτεί εάν:
1. Περιέχει υβριστικά, συκοφαντικά, ρατσιστικά, προσβλητικά ή ανάρμοστα σχόλια.
2. Προκαλεί βλάβη σε ανηλίκους.
3. Παρενοχλεί την ιδιωτική ζωή και τα ατομικά και κοινωνικά δικαιώματα άλλων χρηστών.
4. Διαφημίζει προϊόντα ή υπηρεσίες ή διαδικτυακούς τόπους .
5. Περιέχει προσωπικές πληροφορίες (διεύθυνση, τηλέφωνο κλπ).