Классификация ярлыков Windows и виды их заражения

Тема в разделе "Борьба с типовыми зловредами", создана пользователем Dragokas, 30 июн 2015.

  1. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.477
    Симпатии:
    4.306
    Классификация ярлыков Windows и виды их заражения

    Автор: Dragokas


    В современном мире угроз для эффективного выявления следов вредоносного ПО консультант должен представлять себе, какими бывают способы заражения, связанные с эксплуатацией ярлыков Windows, а также разновидности самих ярлыков.

    Часть 1. Файлы LNK.

    Наиболее популярным в данное время форматом ярлыков является MS ShellLink (*.LNK). Злоумышленники используют их в таких целях:

    1) Для распространения рекламного ПО (Adware):

    1.1. Добавление аргумента
    Сканируются все папки профилей пользователей на соответствие с распространенными именами браузеров, после чего добавляется дописка в виде рекламного сайта (часто с реферальной ссылкой), например:
    Код (Text):
    ["C:\Program Files\Internet Explorer\iexplore.exe"  =>> hxxp://virus.com]
    где iexplore.exe – цель ярлыка, hxxp://virus.com – аргумент.

    Во время запуска такого ярлыка стартует браузер Internet Explorer и открывается страница по адресу hxxp://virus.com.
    Пример детектирования VirusTotal - Opera.lnk

    1.2. Установка ярлыку атрибута «Только чтение»
    Это делается с целью затруднить возможность пользователю вручную удалить из ярлыка дописку аргумента.

    Article:
    Для запутывания следов, ухода от распознавания инфицированных ярлыков антивирусными движками, используются приемы промежуточного запуска через скрипты, а также изменение хешей и обфускация самих скриптов, так например:

    1.3. Цель ярлыка заменяется на путь к батнику (.BAT или .CMD-файл).
    В природе были замечены подмены только на .BAT.
    Батник – это обычный текстовый файл, в котором последовательно выполняются указанные в нем программы или команды.
    Вирусописатели подставляют в него путь к браузеру и аргумент, аналогично п. 1.1.

    Пример ярлыка:
    Код (Text):
    "Firеfох.lnk" -> ["C:\firefox.bat"] -> start "" /I /B /D"C:\PROGRA~2\MOZILL~1\" "C:\PROGRA~2\MOZILL~1\firefox.exe" "hxxp://virus.com/"¶(обфусцирован)
    Пример детектирования VirusTotal - BrowserManager.bat

    1.4. Запись командной строки прямо в аргументы ярлыка
    Аналогично батникам, только содержимое батника находится целиком в аргументах ярлыка и запускается через интерпретатор cmd.exe

    Пример:
    Код (Text):
    "Firеfох.lnk" -> ["cmd.exe" =>> /cstart "" /I /B /D"C:\PROGRA~2\MOZILL~1\" "C:\PROGRA~2\MOZILL~1\firefox.exe" "hxxp://virus.com/"¶ ]
    1.5. Замена цели на путь к файлу .URL
    Подобно предыдущему пункту о батниках. Про URL-файлы мы поговорим позже.
    Пример:
    Код (Text):
    "Firеfох.lnk" -> ["firefox.url" ] -> hxxp://virus.com/
    1.6. Маскировка.
    // Вырезано. Авт. - информация доступна только для членов ассоциации VirusNet //

    1.7. Установка атрибутов «Скрытый / системный»
    Для чего это делается доподлинно неизвестно. Возможно, с целью обхода проактивной защиты, т.к. операция удаления/переименования файлов может считается подозрительной.

    Оригинальные ярлыки браузеров скрываются. А на том же месте создаются похожие на них, но зараженные.

    1.8. Подмена путей расположения иконки LNK.
    Есть и такой неприятный момент: для части ярлыков (причем не только браузерных) путь иконок переназначается в другую папку, где заодно создаются копии легальных EXE-файлов браузеров.

    Обнаружив подозрительную папку с недавней датой создания, консультант удаляет ее. В результате этого действия ярлыки становятся «белыми» (без иконки), на что иногда возникают жалобы у пользователей.

    Программа «ClearLNK by Dragokas» способна распознавать некоторые видны подмен иконок и исправлять их на иконку по-умолчанию, о чем указывается в итоговом отчете.
    Код (Text):
    _____________________________ Начало лога ______________________________
    [ OK ] 1  "C:\Users\Alex\Desktop\Internet Explorer.lnk"  -> [ "C:\Program Files (x86)\Internet Explorer\iexplore.exe" ]  (иконка восстановлена)

    _________________________ Расположение иконок ________________________
    [ OK ] "C:\Users\Alex\Desktop\Internet Explorer.lnk"  ->   [ ".", index=1 ]  <-   "C:\Users\Alex\Desktop\[B]virIcon[/B]\iexplore.exe", index=0
    где ".", index=1 – означает замену на иконку по-умолчанию (ту, что находится в цели (объекте) ярлыка).

    1.9. Новые техники
    Следует не забывать, что злоумышленники постоянно ищут возможности глубже спрятать следы присутствия Adware. Формат LNK дает им такой шанс. Вас не всегда смогут спасти заточенные под аналитика программы проверки. Например, существует такая секция LNK, когда http-адрес сразу указывается в объекте запуска. Из всех известных мне программ анализа только Universal Virus Sniffer от Дмитрия Кузнецова и FixerBro by glax24 умеют распознавать такой ярлык. Мы работаем над данной проблемой перед выпуском 2-го поколения Check Browsers' LNK by Dragokas & regist.


    2) Запуск BITCOIN-майнеров:

    Майнер криптовалюты – это программа, которая запускается на стороне пользователя и служит для создания (добычи) электронной валюты (биткоинов / лайткоинов и др. форков… ), используя мощность центрального процессора и/или видеокарты для математических рассчетов.

    Данная сеть чрезвычайно анонимна, так как не использует привычную адресацию.
    Рассчитываются специальные блоки данных для нахождения хешей. Блоки получают от других программ-клиентов (нечто похожее на P2P), но как правило, их раздают сервера (они называются – пулами, от слова «пул») (так, награда за мощности распределяется более равномерно между участниками и можно наглядно следить за статистикой он-лайн на сайте пула).

    Все, что Вам нужно о них знать, это:
    - запуск майнера сопровождается, обычно*, близкой к 100% нагрузке на центральный процессор или видеокарту.
    * если только процесс не запущен в режиме пониженного приоритета.
    - могут работать в фоновом (скрытом) режиме;
    - чаще всего запускаются через ярлык или батник, так как требуют обязательной предварительной настройки с указанием адреса сервера (пула), например:

    «K7x32_liteguardian.com.lnk» -> ["H:\_BitCoin\pools\liteguardian.com\start_K7x32.cmd"] -> start "" "%~dp0x64\cudaminer.exe" --no-autotune -d 0 -i 0 -l K7x32 -C 1 -m 1 -o stratum+tcp://eu-2.liteguardian.com:3333 -O Diskretor.1:x

    Где eu-2.liteguardian.com – адрес пула для майнинга.

    Часто новички оставляют в такой командной строке и пароль доступа к учетке. По вышеприведенному примеру:
    1) Имя пользователя: Diskretor.1
    2) Пароль: x

    Существуют и так называемые BURST-майнеры, которые добывают валюту через мощностя жесткого диска (например, pocminer.exe). Иными словами – Вашему винчестеру осталось меньше жить :). Но таковые особого распространения не получили (для профита нужен минимум 1 ТБ свободного места).

    Под заражением BITCOIN-майнером подразумевается его установка без ведома и разрешения владельца ПК.

    В целом, на данный момент число такого вида заражений можно считать несущестенным. Тем не менее, в сети все еще гуляют исполняемые файлы (дропперы) этого вида угрозы.

    Причиной понижения числа заражений можно считать существенное ухудшение эффективности добычи криптовалюты за счет одиночных компьютеров (особенность механизма распространения монет) в пользу так называемых ASIC-майнеров (специальных ПК).


    3) Эксплойты 0-day.

    Речь идет об уязвимости CVE-2010-2568, обнаруженной в ходе изучения червя Stuxnet.

    При открытии в проводнике папки с ярлыком отрисовывается его иконка. Иконка ссылается на ресурс в библиотеке DLL, путь к которой указан злоумышленником. Загрузка ресурса приводит к запуску кода инициализации этой библиотеки, где и прописаны дальнейшие вредоносные действия.

    Как говорится в исследовании, сделанном год назад, эта уязвимость все еще весьма актуальна и затрагивает большинство версий ОС.

    Видеодемонстрация.

    Результаты VirusTotal.

    Между слов, исправление уязвимости появилось только спустя 5 лет – 10.03.2015. Собственно: страница с самим исправлением.


    Часть 2. Файлы PIF.
    Этот формат представляет из себя ярлыки для программ MS-DOS.

    В отличие от LNK, они запускаются напрямую, а не через интерфейс IShellLink.
    Это позволяет делать некоторые махинации с форматами.

    Так, содержимое файла PIF может быть начинено форматом исполняемого файла PE EXE (.EXE) либо (.COM).
    Встречалась также подмена на формат архива.

    Это легко распознать, если открыть файл в HEX-редакторе и посмотреть на первые буквы.
    - PE EXE (.EXE) файл – сигнатура MZ (0x4D5A) (Mark Zbikowski).
    - .COM файл – сигнатура бывает разная (первые 2 байта – одно из чисел перечисления MachineTypes) или вообще любое другое (для 16-битных COM), кроме MZ и ZM.
    - ZIP-архив – сигнатура PK (0x504B)

    Обратите внимание, что исполняемый файл в виде .PIF не всегда означает подмену во вредоносных целях. Так, например, защищают программы от файловых вирусов, а также для обхода политик блокировки запуска исполняемых файлов. Например, полиморфная версия AVZ или AutoLogger-а (в целях безопасности, приведены ссылки на обычные версии).

    Поскольку, кол-во людей, которые до сих пор работают с программами MS-DOS, можно сосчитать по пальцам (+ они не запускаются на x64-битных ОС, не учитывая эмуляторов вроде DosBox), будьте уверены, что 80% файлов .PIF, которые Вы увидите в логах, не являются ярлыками.

    Часть 3. Файлы URL, WEBSITE.
    Оба варианта расширений имеют идентичную структуру формата UniformResourceLocator.
    Минимальный пример содержимого:

    Код (Text):
    [InternetShortcut]
    URL=hxxp://www.mail.ru/
    При запуске этих типов файлов, как правило, открывается браузер по-умолчанию со страницей, адрес которой указан в ярлыке.

    Ассоциация задана в реестре.
    Значения по-умолчанию:
    Код (Text):
    HKEY_CLASSES_ROOT\InternetShortcut\shell\Open\Command
    "C:\Windows\System32\rundll32.exe" "C:\Windows\System32\ieframe.dll",OpenURL %l

    HKEY_CLASSES_ROOT\Microsoft.Website\Shell\Open\Command
    "C:\Program Files\Internet Explorer\iexplore.exe" -w "%l" %*
    Пример детектирования VirusTotal - Yandex.url

    Часть 4. Файлы APPREF-MS (ClickOnce).

    Наиболее загадочные и наименее документированные.
    Часть информации можно подчерпнуть в статье от Remko Weijnen.

    Ярлыки с расширением .appref-ms создаются для приложений ClickOnce и запускаются такой командой:
    Код (Text):
    rundll32.exe dfshim.dll,ShOpenVerbShortcut %1|%2
    После запуска такого ярлыка происходит подключение к серверу, на котором опубликовано это приложение.

    SNAGHTML87937a.png
    Идет попытка обновить/установить программу. Только после этого происходит запуск.

    Определить, куда установлена программа не запуская ярлык, стандартными средствами невозможно, зато можно узнать адрес ресурса, открыв ярлык обычным блокнотом:
    Код (Text):
    http://github-windows.s3.amazonaws.com/GitHub.application#GitHub.application, Culture=neutral, PublicKeyToken=8f45a2159c87c850, processorArchitecture=x86
    В целом, все исполняемые файлы программ ClickOnce хранятся в папке:
    (XP) %userprofile%\Local Settings\Apps
    (Vista и выше) %LocalAppData%\Apps

    Данные о заражениях: не было или неизвестно.
    ____________________________

    Теперь, когда Вы вооружены знаниями о видах заражения ярлыков, логи для Вас окажутся более дружелюбными :)

    Надеюсь, что этот материал окажется Вам полезным.
    Спасибо за внимание.
     
    Последнее редактирование: 2 авг 2015
    Drongo, mike 1, Chinaski и 12 другим нравится это.
  2. shestale
    Оффлайн

    shestale Ассоциация VN/VIP Преподаватель

    Сообщения:
    8.041
    Симпатии:
    4.480
    Стас, просто прекрасно, что ты собрал это все в одной теме!
    ИМХО, может все банально...рассчитано на юзеров далеких от этих понятий, что бы найти их не смогли.
     
    Dragokas нравится это.
  3. Охотник
    Оффлайн

    Охотник Активный пользователь

    Сообщения:
    282
    Симпатии:
    345
    Очень интересный материал.
     
  4. glax24
    Оффлайн

    glax24 Разработчик

    Сообщения:
    2.000
    Симпатии:
    1.450
    Одна самареклама. ) если есть ярлык с http в объекте запуска скинь.
    --- Объединённое сообщение, 1 авг 2015, Дата первоначального сообщения: 1 авг 2015 ---
    FixerBro тоже умеет распознавать такой ярлык.
     
  5. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.477
    Симпатии:
    4.306
    Отладочная версия чекера уже тоже.
     
  6. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.477
    Симпатии:
    4.306
    С чего взял? Статья писалась не ради рекламы, а чтобы поделится опытом.

    Такого же вида FTP-шные не умеет. Там иная структура. На счет HTTP спасибо за замечание. Поправил в статье.
     
  7. glax24
    Оффлайн

    glax24 Разработчик

    Сообщения:
    2.000
    Симпатии:
    1.450
    Стас ты на знаки посмотри.) аналогично ты в соседней теме написал.
     
  8. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.477
    Симпатии:
    4.306
    Какие знаки? Что за тема?
     
  9. glax24
    Оффлайн

    glax24 Разработчик

    Сообщения:
    2.000
    Симпатии:
    1.450
    ) не видно этого знака, это знак улыбки.
    Вот тема
    Аналогично в статье идет реклама своей программы.

    И про саморекламу была шутка, улыбнись и не принимай все близко к сердцу.
     
    Последнее редактирование модератором: 2 авг 2015
    Dragokas нравится это.
  10. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.477
    Симпатии:
    4.306
    А не, ну я вообще на самом деле так много над ней в последнее время работал, что было грех не пропиарить ))
     
    Kиpилл нравится это.
  11. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.477
    Симпатии:
    4.306
    Windows 10 для Metro-приложений использует принципиально иной механизм запуска программ через ярлыки - используя GUID-ы и DelegateExecute.

    На практике это означает, что ново-выпущенный браузер от Майкрософт Project Spartan будет не так просто эксплуатировать с помощью ярлыков, просто добавив как раньше дописку в виде аргумента с рекламным сайтом.

    Посмотрим на свойства ярлыка:

    Spartan properties.jpg

    По виду напоминает ярлыки, созданные Microsoft Installer-ом (Скайп, например, или Adobe Reader).
    Только в поле объект у них было нередактируемое название продукта, и они страдали тем, что дописку все равно можно было создать программно.

    Adobe Reader.png
    Adobe Reader, созданный через MSI

    Взглянем на структуру:

    Spartan LNK struct.png

    Никаких путей и флагов. Только GUID-ы, классы, путь к папке установки Spartan:
    Код (Text):
    C:\Windows\SystemApps\Spartan_cw5n1h2txyewy
    и Application's UserModel ID, о котором я уже писал ранее.

    Но в чем проблема создать новый ярлык вида:
    Код (Text):
    C:\Windows\SystemApps\Spartan_cw5n1h2txyewy\Spartan.exe http://site.ru
    ?

    А дело в том, что, если Вы просто запустите файл Spartan.exe таким образом, то ничего не произойдет. Браузер не запустится вообще.
    А значит защита работает :)
     
    Последнее редактирование: 12 авг 2015
    orderman, Phoenix, shestale и 2 другим нравится это.
  12. Phoenix
    Оффлайн

    Phoenix Активный пользователь

    Сообщения:
    1.839
    Симпатии:
    1.829
    Код (Text):
    C:\WINDOWS\SystemApps\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\MicrosoftEdge.exe
    Так тоже не работает
    еdge.png
     
  13. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.477
    Симпатии:
    4.306
    Да. Он самый. Просто в Win10 rtm escrow переименовали. Маркетинг.
    Мой тест с системы Win 10 Technical preview.
     
  14. Phoenix
    Оффлайн

    Phoenix Активный пользователь

    Сообщения:
    1.839
    Симпатии:
    1.829
    Да не важно, он и без параметров не работает. А у тебя ? Только из панели и работает.
     
    Последнее редактирование: 13 авг 2015
  15. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.477
    Симпатии:
    4.306
    Phoenix, там сложный механизм создания процесса через несколько промежуточных с массовой сверкой различных идентификаторов.
    Допишу заметку в раздел по реестру, выложу почищенный лог монитора, сможешь взглянуть сам.
     

Поделиться этой страницей