Класс
Virus
Платформа
Win9x

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

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

Класс: Virus

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

Подробнее

Платформа: Win9x

No platform description

Описание

Technical Details

this text was written by Peter Szor, Data Fellows

"Многоплатформенный" файловый вирус. Заражает DOS COM- и EXE-файлы и PE-файлы Win32 (Portable Executable). Также создает Win95 VxD-драйвер (Virtual Device Driver) для запуска своей Win95 "резидентной части". Вирус не шифрует себя в DOS-файлах, но при заражении Win95 PE-файлов зашифровывает свой код, расшифровщик вируса при этом является "олигоморфным" (полу-полиморфным). При этом основной код вируса (VxD-драйвер) упакован при помощи несложного алгоритма паковки данных. Вирусы, шифрующие свой код в Win95-файлах, уже встречались (например, "Win95.Mad"), однако "Memorial" является первым Win95-вирусом, использующим при заражении файлов элементы полиморфизма. "Memorial" также применяет достаточно эффективные меры против нескольких популярных антивирусных программ - открывает системный реестр (registry) Windows95 и удаляет оттуда информацию об антивирусах. Вирус имеет достаточно серьезные ошибки, по причине которых распространение вируса "в живом виде" не представляется возможным, хотя сообщения о зараженных компьютерах поступали из нескольких стран Европы.

Запуск зараженных DOS COM-файлов

При запуске зараженных DOS-файлов вирус записывает на диск и запускает свой VxD "дроппер" (файл с именем C:CLINT.VXD), который затем остается "резидентно" в памяти Windows95. Для этого вирус проверяет, работает ли он в DOS-окне под Win95. Если так, то вирус возвращает управление программе-носителю. Иначе вирус вызывает свою функцию детектирования резидентной копии ("Are you there?") - INT 2Fh, AX=0. Если копия вируса уже присутствует в памяти, она возвращает AX=4AB3h, и вирус отдает управление программе-носителю. Иначе вирус создает файл C:CLINT.VXD и записывает туда код своего VxD-дроппера. При создании дроппера вирус распаковывает его код - 7508 байт упаковынных данных преобразуются в 12413 байт VxD-дроппера. Алгоритм паковки достаточно прост, однако VxD-драйвера являются EXE-файлами формата LE (Linear Executable) и содержат области неспользуемых данных, заполненные нулями. Естественно, что даже несложные алгоритмы паковки данных показывают на таких файлах достаточно неплохой результат. Когда распаковка файла CLINTON.VXD закончена, вирус копирует незначительную часть своего кода в таблицу векторов прерываний по адресу 0:200 и устанавливает туда адрес прерывания INT 2Fh (Multiplex Interrupt). Перехватчик INT 2Fh помимо функции "Are you there?" также ждет вызовов AX=1605h (Windows Initialization Notification). Эта функция INT 2Fh вызывается Windows для уведомления драйверов и TSR-программ DOS о том, что Windows инсталлирует себя в память. Windows при старте вызывает эту функцию для того, чтобы дать возможность DOS-программам подготовиться к работе в среде Windows. Когда этот вызов приходит к вирусному обработчику INT 2Fh, "Memorial" открывает файл C:CLINT.VXD для того, чтобы удостовериться в его присутствии, затем создает структуру Win386_Stratup_Info_Struc, необходимую для запуска VxD и возвращает управление Windows. Получив корректный указатель на драйвер C:CLINT.VXD, Windows грузит его в память, и вирус, таким образом, остается в памяти Windows как VxD-драйвер.

Запуск DOS EXE-файлов

При запуске зараженных DOS EXE-файлов все происходит примерно так же, как и при запуске COM-файлов. Однако при заражении EXE-файлов вирус допускает грубую ошибку, в результате которой в EXE-файлы записывается неупакованный код VxD-драйвера. По этой причине при запуске EXE-файла вирус неспособен корректно распаковать код драйвера в файл C:CLINT.VXD - он распаковывает уже распакованный образ драйвера, зацикливается и пишет на диск до тех пор, пока на диске не закончится место, или пользователь не нажмет Ctrl-C или Alt-Ctrl-Del.

