21:07
26/11/2010

Exploit 0day na Windows — omija UAC

Nowy, zaprezentowany wczoraj exploit na Microsoft Windows pozwala podnieść atakującemu uprawnienia do poziomu “systemu” a także umożliwia obejście mechanizmu User Account Control (UAC) pod Windows Vista oraz Windows 7.

Exploit na UAC

Exploit wykorzystuje błąd w win32k.sys, będącym częścią kernela Windows. Dziura wynika ze sposobu w jaki interpretowane są niektóre klucze rejestru i dotyka wszystkich Windowsów, od Windows XP, przez Windows Vista aż do Windowsa 7.

UAC-Windows-exploit-0day

Przed i po odpaleniu exploita na Windows

Błąd co prawda nie pozwala na zdalne wykonanie kodu, ale umożliwia dowolnemu użytkownikowi systemu wykonywanie poleceń z uprawnieniami administratora.

Jak się zabezpieczyć

Nie istnieje jeszcze żaden oficjalny patch, łatający tą dziurę. Można jednak wykonać poniższe kroki, aby podnieść swoje bezpieczeństwo (ochrona przed obecnym PoC-em).

    1. Zaloguj się jako administrator
    2. Otwórz w Regedit klucz HKEY_USERS\[SID]\EUDC
    3. Kliknij prawym przyciskiem myszy na UEDC i wybierz “Permissions
    4. Wybierz “Add” wpisz nazwę użytkownika i wciśnij OK
    5. Zaznacz “Deny” dla “Delete” oraz “Create Subkey
    6. Potwierdź zmiany (OK/Apply)
UAC-exploit-windows-0day-prev

Ustawienia zwiększające bezpieczeństwo, fot. Chet Wiśniewski

Uwaga, powyższe wskazówki mogą powodować problemy przy wielojęzycznych instalacjach Windows!


Przeczytaj także:



54 komentarzy

