Μία ερευνήτρια ασφάλειας δημοσίευσε στο Twitter λεπτομέρειες σχετικά με μια ευπάθεια στο λειτουργικό σύστημα των Windows. Η ευπάθεια είναι ένα ζήτημα “local privilege escalation” το οποίο επιτρέπει σε έναν εισβολέα να αυξήσει την πρόσβαση κακόβουλου κώδικα από έναν περιορισμένο USER σε ένα λογαριασμό SYSTEM all-access. Ο Will Dormann, μηχανικός του CERT / CC, έχει επιβεβαιώσει την ευπάθεια και εξέδωσε μια επίσημη ειδοποίηση χθες το βράδυ. Ο Dormann λέει ότι η ευπάθεια βρίσκεται στο Windows Task Scheduler και πιο συγκεκριμένα στο Advanced Local Procedure Call (ALPC) interface. Η διεπαφή ALPC είναι ένας εσωτερικός μηχανισμός των Windows που λειτουργεί ως σύστημα επικοινωνίας μεταξύ διαδικασιών. Το ALPC επιτρέπει σε μια διαδικασία client που εκτελείται εντός του λειτουργικού συστήματος να ζητήσει μια διαδικασία server που εκτελείται εντός του ίδιου λειτουργικού συστήματος για να παρέχει ορισμένες πληροφορίες ή να εκτελέσει κάποια ενέργεια.
Η ερευνήτρια, γνωστή με το όνομα SandboxEscaper, κυκλοφόρησε κώδικα proof-of-concept (PoC) στο GitHub για την εκμετάλλευση της διεπαφής ALPC μέσω της οποίας αποκτά κανείς SYSTEM access σε ένα σύστημα Windows. Οι δημιουργοί κακόβουλου λογισμικού θα ενδιαφέρονταν ιδιαίτερα για αυτό το PoC, καθώς επιτρέπει στο κακόβουλο λογισμικό να αποκτά πρόσβαση διαχειριστή στα στοχοθετημένα συστήματα χρησιμοποιώντας μία πιο αξιόπιστη ευπάθεια από ότι πολλές υπάρχουσες μέθοδοι εκμετάλλευσης. Η SandboxEscaper δεν έχει ειδοποιήσει τη Microsoft για την ευπάθεια, που σημαίνει ότι δεν υπάρχει patch για αυτό το ελάττωμα. Επί του παρόντος, όλοι οι χρήστες των Windows είναι ευάλωτοι. Οι επόμενες ενημερώσεις ασφαλείας της Microsoft προγραμματίζονται για την 11η Σεπτεμβρίου. Η ερευνήτρια έχει διαγράψει επίσης τον λογαριασμό του στο Twitter μετά την αποκάλυψη της ευπάθειας.
Task Scheduler ALPC exploit high level analysis
Yesterday SandboxEscaper tweeted an local privilege escalation exploit for Windows, which currently has no patch. It’s a really neat flaw, in particular how it is exploited.
What is the exploit? This exploit misuses SchRpcSetSecurity to alter permissions (I wouldn’t recommend running it a live system by the way) to allow a hard link to be created, and then calls a print job using XPS printer (installed with Windows XP Service Pack 2+) to call the hijack DLL as SYSTEM (via the Spooler process).
What is it the flaw? “_SchRpcSetSecurity which is part of the task scheduler ALPC endpoint allows us to set an arbitrary DACL. It will Set the security of a file in c:\windows\tasks without impersonating, a non-admin (works from Guest too) user can write here. Before the task scheduler writes the DACL we can create a hard link to any file we have read access over. This will result in an arbitrary DACL write. This PoC will overwrite a printer related dll and use it as a hijacking vector. This is of course one of many options to abuse this.” — source
What does it look like in practice? You get a process spawned under the Print Spooler service (spoolsv.exe) called cmd.exe, which spawns conhost.exe along with a random process. This isn’t normal behaviour.
Exploit limitations: It needs tweaking to work on 32 bit OS, as it has hardcoded paths with *AMD64* which don’t exist on 32-bit Windows. Also it hard codes prnms003 driver, which doesn’t exist on certain versions (e.g. on Windows 7 it can be prnms001).
Other ways to exploit: There’s a bunch of other ways I can think that can be done. Essentially if you can alter permissions and create hard links you can do a bunch of Bad Things (tm). The flaw is that the Task Scheduler API function SchRpcSetSecurity fails to check permissions. So anybody — even a guest — can call it and set file permissions on anything locally.
Ways to detect: https://doublepulsar.com/task-scheduler-alpc-exploit-high-level-analysis-ff08cda6ad4f
Η ερευνήτρια, γνωστή με το όνομα SandboxEscaper, κυκλοφόρησε κώδικα proof-of-concept (PoC) στο GitHub για την εκμετάλλευση της διεπαφής ALPC μέσω της οποίας αποκτά κανείς SYSTEM access σε ένα σύστημα Windows. Οι δημιουργοί κακόβουλου λογισμικού θα ενδιαφέρονταν ιδιαίτερα για αυτό το PoC, καθώς επιτρέπει στο κακόβουλο λογισμικό να αποκτά πρόσβαση διαχειριστή στα στοχοθετημένα συστήματα χρησιμοποιώντας μία πιο αξιόπιστη ευπάθεια από ότι πολλές υπάρχουσες μέθοδοι εκμετάλλευσης. Η SandboxEscaper δεν έχει ειδοποιήσει τη Microsoft για την ευπάθεια, που σημαίνει ότι δεν υπάρχει patch για αυτό το ελάττωμα. Επί του παρόντος, όλοι οι χρήστες των Windows είναι ευάλωτοι. Οι επόμενες ενημερώσεις ασφαλείας της Microsoft προγραμματίζονται για την 11η Σεπτεμβρίου. Η ερευνήτρια έχει διαγράψει επίσης τον λογαριασμό του στο Twitter μετά την αποκάλυψη της ευπάθειας.
Task Scheduler ALPC exploit high level analysis
Yesterday SandboxEscaper tweeted an local privilege escalation exploit for Windows, which currently has no patch. It’s a really neat flaw, in particular how it is exploited.
- High level overview
- Needs prior code execution to exploit.
- Proof of concept exploit currently only works on 64-bit OSes (likely Win 10 and Server 2016).
What is the exploit? This exploit misuses SchRpcSetSecurity to alter permissions (I wouldn’t recommend running it a live system by the way) to allow a hard link to be created, and then calls a print job using XPS printer (installed with Windows XP Service Pack 2+) to call the hijack DLL as SYSTEM (via the Spooler process).
What is it the flaw? “_SchRpcSetSecurity which is part of the task scheduler ALPC endpoint allows us to set an arbitrary DACL. It will Set the security of a file in c:\windows\tasks without impersonating, a non-admin (works from Guest too) user can write here. Before the task scheduler writes the DACL we can create a hard link to any file we have read access over. This will result in an arbitrary DACL write. This PoC will overwrite a printer related dll and use it as a hijacking vector. This is of course one of many options to abuse this.” — source
What does it look like in practice? You get a process spawned under the Print Spooler service (spoolsv.exe) called cmd.exe, which spawns conhost.exe along with a random process. This isn’t normal behaviour.
Exploit limitations: It needs tweaking to work on 32 bit OS, as it has hardcoded paths with *AMD64* which don’t exist on 32-bit Windows. Also it hard codes prnms003 driver, which doesn’t exist on certain versions (e.g. on Windows 7 it can be prnms001).
Other ways to exploit: There’s a bunch of other ways I can think that can be done. Essentially if you can alter permissions and create hard links you can do a bunch of Bad Things (tm). The flaw is that the Task Scheduler API function SchRpcSetSecurity fails to check permissions. So anybody — even a guest — can call it and set file permissions on anything locally.
Ways to detect: https://doublepulsar.com/task-scheduler-alpc-exploit-high-level-analysis-ff08cda6ad4f
No comments :
Post a Comment