Θέλετε να αποκτήσετε πρόσβαση υπερχρήστη σε ένα σύστημα Linux; Εδώ είναι μερικοί από τους καλύτερους τρόπους απαρίθμησης ενός μηχανήματος Linux.

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

Ας δούμε τους διαφορετικούς τρόπους χειροκίνητης απαρίθμησης ενός συστήματος Linux για κλιμάκωση προνομίων.

Γιατί είναι σημαντική η απαρίθμηση για την κλιμάκωση των προνομίων;

Η κλιμάκωση προνομίων, επίσης γνωστή ως Κλιμάκωση Προνομίων (EOP) είναι ένα βασικό συστατικό της δοκιμής διείσδυσης και της μεθοδολογίας δοκιμής διείσδυσης. Όπως υποδηλώνει το όνομα, είναι ένα στάδιο κατά το οποίο προσπαθείτε να αυξήσετε τα προνόμιά σας στον διαχειριστή ή, στα συστήματα Linux, στον χρήστη root.

instagram viewer

Για να αποκτήσετε δικαιώματα root, πρέπει πρώτα να βρείτε μια ευπάθεια στο σύστημα. Εδώ μπαίνει στο παιχνίδι η απαρίθμηση. Αν και υπάρχουν εργαλεία για την αυτοματοποίηση της απαρίθμησης, τις περισσότερες φορές, η μη αυτόματη και ενδελεχής απαρίθμηση μπορεί να αποκαλύψει εσφαλμένες διαμορφώσεις και άλλες ευπάθειες που δεν εντοπίζονται από τα εργαλεία.

1. Απαρίθμηση συστήματος

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

Για παράδειγμα, εάν έχετε ένα exploit 64 bit, θα πρέπει να το τροποποιήσετε εάν το σύστημα προορισμού σας υποστηρίζει μόνο λογισμικό 32 bit, καθώς υπάρχει διαφορά μεταξύ συστημάτων 32 bit και 64 bit.

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

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

cat /etc/cpuinfo 
unname -α

Εάν θέλετε να μάθετε περισσότερα σχετικά με την αρχιτεκτονική της CPU, χρησιμοποιήστε την εντολή lscpu:

lscpu

2. Απαρίθμηση διαδικασίας

Οι διεργασίες είναι προγράμματα σε εκτέλεση. Γνωρίζοντας την πλήρη λίστα των διαδικασιών σε ένα σύστημα Linux, σε συνδυασμό με μερικές άλλες τακτικές απαρίθμησης που αναφέρονται σε αυτόν τον οδηγό θα σας βοηθήσουν να εντοπίσετε δυνητικά ευάλωτες διαδικασίες και να τις αξιοποιήσετε για να τις βελτιώσετε προνόμιο.

Για παράδειγμα, εάν βρείτε μια διεργασία που εκτελείται με δικαιώματα root, ίσως μπορέσετε να εισάγετε αυθαίρετο κώδικα σε αυτήν που θα μπορούσε να οδηγήσει σε επιτυχή κλιμάκωση των δικαιωμάτων.

Μπορείς να χρησιμοποιήσεις την εντολή ps με την βοηθ σημαίες για τη λίστα όλων των διεργασιών στο σύστημα:

ps aux

3. Απαρίθμηση χρηστών και ομάδων

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

Η ορατότητα των προνομιακών λογαριασμών σάς επιτρέπει να δοκιμάσετε γνωστούς συνδυασμούς ονόματος χρήστη-κωδικού πρόσβασης. Μπορείτε να εκτυπώσετε τα περιεχόμενα του /etc/passwd και /etc/group αρχεία για πρόσβαση στη λίστα χρηστών. Εναλλακτικά, μπορείτε επίσης να χρησιμοποιήσετε την εντολή getent.

Προς την λάβετε τη λίστα των χρηστών στο Linux:

getent passwd

Για να λάβετε τη λίστα των ομάδων:

ομάδα getent

4. Διερεύνηση για ευαίσθητα αρχεία

Ευαίσθητα αρχεία όπως /etc/passwd και /etc/shadow μπορεί να διαρρεύσει πολλές πληροφορίες. Από /etc/shadow μπορείτε να βρείτε τα hashes του κωδικού πρόσβασης των χρηστών και να προσπαθήσετε να τα σπάσετε με ένα εργαλείο κατακερματισμού όπως το Hashcat ή ο John the Ripper.

Υπάρχει επίσης το /etc/sudoers αρχείο, το οποίο, εάν μπορείτε να το επεξεργαστείτε με κάποιο τρόπο, θα επιτρέψει την τροποποίηση των δικαιωμάτων sudo για χρήστες και ομάδες.

5. Έλεγχος δικαιωμάτων sudo

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

Αυτό είναι μόνο ένα παράδειγμα από τα πολλά μονοπάτια επίθεσης που μπορούν να ανοίξουν μόλις έχετε σαφήνεια των δικαιωμάτων sudo στο σύστημα Linux. Ένα άλλο παράδειγμα θα ήταν η κατάχρηση του μηχανισμού προφόρτωσης της βιβλιοθήκης LD_PRELOAD, τον οποίο μπορείτε να απαριθμήσετε κοιτάζοντας τα δικαιώματα sudo.

sudo -l

6. Εύρεση Linux Kernel Exploits

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

Για να βρείτε τα exploit του πυρήνα, πρώτα, μάθετε την έκδοση του πυρήνα και, στη συνέχεια, χρησιμοποιώντας ένα εργαλείο όπως το searchsploit ή χρησιμοποιώντας το Google Dorks, βρείτε ένα κατάλληλο exploit που επηρεάζει την ακριβή έκδοση του πυρήνα που εκτελείται στο σύστημα.

7. Εκμετάλλευση δυαδικών SUID

Το SUID είναι η συντομογραφία του Set Owner User ID κατά την εκτέλεση. Είναι ένας ειδικός τύπος άδειας αρχείου που, όταν οριστεί, εκτελεί ένα πρόγραμμα με τα δικαιώματα του κατόχου του.

Εάν ένα πρόγραμμα είχε δημιουργηθεί από τον χρήστη root και είχε οριστεί το bit SUID για αυτό, το πρόγραμμα, όταν εκτελούνταν, θα είχε δικαιώματα root. Πώς μπορεί να γίνει κατάχρηση του SUID; Είναι απλό.

Απαριθμήστε όλα τα δυαδικά αρχεία με σύνολο bit SUID, αναζητήστε τη λίστα, βρείτε ένα δυαδικό αρχείο για το οποίο έχετε πρόσβαση εγγραφής και επεξεργαστείτε την πηγή του για να προσθέσετε το ωφέλιμο φορτίο σας. Μπορείτε να χρησιμοποιήσετε την εντολή find για να αναζητήσετε δυαδικά αρχεία SUID και να ανακατευθύνετε την τυπική έξοδο σε /dev/null:

find / -perm -4000 2>/dev/null

8. Πειρατείες βιβλιοθηκών

Μερικές φορές μπορεί να υπάρχουν προγράμματα που εκτελούνται στο σύστημα που χρησιμοποιούν βιβλιοθήκες που δεν προστατεύονται από εγγραφή. Σε ένα τέτοιο σενάριο, μπορείτε εύκολα να αντικαταστήσετε τη βιβλιοθήκη που χρησιμοποιείται και να πάρετε τον έλεγχο της λειτουργικότητας του προγράμματος.

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

9. Διερεύνηση και πειρατεία μεταβλητών περιβάλλοντος

Οι μεταβλητές περιβάλλοντος είναι ειδικοί τύποι μεταβλητών που, σε κάποιο βαθμό, καθορίζουν τον τρόπο λειτουργίας του συστήματος και των προγραμμάτων. Μια σημαντική μεταβλητή περιβάλλοντος είναι η μεταβλητή PATH.

Αποθηκεύει τη θέση όλων των εκτελέσιμων δυαδικών αρχείων στο σύστημα. Μπορείτε να χειριστείτε τη μεταβλητή PATH και να την συνδέσετε με άλλα τρωτά σημεία όπως η παραβίαση βιβλιοθήκης για να αποκτήσετε πρόσβαση root.

Για παράδειγμα, ας υποθέσουμε ότι υπάρχει ένα εκτελέσιμο αρχείο με ένα σύνολο bit SUID. Για να λειτουργήσει σωστά, καλεί ένα δυαδικό χωρίς να ορίζει την πλήρη διαδρομή του.

Μπορείτε να επωφεληθείτε από αυτό δημιουργώντας μια διπλότυπη, κακόβουλη έκδοση του δυαδικού αρχείου και ενημερώνοντας τη μεταβλητή PATH με τη θέση του το κακόβουλο δυαδικό αρχείο, οπότε όταν εκτελείται το εκτελέσιμο αρχείο SUID, το κακόβουλο δυαδικό σας θα εκτελείται ως root και θα μπορείτε να δημιουργήσετε ένα κέλυφος ρίζας.

Επιπλέον, υπάρχει επίσης μια καλή πιθανότητα να βρείτε μυστικά κλειδιά και κωδικούς πρόσβασης απλά κοιτάζοντας τις μεταβλητές περιβάλλοντος. Μπορείτε να εκτυπώσετε όλες τις μεταβλητές περιβάλλοντος χρησιμοποιώντας την εντολή env:

env

10. Βρείτε αντικείμενα στο ιστορικό Bash

Πολλές φορές, το ιστορικό του τρέχοντος χρήστη δεν θα διαγραφεί. Μπορείτε να το κάνετε κατάχρηση για να αποκτήσετε πιθανή πρόσβαση σε ευαίσθητες πληροφορίες ή να εκτελέσετε ξανά προηγούμενες εντολές με τροποποιημένες παραμέτρους.

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

11. Υπερπειρατεία ευάλωτων Cron Jobs

Οι εργασίες Cron είναι ένα ενσωματωμένο και εξαιρετικά έξυπνο χαρακτηριστικό του Linux. Εάν έχετε μετεγκαταστήσει από τα Windows, μια εργασία cron μπορεί να συγκριθεί απευθείας με μια προγραμματισμένη εργασία στα Windows.

Εκτελείται περιοδικά και εκτελεί εντολές. Τόσο η ώρα που θα εκτελεστεί όσο και οι εντολές που θα εκτελέσει είναι προκαθορισμένες από τον χρήστη. Μερικές φορές μπορεί να βρείτε μερικές εργασίες cron ευάλωτες σε επιθέσεις όπως η ένεση χαρακτήρων μπαλαντέρ ή μπορούν να εγγραφούν από τον χρήστη με τον οποίο έχετε συνδεθεί.

Μπορείτε να κάνετε κατάχρηση αυτών των τρωτών σημείων για να αποκτήσετε πρόσβαση root στο σύστημα. Για να εκμεταλλευτείτε μια δουλειά cron, πρέπει πρώτα να βρείτε μια ευάλωτη. Ακολουθούν οι εντολές για τη λίστα εργασιών cron που εκτελούνται αυτήν τη στιγμή και άλλα σχετικά δεδομένα:

ls /etc/cron.d/
crontab -l -u

12. Καταχώριση παλαιών πακέτων

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

Υπάρχει πιθανότητα να έχει εγκατασταθεί κάποιο σκοτεινό πακέτο το οποίο μπορεί να μην χρησιμοποιείται ακόμη πολύ είναι εξαιρετικά ευάλωτο σε επίθεση κλιμάκωσης προνομίων. Στη συνέχεια, μπορείτε να εκμεταλλευτείτε αυτό το πακέτο για να αποκτήσετε πρόσβαση root.

Χρησιμοποιήστε την εντολή dpkg με το -μεγάλο ετικέτα για να παραθέσετε τα εγκατεστημένα πακέτα σε συστήματα που βασίζονται σε Debian και Ubuntu:

dpkg -l

Για συστήματα RHEL/CentOS/Fedora, χρησιμοποιήστε αυτήν την εντολή για να παραθέσετε τα εγκατεστημένα πακέτα:

rpm -qa 

Τώρα ξέρετε πώς να απαριθμήσετε μη αυτόματα το Linux για κλιμάκωση προνομίων

Η κλιμάκωση των προνομίων εξαρτάται αποκλειστικά από την απαρίθμηση. Όσο περισσότερες πληροφορίες έχετε πρόσβαση, τόσο καλύτερα θα μπορείτε να σχεδιάσετε τις στρατηγικές επίθεσης.

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