-15% na nową książkę sekuraka: Wprowadzenie do bezpieczeństwa IT. Przy zamówieniu podaj kod: 10000

Tavis Ormandy pokazuje exploita na 20 letnią podatność w Windows – od XP do 10 (privilege escalation do SYSTEM)

13 sierpnia 2019, 20:30 | Aktualności | komentarze 2

Windows umożliwia wysyłanie komunikatów pomiędzy oknami (np. notepad oraz cmd). Okna jednak mogą działać w kontekście różnych użytkowników (np. notepad – normalny użytkownik, cmd administrator. Nie chcielibyśmy raczej mieć nieskrępowanej możliwości komunikacji z takiego notatnika do cmd (wtedy ten ostatni mógłby być potencjalnie zaatakowany). Za ochronę w tym miejscu odpowiada mechanizm User Interface Privilege Isolation:

It wouldn’t make sense if an unprivileged window could just send commands to a highly privileged window, and that’s what UIPI, User Interface Privilege Isolation, prevents.

Po krótkich testach okazało się jednak, że taka możliwość istnieje:

The tool showed that unprivileged applications were allowed to send messages in the 0xCNNN range to most of the applications I tested, even simple applications like Notepad. I had no idea message numbers even went that high!
Tavis chciał sprawdzić dlaczego część wiadomości była bez problemu przepuszczana i dokopał się do mechanizmu MSCTF, który jest dość dużym, ale bardzo słabo udokumentowanym elementem Windows:
That library is the one creating these messages and changing the message filters. (…) Suffice to say, CTF is vast and complex. The CTF system was most likely designed for LPC in Windows NT and bolted onto ALPC when it became available in Vista and later. The code is clearly dated with many legacy design decisions.
Podsystem jest na tyle duży, że dalsze badania zajęły światowej jednak klasy badaczowi całe tygodnie! Po tym czasie udało się przygotować stosowne narzędzie oraz przykładowe exploity. Jednocześnie okazało się że cały mechanizm CTF jest na bakier z uwierzytelnianiem używających go procesów:
Any application, any user – even sandboxed processes – can connect to any CTF session. Clients are expected to report their thread id, process id and HWND, but there is no authentication involved and you can simply lie.
W każdym razie tutaj zobaczcie „standardową” eskalację uprawnień do SYSTEM na Windows 10:

Co z łatkami? Microsoft wypuścił je w ostatniej chwili przed publikacją badania i trudno stwierdzić czy poprawnie łata problem:
They literally left it until the last second, so I haven’t been able to review the patches yet. It’s my understanding that the patch won’t be complete, but will fix the most important vectors. I haven’t seen the patch yet, so I’m not certain.
Ciekawe znaleziska zapewne jeszcze przed nami:
It turns out it was possible to reach across sessions and violate NT security boundaries for nearly twenty years, and nobody noticed. Now that there is tooling available, it will be harder for these bugs to hide going forward.
–ms

Spodobał Ci się wpis? Podziel się nim ze znajomymi:



Komentarze

  1. gosc

    Słowo klucz „słabo udokumentowanym elementem”. Tylko pogratulować odkrycia. :)
    Dla mnie kiedyś (za czasów XP) było to większa część tego systemu.
    Dzisiaj pewnie część wiedzy jest ujawniana na uczelniach, bo projekt Wine został niedawno oskarżony o wykorzystanie tej wiedzy lub kodu.

    Odpowiedz
  2. hdhd

    To nie bug, to ficzer..

    Odpowiedz

Odpowiedz