Corkow

отредактировано April 2016 Раздел: Вирусы & Антивирусы
Как и в случае с другими банковскими троянскими программами, например, Win32/Spy.Hesperbot, Win32/Corkow состоит из основного модуля и нескольких плагинов, которые реализуют соответствующие возможности. Каждый такой плагин или модуль выполнен в виде DLL-библиотеки. На самом деле большинство других плагинов внедрены в основную DLL, другие же загружаются с управляющего C&C-сервера. В любом случае, эта основная DLL будет инжектировать другие модули в процессы, работающие в системе. Ниже в таблице представлены различные модули, которые мы видели во всех проанализированных образцах Win32/Corkow. Обратите внимание, что не все семплы вредоносной программы содержат каждый из этих модулей.

image

Несмотря на то, что основной модуль «Core DLL» отвечает за запуск других модулей на исполнение и загрузку конфигурационных данных с C&C, каждый из таких модулей содержит свой список C&C-серверов для загрузки туда данных напрямую.

Как можно увидеть в таблице выше, вредоносный код Win32/Corkow содержит возможности, которые являются типичными для банковских троянских программ, в том числе, кейлоггер, модуль снятия скриншотов и граббер данных веб-форм для кражи аутентификационных данных онлайн-банкинга. Тем не менее три последних модуля реализуют функции, которые можно не часто встретить в банковских троянских программах. Win32/Corkow использует два отдельных модуля для компрометации приложения ДБО iBank2 и приложения Сбербанка, которое используется для доступа к своему счету корпоративными пользователями. Последний модуль DC используется для поиска индикаторов активности пользователя по отношению к следующим типам информации:

приложениям трейдинговых платформ;
сайтов трейдинговых платформ (история браузера);
отдельных банковских приложений;
банковских сайтов (история браузера);
сайтов Bitcoin;
средства разработки приложений Android.


Инсталляция

Win32/Corkow имеет интересную и относительно сложную процедуру установки. Троян обычно поставляется жертве в виде исполняемого файла дроппера, который содержит основную Core DLL в секции ресурсов.

image

Рис. Установка дроппера в систему.

Когда дроппер запускается на исполнение, он устанавливает себя в систему используя следующие шаги:

Расшифровывает находящуюся в секции ресурсов основную DLL и исполняет ее через вызов функции DllMain, передавая ей один из путей в качестве аргумента. Этот путь определяет каким образом и в какое расположение на томе троян должен быть установлен. Выбранный путь зависит от того, под какой учетной записью был запущен дроппер, обычного пользователя или администратора. Возможные пути установки указаны в таблице ниже.

Когда код основной DLL запущен на исполнение, он выполняет поиск системного файла для заражения. Для этого Corkow ищет по определенному критерию легитимную DLL-библиотеку из директории %SystemRoot%\System32. Критерий поиска включает в себя незащищенность (SfcIsFileProtected) искомой библиотеки и некоторые конкретные имена файлов, а также отсутствие определенных импортов у DLL.

Далее вредоносный код заражает выбранную DLL путем шифрования своего тела и записывая эти зашифрованные данные в секцию ресурсов выбранной DLL. Функция (заглушка) расшифровки тела также записывается в файл и ее адрес добавляется в таблицу экспортов. Имя этого экспорта также зависит от пути установки.

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

Вредоносный код устанавливает соответствующий раздел реестра для обеспечения выживаемости кода после перезагрузки. Раздел реестра также зависит от пути установки, которые перечислены ниже в таблице.

image

Возможные пути установки вредоносного кода.

Существует множество способов загрузки DLL библиотеки в ОС и Win32/Corkow может использовать один из трех способов, описанных выше. Каждый из этих способов загружает DLL через вызов экспорта с разными именами. Все эти имена принадлежат функции, которая расшифровывает основное тело вредоносного кода из секции ресурсов.

Как мы указали выше, основная DLL Corkow записывается в секцию ресурсов оригинальной системной DLL в зашифрованном виде, кроме этого к ней применяется сжатие aPLib. Для шифрования используется XOR с ключом, который формируется из данных Volume Serial Number диска C: с использованием алгоритма multiply-with-carry. После установки зараженная Corkow библиотека привязывается к зараженному компьютеру и не может быть запущена на другом компьютере. Таким образом вредоносный код защищает себя от анализа со стороны вирусных аналитиков.

Core DLL и работа с C&C

Основной модуль Win32/Corkow отвечает за извлечение других своих модулей и внедрение их в соответствующие процессы, а также работу с C&C-сервером. Вредоносный код содержит список URL-адресов, с которыми он пытается связаться. Начальный HTTP-запрос, который отправляется на сервер, содержит основную информацию о системе, версии определенных модулей и идентификатор бота Bot ID. На этом же этапе выбирается ключ для шифрования последующих сообщений с сервером, который основан на доменном имени C&C и Bot ID. Затем сервер отвечает с использованием одной или нескольких команд. Ниже перечислены такие команды.

Перезагрузить систему.
Загрузить и выполнить исполняемый файл или DLL.
Обновить бот.
Скачать файл конфигурации для отдельных модулей.
Уничтожить произвольный файл на диске (перезаписывая его произвольными данными).
Удалить себя из системы (с возможностью выведения системы из строя, т. е. нарушив ее работу).


Последние две команды указывают на то, что помимо кражи данных, Win32/Corkow может вызвать серьезные повреждения в ОС. Когда сервер посылает боту команду на удаление себя из системы, он может передать специальный параметр, который укажет боту, что в системе нужно удалить критический системный файл и перезаписать MBR или NTFS MFT произвольными данными. После таких операций система становится незагружаемой.

Core DLL также содержит возможности по захвату скриншотов рабочего стола, блокированию запуска определенных приложений и перечисление установленных в системе смарт-карт. Политика блокирования запуска приложений определяется конфигурацией бота. Вредоносный код в бесконечном цикле выполняет перечисление запущенных в системе процессов через CreateToolhelp32Snapshot, а затем пытается завершить процессы, указанные в конфигурации. Подобное завершение процессов происходит из пользовательского режима, поэтому шансы на успешное завершение ограничены. Такая практика, вероятно, используется вредоносным кодом для предотвращения запуска банковских приложений пользователем, например, с целью проверки баланса своего счета.

В отличие от других, более сложных троянских программ, Corkow не умеет взаимодействовать со смарт-картами, а только перечисляет их. Интересно, что для получения информации о смарт-картах вредоносный код не использует Windows API, а вместо этого перечисляет физические устройства карт (используя для этого SetupDi API), далее осуществляя поиск заданных имен устройств.


Блог ESET NOD32

------------
Мы ищем точки опоры не с целью перевернуть мир, но чтобы не позволить миру опрокинуть нас.
Тэги темы:

