Virus.Multi.Cocaine

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

Technical Details

Резидентный полиморфный Windows-вирус. Заражает выполняемые файлы Windows (PE EXE-файлы), MS Word темплейт NORMAL.DOT и рассылает свои копии
по электронной почте. Имеет размер, достаточно большой для программы,
написанной на ассемблере — около 22Kb.

Зараженный PE EXE-файл является главным «разносчиком» вируса — все основные
процедуры заражения выполняются при запуске зараженных файлов Windows. При
этом вирус ищет и заражает PE EXE-файлы в текущем каталоге и каталоге
Windows, затем в каталоге шаблонов Windows замещает NORMAL.DOT на
зараженный, затем остается резидентно в памяти Windows, заражает
запускаемые файлы и рассылает письма с зараженными вложениями.

Вирус в NORMAL.DOT состоит из одного макроса AutoClose и активизируется при
закрытии каждого документа. При этом он «выбрасывает» из себя зараженный PE
EXE-файл, который выполняет перечисленные выше действия. Заражать другие
шаблоны и документы Word вирус неспособен.

Вирус в письмах электронной почты является либо зараженным PE EXE-файлом со
случайным именем, либо шаблоном NORMAL.DOT. Вирус может быть прислан либо
как отдельное письмо без самого текста сообщения (только вложенный файл),
либо присоединяется к отправляемому сообщению.

Вирус является резидентным на «время жизни» зараженного EXE-файла. Т.е.
копия вируса остается в памяти компьютера как часть зараженного файла и
выгружается из памяти вместе с окончанием работы файла-носителя. В случае
«короткоживущих» программ вирус успевает только найти и заразить другие PE
EXE-Файлы и NORMAL.DOT. В случае же приложений длительного использования
вирус активен в памяти длительное время, заражает PE EXE-файлы и рассылает
свои Email-копии.

Вирус полиморфичен как в PE EXE-файлах, как и в шаблоне NORMAL.DOT.
Содержит два полиморфик-генератора: один создает код для PE EXE-файлов,
другой — для макро-программ VBA (Visual Basic for Applications).

Вирус проявляется при запуске зараженного PE EXE-файла через четыре месяца
после его заражения. При этом вызывается процедура, которая выводит
MessageBox с заголовком «W32/Wm.Cocaine» и текстом, который случайно
выбирается из семи вариантов:


Your life burn faster, obey your master…
Chop your breakfast on a mirror…
Veins that pump with fear, sucking darkest clear…
Taste me you will see, more is all you need…
I will occupy, I will help you die…
I will run through you, now I rule you too…
Master of Puppets, I’m pulling your strings…

Вирус также уделяет внимание антивирусным прогарммам и пытается блокировать
их работу. Каждый раз при запуске зараженных PE EXE-файлов вирус ищет в
текущем каталоге антивирусные файлы данных и уничтожает их: KERNEL.AVC,
SIGN.DEF, FIND.DRV, NOD32.000, DSAVIO32.DLL, SCAN.DAT, VIRSCAN.DAT. Вирус
также ищет активный AVP Monitor и пытается принудительно завершить его
работу.

Известная версия вируса содержит ошибку и не в состоянии запустить PE
EXE-Файл из шаблона NORMAL.DOT. По причине другой ошибки вирус портит
некоторые PE EXE-файлы WinNT.

Вирус содержит строку-«копирайт»:


(c) Vecna

Во многих вирусных процедурах заметны следы вируса «Fabi» — похоже, что вирус «Cocaine» написан «по мотивам» «Fabi», — и даже в некоторых
случаях зараженные файлы могут быть детестированы как вирус «Fabi».

Технические детали

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

При запуске файла управление получает полиморфный расшифровщик вируса,
который расшифровывает код вируса при помощи нескольких циклов расшифровки
(вирус в EXE-файлах зашифрован несколькими циклами — от трех до пяти) и
затем передает управление на инсталлятор вируса. Следует отметить, что
некоторые процедуры вируса остаются зашифрованными (процедура заражения
NORMAL.DOT и полиморфик-генератор вируса). При необходимости вирус
расшифровывает эти процедуры, вызывает их и затем зашифровывает обратно.

Инсталлятор вируса сканирует ядро Windows (KERNEL32.DLL) «стандартным
вирусным» способом и ищет адреса необходимых функций Windows. Список этих
функций достаточно длинный, что обосновано количеством приемов, которые
вирус использует для своего распространения:


Экспортируется: Список функций:
————— —————
KERNEL32.DLL: GetProcAddress GetModuleHandleA CreateProcessA
CreateFileA WinExec CloseHandle LoadLibraryA FreeLibrary
CreateFileMappingA MapViewOfFile UnmapViewOfFile
FindFirstFileA FindNextFileA FindClose SetEndOfFile
VirtualAlloc VirtualFree GetSystemTime
GetWindowsDirectoryA GetSystemDirectoryA
GetCurrentDirectoryA SetFileAttributesA SetFileTime
ExitProcess GetCurrentProcess WriteProcessMemory WriteFile
DeleteFileA Sleep CreateThread GetFileSize SetFilePointer
USER32.DLL: MessageBoxA FindWindowA PostMessageA
ADVAPI32: RegSetValueExA RegCreateKeyExA RegOpenKeyExA
RegQueryValueExA RegCloseKey
MAPI32.DLL: MAPISendMail

«Стандартный вирусный» метод определения адресов функций Windows
заключается в следующем: вирус ищет базовый адрес загруженной в
Windows-память копии KERNEL32.DLL, разбирает ее таблицу экспортом и
вычислыет адреса двух функций Windows: GetModuleHandle и GetProcAddress.
При помощи этих двух процедур вирус заьтем легко получает адреса всех
остальных необходимых ему функций. Наиболее интересная особенность данной
реализации этого метода заключается в том, что вирус ищет копию
KERNEL32.DLL не только по стандартным адресам загрузки Win95/98 и WinNT, но
также и по адресам Win2000.

Затем вирус ищет и заражает MS Word, затем PE EXE-файлы, затем
перехватывает некоторые системные функции доступа к файлам и электронной
почте (см. ниже).

Заражение MS Word

При заражении MS Word вирус первым делом ищет файл C:ANCEV.SYS
(«ANCEV»=»VECNA» задом наперед). Этот файл является файлом «специального
назначения». Вирус создает его, если процедура заражения MS Word
завершилась успешно. Таким образом, существование этого файла говорит о
том, что шаблон NORMAL.DOT содержит копию вируса, и именно в этом случае в
электронных письмах вирусом рассылаются копии NORMAL.DOT. Если же MS Word
не обнаружен или не был заражен, вирус рассылает зараженные PE EXE-файлы.

Итак, вирус преверяет наличие файла C:ANCEV.SYS. Если он не обнаружен,
вирус переходит к заражению NORMAL.DOT. Если обнаружен, то вирус случайным
образом с вероятностью 9/10 выходит из процедуры заражения, но с
вероятностью 1/10 все равно заражает NORMAL.DOT своей копией.

Затем вирус выключает защиту от вирусов MS Word и делает это изменением
ключа системного реестра:


SOFTWAREMicrosoftOffice8.0WordOptions, EnableMacroVirusProtection

Затем вирус также при помощи ключей реестра:


SOFTWAREMicrosoftOffice8.0CommonFileNewLocalTemplates

получает имя каталога шаблонов MS Word, уничтожает там файл NORMAL.DOT и
замещает его своей собственной зараженной копией. Эта копия содержит
короткий макрос AutoExec, который будет активизирован при следующем старте
MS Word. Этот макрос импортирует основной код вируса из файла
C:COCAINE.SYS.

Файл C:COCAINE.SYS создается вирусом сразу после записи нового зараженного
NORMAL.DOT. Этот .SYS-файл на самом деле является текстовым файлом, который
содержит исходный код макроса вируса. Этот код хранится в основном теле
вируса, «разбавляется» полиморфными командами и в конец его дописывается
образ зараженного PE EXE-Файла, преобразованный в тестовый вид
(шестнадцатеричный дамп).

Таким образом, заражение MS Word происходит за два шага. На первом вирус
создает исходный код своего макроса в файле C:COCAINE.SYS и записывает
новый NORMAL.DOT с макросом AutoExec внутри. На втором шаге (при следующей
загрузке MS Word) макрос AutoExec импортирует в NORMAL.DOT основной макрос
вируса из C:COCAINE.SYS, и на этом процедура заражения MS Word
завершается.

Из MS Word в EXE-файлы MS Windows

Для того, чтобы создать и запустить зараженный PE EXE-файл вирус использует
также стандартный для макро-вирусов прием. Он создает на диске файл
C:COCAINE.SRC и записывает в него шестнадцатеричный дамп зараженного PE
EXE-файла. Затем вирус создает DOS BAT-файл с командами, которые при помощи
DOS-утилиты DEBUG конвертируют код PE EXE из текстового вида обратно в
бинарный вид и запускают его на выполнение.

Таким образом вирус «выбрасывает» свою PE EXE-копию из шаблона MS Word.

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

После заражения MS Word вирус переходит к заражению выполняемых файлов
Windows. При этом он ищет и заражает .EXE- и .SCR-файлы в текущем каталоге
и каталоге Windows, затем определяет имена установленных Интернет-броузера
и электронной почты по ключам системного реестра:


HKEY_LOCAL_MACHINESOFTWAREClasseshtmlfileshellopencommand
SOFTWAREClassesmailtoshellopencommand

