Corkow
Как и в случае с другими банковскими троянскими программами, например, Win32/Spy.Hesperbot, Win32/Corkow состоит из основного модуля и нескольких плагинов, которые реализуют соответствующие возможности. Каждый такой плагин или модуль выполнен в виде DLL-библиотеки. На самом деле большинство других плагинов внедрены в основную DLL, другие же загружаются с управляющего C&C-сервера. В любом случае, эта основная DLL будет инжектировать другие модули в процессы, работающие в системе. Ниже в таблице представлены различные модули, которые мы видели во всех проанализированных образцах Win32/Corkow. Обратите внимание, что не все семплы вредоносной программы содержат каждый из этих модулей.
Несмотря на то, что основной модуль «Core DLL» отвечает за запуск других модулей на исполнение и загрузку конфигурационных данных с C&C, каждый из таких модулей содержит свой список C&C-серверов для загрузки туда данных напрямую.
Как можно увидеть в таблице выше, вредоносный код Win32/Corkow содержит возможности, которые являются типичными для банковских троянских программ, в том числе, кейлоггер, модуль снятия скриншотов и граббер данных веб-форм для кражи аутентификационных данных онлайн-банкинга. Тем не менее три последних модуля реализуют функции, которые можно не часто встретить в банковских троянских программах. Win32/Corkow использует два отдельных модуля для компрометации приложения ДБО iBank2 и приложения Сбербанка, которое используется для доступа к своему счету корпоративными пользователями. Последний модуль DC используется для поиска индикаторов активности пользователя по отношению к следующим типам информации:
приложениям трейдинговых платформ;
сайтов трейдинговых платформ (история браузера);
отдельных банковских приложений;
банковских сайтов (история браузера);
сайтов Bitcoin;
средства разработки приложений Android.
Инсталляция
Win32/Corkow имеет интересную и относительно сложную процедуру установки. Троян обычно поставляется жертве в виде исполняемого файла дроппера, который содержит основную Core DLL в секции ресурсов.
Рис. Установка дроппера в систему.
Когда дроппер запускается на исполнение, он устанавливает себя в систему используя следующие шаги:
Расшифровывает находящуюся в секции ресурсов основную DLL и исполняет ее через вызов функции DllMain, передавая ей один из путей в качестве аргумента. Этот путь определяет каким образом и в какое расположение на томе троян должен быть установлен. Выбранный путь зависит от того, под какой учетной записью был запущен дроппер, обычного пользователя или администратора. Возможные пути установки указаны в таблице ниже.
Когда код основной DLL запущен на исполнение, он выполняет поиск системного файла для заражения. Для этого Corkow ищет по определенному критерию легитимную DLL-библиотеку из директории %SystemRoot%\System32. Критерий поиска включает в себя незащищенность (SfcIsFileProtected) искомой библиотеки и некоторые конкретные имена файлов, а также отсутствие определенных импортов у DLL.
Далее вредоносный код заражает выбранную DLL путем шифрования своего тела и записывая эти зашифрованные данные в секцию ресурсов выбранной DLL. Функция (заглушка) расшифровки тела также записывается в файл и ее адрес добавляется в таблицу экспортов. Имя этого экспорта также зависит от пути установки.
Зараженная DLL сохраняется по выбранному пути установки. Заметьте, что оригинальная DLL в директории system32 остается неизменной.
Вредоносный код устанавливает соответствующий раздел реестра для обеспечения выживаемости кода после перезагрузки. Раздел реестра также зависит от пути установки, которые перечислены ниже в таблице.
Возможные пути установки вредоносного кода.
Существует множество способов загрузки 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
------------
Несмотря на то, что основной модуль «Core DLL» отвечает за запуск других модулей на исполнение и загрузку конфигурационных данных с C&C, каждый из таких модулей содержит свой список C&C-серверов для загрузки туда данных напрямую.
Как можно увидеть в таблице выше, вредоносный код Win32/Corkow содержит возможности, которые являются типичными для банковских троянских программ, в том числе, кейлоггер, модуль снятия скриншотов и граббер данных веб-форм для кражи аутентификационных данных онлайн-банкинга. Тем не менее три последних модуля реализуют функции, которые можно не часто встретить в банковских троянских программах. Win32/Corkow использует два отдельных модуля для компрометации приложения ДБО iBank2 и приложения Сбербанка, которое используется для доступа к своему счету корпоративными пользователями. Последний модуль DC используется для поиска индикаторов активности пользователя по отношению к следующим типам информации:
приложениям трейдинговых платформ;
сайтов трейдинговых платформ (история браузера);
отдельных банковских приложений;
банковских сайтов (история браузера);
сайтов Bitcoin;
средства разработки приложений Android.
Инсталляция
Win32/Corkow имеет интересную и относительно сложную процедуру установки. Троян обычно поставляется жертве в виде исполняемого файла дроппера, который содержит основную Core DLL в секции ресурсов.
Рис. Установка дроппера в систему.
Когда дроппер запускается на исполнение, он устанавливает себя в систему используя следующие шаги:
Расшифровывает находящуюся в секции ресурсов основную DLL и исполняет ее через вызов функции DllMain, передавая ей один из путей в качестве аргумента. Этот путь определяет каким образом и в какое расположение на томе троян должен быть установлен. Выбранный путь зависит от того, под какой учетной записью был запущен дроппер, обычного пользователя или администратора. Возможные пути установки указаны в таблице ниже.
Когда код основной DLL запущен на исполнение, он выполняет поиск системного файла для заражения. Для этого Corkow ищет по определенному критерию легитимную DLL-библиотеку из директории %SystemRoot%\System32. Критерий поиска включает в себя незащищенность (SfcIsFileProtected) искомой библиотеки и некоторые конкретные имена файлов, а также отсутствие определенных импортов у DLL.
Далее вредоносный код заражает выбранную DLL путем шифрования своего тела и записывая эти зашифрованные данные в секцию ресурсов выбранной DLL. Функция (заглушка) расшифровки тела также записывается в файл и ее адрес добавляется в таблицу экспортов. Имя этого экспорта также зависит от пути установки.
Зараженная DLL сохраняется по выбранному пути установки. Заметьте, что оригинальная DLL в директории system32 остается неизменной.
Вредоносный код устанавливает соответствующий раздел реестра для обеспечения выживаемости кода после перезагрузки. Раздел реестра также зависит от пути установки, которые перечислены ниже в таблице.
Возможные пути установки вредоносного кода.
Существует множество способов загрузки 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
------------
Мы ищем точки опоры не с целью перевернуть мир, но чтобы не позволить миру опрокинуть нас.
Тэги темы:
Войдите или Зарегистрируйтесь чтобы комментировать.
Комментарии
вот пример.
но как их добавить в uvs
критерии здесь построены на основе ссылок в реестре, где прописан модуль Corkow.
есть такая возможность в окне "Информация" по объекту из списка.
http://chklst.ru/forum/discussion/90/kak-sozdat-v-uvs-novyy-kriteriy-poiska#Item_1