Dodaj komentarz
  1. hehe, to 0day na kernela, wiec owszem — *miedzy innymi* omija UAC.

  2. Ten UAC zawsze był taki jakiś dziwny :D
    Wypróbuje jak coś ;p (mam Win Szita Łista)

  3. Nie wind32k.sys, a win32k.sys ;)
    Jesli chodzi o gradacje “od Windows 2008 R2, przez Windows 7 aż do Windowsa XP”, to imho odrobine nienaturalne… sugerowalbym osobiscie przejscie XP -> Vista -> 7 ;>

  4. na pewno to działa na winxp? myślałem że winxp nie ma UAC…

  5. Ta ciciubabka będzie trwała do końca świata, większość userów śpi spokojnie nieświadoma zagrożenia. Inni włażą na Niebezpiecznika :D

  6. Nie ma czegoś takiego jak bezpieczeństwo ;) chyba że w raju :P

  7. hm.. a macie coś podobnego na mojego RHEL6? selinux właśnie mi zablokował wszystko w xach oprócz przeglądarki.. potrzebuje dostać się z niej do roota przecież nie będę linuksa resetował
    ssh i alt nie działają :E

  8. “[…] aż do Windowsa XP.” Czyli z Windowsem XP włącznie?
    Panowie od tegoż exploita wskazują dokładnie, że Windows XP nie przekręci nam się po tych zabiegach:

    “This PoC may not correctly fix the exploited kernel context and resume execution without BSOD, such as on kernels ealier than 6.1.6000 are not supported, current supported kernels are:
    Windows Vista/2008 6.1.6000 x32,
    Windows Vista/2008 6.1.6001 x32,
    Windows 7 6.2.7600 x32,
    Windows 7/2008 R2 6.2.7600 x64.”

  9. Po dłuższym namyśle, dochodzę do wniosku, że się wkopałem. Logiczne jest przecież, że nie może to działać pod XP, tam przecież nie ma UAC’a. Mea culpa : )

    • Ace: celem exploita nie jest obejście uac, to jeden z ficzerow ;)

  10. Kenobi: jeżeli masz winszita to czemu nie zmienisz na jakiegoś linucha?

  11. dd: dla mnie Windows to przede wszystkim system do grania, na Linuxach nie ma tylu gier :P

  12. @red
    http://twitter.com/#!/taviso/status/4959518618288128
    2x priv escal sprzed 10 dni na RHEL6

    @ave
    UAC tutaj nie ma nic do rzeczy, jak zresztą j00ru już zaznaczył. To jest kernel mode buffer overflow prowadzący do priv escal. Znalazca wymyślił, że można to użyć do obejścia UAC, ale to nie znaczy, że UAC jest do tego wymagany.
    Anyway, nawet jeśli exploit nie działa na XP, to nie zmienia faktu że sam bug w XP jest.

  13. s/j00ru/jurek ogórek/

  14. dd : wiesz , mało gb na dysku , ogólnie mam 140 gb z czego same gry zajmują 40 gb + 40 gb winszit , niedługo jednak będę mieć Kubuntu ;]

  15. Czemu wy zawsze piszecie o “zero” dayach 2 dni po publikacji i dalej nazywacie je 0dayem? (tak, tak, tego opublikowano 24, a nie 25. Skoro notka jest z 26 to nie mogl byc opublikowany ‘wczoraj’). Moze napiszecie kiedys o jakims rocznym, albo 5letnim 0dayu? lol :)

    • ojejujeju: zapoznaj się z definicją 0day’a, zamiast się kompromitować.

  16. @Gynvael Coldwind

    Dzięki za wyjaśnienie : )

  17. ojejujeju: 0day to taka dziurecka, do której jest klucyk a ni ma zamecka ;)

  18. Są takie chwile, kiedy się cieszę, że mam dwa systemy. Z drugiej strony jak nie 0day na Windę to exploit na Ubuntu. Coś za coś.

  19. poczekajmy, aż będzie jakiś exploit na tego 0day’a ;) Kto klucykiem w dziurecke, temu utniem łapecke, w nomenklaturze OkropNick’a.

  20. Dzień bez exploita na Wina to dzień stracony…;)
    Ciśnienie podniesie, krew szybciej krąży i dzień nie jest już taki nudny…

  21. No i to by było na tyle… Avira mi tego pliku nie przepuszcza i krzyczy, że Exploit EXP/EUDPoC.A

  22. Jak się wklada klucyk do tej dziurecki? I jaki? Wyprobowal bym u siebie.

  23. @Gynvael Coldwind: fail! :) bo ja nie mam systemtapa w ogóle zainstalowanego
    btw. system i tak zdechł na amen :(
    szkoda że nadal nie ma alternatywy dla windowsa ze swoimi stuxnetami i linucha z paranoidalnym selinuxem.. linuksy bez selinuxa pomijam bo to zwykłe prowizorki mogące niedługo skończyć jak win

  24. @red: Zdradź proszę nieco więcej szczegółów.

  25. a co tu zdradzać :) gdy puściłem dość sporą (pierwszą od instalacji) aktualizacje selinux zaczął nagle blokować pythona, przynajmniej takie były początkowe komunikaty z apletu od selinuxa
    po twardym resecie już / na lvmie podmontować się nie daje pewnie dlatego że ‘coś’ ważnego musiało się aktualizować w czasie tego crasha :) no może sytuacja raczej nie utknęła w martwym punkcie ale mi się bawić nie che bo nic ważnego tam na razie nie miałem

  26. Przeciez jest link do zipa z exploitem.

    Testowal go ktos w ogole? Na win xp sp3 wysypuje unsupported.

  27. Exploit w linku działa tylko pod Viste i 7.
    Ktoś wie jak to wykorzystać na XP?

  28. Na win7 działa bez problemów . Na XP nie może działać bo nie ma UAC czy to takie trudne do zrozumienia ? ;<

    • Łącznik: UAC nie ma tu nic do rzeczy, nie w nim błąd się znajduje :-)

  29. @piotr konieczny

    wiem co to 0day :) co więcej posiadam kilka takowych na różnego rodzaju oprogramowanie, a Ty? kiedy opublikujesz cos swojego, zamiast podniecac sie znaleziskami innych??? :)

    • ojejujeju: Good for you! Mam więc nadzieję, że niebawem będziemy się mogli tutaj wspólnie popodniecać twoimi 0day’ami, które na pewno posiadasz :-)

  30. “Piotr Konieczny napisał :
    ojejujeju: zapoznaj się z definicją 0day’a, zamiast się kompromitować.”
    No to w tym wypadku faktycznie jest to 0day ? Przecież ten exploit nie powstał w celu przeprowadzania ataku , kolega noobpwnftw podzielił się wiedzą z wszystkimi
    http://pastehtml.com/view/1c2wgpc.rtxt

    • Ukash: Ja jestem za następującą definicją 0day’a: “Zero-day attacks occur during the vulnerability window that exists in the time between when a vulnerability is first exploited and when software developers start to develop a counter to that threat” Zobaczymy fixa, skończy się “zeroday’owość” tego ataku/exploita.

  31. @Piotr Konieczny: A w czym? Uchylisz rąbka tajemnicy? (-:

    • Norbert: w API kernela, RtlQueryRegistryValues. Rzuć okiem w kod exploita, link jest w tekście.

  32. Czyli na xp się tego nie da zastosować?

  33. Nie, nie da się. Więc nie wiem czemu xp został wymieniony w opisie. Nie potrzebne wprowadzanie ludzi w błąd.

  34. “:)
    Czyli na xp się tego nie da zastosować?”
    Na bleepinig piszą że sprawa tyczy się również pozostałych wersji windy w tym xp. W całym zamieszaniu nie chodzi o UAC ,exploit przy okazji to zabezpieczanie omija .Chodzi o to że za pomocą exploit’a można uzyskać podwyższenie uprawnień działającego procesu ,z uprawnień Standard Usera/Admina do System = pełne uprawnienia ,można wszystko jednym słowem.

  35. @gosc
    Prawdę mówiąc, pod wpływem Twojego komentarza, odpaliłem IDA i sprawdzałem po kolei win32k.sys z Windows NT 4 SP6, Windows 2000 (bodajże SP4) oraz Windows XP SP3. Bazując na powyższym (jak i również na teście empirycznym przeprowadzonym przez j00ru na XP) stwierdziłem, że:
    1. Błąd występuje zarówno na Windows XP, jak i na Windows 2000 (sic!).
    2. Błąd nie występuje na Windows NT, ponieważ ten nie odczytuje SystemDefaultEUDCFont z rejestru.

    Czy mógłbyś więc uargumentować swoje zdanie? Tj. dlaczego wydaje Ci się, że ten błąd nie występuje w XP? Od razu mówię, że argument typu “nie, nie da się” nie jest żadnym argumentem, a co najwyżej “widzimisię”.
    Jeśli nie znajdziesz żadnego dobrego argumentu, to prosiłbym Cię, żebyś nie wprowadzał zamieszania i nie pisał w komentarzach/etc niesprawdzonych, nierzetelnych informacji.

  36. Gynvael Coldwind: Bazujecie na teorii, a w teorii to się można włamać i do pentagonu.
    Zdajesz się być głęboko utwierdzony w swym twierdzeniu, a udało Ci się to co mówisz zrealizować? Jeśli nie to można całość uznać za pustą “gdybyanologię”.

  37. @Gosc 2010.11.28 18:24
    Czy tak Ci trudno znaleźć rzetelne w sensie Twojego rozumowania informację ?
    http://www.prevx.com/blog/160/New-Windows-day-exploit-speaks-chinese.html
    https://www.arcabit.pl/jezyk-polski/menu-witryny/pomoc/virnews/blad-w-jadrze-windows
    http://www.heise-online.pl/newsticker/news/item/Kolejna-luka-Zero-Day-w-jadrze-Windows-1142361.html
    Czy tylko i wyłącznie wydaję Ci się że jesteś mądrzejszy ?

  38. @Gosc
    Której części mojej wypowiedzi nie zrozumiałeś?

    Dla jasności, powtórzę jeszcze raz:
    1. Nie piszę co mi się wydaje, tylko co widzę w kodzie win32k.sys na wymienionych wyżej systemach. A widzę, że błąd klasy kernel mode stack-buffer overflow tam jest (w wypadku Windows XP oraz Windows 2000).
    2. Jak również napisałem, j00ru wykonał pewne testy, z których wynikło, że błąd jest triggerowalny na Windows XP, co podpięty WinDBG ładnie wyłapał.

    Dodatkowo:
    3. Priv. escal. na pewno da się na Windows 2000 uzyskać.
    4. Na Windows XP jest trochę trudniej, z uwagi na security_cookie, ale:
    – przed testem security_cookie jest wywołany ZwClose z handle które może być kontrolowane przez atakującego (na co wskazuje układ stosu)
    – samo security_cookie jest 16-bitową wartością zależną od pozycji zmiennej w pamięci oraz wartości KeTickCount w momencie uruchomienia DriverEntry win32k.sys (co nie brzmi specjalnie bezpiecznie, z uwagi na dużą przewidywalność wartości KeTickCount, szczególnie jeśli spiąć ją z pewnymi informacjami otrzymywanymi od systemu, oraz samą niewielką rozdzielczość KeTickCount).
    A to daje wystarczające pole do manewru.

  39. W teorii: jeśli wystawisz na mróz jednocześnie 2 szklanki, jedna z zimną wodą, druga z wrzątkiem, zimna woda powinna zamarznąć jako pierwsza.
    W praktyce: Gówno prawda. :)
    Zmień zamiary w czyn i sprawdź rezultat.
    Później zmieszaj mnie z błotem.

  40. @Gosc
    Nic co do tej pory napisałeś nie ma związku z omawianą sprawą.
    Jeśli masz jakiś merytoryczny argument który podważa to co napisałem w powyższych komentarzach, daj znać, chętnie poczytam.
    Póki co dalsze ciągnięcie dyskusji imo nie ma sensu.

  41. Na szkolnej Viście komp się zresetował i tyle z tego było.

  42. Czy posiadacze Visty x64 są zagrożeni?

  43. Też, tylko xp jest bezpieczny.

  44. A przynajmniej nie widze nigdzie do niego exploita.

  45. Jak to dobrze czytać o eksploitach na Windows, siedząc na Linuksie :)

  46. […] opublikowanym na Niebezpieczniku pod koniec listopada wpisie Exploit 0day na windows – omija UAC autor napisał, że luka ta jest exploitowalna m.in. na Windowsie XP, co spotkało się z […]

  47. Szczerze mówiąc pan “haker” się nie popisał – aktualnie Win7Pro x64 bez SP1 nawet i po wlaczeniu aplikacji privy się nie zmieniły, nawet user nie zmienił się.

    • Jakiej aplikacji? Dlaczego miały się zmienić? Przysięgam, jak tak dalej pójdzie wprowadzę rowiązanie całki jako captchy przed wysłaniem komentarza.

Twój komentarz

Zamieszczając komentarz akceptujesz regulamin dodawania komentarzy. Przez moderację nie przejdą: wycieczki osobiste, komentarze nie na temat, wulgaryzmy.

RSS dla komentarzy: