LNKpokalipsis или новая багофича от MS (CVE-2010-2568)

    На хабре уже писали о Win32/Stuxnet и раскрывшейся вместе с ним уязвимостью. Но самой уязвимости уделяется почему то мало внимания, в основном весь шум вокруг Win32/Stuxnet и использованных валидных сертификатов для подписи компонентов этого зловреда. А тем временем эта уязвимость уже появилась в публичном доступе. Сначала в виде PoC, а потом и в виде модуля для Metasploit. MS, как в прочем и обычно, пофиг на критичность этой уязвимости и она вероятнее всего выпустит патч не раньше 10 августа. А для WinXP SP2 патча вообще не будет, хотя как не странно на ней еще есть пользователи и их не так мало, как хотелось бы. Подтверждение тому распределение угрозы по оконным версиям от Symantec, где именно WinXP SP2 имеет большую долю зафиксированных инцидентов.

    image

    В качеcтве векторов использования этой уязвимости могут быть не только USB-накопитили, но и сетевые ресурсы. Например, в Metasploit эксплуатация происходит через WebDAV.

    Работает уязвимость примерно так:



    Речь идет не о банальном переполеннии или неразименованном указателе, все гораздо хуже, т.к. уязвимость by design так сказать (уязвимы все версии винды). Т.е. разработчики прохлопали ушами, что такой путь могут использовать злоумышленники для установки всякого вредоносного. Хотя может все гораздо хуже и это просто очередной бэкдор оставленный в системе по просьбе NSA? Боюсь правды мы не узнаем никогда. Давайте теперь поговорим непосредственно о технических деталях работы этой уязвимости.
    CVE-2010-2568 – уязвимость находится в обработчике LNK-файлов, о точнее связана с процессом отображения Control Panel shortcuts, когда происходит их загрузка в память процессом Explorer.exe. Уязвимой являтся библиотека shell32.dll в которой происходит некорректная обработка. Ниже приведенная схема иллюстрирует потоки данных между вызываемыми функциями в процессе работы эксплойта (подсмотренно здесь). Успешным выполнением эксплойта является загрузка сторонней динамической библиотеки при помощи WinAPI функции LoadLibraryW.

    image

    Последовательность вызовов выглядит так:
    SHELL32!CRunnableTask::Run
    SHELL32!CGetIconTask::RunInitRT
    SHELL32!SHGetIconFromPIDL
    SHELL32!CFSFolder::GetIconOf
    SHELL32!SHGetIconFromPIDL
    SHELL32!_GetILIndexGivenPXIcon
    SHELL32!CShellLink::GetIconLocation
    SHELL32!CExtractIconBase::GetIconLocation
    SHELL32!CCtrlExtIconBase::_GetIconLocationW
    SHELL32!CPL_FindCPLInfo
    SHELL32!CPL_LoadAndFindApplet
    SHELL32!_LoadCPLModule
    SHELL32!_imp__LoadLibraryW

    Собственно именно ниже приведенный код и заставляет выполниться вредоносную DLL, этот код находиться в функции _LoadCPLModule, которыя вызывается из CPL_LoadCPLModule.

    image

    В эксплойте в составе Metasploit для эксплуатации уязвимости генерируется URL следующего вида "{webdav}{exploit_base}\\{exploit_dll}", такой подход к эксплуатации этой уязвимости сильно расширяет границы ее использования за пределы USB-накопителей. Что делать и как обезопасить себя от этой уязвимости можно почитать тут. Еще по теме противодействия этой уязвимости можно почитать в блоге независимого исследователя Didier Stevens. Там описывается два способа:
    1) Запрет автозапуска и выполнения исполняемых модулей с внешних носителей. Но это вас не спасет от возможности заражения с сетевых шар и WebDAV ссылки.
    2) Установка Software Restriction Policies (SRP)
    Share post

    Similar posts

    Comments 30

    • UFO just landed and posted this here
        0
        Во всем есть плюсы. Скоро маркетологи M$ начнут пиар акцию «Долой иконки — долой гламур!». Нынче модна деловая строгость и чистота интерфейсов (:
      • UFO just landed and posted this here
          +6
          В первый раз что ли? Ну будет в дуршлаге на одну дырку больше, что поменяется?
            +11
            Между дуршлагом и дуршлагом без дна есть существенная разница (:
            0
            Интересно, начнется ли и в этом обсуждении традиционный холивар?

            Шутка… Не пинайте…
              0
              новая порция раздолья для script kiddie's
                +4
                не надо апострофа )
                  +1
                  спасибо, прочитал правила когда ставится апостроф. Раньше для меня это было загадкой)
                +2
                Великолепно!
                  +1
                  всетаки нужно отдать должное ребятам, которые смогли такое найти! Ето ж не просто загуглить на тему — «ненайденные баги в виндовс»
                      0
                      Вообще-то, этим список альтернатив не ограничивается. Ну и устойчивые штампы здесь определённо мимо кассы.
                        +7
                        Так толсто что даже тонко
                          0
                          Забыли еще бубен и шапочку из фольги :)
                          +1
                          А можно ли эту библиотеку пропатчить так, чтобы и иконка извлекалась и вредоносный код не запускался, для 3 SP XP и 7-ки? Самому, вручную, не дожидаясь Microsoft.

                          Вот что я нашел: Вместо LoadLibrary использовать LoadLibraryEx(), где вторым параметром установить LOAD_LIBRARY_AS_DATAFILE
                          поможет, как думаете?
                            +4
                            даже лучше с таким параметром LOAD_LIBRARY_AS_IMAGE_RESOURCE
                            If this value is used, the system maps the file into the process's virtual address space as an image file. However, the loader does not load the static imports or perform the other usual initialization steps. Use this flag when you want to load a DLL only to extract messages or resources from it.

                            This flag can be used with either LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE or LOAD_LIBRARY_AS_DATAFILE, but not both. For more information, see the Remarks section.

                            Windows Server 2003 and Windows XP/2000: This value is not supported until Windows Vista.
                              0
                              Windows Server 2003 and Windows XP/2000: This value is not supported until Windows Vista.

                              А просили для XP SP3
                                +3
                                но LOAD_LIBRARY_AS_DATAFILE то поддерживается :)
                                Если с этим параметром код не запустится, то меня это устроит :)
                            +4
                            > MS, как в прочем и обычно, пофиг на критичность этой уязвимости…
                            Есть ли подтверждения внутреннего пофигизма компании?
                            0
                            >это просто очередной бэкдор оставленный в системе по просьбе NSA

                            А можно поподробнее про оставленные по просьбе NSA бэкдоры?
                              +1
                              Подробнее никто не скажет, это всё догадки параноиков :)
                              +3
                              WinXP SP2 закончили поддержку, кто не почесался обновиться до 3ьего сервиспака — лох, неудачник, сам виноват и все такое, вполне разумное решение от майкрософт.
                                +1
                                Что делать и как обезопасить себя от этой уязвимости можно почитать тут.

                                Я лучше тут почитаю.
                                • UFO just landed and posted this here
                                    +2
                                    Подозреваю, что так плохо говорили о вашей любимейшей системе только из-за того, что некоторые убунтролли кичились своей полной защищенностью.
                                    +2
                                    Альтернативное решение — взгромоздить на Винду Outpost 7.0.2: www.agnitum.ru/news/2010-07-23-outpost-lnk-exploit.php
                                      0
                                      >> MS, как в прочем и обычно, пофиг на критичность этой уязвимости и она вероятнее всего выпустит патч не раньше 10 августа.

                                      ваш прогноз оказался говном

                                      blogs.technet.com/b/msrc/archive/2010/07/29/out-of-band-release-to-address-microsoft-security-advisory-2286198.aspx
                                        0
                                        Вы знаете это очень хорошо, что прогноз не сбылся, т.к. зловредов, которые используют в том числе и эту уязвимость для своего распространения с каждым днем мы узнаем все больше и больше.

                                      Only users with full accounts can post comments. Log in, please.