Virus.Win32.RemEx

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

Technical Details

Файловый Windows-вирус, заражает выполняемые EXE-файлы Windows (PE —
Portable Execucable). Размножается только на серверах и рабочих станциях
под управлением Windows NT. Способен заражать файлы не только на
инфицированном компьютере, но и на удаленных дисках в пределах одной
локальной сети. Является первым известным вирусом, который заражает память
Windows NT оставляя в ней свою активную копию в виде системного сервиса.

Инсталляция

При запуске зараженного EXE-файла на неинфицированном компьютере вирус
запускает свою процедуру инсталляции. Эта процедура копирует код вируса в
системный каталог WinNT System32Drivers под именем IE403R.SYS и запускает
его как системный сервис. Первоначальный EXE-файл затем передает управление
программе-носителю и завершает свою работу.

Если вирус в EXE-файле запускается на уже зараженной машине, вирус
определяет наличие своей копии в системной памяти, выгружает ее и запускает
свой собственный код. Таким образом вирус в состоянии «апгрейдить» себя на
зараженных компьютерах.

При запуске вирусного драйвера (файла IE403R.SYS) вирус остается в
системной памяти WinNT как стандартный сервис, но не перехватывает никаких
системных событий. Вместо этого основная процедура вируса постоянно
«крутится» в цикле ожидания и раз в 10 минут запускает одну из своих
подрограмм — либо заражения, либо «заметания следов». Обе подпрограммы
запускаются в зависимости от случайного счетчика. Заражение вызывается в
двух случаях из пяти, процедура «заметания» — в трех случаях.

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

Процедура заражения сканирует случайно выбранные локальные и доступные
диски на локальной сети, ищет EXE-файлы и заражает их. При заражении вирус
компрессирует файл-жертву, записывает в него свой код и добавляет
компрессированый первоначальный код файла в его конец в виде PE-ресурса.
Для запуска оригинального файла при старте зараженного EXE вирус копирует
этот ресурс во временный файл, распаковывает его и запускает на выполнение.
Вирус компрессирует файлы методом «deflate» и использует для этого
встроенную в свой код библиотеку GZIP.

В зависимости от случайного счетчика вирус также портит случайно выбранные
файлы: компрессирует их тем же методом и затем шифрует крипто-алгоритмом
средней сложности.

Также в зависимости от случайного счетчика с вероятностью 5% вирус также
сканирует сетевые диски используя их сетевые имена (UNC). Вирус заражает
или портит файлы на этих дисках тем же способом, как описано выше.

Вирус не заражает и не портит файлы в каталогах Windows, System, временном
каталоге Windows и в «C:Program Files». Вирус проверяет имена и не шифрует
файлы с расширениями .OBJ, .TMP, .DLL.

«Заметание следов»

Процедура «заметания» запускается следом за заражением и уничтожает следы
жизнедеятельности вируса. Первым делом она ищет и закрывает два окна с
заголовками:


TASKMGR.SYS — Application Error
Dr.Watson for Windows NT

Таким образом вирус закрывает сообщения об ошибках, произошедших при
заражении файлов.

Затем вирус проверяет свою процедуру заражения. Если она активна в течение
достаточно длинного промежутка времени (более одного часа), т.е.
«зависла», вирус ищет ее в списке активных сервисов и выгружает из памяти.

Вирус также уничтожает файл-отчет DrWatson DRWTSN32.LOG и все файлы «~*» во
временном каталоге Windows.

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

При инсталляции вируса в память некоторое время его процесс виден в списке
TaskManager под именем «IE403R.SYS». Затем вирус в любой момент виден в
списке сервисов в ControlPanel/Services под именем «Remote Explorer».

Вирус не способен работать и размножаться под Win95/98. Под Win95 при
запуске зараженного файла Windows выводит стандартное сообщение об ошибке.
Под Win98 вирус успешно распаковывает и запускает файл-носитель, однако по
естественным причинам не в состоянии инсталлировать свой NT-сервис.

Вирус также не способен инсталлировать себя в память WinNT, если текущий
пользователь не имеет прав администратора. Однако, если компьютер уже был
заражен, то при логине пользователя с не-администраторскими правами вирус
заражает память WinNT без каких-либо проблем.

Процедуры заражения, шифрования файлов и «заметания следов» активизируются
вирусом только в «нерабочее время»: круглые сутки по субботам и
воскресеньям, и только ночью с 21:00 до 6:00 в остальные дни недели. В
противном случает вирус устанавливает своему процессу минимальный приоритет
и «засыпает» на длительное время. Таким образом вирусные процедуры могут
быть активизированы и в «рабочее время», однако только в том случае, если
компьютер не задействован в течение продолжительного периода времени.

Вирус содержит ошибки и может работать некорректно. Например, вирус не
проверяет внутренний формат файлов и заражает DOS EXE-файлы тем же методом,
что и Windows EXE.

Дополнительные технические детали

Вирус написан на Microsoft Visual C++ и имеет достаточно большой размер —
более 125K. Размер «вирусного» кода — около 14K, библиотека GZIP — 20K,
библиотеки C++ — 40K. Оставшаяся часть вируса занята данными библиотек C++,
данными вируса, ресурсами и т.п.

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

Второй ресурс содержит копию вирусного кода (включая первый ресурс —
PSAPI.DLL), т.е. в зараженных файлах присутствуют две копии вируса:
«боевая» и упакованная в ресурсе. Такая «матрешечная» компоновка необходима
вирусу для запуска своей второй копии как SYS-драйвера NT. При инсталляции
«боевая» копия вируса вытаскивает ее из ресурсов и запускает как
SYS-драйвер.

Третий ресурс содержит файл-носитель целиком — от первого байта до
последнего. Этот ресурс распаковывается и запускается вирусом на
выполнение, когда он передает управление программе-носителю.

System Registry: при инсталляции своего SYS-драйвера вирус использует
стандартные вызовы NT API. В результате WinNT самостоятельно регистрирует
вирусный драйвер в ситемном реестре:


HKEY_LOCAL_MACHINESystemCurrentControlSetServicesRemote Explorer

Временные файлы: при компрессии/декомпрессии вирусу требуются временные
файлы. Он создает их во временном каталоге Windows со случайно выбранными
именами: ~xxxdddd.TMP (где ‘x’ — буквы, ‘d’ — цифры).

Итого

Вирус является первым «настоящим» NT-вирусов и может восприниматься как
некий супер-вирус, заражающий сервера NT. На самом деле, судя по стилю
программирования, вирус был написан разработчиком среднего уровня, который
имеет доступ к документации NT DeviceDevelopmentKit.

Вирус не перехватывает никаких системных событий NT; не использует сетевых
протоколов; не пытается получить права и пароль доступа для заражения
других серверов сети; не передает свою копию в глобальные сети; и прочие
«не». Более того, обычные DOS-вирусы имеют все те же возможности — они
также в состоянии заражать файлы на доступных удаленных дисках локальной
сети, оставаться в системной памяти и т.п.

Данный вирус является всего-лишь обычным файловым вирусом, однако
исполненным как WinNT сервис. Он не является более сложным, чем многие
другие Windows- и DOS-вирусы. Более того, вирус не является неожиданностью:
о возможности существования «настоящих» NT-вирусов говорили уже очень
давно.