ΑρχικήsecurityΚυνηγώντας την ευπάθεια pwnkit (CVE-2021-4034) σε Linux

Κυνηγώντας την ευπάθεια pwnkit (CVE-2021-4034) σε Linux

Τον Νοέμβριο του 2021, ανακαλύφθηκε μια ευπάθεια σε ένα πανταχού παρών module Linux που ονομάζεται Polkit. Το Polkit που αναπτύχθηκε από την Red Hat διευκολύνει την επικοινωνία μεταξύ προνομιούχων και μη προνομιακών διαδικασιών στα Linux endpoints. Λόγω ενός ελαττώματος σε ένα component του Polkit — pkexec — υπάρχει μια ευπάθεια κλιμάκωσης τοπικών προνομίων που αν την εκμεταλλευτεί κάποιος θα μπορέσει να μετατραπεί από τυπικός user σε root.

Δείτε επίσης: LockBit ransomware: Linux έκδοση στοχεύει VMware ESXi servers

Linux

Μόλις επιτευχθεί η αρχική πρόσβαση με άλλα μέσα, η εκμετάλλευση του CVE-2021-4032 — με το παρατσούκλι “pwnkit” — είναι εύκολη και είναι διαθέσιμο και το proof of concept. Μπορείτε να βρείτε συστάσεις μετριασμού και ενημέρωσης στον ιστότοπο της Red Hat.

Το Pwnkit αποκαλύφθηκε δημόσια στις 25 Ιανουαρίου 2022.

Δείτε επίσης: CWP bugs επιτρέπουν την εκτέλεση κώδικα root σε διακομιστές Linux

Κυνήγι του pwnkit με την χρήση του CrowdStrike Falcon

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

Profiling pkexec

Όταν το pwnkit καλείται από έναν μη προνομιούχο χρήστη, το pkexec θα αποδεχτεί οπλισμένες οδηγίες και θα δημιουργήσει ένα νέο process ως χρήστης root. Σε ένα σύστημα Linux, ο χρήστης root έχει User ID (UID) 0. Οπτικά, το attack path μοιάζει με αυτό:

Για να ρίξουμε το ευρύτερο δυνατό δίκτυο, θα εξετάσουμε τις διεργασίες που δημιουργεί συνήθως το pkexec και θα αναζητήσουμε ακραίες τιμές. Το query μας θα μοιάζει με αυτό:

index=main sourcetype=ProcessRollup2* event_simpleName=ProcessRollup2 event_platform=Lin 
| search ParentBaseFileName=pkexec AND UID_decimal=0
| stats values(CommandLine) as CommandLine, count(aid) as executionCount by aid, ComputerName, ParentBaseFileName, FileName, UID_decimal
| sort + executionCount

Το output αυτού του query θα είναι παρόμοιο με αυτό:

Linux

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

Ο δημόσιος proof of concept κώδικας που χρησιμοποιείται για αυτό το tutorial εκδίδει μμια σταθερη εντολή: /bin/sh-pi. Το κυνήγι για αυτήν τη γραμμή εντολών συγκεκριμένα μπορεί να εντοπίσει lazy testing και/ή exploitation, αλλά να γνωρίζετε ότι αυτό το string είναι ασήμαντο για τροποποίηση:

index=main sourcetype=ProcessRollup2* event_simpleName=ProcessRollup2 event_platform=Lin 
| search ParentBaseFileName=pkexec AND UID_decimal=0 AND CommandLine="/bin/sh -pi"
| stats values(CommandLine) as CommandLine, count(aid) as executionCount by aid, ComputerName, ParentBaseFileName, FileName, UID_decimal
| sort + executionCount

Δείτε επίσης: Σημαντική αύξηση των malware που στόχευσαν Linux μηχανήματα το 2021

Κενές γραμμές εντολών στο pkexec

Ένα από τα ενδιαφέροντα τεχνουργήματα του pwnkit exploitation είναι η απουσία ορίσματος γραμμής εντολών όταν γίνεται επίκληση του pkexec. Μπορείτε να το δείτε εδώ:

Linux

Επιπλέον, η διαδικασία που ζητά ανύψωση και μόχλευση pwnkit δεν θα έχει UID 0. Ως εκ τούτου, μια εκτέλεση pkeexec που έχει γίνει θα έχει τιμή Real User ID (RUID) που δεν είναι 0. Με αυτές τις πληροφορίες, μπορούμε να αναζητήσουμε instances pkeexec που επικαλείται με null value στη γραμμή εντολών και RUID διαφορετικό από 0.

index=main sourcetype=ProcessRollup2* event_simpleName=ProcessRollup2 event_platform=Lin
| search FileName=pkexec AND RUID_decimal!=0
| where isnull(CommandLine)
| stats dc(aid) as totalEndpoints count(aid) as detectionCount, values(ComputerName) as endpointNames by ParentBaseFileName, FileName, UID_decimal
| sort - detectionCount

Με αυτό το query, όλες οι δοκιμές μας εστιάζονται:

Οποιοδήποτε από τα παραπάνω queries μπορεί να προγραμματιστεί για μαζική αναφορά ή να μετατραπεί σε προσαρμοσμένα IOAs για κυνήγι, εντοπισμό και/ή πρόληψη σε πραγματικό χρόνο.

Linux

Πηγή πληροφοριών: crowdstrike.com

Teo Ehc
Teo Ehchttps://www.secnews.gr
Be the limited edition.

Εγγραφή στο Newsletter

* indicates required

FOLLOW US

LIVE NEWS