SCADA Hacking: Εύρεση και απαρίθμηση ιστοσελίδων με SCADA και nmap

Στον σημερινό μας οδηγό, θα πραγματοποιήσουμε αναγνώριση σε έναν στόχο SCADA χρησιμοποιώντας σάρωση θυρών με nmap scripts.

Μέχρι αυτό το σημείο έχουμε χρησιμοποιήσει παθητική αναγνώριση χρησιμοποιώντας το Shodan και τα Google dorks, αλλά τώρα θα χρησιμοποιήσουμε μια πιο ενεργή προσέγγιση για να βρούμε συστήματα SCADA και να κάνουμε κάποια ενεργή αναγνώριση για να πάρουμε περισσότερες πληροφορίες πριν αναπτύξουμε ή χρησιμοποιήσουμε ένα exploit.

scada18

Το Nmap είναι ένα από εκείνα τα εργαλεία που είναι απαραίτητα στην εργαλειοθήκη κάθε χάκερ/penetration tester. Παρόλο που το nmap έχει πολλές διαφορετικές δυνατότητες ( συμπεριλαμβανομένων των nmap scripts (NSE)), ξεκίνησε ως ένας απλός σαρωτής θυρών και έχει παραμείνει ο καλύτερος σαρωτής θυρών που έχουμε στη διάθεσή μας. Ως αποτέλεσμα, κάθε hacker/pentester θα πρέπει να κατανοεί τα βασικά για τη χρήση του nmap.

Βασικά χαρακτηριστικά του Nmap

Όταν μπορούμε να περιορίσουμε τη σύνταξη του nmap για τη σάρωση θυρών στα βασικά της στοιχεία, μοιάζει ως εξής,

nmap -s<type of scan> <IP address>

Αρκετά απλό, σωστά;

Το nmap έχει πολλούς τύπους σαρώσεων. Μεταξύ των πιο χρήσιμων και δημοφιλών είναι,

T – αυτή είναι η σάρωση σύνδεσης. Ανοίγει μια τριμερή “χειραψία” TCP με το σύστημα-στόχο, προσφέροντάς μας έτσι τα πιο αξιόπιστα αποτελέσματα, αλλά και τα λιγότερο κρυφά, καθώς η τριμερής χειραψία καταγράφεται από το σύστημα.

S – η σάρωση stealth ή SYN στέλνει ένα πακέτο με το SYN flag ενεργοποιημένο, ανοίγοντας έτσι μια σύνδεση, αλλά χωρίς να ολοκληρώσει την τριπλή χειραψία. Ως εκ τούτου, δεν καταγράφεται, αλλά είναι αρκετά αξιόπιστη.

U – οι σαρώσεις T και S μας παρέχουν πληροφορίες για τις θύρες TCP, αλλά όχι για τις θύρες UDP. Αυτή η σάρωση αναζητά συγκεκριμένα τις θύρες UDP.

X – η διαβόητη σάρωση XMAS. Ενεργοποιεί τα P, U και F flags και ήταν σε θέση να αποσπάσει απάντηση από ορισμένα συστήματα. Αν και εξακολουθεί να είναι διάσημη, η χρησιμότητά της είναι πλέον περιορισμένη.

A – αυτή η σάρωση θέτει το ACK flag, το οποίο κανονικά θα υποδείκνυε μια τρέχουσα επικοινωνία TCP. Μπορεί να χρησιμοποιηθεί για να προκαλέσει σύγχυση και να περάσει κάποια stateless firewalls.

Η πιο αξιόπιστη, αλλά λιγότερο αθόρυβη σάρωση

Ας ξεκινήσουμε επιχειρώντας μια σάρωση -T ή Connect έναντι ενός στόχου SCADA. Επέλεξα αυτόν από την αναζήτηση στο Shodan για συστήματα που τρέχουν στη θύρα 502 το modbus (το modbus είναι το πιο δημοφιλές πρωτόκολλο SCADA). Αυτό τυχαίνει να είναι ένα εργοστάσιο στη Γένοβα της Ιταλίας.

kali > nmap -sT 88.147.125.34 -p 502

scada12

Όπως μπορείτε να δείτε, το nmap βρήκε τη θύρα 502 φιλτραρισμένη σε αυτό το σύστημα. Αυτό συνήθως υποδεικνύει ότι η θύρα είναι ενεργοποιημένη, αλλά έχει ένα τείχος προστασίας που εμποδίζει την πρόσβαση.

Μερικές φορές, μια σάρωση UDP μπορεί να αποκαλύψει περισσότερες πληροφορίες. Ας δοκιμάσουμε μια σάρωση UDP του nmap στον ίδιο στόχο και ας δούμε αν αποκαλύπτει περισσότερες πληροφορίες. Το switch για μια σάρωση UDP είναι -sU.

kali > nmap -sU 88.147.125.34 -p 502

scada13

