Virus.Multi.Navrhar

Класс Virus
Платформа Multi
Описание

Technical Details

«Многоплатформенный» вирус — заражает документы MS Word и VxD-драйвера
Windows. Заражение происходит поэтапно: вирус из зараженного документа переносит себя в PE EXE-файл, затем из PE-файла в VxD, и только затем —
опять в документы. При открытии зараженного документа вирус создает на диске свой PE-дроппер и запускает его, PE-дроппер ищет и заражает VxD-файлы в каталоге Windows, при перезапуске Windows вирус из зараженного драйвера проникает в ядро Windows, перехватывает системные вызовы и заражает
документы при их открытии:

+----------+     +---------+     +---------+      +---------+
|Зараженный| --> |PE EXE   | --> |+---------+ --> |+---------+  -->
|документ  |     |дроппер  |     ||VxD      |     ||+---------+ -->
|Word      |     |         |     ||драйвер  |     |||Документы| -->
|          |     |         |     ||         |     |||Word     |
+----------+     +---------+     +|         |     +||         |
+---------+      +|         |
+---------+

При заражении объектов различного формата их длина увеличивается на
различные значения: документы — на 17245 байт, драйвера VxD — на 12288
байт, длина файла RUNME.EXE равна 16208 байт.
В документах Word и в VxD-драйверах вирус использует достаточно «красивый»
способ хранения своего кода — вирус записывает в заражаемый объект лишь
небольшую часть своего кода (загрузчик), а основной код дописывает в конец
файла как совершенно независимый блок данных (типа оверлеев в DOS
EXE-файлах). Этот блок данных никак не связан с основным кодом/данными
зараженного файла — ни Word в зараженных документах, ни Windows при
загрузке VxD не обращают на него никакого внимания и не грузят его в
память.
Загрузчик вируса при этом является «легальной» компонентой объекта — это
либо макрос и документах Word, либо 32-битная подпрограмма в VxD-драйверах.
Этот загрузчик при запуске считывает основной код вируса из файла-носителя
и запускает его.

Зараженный VxD:                     Зараженный документ:
+--------------+                    +--------------+
|Первоначальный|                    |Первоначальные|
|код VxD       |                    |данные        |
|--------------|                    |документа     |
|Загрузчик     | <- 32-битная       |--------------|
|вируса        |    программа       |Загрузчик     |
|--------------|                    |вируса        | <- макрос
|продолжение   |                    +--------------+ <- конец документа
|VxD (код и    |                    |"оверлей"     | <- основной код
|данные)       |                    |              |    вируса
+--------------+ <- конец кода VxD  +--------------+ <- конец файла
|"оверлей"     | <- основной код
|              |    вируса
+--------------+ <- конец файла

Наиболее "популярный" способ заражения вирусом на сегодняшний день - это не
обмен зараженных программ, а получение зараженного документа. Поэтому с
большой вероятностью вирус появится на компьютере в виде Word-документа с
кодов вируса внутри. При заражении документов вирус записывает в них свой
загрузчик в виде макроса с именем AutoOpen. Этот макрос является
авто-запускаемым, и, соответственно, при открытии документа получает
управление на себя. Код вируса в макросе AutoOpen создает файл
C:RUNME.EXE, считывает свой "оверлей" из конца документа, записывает его в
RUNME.EXE и запускает его на выполнение.

Заражение VxD

При запуске RUNME.EXE определяет каталог Windows, переходит в подкаталог
SYSTEM и заражает там несколько VxD-драйверов согласно списку (если таковые
файлы там присутствуют):
EISA.VXD, FILESEC.VXD, ISAPNP.VXD, LOGGER.VXD, LPT.VXD, LPTENUM.VXD,
MSMOUSE.VXD, MSSP.VXD, NWSERVER.VXD, NWSP.VXD, PARALINK.VXD, PCI.VXD,
SERENUM.VXD, SERIAL.VXD, SPAP.VXD, SPLITTER.VXD, UNIMODEM.VXD, VFD.VXD,
VGATEWAY.VXD, WSIPX.VXD, WSOCK.VXD

При заражении VxD вирус разбирает формат драйверов (которые являются
LE-файлами, Linear Executable), модифицирует несколько полей LE-заголовка,
меняет адрес "стартовой" подпрограммы VxD (Control_Proc_0) и дописывает
свой код в конец секции кода VxD. Формат LE-файлов позволяет делать это,
поскольку код и данные в LE-файлах расположены постранично. Если код/данные
не заполняют страницу до конца, оставшееся место оказывается незанятым -
именно туда и записывает вирус 214 байт своего загрузчика, если, конечно
же, в странице кода есть свободное место.

