.. | ||
cisco-snmp.md | ||
README.md | ||
snmp-rce.md |
161,162,10161,10162/udp - Ελεγκτική δοκιμή SNMP
Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (Ειδικός Red Team του HackTricks AWS)!
Άλλοι τρόποι υποστήριξης του HackTricks:
- Αν θέλετε να δείτε την εταιρεία σας διαφημισμένη στο HackTricks ή να κατεβάσετε το HackTricks σε μορφή PDF ελέγξτε τα ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ!
- Αποκτήστε το επίσημο PEASS & HackTricks swag
- Ανακαλύψτε την Οικογένεια PEASS, τη συλλογή μας από αποκλειστικά NFTs
- Εγγραφείτε στη 💬 ομάδα Discord ή στη ομάδα τηλεγράφου ή ακολουθήστε μας στο Twitter 🐦 @carlospolopm.
- Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα HackTricks και HackTricks Cloud αποθετήρια του github.
Αν ενδιαφέρεστε για καριέρα στο χάκινγκ και να χακεύετε το αχακέυτο - προσλαμβάνουμε! (απαιτείται άριστη γνώση γραπτού και προφορικού Πολωνικών).
{% embed url="https://www.stmcyber.com/careers" %}
Βασικές Πληροφορίες
Το SNMP - Simple Network Management Protocol είναι ένα πρωτόκολλο που χρησιμοποιείται για την παρακολούθηση διαφόρων συσκευών στο δίκτυο (όπως δρομολογητές, switch, εκτυπωτές, IoTs...).
PORT STATE SERVICE REASON VERSION
161/udp open snmp udp-response ttl 244 ciscoSystems SNMPv3 server (public)
{% hint style="info" %} Το SNMP χρησιμοποιεί επίσης τη θύρα 162/UDP για traps. Αυτά είναι δεδομένα πακέτα που στέλνονται από τον διακομιστή SNMP στον πελάτη χωρίς να ζητηθούν ρητά. {% endhint %}
MIB
Για να εξασφαλιστεί ότι η πρόσβαση SNMP λειτουργεί σε διάφορους κατασκευαστές και με διαφορετικούς συνδυασμούς πελάτη-διακομιστή, δημιουργήθηκε το Management Information Base (MIB). Το MIB είναι ένα ανεξάρτητο μορφότυπο για την αποθήκευση πληροφοριών συσκευής. Ένα MIB είναι ένα κείμενο στο οποίο καταχωρούνται όλα τα ερωτήσιμα αντικείμενα SNMP μιας συσκευής σε μια κανονισμένη ιεραρχία δέντρου. Περιλαμβάνει τουλάχιστον ένα Object Identifier
(OID
), το οποίο, εκτός από την απαραίτητη μοναδική διεύθυνση και ένα όνομα, παρέχει επίσης πληροφορίες σχετικά με τον τύπο, τα δικαιώματα πρόσβασης και μια περιγραφή του αντίστοιχου αντικειμένου.
Τα αρχεία MIB γράφονται σε μορφή κειμένου ASCII βασισμένη στην Abstract Syntax Notation One
(ASN.1
). Τα MIB δεν περιέχουν δεδομένα, αλλά εξηγούν πού να βρείτε ποιες πληροφορίες και πως είναι, ποιες τιμές επιστρέφονται για το συγκεκριμένο OID, ή ποιος τύπος δεδομένων χρησιμοποιείται.
OIDs
Τα Object Identifiers (OIDs) παίζουν ένα κρίσιμο ρόλο. Αυτοί οι μοναδικοί αναγνωριστές σχεδιάστηκαν για τη διαχείριση αντικειμένων εντός ενός Management Information Base (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 που προέρχονται από αυτό μπορείτε να αποκτήσετε ορισμένα ενδιαφέροντα δεδομένα κεντρικού υπολογιστή (δεδομένα συστήματος, δεδομένα δικτύου, δεδομένα διεργασιών...)
Παράδειγμα OID
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 - κατάσταση του σημείου
Εκδόσεις SNMP
Υπάρχουν 2 σημαντικές εκδόσεις του SNMP:
- SNMPv1: Η κύρια, εξακολουθεί να είναι η πιο συχνή, η ταυτοποίηση βασίζεται σε μια συμβολοσειρά (community string) που ταξιδεύει σε κείμενο απλού κειμένου (όλες οι πληροφορίες ταξιδεύουν σε απλό κείμενο). Η έκδοση 2 και 2c στέλνουν την κίνηση σε απλό κείμενο επίσης και χρησιμοποιούν μια συμβολοσειρά κοινότητας ως ταυτοποίηση.
- SNMPv3: Χρησιμοποιεί μια καλύτερη μορφή ταυτοποίησης και οι πληροφορίες ταξιδεύουν κρυπτογραφημένες (μια επίθεση λεξικού θα μπορούσε να πραγματοποιηθεί αλλά θα ήταν πολύ πιο δύσκολο να βρεθούν τα σωστά διαπιστευτήρια από ό,τι στο SNMPv1 και v2).
Συμβολοσειρές Κοινότητας
Όπως αναφέρθηκε προηγουμένως, **για να έχετε πρόσβαση στις πληροφορίες που απο
apt-get install snmp-mibs-downloader
download-mibs
# Finally comment the line saying "mibs :" in /etc/snmp/snmp.conf
sudo vi /etc/snmp/snmp.conf
Εάν γνωρίζετε ένα έγκυρο κοινό κλειδί, μπορείτε να έχετε πρόσβαση στα δεδομένα χρησιμοποιώντας το SNMPWalk ή το SNMP-Check:
snmpbulkwalk -c [COMM_STRING] -v [VERSION] [IP] . #Don't forget the final dot
snmpbulkwalk -c public -v2c 10.10.11.136 .
snmpwalk -v [VERSION_SNMP] -c [COMM_STRING] [DIR_IP]
snmpwalk -v [VERSION_SNMP] -c [COMM_STRING] [DIR_IP] 1.3.6.1.2.1.4.34.1.3 #Get IPv6, needed dec2hex
snmpwalk -v [VERSION_SNMP] -c [COMM_STRING] [DIR_IP] NET-SNMP-EXTEND-MIB::nsExtendObjects #get extended
snmpwalk -v [VERSION_SNMP] -c [COMM_STRING] [DIR_IP] .1 #Enum all
snmp-check [DIR_IP] -p [PORT] -c [COMM_STRING]
nmap --script "snmp* and not snmp-brute" <target>
braa <community string>@<IP>:.1.3.6.* #Bruteforce specific OID
Χάρη στα επεκτεινόμενα ερωτήματα (download-mibs), είναι δυνατό να απαριθμηθούν ακόμα περισσότερες πληροφορίες σχετικά με το σύστημα με την ακόλουθη εντολή:
snmpwalk -v X -c public <IP> NET-SNMP-EXTEND-MIB::nsExtendOutputFull
SNMP έχει πολλές πληροφορίες σχετικά με τον υπολογιστή και πράγματα που μπορεί να βρείτε ενδιαφέροντα είναι: Δικτυακές διεπαφές (διεύθυνση IPv4 και IPv6), Ονόματα χρηστών, Χρόνος λειτουργίας, Έκδοση διακομιστή/Λειτουργικού συστήματος, και διεργασίες
που τρέχουν (μπορεί να περιέχουν κωδικούς πρόσβασης)....
Επικίνδυνες ρυθμίσεις
Στον τομέα της διαχείρισης δικτύου, ορισμένες ρυθμίσεις και παράμετροι είναι καίριες για τη διασφάλιση πλήρους παρακολούθησης και ελέγχου.
Ρυθμίσεις πρόσβασης
Δύο κύριες ρυθμίσεις επιτρέπουν πρόσβαση στο πλήρες δέντρο OID, το οποίο είναι ένα κρίσιμο στοιχείο στη διαχείριση δικτύου:
- Το
rwuser noauth
είναι ρυθμισμένο για να επιτρέπει πλήρη πρόσβαση στο δέντρο OID χωρίς την ανάγκη για πιστοποίηση. Αυτή η ρύθμιση είναι απλή και επιτρέπει την απεριόριστη πρόσβαση. - Για πιο συγκεκριμένο έλεγχο, η πρόσβαση μπορεί να χορηγηθεί χρησιμοποιώντας:
rwcommunity
για διευθύνσεις IPv4, καιrwcommunity6
για διευθύνσεις IPv6.
Και οι δύο εντολές απαιτούν ένα κοινόχρηστο κλειδί και τη σχετική διεύθυνση IP, προσφέροντας πλήρη πρόσβαση ανεξαρτήτως της προέλευσης του αιτήματος.
Παράμετροι SNMP για τα Microsoft Windows
Μια σειρά από τιμές Βάσης Πληροφοριών Διαχείρισης (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:
{% content-ref url="cisco-snmp.md" %} cisco-snmp.md {% endcontent-ref %}
Από το SNMP στην RCE
Αν έχετε τη συμβολοσειρά που σας επιτρέπει να εγγράψετε τιμές μέσα στην υπηρεσία SNMP, μπορείτε να την καταχραστείτε για να εκτελέσετε εντολές:
{% content-ref url="snmp-rce.md" %} snmp-rce.md {% endcontent-ref %}
Μαζικό SNMP
Το Braa είναι ένας μαζικός skanner SNMP. Η προοριζόμενη χρήση ενός τέτοιου εργαλείου είναι, φυσικά, η πραγματοποίηση ερωτημάτων SNMP - αλλά αντίθετα με το snmpwalk από το net-snmp, είναι σε θέση να ερευνήσει δεκάδες ή εκατοντάδες οικοδεσπότες ταυτόχρονα, και σε ένα μόνο διεργασία. Έτσι, καταναλώνει πολύ λίγους πόρους συστήματος και κάνει τη σάρωση ΠΟΛΥ γρήγορη.
Το Braa υλοποιεί το δικό του στοίβα snmp, οπότε ΔΕΝ χρειάζεται καμία βιβλιοθήκη SNMP όπως το net-snmp.
Σύνταξη: braa [Κοινόχρηστο-κλειδί]@[IP του διακομιστή SNMP]:[iso id]
braa ignite123@192.168.1.125:.1.3.6.*
Συσκευές
Η διαδικασία ξεκινά με την εξαγωγή δεδομένων sysDesc MIB (1.3.6.1.2.1.1.1.0) από κάθε αρχείο για την αναγνώριση των συσκευών. Αυτό επιτυγχάνεται μέσω της χρήσης ενός εντολής grep:
grep ".1.3.6.1.2.1.1.1.0" *.snmp
Αναγνώριση Ιδιωτικού Συμβόλου
Ένα κρίσιμο βήμα περιλαμβάνει την αναγνώριση του ιδιωτικού συμβόλου κοινότητας που χρησιμοποιείται από οργανισμούς, ιδιαίτερα σε δρομολογητές Cisco IOS. Αυτό το σύμβολο επιτρέπει την εξαγωγή των τρεχουσών διαμορφώσεων από τους δρομολογητές. Η αναγνώριση συχνά βασίζεται στην ανάλυση δεδομένων SNMP Trap για τη λέξη "trap" με ένα εντολή grep:
grep -i "trap" *.snmp
Ονόματα Χρηστών/Κωδικοί Πρόσβασης
Τα logs που αποθηκεύονται στους πίνακες MIB εξετάζονται για αποτυχημένες προσπάθειες σύνδεσης, οι οποίες ενδέχεται να περιλαμβάνουν κατά λάθος κωδικούς πρόσβασης που εισήχθησαν ως ονόματα χρηστών. Λέξεις-κλειδιά όπως fail, failed, ή login αναζητούνται για την εύρεση πολύτιμων δεδομένων:
grep -i "login\|fail" *.snmp
Emails
Τέλος, για να εξάγουμε διευθύνσεις email από τα δεδομένα, χρησιμοποιείται η εντολή grep με έναν τακτικό εκφρασμό, εστιάζοντας σε πρότυπα που ταιριάζουν με μορφές email:
grep -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" *.snmp
Τροποποίηση τιμών SNMP
Μπορείτε να χρησιμοποιήσετε το NetScanTools για να τροποποιήσετε τις τιμές. Θα πρέπει να γνωρίζετε το ιδιωτικό string για να το κάνετε αυτό.
Πλαστογράφηση
Αν υπάρχει μια ACL που επιτρέπει μόνο σε κάποιες διευθύνσεις IP να ερωτήσουν την υπηρεσία SMNP, μπορείτε να πλαστογραφήσετε μία από αυτές τις διευθύνσεις μέσα στο πακέτο UDP και να καταγράψετε την κίνηση.
Εξέταση αρχείων ρυθμίσεων SNMP
- snmp.conf
- snmpd.conf
- snmp-config.xml
Αν σας ενδιαφέρει η καριέρα στο χάκινγκ και να χακεύετε το αχακέυτο - σας προσλαμβάνουμε! (απαιτείται άριστη γνώση της πολωνικής γραπτής και προφορικής γλώσσας).
{% embed url="https://www.stmcyber.com/careers" %}
Αυτόματες Εντολές HackTricks
Protocol_Name: SNMP #Protocol Abbreviation if there is one.
Port_Number: 161 #Comma separated if there is more than one.
Protocol_Description: Simple Network Managment Protocol #Protocol Abbreviation Spelled out
Entry_1:
Name: Notes
Description: Notes for SNMP
Note: |
SNMP - Simple Network Management Protocol is a protocol used to monitor different devices in the network (like routers, switches, printers, IoTs...).
https://book.hacktricks.xyz/pentesting/pentesting-snmp
Entry_2:
Name: SNMP Check
Description: Enumerate SNMP
Command: snmp-check {IP}
Entry_3:
Name: OneSixtyOne
Description: Crack SNMP passwords
Command: onesixtyone -c /usr/share/seclists/Discovery/SNMP/common-snmp-community-strings-onesixtyone.txt {IP} -w 100
Entry_4:
Name: Nmap
Description: Nmap snmp (no brute)
Command: nmap --script "snmp* and not snmp-brute" {IP}
Entry_5:
Name: Hydra Brute Force
Description: Need Nothing
Command: hydra -P {Big_Passwordlist} -v {IP} snmp
Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!
Άλλοι τρόποι υποστήριξης του HackTricks:
- Αν θέλετε να δείτε την εταιρεία σας να διαφημίζεται στο HackTricks ή να κατεβάσετε το HackTricks σε μορφή PDF ελέγξτε τα ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ!
- Αποκτήστε το επίσημο PEASS & HackTricks swag
- Ανακαλύψτε την Οικογένεια PEASS, τη συλλογή μας από αποκλειστικά NFTs
- Εγγραφείτε στη 💬 ομάδα Discord ή στη ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @carlospolopm.
- Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα HackTricks και HackTricks Cloud αποθετήρια στο GitHub.