Detect date
11/01/2002
Класс
Virus
Платформа
Win9x

Родительский класс: VirWare

Вирусы и черви – это вредоносные программы, которые без ведома пользователя саморазмножаются на компьютерах или в компьютерных сетях, при этом каждая последующая копия также обладает способностью к саморазмножению. К вирусам и червям не относятся вредоносные программы, которые распространяют свои копии по сети и заражают удаленные машины по команде "хозяина" (например, программы типа Backdoor), или такие, которые создают в системе свои многочисленные, но не умеющие размножаться копии. Основным признаком, по которому программы выделяются в отдельные классы, является способ их распространения, т.е. как вредоносная программа передает свою копию по локальным или сетевым ресурсам. Большинство известных червей распространяется в виде файлов: во вложении в электронное письмо, при переходе по ссылке на каком-либо WEB- или FTP-ресурсе или по ссылке, присланной в ICQ- или IRC-сообщении, а также через системы файлового обмена P2P и т. п. Некоторые черви распространяются в виде сетевых пакетов, проникают непосредственно в память компьютера и активизируют свой код. Для проникновения на удаленные компьютеры и последующего запуска своей копии черви используют следующие проблемы в системах безопасности: социальный инжиниринг (например, в электронном письме предлагается открыть вложенный файл), недочеты в конфигурации сети (например, копирование на диск, открытый для полного доступа), ошибки в службах безопасности операционных систем и приложений. Что касается вирусов, то их можно разделить по способу заражения компьютера:
  • файловые;
  • загрузочные;
  • макровирусы;
  • скриптовые.
Любой представитель данной категории может дополнительно содержать троянский функционал. Также следует отметить, что многие компьютерные черви используют более одного способа распространения своей копии по сетям.

Класс: Virus

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

Подробнее

Платформа: Win9x

No platform description

Описание

Technical Details

Резидентный Windows-вирус. Размножается под Windows95/98: инсталлирует себя в системную память, перехватывает файловые функции Windows и заражает выполняемые файлы Windows (PE-файлы - Portable Executable). Помимо PE-файлов вирус также заражает HLP-файлы Windows - вирус записывает в них скрипт-программу, которая при активизации HLP-файла (т.е. при вызове подсказки Windows) записывает "дроппер" вируса на диск и запускает его на выполнение. Вирус также записывает свои файлы-дропперы в архивы четырех типов: RAR, ZIP, ARJ и HA. Вирусные дропперы в архивах и HLP-файлах имеют формат выполняемых COM-файлов DOS и запускаются на выполнение в DOS-окне, однако они так же, как и PE EXE-файлы в состоянии инсталлировать копию вируса в системную память Windows.

Код вируса в PE-файлах и DOS-дропперах зашифрован полиморфик-кодом. В случае PE-файлов вирус использует технологию "без точки входа" (EPO - "Entry Point Obscuring"): вирус не модифицирует стартовый адрес программы и не записывает процедуру JMP_Virus перехода на свой код по стартовому адресу, но помещает ее по случайно выбранному адресу в теле заражаемой программы. В результате основная процедура вируса получает управление не в момент запуска зараженной программы, а только в том случае, если управление получает соответствующая подпрограмма файла-носителя, которая содержит в своем теле процедуру JMP_Virus.

Вирус является "медленным": при заражении файлов он проверяет различные условия и в результате заражает лишь очень незначительное количество файлов. В стандартной поставке Windows95/98 зараженными могут оказаться всего около 10 EXE-файлов, да и то только в том случае, если совпадут прочие условия, проверяемые вирусом при заражении. То же относится и к архивам и HLP-файлам: вирус заражает далеко не все из них и делает это крайне редко: только если за предыдущие две минуты не было ни одного обращения ни к EXE-файлам, ни к архивам, ни к HLP-файлам.

Вирус крайне опасен: при запуске или открытии антивирусов ADINF, AVPI, AVP, VBA или DRWEB вирус уничтожает все файлы на всех доступных дисках с C: до Z: включительно и затем завешивает компьютер. Вирус также в любом случае удаляет файл COMMAND.PIF.

Вирус содержит ошибки, которые под некоторыми конфигурациями Windows являются летальными: Windows выдает стандартное сообщение об ошибке и дальнейшая работа Windows становится нестабильной.

При заражении системной памяти вирус в зависимости от своего случайного счетчика выводит текст:

1997 VBA Ltd. E-mail:support@vba.minsk.by

Заражение системной памяти