Комментарии

  • отредактировано August 2014 PM
    примеры детектирования в uVS:
    Полное имя                  C:\PROGRAM FILES\COMMON FILES\SPEECHENGINES\MICROSOFT\SP2IX\XPOSHELL.CLI
    Имя файла XPOSHELL.CLI

    Ссылки на объект
    Ссылка HKLM\System\CurrentControlSet\Services\LanmanServer\Parameters\ServiceDLL
    ServiceDLL %CommonProgramFiles%\SpeechEngines\Microsoft\SP2ix\xposhell.cli

    Полное имя                  C:\USERS\IGOR\APPDATA\ROAMING\MICROSOFT CORPORATION\SEREUXLE.INE
    Имя файла SEREUXLE.INE

    Ссылки на объект
    Ссылка HKEY_USERS\S-1-5-21-3508281026-3785258510-1211421429-1001\Software\Microsoft\Windows\CurrentVersion\Run\NvCplWow64
    NvCplWow64 %SystemRoot%\SysWOW64\Rundll32.exe "%AppData%\Microsoft Corporation\sereUXLe.ine",Control_RunDLL

    Полное имя                  C:\USERS\ЮЛИАНА\APPDATA\ROAMING\MICROSOFT CORPORATION\SYSRCPL.RC3
    Имя файла SYSRCPL.RC3

    Ссылки на объект
    Ссылка HKEY_USERS\S-1-5-21-2229413025-3452629496-3526477641-1000_Classes\CLSID\{35CEC8A3-2BE6-11D2-8773-92E220524153}\InprocServer32\

    Полное имя                  C:\DOCUMENTS AND SETTINGS\FAMILY\APPLICATION DATA\MICROSOFT CORPORATION\MSPUID.AVE
    Имя файла MSPUID.AVE

    Ссылки на объект
    Ссылка HKLM\Software\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad\SysTray

    Ссылка HKEY_USERS\S-1-5-21-1606980848-2146945071-1801674531-1004_Classes\CLSID\{35CEC8A3-2BE6-11D2-8773-92E220524153}\InprocServer32\


    Мы ищем точки опоры не с целью перевернуть мир, но чтобы не позволить миру опрокинуть нас.
  • привет, а есть полные логи uvs (для анализа) и как именно определяешь по логу, что это сабжевый вирус?
  • отредактировано August 2014 PM
    да, есть образы автозапуска, снятые у пользователей с заражением Corkow. Определяю с помощью добавленных в uVS критериев поиска. (связанных с характерными ссылками в реестре на dll данного трояна.) или с помощью ранее добавленных сигнатур. Файл, который попадет под один из критериев, получит статус ?ВИРУС? и будет автоматически помещен в категорию "подозрительные и вирусы".

    вот пример.
    Полное имя                  C:\DOCUMENTS AND SETTINGS\TPOPOVA\APPLICATION DATA\DAOEU\DMD71ESP.8
    Имя файла DMD71ESP.8
    Тек. статус ?ВИРУС? ПОДОЗРИТЕЛЬНЫЙ в автозапуске

    Удовлетворяет критериям
    CORKOW.SYSTRAY (ССЫЛКА ~ SHELLSERVICEOBJECTDELAYLOAD\SYSTRAY)(1) AND (ЦИФР. ПОДПИСЬ !~ ДЕЙСТВИТЕЛЬНА)(1)
    CORKOW.CLSID (ССЫЛКА ~ CLSID\{35CEC8A3-2BE6-11D2-8773-92E220524153}\INPROCSERVER32\)(1) AND (ЦИФР. ПОДПИСЬ !~ ДЕЙСТВИТЕЛЬНА)(1)

    Сохраненная информация на момент создания образа
    Статус ПОДОЗРИТЕЛЬНЫЙ в автозапуске
    File_Id 4AD74EC445000
    Linker 7.10
    Размер 270336 байт
    Создан 09.11.2013 в 14:31:39
    Изменен 09.11.2013 в 14:31:39
    Тип файла 32-х битный ИСПОЛНЯЕМЫЙ
    Цифр. подпись Отсутствует либо ее не удалось проверить

    Статус ПОДОЗРИТЕЛЬНЫЙ ОБЪЕКТ
    Путь до файла Типичен для вирусов и троянов
    Автозапуск Неизвестный файл использует ключ реестра часто используемый вирусами

    Доп. информация на момент обновления списка
    SHA1 AA636B54809A1029C1D807FEE979EC4F3A09E704
    MD5 38A82C8D36BA5DD8FD50A80051B1169F

    Ссылки на объект
    Ссылка HKEY_USERS\S-1-5-21-2604538840-902460427-3063090256-1244_Classes\CLSID\{35CEC8A3-2BE6-11D2-8773-92E220524153}\InprocServer32\

    Ссылка HKLM\Software\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad\SysTray

    Мы ищем точки опоры не с целью перевернуть мир, но чтобы не позволить миру опрокинуть нас.
  • я так понял, что критерии, это использование CLSID\{35CEC8A3-2BE6-11D2-8773-92E220524153}\INPROCSERVER32\ или SHELLSERVICEOBJECTDELAYLOAD\SYSTRAY?

    но как их добавить в uvs
  • отредактировано November 2014 PM
    в данном случае, да.
    критерии здесь построены на основе ссылок в реестре, где прописан модуль Corkow.

    есть такая возможность в окне "Информация" по объекту из списка.

    http://chklst.ru/forum/discussion/90/kak-sozdat-v-uvs-novyy-kriteriy-poiska#Item_1
    Мы ищем точки опоры не с целью перевернуть мир, но чтобы не позволить миру опрокинуть нас.
Войдите или Зарегистрируйтесь чтобы комментировать.