и так же заражает их.

Заражения броузера и элестронной почты необхобимо вирусу для
распространения своих копий в Интернет. При доступе в Интернет одна из этих
программ оказывается активной, что влечет за собой активность копии вируса,
которая перехватывает прием/отправку писем и добавляет к ним зараженное
вложение.

Механизм заражения PE EXE

Перед заражением PE EXE-файла вирус проверяет несколько условий. 1: длина
файла не кратна 101 (при заражении вирус устанавливает длину файла именно в
это значение и защищается таким образом от повторного заражения файлов). 2:
при заражении файлов в текущем каталоге и в Windows имена файлов не должны
содержать символа ‘V’ или цифр. Таким образом вирус не заражает наиболее
популярные антивирусные программы.

При заражении вирус записывает свой код в конец последней секции файла
предварительно увеличив ее размер. Затем вирус необходимым образом
модифицирует заголовок файла и заголовок последней секции файла.

Если первая секция файла имеет достаточный размер (более 2304 байт), то
вирус записывает в нее восемь блоков полиморфик-кода, которые
последовательно передают управление на основной цикл расшифровки:


+————+
| |
|PE Header | —————+
|————| |
| +——+<-+| | | |Code2| || | | +-----+-+|| Стартовый адрес| |+-----+ |||<---------------+ ||Code1| ||| |+-----+----+| | | | |+-----+<--+ | ||Code3| | |+-----+----+| | V| | . . . | | +-----+| |+----|Code8|| || +-----+| |V | |------------| |Virus code | | | +------------+

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

Если первая секция файла короткая, стартовый адрес устанавливается
непосредственно на расшифровщик вируса в конец файла.

Вирус также сканирует и модифицирует таблицу импортов для того, чтобы при
старте файла получить функции GetProcAddress, GetModuleHandle,
CreateProcessA, WinExec и MAPISendMail, необходимые ему для перехвата
событий в своей резидентной копии.

Перехват событий

После того, как заражение EXE-Файлов и MS Word завершено, вирус
перехватывает несколько функций Windows и остается резидентно в памяти
зараженного приложения. Вирус перехватывает две файловые функции: WinExec
и CreateProcessA, если они импортируются зараженной программой. Эти функции
получают управление при запуске файлов, вирус получает полное имя файла,
выделяет из него имя каталога запуска, ищет и заражает в нем все .EXE- и
.SCR-файлы.

Рассылка писем

Резидентная копия вируса также запускает нитку (thread) рассылки писем
электронной почты и перехватывает MAPISendMail (экспортируется MAPI32.DLL),
«connect» и «recv» (WSOCK32.DLL) и GetProcAddress (KERNEL32.DLL).

Первый перехват используется для добавления зараженного вложения к письмам,
которые отправляются с зараженной машины. Вирус проверяет письмо и, если в
нем нет вложения, дабавляет оное в виде шаблона NORMAL.DOT или зараженного
PE EXE-файла.

Перехват функций «GetProcAddress», «connect» и «recv» используется вирусом
для реализации второго способа передачи зараженных файлов в Интернет. При
приеме сообщений вирус сканирует их заголовок, достает оттуда
Интернет-адрес отправителя и запоминает его.

Вирусная нитка (см. выше) при активизации определяет адрес, перехваченный
при приеме сообщения, создает новое сообщение с вложенным в него зараженным
NORMAL.DOT или PE EXE-файлом и посылает письмо при помощи MAPISendMail.
Поле Subject письма заполняется одним из вариантов текста:


Kewl page!
Improvement to your page
Your page r0x0r!
You must see this…
Secret stuff!

Вирус не посылает зараженные файлы дважды по одному и томе же адресу. Для
этого вирус подсчитывает CRC (контрольные суммы) адресов и сравнивает их с
контрольными суммами, по которым уже были отправлены зараженные сообщения.
Эти данные хранятся в файле BRSCBC.DAT в системном каталоге Windows. После
посылки зараженного сообщения вирус добавляет в файл BRSCBC.DAT CRC
«зараженного» адреса. Периодически (с вероятностью 1/365) при запуске
зараженный PE EXE-файлов вирус уничтожает этот файл («обновляет» базу
данных зараженных адресов).

Перехват «GetProcAddress» используется вирусом также для перехвата
Интернет-функций «connect» и «recv» из библиотеки WSOCK32.DLL. Это
необходимо вирусу для того, чтобы перехватить доступ в Интернет также и в
том случае, когда программа напрямую не импортирует функции «connect» и
«recv», а динамически подгружает WSOCK32.DLL в случае необходимости.

Вирус для этого использует следующий прием: перехватчик GetProcAddress
отслеживает обращения к «connect» и «recv» и подставляет свои собственные
адреса, если программа инициализирует WSOCK32.DLL и обращается к «connect»
и «recv».