Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
Tavis Ormandy pokazuje exploita na 20 letnią podatność w Windows – od XP do 10 (privilege escalation do SYSTEM)
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!
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.
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.
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.
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.
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.
To nie bug, to ficzer..