Βλέπουμε ότι αυτή η σάρωση επιστρέφει λέγοντας ότι η θύρα 502 είναι είτε ανοιχτή είτε φιλτραρισμένη.

Nmap scripting engine (NSE)

Εκτός από ένα εξαιρετικό εργαλείο σάρωσης θυρών, το nmap διαθέτει και δυνατότητα δημιουργίας scripts. Αυτό προσθέτει σημαντικές δυνατότητες στο nmap μέσω της γλώσσας σεναρίων Lua.

Η μηχανή scripting του Nmap είναι ένα από τα πιο ισχυρά και ταυτόχρονα, πιο ευέλικτα χαρακτηριστικά του Nmap. Επιτρέπει στους χρήστες να γράφουν τα δικά τους scripts και να τα μοιράζονται με άλλους χρήστες για σκοπούς δικτύωσης, αναγνώρισης, εκμετάλλευσης κ.λ.π.

Αυτά τα scripts μπορούν να χρησιμοποιηθούν για:

  • Network discovery
  • More sophisticated and accurate OS version detection
  • Vulnerability detection
  • Backdoor detection
  • Vulnerability exploitation

Βρείτε τα Scripts του Nmap

Από το τερματικό, ας αναζητήσουμε τα Nmap scripts. Όλα τα scripts θα πρέπει να τελειώνουν σε .nse (nmap scripting engine), οπότε μπορούμε να βρούμε τα scripts χρησιμοποιώντας την εντολή locate του Linux με τον μπαλαντέρ *.nse. Αυτό θα πρέπει να βρει όλα τα αρχεία που τελειώνουν σε .nse, όπως,

kali > locate *.nse

scada14

Όπως μπορείτε να δείτε στο παραπάνω στιγμιότυπο οθόνης, το τερματικό μας εμφανίζει εκατοντάδες nmap scripts.

Η βασική σύνταξη για την εκτέλεση αυτών των scripts είναι η εξής:

nmap –script <scriptname> <script-args-if-any> <host ip>

Στην περίπτωσή μας εδώ, θέλουμε να χρησιμοποιήσουμε ένα συγκεκριμένο script για την εύρεση κόμβων modbus σε τοποθεσίες με δυνατότητα modbus (αν και οι τοποθεσίες SCADA χρησιμοποιούν πολλά διαφορετικά πρωτόκολλα, το modbus είναι το πιο δημοφιλές). Με άλλα λόγια, εάν γνωρίζουμε ότι η τοποθεσία χρησιμοποιεί το modbus, αυτό το script μπορεί να ανακαλύψει κάθε έναν από τους κόμβους και το αναγνωριστικό τους.

Εκτός από την τυπική σύνταξη, πρέπει να προσθέσουμε στην εντολή μας το όρισμα της δέσμης ενεργειών ‘modbus-discover.aggressive=true’. Η εντολή θα πρέπει να μοιάζει κάπως έτσι.

kali > nmap –script modbus-discover.nse –script-args=’modbus-discover.agressive=true’ -p 502 88.147.125.34

scada15

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

scada16 scada17

Όπως μπορείτε να δείτε, κατάφερε να αναγνωρίσει επιτυχώς τους κόμβους ως Schneider Electric SAS έκδοση 5.2 και βρήκε κάθε έναν από τους κόμβους.

Βρήκε κόμβους από το 1 (0x01) έως το 262 (0xf6). Αυτό παρέχει πολύτιμες πληροφορίες στον επιτιθέμενο, καθώς δεν προσδιορίζει μόνο το PLC και την έκδοση, αλλά και το πρωτόκολλο επικοινωνίας (modbus) και κάθε έναν από τους κόμβους. Καθώς οι επιθέσεις SCADA απαιτούν βαθιά γνώση των λειτουργιών του ICS, οι πληροφορίες αυτές μπορεί να είναι αρκετές για τους επιτιθέμενους ώστε να αρχίσουν να σχεδιάζουν την επίθεσή τους σε αυτή την υποδομή.

Η υποδομή SCADA συγκαταλέγεται μεταξύ των πολύτιμων και ευάλωτων συστημάτων στον κόσμο. Εάν ένα από αυτά τα συστήματα παραβιαστεί (όπως πολλά έχουν συμβεί), μπορεί όχι μόνο να κοστίσει στην εταιρεία εκατομμύρια δολάρια, αλλά μπορεί να κοστίσει και πολλές ζωές (π.χ. ηλεκτρικό δίκτυο, επεξεργασία νερού). Καταφέραμε όχι μόνο να βρούμε αυτές τις συσκευές, αλλά και να απαριθμήσουμε κάθε έναν από τους κόμβους τους, θέτοντας σε λειτουργία την εκμετάλλευση αυτών των συσκευών και συστημάτων.

Written by Anastasis Vasileiadis

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

One Comment

Leave a Reply

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

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

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