Резидентная копия вируса работает как часть ядра Windows на уровне VxD-драйверов (Ring0). DOS-программы и приложения Windows не в состоянии стандартными методами получить доступ к ядру Windows, поэтому вирус для инсталляции своего кода как VxD-драйвер предпринимает ряд нетривиальных приемов.

При запуске COM-дроппера в DOS-окне Windows вирус DMPI-вызовами получает доступ к таблице распределения памяти защищенного режима (Local Description Table), правит ее и переключает свой 16-битный код в 32-битный защищенный режим. Вирус после этого работает как часть ядра Windows и получает доступ к VxD-функциям, которыми и пользуется для последующей регистрации своего кода в системе.

При запуске зараженных PE-файлов вирус также обращается к таблице распределения памяти, модифицирует ее и переключается с уровня приложений Windows (Ring3) на уровень ядра (Ring0). В этот момент начинает работать заершающая часть инсталлятора вируса, которая является общей для вирусного кода в COM- и PE-файлах. Эта процедура выделяет блок системной памяти, копирует туда вирусный код, перехватывает необходимые функции Windows и возвращает управление DOS (в случае COM-дроппера) или восстанавливает код прерванной подпрограммы PE-файла и возвращает ей управление.

Вирусные перехватчики

Вирус перехватывает три функции Windows. Первая является обработчиком порта 534Bh ("SK" в ASCII) и используется вирусом для детектирования своего резидентного кода: при чтении из этого порта вирус возвращает 21h ("!" ASCII) в регистре AL. Данный метод проверки резидентной копии является универсальным для DOS- и PE-программ, и вирус использует его в обоих случаях: в DOS-дропперах и в зараженных PE-программах.

Второй перехватчик является "стандартным" для резидентных Windows-вирусов - IFS API Hook. Вирус перехватывает обращения к файлам и при их открытии (включая запуск), переименовании и чтении/изменении атрибутов файлов вызывает процедуру заражения.

Третий перехватчик обрабатывает функцию "Install FileSystemApiHook", т.е. непосредственно функцию, которая используется для регистрации в системе предыдущего перехвата (IFS API). При помощи этого перехвата вирус организует "всплытие" своего обработчика IFS API: при регистрации в системе нового обработчика вирус временно удаляет свой IFS API Hook и затем снова устанавливает его. В результате вирусный перехватчих всегда является первым в списке обработчиков IFS API и получает управление непосредственно при вызове файловых функций Windows.

Заражение файлов

Когда управление впервые передается на процедуру заражения файлов вирус ищет в системе и заражает программу-оболочку Windows (ей обычно является EXPLORER.EXE), указанную командой "shell=" в файле SYSTEM.INI. Поскольку оболочка Windows является всегда активной, то вирус не может открыть файл на запись. Эту проблему вирус решает при помощи стандартных возможностей Windows - "апгрейдом" оболочки при перезапуске Windows.

Для этого вирус копирует заражаемый файл с новым именем (у нового файла отличается лишь последний символ расширения имени: .EXE -> .EXF, например). Затем вирус заражает новый файл и записывает в файл WININIT.INI команды замены старого файла-оболочки на зараженный. Файл WININIT.INI автоматически обрабатывается Windows при очередном старте, и зараженный файл замещает первоначальный.

Если оболочка Windows уже заражена, вирус проверяет расширение имени файла, к которому идет обращение, и заражает его. При открытии файлов .EXE, .SCR и .DLL управление передается на процедуру заражения PE-Файлов, при обращениях к .HLP-файлам вирус добавляет к ним свой дроппер, в случае файлов .RAR, .ZIP, .ARJ и .HA вирус вставляет в них свой DOS-дроппер.

Заражение PE-файлов

При заражении PE-файлов вирус шифрует и записывает свой код в таблицу настройки адресов (таблица перемещений - Relocation или Fixup Table), затирая ее первоначальное содержимое. Поскольку процедура загрузки приложений в память Windows в большинстве случаев загружает программы по указанным в PE-заголовке адресам и игнорирует таблицу настройки, зараженные файлы с испорченной таблицей настройки адресов работают без каких-либо ошибок. Чтобы избежать загрузки программ по другим адресам (в этом случае будет задействована таблица настроек), вирус обнуляет в заголовке файла необходимые флаги. Вирус дополнительно проверяет размер таблицы настроек адресов и заражает файлы только в том случае, если код вируса помещается в пределы таблицы. В результате размер файлов при заражении не увеличивается.

