Энциклопедия компьютерных вирусов

         

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


Резидентная копия вируса также запускает нитку (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".



Содержание раздела