Запуск зараженного PE-файла

При запуске зараженного Win95 PE-файла вирус расшифровывает свой код при помощи 46-байтного расшифровщика и, так же как и в случае DOS COM-файлов, записывает на диск свой файл-дроппер C:CLINT.VXD. Однако для запуска дроппера вирус использует другой прием. Сначала вирус поиском во внутренних структурах Windows95 определяет в памяти Windows95 адреса необходимых функций (GetModuleHandleA, GetProcAddress), handle KERNEL32, после чего вирус получает доступ к файловым и прочим функциям WIndows: CreateFileA-, WriteFile-, ReadFile-, SetFilePointer-, CloseHandle-, GetLocalTime-, LocalAlloc. Затем вирус проверяет, запущен ли файл \.CLINT (имя в формате VxD-драйверов Windows95). Если нет, вирус при помощи функции CreateFileA создает файл \.C:CLINT.VXD и распаковывает туда код своего VxD-дроппера. Затем вирус запускает VxD на исполнение, используя документированный формат функции CreateFileA, и возвращаетуправление программе-носителю. При запуске из PE-файла вирус также проверяет системную дату - 10-го апреля вирус выводит MessageBox с текстом:

Clinton Haines Memorial Virus by Quantum/VLAD and Qark/VLAD
Clinton Haines, also known as Harry McBungus, Terminator Z and Talon
died of a drug overdose on his 21st birthday, April the 10th, 1997.
During his time as a virus writer he wrote the No Frills family, X-Fungus,
Daemon and 1984 viruses.  He was a good friend to VLAD and so we write
this virus in his honour.  We hope it's good enough to do him justice.
VLAD Remembers. Rest in Peace

Загрузка VxD-драйвера

При запуске CLINT.VXD вирус обрабатывает необходимые системные VxD-вызовы (Control Messages), перехватывает DOS IFS (Installable File System) API и заражает COM- и EXE-файлы при их открытии. Для подготовки данных, необходимых для заражения файлов, вирус открывает файл C:CLINT.VXD, считывает оттуда свой код и упаковывает его в заранее отведенный блок памяти. Затем вирус закрывает файл C:CLINT.VXD и уничтожает его. Вирус также уничтожает в системном реестре информацию и данные, используемые некоторыми антивирусами: Регистр 'SystemCurrentControlSetServicesVxd' - уничтожает ключи 'VETMON95', 'VETMACRO', 'NAVAP', 'virusafe', 'WIMMUN32'. Секция 'SOFTWAREMicrosoftWindowsCurrentVersionRun' - уничтожаются 'NORTON AUTO-PROTECT', 'TBAV for Windows 95', 'Anywhere Antivirus Validation', 'Vshwin32EXE', 'ViruSafe'. Секция 'SOFTWAREMcAfeeScreenScan' - уничтожаются 'bEnableScreenScan', 'bScanAllFiles', 'bScanSubDirs'. 'SOFTWARECybecVET Antivirus for Win32' - уничтожаются 'ActionsInfectedAction', 'ActionsSuspectAction', 'MemoryEnabled', 'ResidentFileCheck', 'ResidentInfectedAction', 'ResidentSuspectAction', 'ScanningScan All Files', 'ScanningScan Type', 'ScanningSkip Renamed', 'ScanningSubfolders' и устанавливается новый 'ScanningExtension List': 'bin, dll, doc, drv, ovl, sys, dot'.

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

Заражение DOS COM- и EXE-файлов производится достаточно стиандартными методами - вирус записывает свой код в конец файла и модифицирует его заголовок. При заражении PE-файлов вирус добавляет новую секцию в PE-заголовок, модифицирует необходимые поля заголовка и записывает свой код также в конец файла. Вирус при этом также шифрует свой код при помощи "олигоморфного" алгоритма: код расшифровщика состоит их 11 частей, которые переставляются между собой или заменяются на анологичные по действию инструкции. Всего может встретиться только 96 различных вариантов кода расшифровщика.

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

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

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