Затем вирус записывает в файл процедуру JMP_Virus, которая при активации расшифровывает основной код вируса и передает на него управление. Данная процедура является полиморфик-циклом размером до 168 байт. Она записывается в секцию кода заражаемого файла по случайно выбранному адресу. При выборе этого адреса вирус сканирует секцию кода заражаемого файла и ищет в нем заголовок подпрограммы - вирус использует тот факт, что большинство компиляторов C/Pascal записывают в начало подпрограмм стандартный код. Затем вирус проверяет еще некоторые условия, чтобы не испортить код следующей подпрограммы, генерирует полиморфик-код продедуры JMP_Virus и записывает его в файл.

В некоторых случаях, например, при заражении оболочки Windows, или если в файле не обнаружены C/Pascal-подпрограммы, вирус записывает процедуру JMP_Virus вместо стартовой процедуры файла. В этом случае вирус активизируется непосредственно в момент старта зараженной программы.

Заражение архивов

При заражении архивов вирус достаточно аккуратно разбирает их внутренний формат и добавляет в архив свой DOS-дроппер. При этом вирус заражает архивы только в том случае, если они содержат не менее 10 файлов, и хотя бы один из них является .COM- или .EXE-файлом. Имя вирусного дроппера в архивах является случайным и имеет расширение .COM или .EXE.

В случае RAR-архивов процедура их обработки содержит дополнительный код. Если вирус обнаруживает в архиве файл, упакованный методом "stored" и имеющий специфическую дату и время создания, то вирус считывает код данного файла из архива и выполняет его. Данная процедура, таким образом, способна запускать программы на компьютере без какого-либо вмешательства пользователя - достаточно лишь "подсунуть" специальным образом изготовленный RAR-архив.

Заражение HLP-файлов

Способность вируса заражать файлы помощи Windows базируется на том факте, что HLP-файлы могут содержать в себе подпрограммы, написанные на специальном скрипт-языке (макросы). Используемый в HLP-скриптах язык позволяет создавать на диске файлы и запускать их на выполнение. Данные скрипты автоматически выполняются обработчиком HLP-файлов (утилита WinHelp) при их открытии.

При заражении HLP-файлов вирус записывает свой DOS-дроппер в их конец и создает в SYSTEM-секции файла новый макрос, который содержит 10 команд. Этот макрос при активизации создает на диске C: короткую программу (загрузчик DOS-дроппера) и выполняет ее. Программа-загрузчик определяет имя HLP-файла, считывает из него DOS-дроппер вируса, записывает его вместо своего файла и запускает его на выполнение. Управление передается на полиморфик-цикл, который расшифровывает основной код вируса и передает управление на процедуру инсталляции вируса в память Windows. Затем DOS-дроппер удаляется вирусом с диска. Таким образом вирус заражает систему при открытии инфицированного HLP-файла.

Перед "выбросом" своего кода из HLP-файлов вирус проверяет наличие в системе файла C:NTLDR (загрузчик WindowsNT). Если такой файл присутствует, то вирус не заражает систему.

Следут также отметить, что код вирусного загрузчика в HLP-файлах достаточно специфичен. Практически полностью он состоит из латинских букв от 'A' до 'Z' (это вызвано тем, что скрипт-команды в HLP-файлах являются текстовыми строками). Заголовок загрузчика содержит процедуру, которая конвертирует символьные строки в двоичный формат выполняемых файлов (два символьных байта в один), и "текстовая" программа в результате становится "нормальной" программой на языке ассемблера. Однако некоторые команды конвертации текста в код содержат небуквенные символы, которые при записи из Windows HLP-файла в DOS-файл конвертируются в зависимости от установленной национальной кодировки. В результате код загрузчика в случае "неправильной" кодировки оказывается испорченным и вирусный загрузчик "зависает". В случае же русской кодировки вирус работает без проблем, т.е. вирус способен заражать систему из HLP-файлов только в том случае, если в системе установлена поддержка русского языка.

Win95.SK.8699

"Доработанная" версия вируса. Усилены процедуры шифрования и полиморфик-генератор. Исправлена ошибка заражения HLP-файлов Windows - эта версия вируса в состоянии размножаться из HLP-файлов под любой национальной кодировкой (не только под русской). Отключает резидентную компоненту (монитор) антивирусов AVP и F-SECURE - ищет и правит код антивирусного драйвера GK95.VXD.

Смотрите также

Узнай статистику распространения уязвимостей в своем регионе statistics.securelist.com

Нашли неточность в описании этой уязвимости? Дайте нам знать!
Kaspersky IT Security Calculator:
Оцените ваш профиль кибербезопасности
Узнать больше
Встречай новый Kaspersky!
Каждая минута твоей онлайн-жизни заслуживает топовой защиты.
Узнать больше
Confirm changes?
Your message has been sent successfully.