161,162,10161,10162/udp - Pentesting SNMP

Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (Ειδικός Red Team του HackTricks AWS)!

Άλλοι τρόποι υποστήριξης του HackTricks:

Αν ενδιαφέρεστε για καριέρα στο χάκινγκ και να χακεύετε το αχακέυτο - προσλαμβάνουμε! (απαιτείται άριστη γνώση γραπτού και προφορικού Πολωνικών).

Βασικές Πληροφορίες

Το SNMP - Simple Network Management Protocol είναι ένα πρωτόκολλο που χρησιμοποιείται για την παρακολούθηση διαφόρων συσκευών στο δίκτυο (όπως δρομολογητές, switch, εκτυπωτές, IoTs...).

PORT    STATE SERVICE REASON                 VERSION
161/udp open  snmp    udp-response ttl 244   ciscoSystems SNMPv3 server (public)

Το SNMP χρησιμοποιεί επίσης τη θύρα 162/UDP για traps. Αυτά είναι δεδομένα πακέτα που στέλνονται από τον διακομιστή SNMP στον πελάτη χωρίς να ζητηθούν ρητά.

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, το οποίο είναι ένα κρίσιμο στοιχείο στη διαχείριση δικτύου:

  1. Το rwuser noauth είναι ρυθμισμένο για να επιτρέπει πλήρη πρόσβαση στο δέντρο OID χωρίς την ανάγκη για πιστοποίηση. Αυτή η ρύθμιση είναι απλή και επιτρέπει την απεριόριστη πρόσβαση.

  2. Για πιο συγκεκριμένο έλεγχο, η πρόσβαση μπορεί να χορηγηθεί χρησιμοποιώντας:

  • 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:

pageCisco SNMP

Από το SNMP στην RCE

Αν έχετε τη συμβολοσειρά που σας επιτρέπει να εγγράψετε τιμές μέσα στην υπηρεσία SNMP, μπορείτε να την καταχραστείτε για να εκτελέσετε εντολές:

pageSNMP RCE

Μαζικό 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

Αν σας ενδιαφέρει η καριέρα στο χάκινγκ και να χακεύετε το αχακέυτο - σας προσλαμβάνουμε! (απαιτείται άριστη γνώση της πολωνικής γραπτής και προφορικής γλώσσας).

Αυτόματες Εντολές 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:

Last updated