После заражения вирус устанавливает у VxD-файла новую дату/время - 4-е
января 1997, 4:28 утра. По этому идентификатору вирус определяет уже
зараженные VxD-файлы.

Вирус не заражает никаких более VxD-драйверов, кроме как перечисленные
выше, и только в каталоге SYSTEM. После заражения VxD вирус не удаляет свой
файл RUNME.EXE (в надежде на то, что кому-то нравиться запускать файлы с
подобными именами?)

Заражение документов

При старте Windows95 и загрузке зараженных VxD-драйверов загрузчик вируса
считывает свой основной код из файла-носителя (так же, как и при открытии
зараженного документа) и выполняет его. При этом вирус перехватывает IFS
API и обрабатывает открытие файлов. При открытии файлов с расширением DOC
вирус проверяет их внутренний формат, записывает в них свой макрос AutoOpen
и дописывает к файлу свой основной код. Документы также конвертируются в
темплейты.

При заражении вирус использует собственные подпрограммы обработки формата
документов Word. Эти подрограммы способны обработать не все возможные
варианты документов, поэтому вирус заражает только документы размера до
800K и только PanEuro Word 6/7.

Поскольку Word не обращает внимания на "оверлей" вируса, то при сохранении
на диск зараженного документа он "отрезает" основной код вируса, сохраняя
при этом код макроса AutoOpen. Подобные документы в дальнейшем неспособны
распространять вирус.

Процедура заражения документов собержит ошибки, в результате чего вирус
делает невидимыми уже существующие в документе макросы (если таковые
присутствовали). Более того, такие документы могут вызвать ошибки при
работе в Word с выводом соответствующего сообщения:

This program has performed illegal operation
and will be shut down.

То же самое происходит при попытках удалить макрос AutoOpen средствами Word
(Tools/Macro/Delete или Organizer).

Прочие замечания

Вирус жизнеспособен только в среде Windows95 - по причине заражения VxD
вирус неспособен размножаться на NT, а по причине "промежуточного"
PE-дроппера вирус неспособен размножаться под Windows 3.xx. Под Windows95
вирус не вызывает практически никаких побочных эффектов, за исключением
описанных выше проблем с Word.
Вирус содержит строки текста, оставшиеся, видимо, от отладочной версии
вируса:

can not find DDB fixupp
can not infect this file
not valid vxd file
successfuly infected
infecting file

Прочие строки используются вирусом при заражении VxD-драйверов как имена
Windows-процедур:

KERNEL32.dll CreateFileA ExitProcess GetFileSize GetFileTime
GetProcessHeap GetVersion GetWindowsDirectoryA HeapAlloc ReadFile
SetFilePointer SetFileTime WriteFile lstrcatA lstrcpyA CloseHandle

Следующие строки являются комментариями автора вируса на английском и
"хакерском" языках:

HZDS virus (the world 1st direct VxD infector and the 2nd Word 6/7 infector)
(c) Navrhar (DESIGNeR in english), Slovakia, 21-oct-97
Diz virus haz been written in Banska Bystrica city, Slovakia.
WфlЫ0mф ч0 чhф HZD$ vнйцs gйффчн0gZ рйфр !
GйффчZ: Vyv0jрй, ю0ыфй, ярsчy Ьрmфй & Ugly Ьцsфй, MGЬ, янghчmрйф 00kфй.
$pфЫнрl GйффчZ: Тцчh0й 0Я Т0рйЫhy.6э93 (н wр0чфы ч0 сф 1sч, сцч чhф h000й
сфl00gs ч0 y0ц - ц0Я0йчц0рчфly)
Mр0y ЯцЫks g0фs ч0 ч0: HZD$, Vlры0 M.(DнЫчрч0й)
$p00s0йфы сy *-Z1яю (чhф сфsч VX-Сн0ф фvфй)

Перевод второго блока выглядит примерно так:

Welcome to the HZDS virus greetings area !
Greetz: Vyvojar, Ender, Nasty Lamer & Ugly Luser, MGL,
Nightmare Joker,
Special Greets: Author of Anarchy.6093 (i wanted to be 1st, but the honor
belongs to you - unfortunately)
Many fucks goes to to: HZDS, V1ado M.(Dictator)
Sponsored by *-Zine (the best VX-zine ever)