161,162,10161,10162/udp - Pentesting SNMP
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
If you are interested in hacking career and hack the unhackable - we are hiring! (απαιτείται άριστη γνώση πολωνικών, γραπτά και προφορικά).
SNMP - Simple Network Management Protocol είναι ένα πρωτόκολλο που χρησιμοποιείται για την παρακολούθηση διαφόρων συσκευών στο δίκτυο (όπως δρομολογητές, διακόπτες, εκτυπωτές, IoTs...).
Το SNMP χρησιμοποιεί επίσης την θύρα 162/UDP για traps. Αυτά είναι δεδομένα πακέτα που αποστέλλονται από τον διακομιστή SNMP στον πελάτη χωρίς να ζητηθούν ρητά.
Για να διασφαλιστεί ότι η πρόσβαση SNMP λειτουργεί σε διάφορους κατασκευαστές και με διαφορετικούς συνδυασμούς πελάτη-διακομιστή, δημιουργήθηκε η Βάση Πληροφοριών Διαχείρισης (MIB). Η MIB είναι μια ανεξάρτητη μορφή αποθήκευσης πληροφοριών συσκευών. Μια MIB είναι ένα αρχείο κειμένου στο οποίο αναφέρονται όλα τα ερωτήσιμα αντικείμενα SNMP μιας συσκευής σε μια τυποποιημένη ιεραρχία δέντρου. Περιέχει τουλάχιστον ένα Object Identifier
(OID
), το οποίο, εκτός από τη μοναδική διεύθυνση και ένα όνομα, παρέχει επίσης πληροφορίες σχετικά με τον τύπο, τα δικαιώματα πρόσβασης και μια περιγραφή του αντίστοιχου αντικειμένου.
Τα αρχεία MIB γράφονται σε μορφή ASCII κειμένου Abstract Syntax Notation One
(ASN.1
). Οι MIBs δεν περιέχουν δεδομένα, αλλά εξηγούν πού να βρείτε ποιες πληροφορίες και πώς φαίνονται, ποια επιστρέφει τιμές για το συγκεκριμένο OID ή ποιο τύπο δεδομένων χρησιμοποιείται.
Object Identifiers (OIDs) παίζουν κρίσιμο ρόλο. Αυτοί οι μοναδικοί αναγνωριστές έχουν σχεδιαστεί για να διαχειρίζονται αντικείμενα εντός μιας Βάσης Πληροφοριών Διαχείρισης (MIB).
Τα υψηλότερα επίπεδα των αναγνωριστών αντικειμένων MIB, ή OIDs, έχουν κατανεμηθεί σε διάφορους οργανισμούς τυποποίησης. Είναι σε αυτά τα κορυφαία επίπεδα που καθορίζεται το πλαίσιο για τις παγκόσμιες πρακτικές και πρότυπα διαχείρισης.
Επιπλέον, οι προμηθευτές έχουν την ελευθερία να δημιουργούν ιδιωτικούς κλάδους. Μέσα σε αυτούς τους κλάδους, έχουν την αυτονομία να περιλαμβάνουν διαχειριζόμενα αντικείμενα που σχετίζονται με τις δικές τους γραμμές προϊόντων. Αυτό το σύστημα διασφαλίζει ότι υπάρχει μια δομημένη και οργανωμένη μέθοδος για την αναγνώριση και διαχείριση μιας ευρείας γκάμας αντικειμένων σε διάφορους προμηθευτές και πρότυπα.
Μπορείτε να πλοηγηθείτε σε ένα δέντρο OID από το διαδίκτυο εδώ: http://www.oid-info.com/cgi-bin/display?tree=#focus ή να δείτε τι σημαίνει ένα OID (όπως το 1.3.6.1.2.1.1
) επισκεπτόμενοι http://oid-info.com/get/1.3.6.1.2.1.1.
Υπάρχουν μερικά καλά γνωστά OIDs όπως αυτά μέσα στο 1.3.6.1.2.1 που αναφέρονται σε μεταβλητές του Πρωτοκόλλου Απλής Διαχείρισης Δικτύου (SNMP) που ορίζονται από το MIB-2. Και από τα OIDs που εκκρεμούν από αυτό μπορείτε να αποκτήσετε μερικά ενδιαφέροντα δεδομένα φιλοξενίας (δεδομένα συστήματος, δεδομένα δικτύου, δεδομένα διαδικασιών...)
1 . 3 . 6 . 1 . 4 . 1 . 1452 . 1 . 2 . 5 . 1 . 3. 21 . 1 . 4 . 7
Ακολουθεί μια ανάλυση αυτής της διεύθυνσης.
1 – αυτό ονομάζεται ISO και καθορίζει ότι αυτό είναι ένα OID. Γι' αυτό όλοι οι OIDs ξεκινούν με "1"
3 – αυτό ονομάζεται ORG και χρησιμοποιείται για να προσδιορίσει τον οργανισμό που κατασκεύασε τη συσκευή.
6 – αυτό είναι το dod ή το Υπουργείο Άμυνας, το οποίο είναι ο οργανισμός που καθόρισε πρώτος το Διαδίκτυο.
1 – αυτή είναι η τιμή του διαδικτύου για να δηλώσει ότι όλες οι επικοινωνίες θα γίνονται μέσω του Διαδικτύου.
4 – αυτή η τιμή καθορίζει ότι αυτή η συσκευή κατασκευάζεται από ιδιωτικό οργανισμό και όχι από κυβερνητικό.
1 – αυτή η τιμή δηλώνει ότι η συσκευή κατασκευάζεται από μια επιχείρηση ή μια επιχειρηματική οντότητα.
Αυτές οι πρώτες έξι τιμές τείνουν να είναι οι ίδιες για όλες τις συσκευές και σας δίνουν τις βασικές πληροφορίες γι' αυτές. Αυτή η ακολουθία αριθμών θα είναι η ίδια για όλους τους OIDs, εκτός αν η συσκευή κατασκευάζεται από την κυβέρνηση.
Προχωρώντας στο επόμενο σύνολο αριθμών.
1452 – δίνει το όνομα του οργανισμού που κατασκεύασε αυτή τη συσκευή.
1 – εξηγεί τον τύπο της συσκευής. Σε αυτή την περίπτωση, είναι ένα ξυπνητήρι.
2 – καθορίζει ότι αυτή η συσκευή είναι μια απομακρυσμένη μονάδα τερματικού.
Οι υπόλοιπες τιμές παρέχουν συγκεκριμένες πληροφορίες σχετικά με τη συσκευή.
5 – δηλώνει ένα διακριτό σημείο συναγερμού.
1 – συγκεκριμένο σημείο στη συσκευή
3 – θύρα
21 – διεύθυνση της θύρας
1 – οθόνη για τη θύρα
4 – αριθμός σημείου
7 – κατάσταση του σημείου
Υπάρχουν 2 σημαντικές εκδόσεις του SNMP:
SNMPv1: Η κύρια, είναι ακόμα η πιο συχνή, η αυθεντικοποίηση βασίζεται σε μια συμβολοσειρά (community string) που ταξιδεύει σε καθαρό κείμενο (όλες οι πληροφορίες ταξιδεύουν σε καθαρό κείμενο). Η Έκδοση 2 και 2c στέλνουν επίσης την κίνηση σε καθαρό κείμενο και χρησιμοποιούν μια συμβολοσειρά κοινότητας ως αυθεντικοποίηση.
SNMPv3: Χρησιμοποιεί μια καλύτερη μορφή αυθεντικοποίησης και οι πληροφορίες ταξιδεύουν κρυπτογραφημένες (μπορεί να εκτελεστεί επίθεση λεξικού, αλλά θα ήταν πολύ πιο δύσκολο να βρείτε τα σωστά διαπιστευτήρια από ότι στο SNMPv1 και v2).
Όπως αναφέρθηκε προηγουμένως, για να αποκτήσετε πρόσβαση στις πληροφορίες που αποθηκεύονται στη MIB πρέπει να γνωρίζετε τη συμβολοσειρά κοινότητας στις εκδόσεις 1 και 2/2c και τα διαπιστευτήρια στην έκδοση 3. Υπάρχουν 2 τύποι συμβολοσειρών κοινότητας:
public
κυρίως λειτουργίες μόνο για ανάγνωση
private
Ανάγνωση/Εγγραφή γενικά
Σημειώστε ότι η δυνατότητα εγγραφής ενός OID εξαρτάται από τη συμβολοσειρά κοινότητας που χρησιμοποιείται, οπότε ακόμα και αν διαπιστώσετε ότι χρησιμοποιείται το "public", θα μπορούσατε να είστε σε θέση να γράψετε κάποιες τιμές. Επίσης, μπορεί να υπάρχουν αντικείμενα που είναι πάντα "Μόνο για Ανάγνωση".
Αν προσπαθήσετε να γράψετε ένα αντικείμενο, θα λάβετε ένα σφάλμα noSuchName
ή readOnly
.**.**
Στις εκδόσεις 1 και 2/2c, αν χρησιμοποιήσετε μια κακή συμβολοσειρά κοινότητας, ο διακομιστής δεν θα απαντήσει. Έτσι, αν απαντήσει, χρησιμοποιήθηκε μια έγκυρη συμβολοσειρά κοινότητας.
Ο πράκτορας SNMP λαμβάνει αιτήματα στην UDP θύρα 161.
Ο διαχειριστής λαμβάνει ειδοποιήσεις (Traps και InformRequests) στην θύρα 162.
Όταν χρησιμοποιείται με Transport Layer Security ή Datagram Transport Layer Security, τα αιτήματα λαμβάνονται στην θύρα 10161 και οι ειδοποιήσεις αποστέλλονται στην θύρα 10162.
Για να μαντέψετε τη συμβολοσειρά κοινότητας μπορείτε να εκτελέσετε μια επίθεση λεξικού. Δείτε εδώ διάφορους τρόπους για να εκτελέσετε μια επίθεση brute-force κατά του SNMP. Μια συχνά χρησιμοποιούμενη συμβολοσειρά κοινότητας είναι το public
.
Συνιστάται να εγκαταστήσετε τα παρακάτω για να δείτε τι σημαίνει κάθε OID που συλλέγεται από τη συσκευή:
Αν γνωρίζετε μια έγκυρη κοινότητα string, μπορείτε να αποκτήσετε πρόσβαση στα δεδομένα χρησιμοποιώντας SNMPWalk ή SNMP-Check:
Ευχαριστώ στις εκτεταμένες ερωτήσεις (download-mibs), είναι δυνατή η αρίθμηση ακόμη περισσότερων πληροφοριών σχετικά με το σύστημα με την ακόλουθη εντολή :
SNMP έχει πολλές πληροφορίες σχετικά με τον υπολογιστή και πράγματα που μπορεί να βρείτε ενδιαφέροντα είναι: Διασυνδέσεις δικτύου (διεύθυνση IPv4 και IPv6), Ονόματα χρηστών, Χρόνος λειτουργίας, Έκδοση διακομιστή/λειτουργικού συστήματος, και διεργασίες
που εκτελούνται (μπορεί να περιέχουν κωδικούς πρόσβασης)....
Στον τομέα της διαχείρισης δικτύου, ορισμένες ρυθμίσεις και παράμετροι είναι κλειδί για την εξασφάλιση ολοκληρωμένης παρακολούθησης και ελέγχου.
Δύο κύριες ρυθμίσεις επιτρέπουν την πρόσβαση στο πλήρες δέντρο OID, το οποίο είναι ένα κρίσιμο στοιχείο στη διαχείριση δικτύου:
rwuser noauth
έχει ρυθμιστεί για να επιτρέπει πλήρη πρόσβαση στο δέντρο OID χωρίς την ανάγκη αυθεντικοποίησης. Αυτή η ρύθμιση είναι απλή και επιτρέπει απεριόριστη πρόσβαση.
Για πιο συγκεκριμένο έλεγχο, η πρόσβαση μπορεί να παραχωρηθεί χρησιμοποιώντας:
rwcommunity
για διευθύνσεις IPv4, και
rwcommunity6
για διευθύνσεις IPv6.
Και οι δύο εντολές απαιτούν μια κοινότητα string και τη σχετική διεύθυνση IP, προσφέροντας πλήρη πρόσβαση ανεξαρτήτως της προέλευσης του αιτήματος.
Μια σειρά από τιμές Διαχείρισης Πληροφοριών Βάσης (MIB) χρησιμοποιούνται για την παρακολούθηση διαφόρων πτυχών ενός συστήματος Windows μέσω SNMP:
Διεργασίες Συστήματος: Πρόσβαση μέσω 1.3.6.1.2.1.25.1.6.0
, αυτή η παράμετρος επιτρέπει την παρακολούθηση ενεργών διεργασιών μέσα στο σύστημα.
Εκτελούμενα Προγράμματα: Η τιμή 1.3.6.1.2.1.25.4.2.1.2
έχει οριστεί για την παρακολούθηση των προγραμμάτων που εκτελούνται αυτή τη στιγμή.
Διαδρομές Διεργασιών: Για να προσδιοριστεί από πού εκτελείται μια διεργασία, χρησιμοποιείται η τιμή MIB 1.3.6.1.2.1.25.4.2.1.4
.
Μονάδες Αποθήκευσης: Η παρακολούθηση των μονάδων αποθήκευσης διευκολύνεται από το 1.3.6.1.2.1.25.2.3.1.4
.
Όνομα Λογισμικού: Για να προσδιοριστεί το λογισμικό που είναι εγκατεστημένο σε ένα σύστημα, χρησιμοποιείται το 1.3.6.1.2.1.25.6.3.1.2
.
Λογαριασμοί Χρηστών: Η τιμή 1.3.6.1.4.1.77.1.2.25
επιτρέπει την παρακολούθηση των λογαριασμών χρηστών.
TCP Τοπικές Θύρες: Τέλος, το 1.3.6.1.2.1.6.13.1.3
έχει οριστεί για την παρακολούθηση των τοπικών θυρών TCP, παρέχοντας πληροφορίες σχετικά με τις ενεργές συνδέσεις δικτύου.
Ρίξτε μια ματιά σε αυτή τη σελίδα αν έχετε εξοπλισμό Cisco:
Cisco SNMPΑν έχετε την κοινότητα string που σας επιτρέπει να γράφετε τιμές μέσα στην υπηρεσία SNMP, μπορεί να είστε σε θέση να την εκμεταλλευτείτε για να εκτελέσετε εντολές:
SNMP RCEBraa είναι ένας μαζικός σαρωτής SNMP. Η προοριζόμενη χρήση ενός τέτοιου εργαλείου είναι, φυσικά, η εκτέλεση ερωτημάτων SNMP – αλλά σε αντίθεση με το snmpwalk από το net-snmp, είναι ικανό να ερωτά δεκάδες ή εκατοντάδες υπολογιστές ταυτόχρονα, και σε μία μόνο διαδικασία. Έτσι, καταναλώνει πολύ λίγους πόρους συστήματος και εκτελεί τη σάρωση ΠΟΛΥ γρήγορα.
Το Braa υλοποιεί τη ΔΙΚΗ του στοίβα SNMP, επομένως δεν χρειάζεται καμία βιβλιοθήκη SNMP όπως το net-snmp.
Σύνταξη: braa [Community-string]@[IP του διακομιστή SNMP]:[iso id]
Αυτό μπορεί να εξάγει πολλά MB πληροφοριών που δεν μπορείτε να επεξεργαστείτε χειροκίνητα.
Έτσι, ας αναζητήσουμε τις πιο ενδιαφέρουσες πληροφορίες (από https://blog.rapid7.com/2016/05/05/snmp-data-harvesting-during-penetration-testing/):
Η διαδικασία ξεκινά με την εξαγωγή των sysDesc MIB δεδομένων (1.3.6.1.2.1.1.1.0) από κάθε αρχείο για να προσδιοριστούν οι συσκευές. Αυτό επιτυγχάνεται μέσω της χρήσης μιας εντολής grep:
Ένα κρίσιμο βήμα περιλαμβάνει την αναγνώριση της ιδιωτικής κοινότητας που χρησιμοποιείται από οργανισμούς, ιδιαίτερα σε δρομολογητές Cisco IOS. Αυτή η συμβολοσειρά επιτρέπει την εξαγωγή των τρέχουσων ρυθμίσεων από τους δρομολογητές. Η αναγνώριση συχνά βασίζεται στην ανάλυση των δεδομένων SNMP Trap για τη λέξη "trap" με μια grep command:
Τα αρχεία καταγραφής που αποθηκεύονται στους πίνακες MIB εξετάζονται για αποτυχημένες προσπάθειες σύνδεσης, οι οποίες μπορεί τυχαία να περιλαμβάνουν κωδικούς πρόσβασης που εισάγονται ως ονόματα χρηστών. Αναζητούνται λέξεις-κλειδιά όπως fail, failed, ή login για να βρεθούν πολύτιμα δεδομένα:
Τέλος, για να εξαγάγουμε διευθύνσεις email από τα δεδομένα, χρησιμοποιείται μια εντολή grep με μια κανονική έκφραση, εστιάζοντας σε μοτίβα που ταιριάζουν σε μορφές email:
Μπορείτε να χρησιμοποιήσετε NetScanTools για να τροποποιήσετε τιμές. Θα χρειαστεί να γνωρίζετε την ιδιωτική συμβολοσειρά για να το κάνετε αυτό.
Εάν υπάρχει μια ACL που επιτρέπει μόνο σε ορισμένες διευθύνσεις IP να ερωτούν την υπηρεσία SMNP, μπορείτε να spoofάρετε μία από αυτές τις διευθύνσεις μέσα στο πακέτο UDP και να καταγράψετε την κίνηση.
snmp.conf
snmpd.conf
snmp-config.xml
Εάν ενδιαφέρεστε για καριέρα στον hacking και να χακάρετε το μη χακάρισμα - προσλαμβάνουμε! (απαιτείται άπταιστη γραπτή και προφορική πολωνική).
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)