VirusHunter предупреждает всех пользователей ПК о распространении троянской программы Trojan.LameJPG.A (aka Win32.Perrun.A), блокирующей работу внутренних средств Windows для открытия и просмотра изображений в формате "JPG" и "JPEG", а также пытающейся "заражать" JPG-файлы...


1. Источники попадания троянца Trojan.LameJPG.A в компьютер.

Возможно, троянец устанавливается в компьютер через сеть Интернет какими-то др. вредоносными программами. Однако наиболее вероятным источником попадания в компьютер пользователя являются, на мой взгляд, файло-обменные сети, откуда "зловред" может быть скачан в машину под видом "полезного" файла.


2. Инсталляция в систему.

Изучив функционал троянца, я пришел к выводу, что сие творение является весьма бездарной попыткой его автора создать новый и "необычный" вирус. Однако, "вирус" не только не способен к саморазмножению, но и в роли троянской программы тянет на 3 с плюсом и не более того.
Для работоспособности троянца в ОС Windows должна быть установлена техническая библиотека msvbvm60.dll. Этот компонент необходим для работы любых специализированных и пользовательских программ, написанных на Microsoft VB 6-й версии. В Windows 9X/ME он отсутствует (про Windows 2K точно не скажу), но может быть позаимствован, например, из Windows XP (там он точно есть) и записан для 9X/ME в системный подкаталог %windir%\SYSTEM.
Если троянец при запуске не находит этот компонент, то на экран выдается стандартное системное сообщение об ошибке и работа "зловреда" оказывается невозможна:


Основной файл троянца имеет размер 11780 байт, сжат утилитой компрессии "UPX" версии 1.22 (размер в декомпрессированном виде составляет 17924 байта). При запуске он создает в текущей папке следующие файлы:

 - extrk.exe - вспомогательный компонент, содержащийся внутри основного файла троянца. Также написан на VB и сжат при помощи утилиты "UPX"; имеет размер 5636 байт (в декомпрессированном виде - 12292 байта);

 - reg.mp3 - файл настроек реестра (REG-формат), размер которого зависит от длины пути к папке, в которой расположен троянский файл (в среднем порядка 100 байт).

Далее основной файл троянца, при помощи команды вызова системной утилиты для работы с реестром "RegEdit", пытается импортировать в реестр содержимое файла reg.mp3. При этом, если троянец запускается с защищенного от записи носителя (например, с флоппи-диска, у которого джампер переключен в положение блокировки записи на носитель), то создание вышеуказанных файлов невозможно, а попытка импортирования несуществующего файла настроек reg.mp3 под Windows 98/ME вызывает появление системного сообщения об ошибке вида


При удачном импортировании в реестр содержимого reg.mp3 в ключах реестра создается следующий раздел и значение параметра:

[HKEY_CLASSES_ROOT\jpegfile\shell\open\command]
@="%path%\\extrk.exe %1"


, где %path% - путь к местоположению файла extrk.exe.
На этом деятельность основного файла троянца завершается.
При последующих попытках пользователя открыть файлы с расширениями "JPG" и "JPEG", управление получают не системные средства обработки изображений, а троянский компонент extrk.exe (также он добавляется в список системных средств, при помощи которых можно открывать картинки). Получив управление, extrk.exe считывает передаваемое системой имя и местоположение запрошенного файла с картинкой, затем пытается найти системное приложение "Блокнот" (NotePad) и открыть картинку при помощи последнего как текстовый файл. При этом троянец пытается запустить "Блокнот" исключительно как C:\WINDOWS\notepad.exe и никак иначе (т.е. варианты, что системный каталог может иметь отличное от "WINDOWS" название и/или что система установлена не на диск C:, а, например, на D:, автор не предусматривал). Если Блокнот действительно расположен по указанному пути, то на экран выводится его окно, в котором содержимое запрашиваемой картинки показывается как текстовый документ:


Естественно, что пользователь видит на экране лишь символьную абракадабру.
В том случае, если размер открываемой картинки больше примерно 60 кб (для Windows 98/ME) или 65 кб (для Windows 2K/XP), то перед открытием картинки появится стандартное системное сообщение следующего вида:


Если же троянцу не удалось обнаружить приложение Блокнот как C:\WINDOWS\notepad.exe, то картинка просто вообще не открывается ни в каком виде.
В силу того, что под Windows 98/ME картинки открываются "по умолчанию" через специальный вызов локальной страницы Internet Explorer, то при вызове картинки через вирусный файл extrk.exe, помимо вышеуказанных сообщений, на экран будет выдаваться сообщение об ошибке вида


Изредка при открытии файлов-картинок под любой из Windows-систем дата и время их модификации могут случайным образом меняться на соответствующие текущие значения.
После вышеописанной процедуры "просмотра" файла-картинки работа троянского компонента extrk.exe завершается.
Если под Windows 2K/XP воспроизведение JPG- и JPEG-файлов не работает вообще, то под Windows 9X/ME (опять же с учетом особенностей обработки данного формата системой) их запуск может с энной попытки иметь успех.


3. "Заражение" JPG-файлов.

Автор троянца попытался наделить свое творение способностью "размножаться", причем весьма своеобразным способом - дописывать вредоносный код к телам JPG-файлов. Однако по причине некоторых некорректностей, зловред может превратиться в "вирус" только при маловероятном совпадении следующих условий:

 1. В том же каталоге, откуда производится первый запуск троянца на чистой машине, обязательно должен присутствовать хотя бы один файл с расширением "JPG";

 2. Данный JPG-файл не должен содержать ни одного из следующих атрибутов: "только для чтения" (read only), "скрытый" (hidden) или "системный" (system).

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


При этом никаких изменений оригинального JPG-кода не производится - данный графический объект используется лишь как хранилище исходной копии Основного (полного) троянского файла. Размер "зараженного" файла увеличивается ровно на 11780 байт (т.е. на размер Основного троянского файла), а дата и время его модификации соответствуют реальным показаниям системного таймера в момент "инфицирования".
В дальнейшем вирус может заражать только те JPG-файлы, которые находятся в том же каталоге, что и установленный троянский компонент extrk.exe, а также не имеют ни одного из вышеупомянутых атрибутов.
При каждом последующем обращении к любому из JPG-файлов, расположенных на диске инфицированного компьютера, получающий управление компонент extrk.exe проверяет 2 условия:

 - является ли запускаемый файл зараженным (путь к местоположению файла троянцу передает система), для чего производится считывание последних 4-х байт кода JPG-файла и проверка их соответствия слову

alco

("хвостик" вирусного кода, содержащий данное слово в качестве строки-идентификатора). Если такого слова не обнаружено, то код JPG-файла просто выводится на экран через Блокнот или WordPad (см. описание процедуры открытия файлов в предыдущих разделах этой статьи). Если же данное слово обнаружено, то троянец проверяет 2-е условие:

 - совпадает ли местоположение открываемого инфицированного файла с каталогом, в котором находится extrk.exe. Если да, то троянец извлекает из этого JPG-файла Основной (полный) вредоносный код сюда же, в виде временного файла x.exe. Затем копирует оригинальный (незараженный) код JPG-файла сюда же, в виде временного файла rmk.ooo. При этом содержимое rmk.ooo показывается пользователю в Блокноте или WordPad'е, а x.exe запускается на выполнение. Он сканирует содержащиеся в текущей папке JPG-файлы на наличие заражения; проверка производится в алфавитном порядке. Как только будет найден чистый файл, соответствующий условиям заражения, x.exe дописывает себя в конец этого файла, возвращает управление extrk.exe, который, в свою очередь, удаляет уже отработавший x.exe. Схематически процедуру запуска "зараженного" JPG-файла можно изобразить следующим образом:


После закрытия пользователем Блокнота (или WordPad'а) временный файл rmk.ooo также удаляется.
Таким образом, при открытии зараженного JPG-файла, расположенного в одной папке с троянским компонентом extrk.exe, производится поиск и заражение только одного чистого JPG-файла, который, опять же, расположен в родительском каталоге троянца, имеет имя, идущее первым по алфавиту среди имен прочих файлов, а также соответствующего вышеуказанным атрибутным параметрам.
Заражение файла-жертвы производится только 1 раз (проверяется наличие строки alco в конце файла).
Запуск "зараженного" JPG-файла, расположенного вне папки с троянцем (например, если пользователь переместил инфицированный файл в др. каталог), не может повлечь заражения прочих файлов ни в текущей, ни в любых др. папках, отличных от родительской папки троянца, по причине содержащейся в последнем ошибки. Кроме того, запуск "инфицированного" файла на чистой машине также абсолютно безопасен - изображение откроется для просмотра без каких-либо проблем, а вирус никогда не сможет получить управление и уж тем более заразить компьютер. Это связано с тем, что структура и принципы считывания данных из программных (EXE) и графических (JPG) файлов в корне отличаются и, как результат, обрабатываются абсолютно по-разному.


4. Прочее.

Также в теле Основного файла троянца присутствуют следующие текстовые строки и строки-"копирайты":

jpgvir
1infectionperrun
Project1 ir = jp


Компиляция исходника основного компонента троянца производилась автором в следующем каталоге (данная строка присутствует в коде вируса):

C:\1infectionperrun.vbp

В теле компонента extrk.exe также имеются и такие строки:

jpgvir1
Project1


Компиляция исходника (почему-то в 2-х вариантах) данного компонента производилась автором в следующем каталоге (данная строка также присутствует в коде вируса):

C:\txt\proof_002\jpgvir.vbp
C:\txt\proof_002\errun.vbp


Также в телах основного и вспомогательного компонентов содержатся информационные секции, в которых записаны следующие данные:

У основного компонента:

CompanyName  alCoPaUL
ProductName  1infectionperrun
FileVersion  1.00
ProductVersion  1.00
InternalName  jpgvir
OriginalFilename  jpgvir.exe


У вспомогательного компонента:

CompanyName  alCoPaUL
ProductName  Project1
FileVersion  1.00
ProductVersion  1.00
InternalName  jpgvir1
OriginalFilename  jpgvir1.exe


Иконки основного и вспомогательного компонентов выглядят при просмотре в Проводнике Windows следующим образом:



5. Детектирование и удаление троянца из машины.

На момент создания данного описания Trojan.LameJPG.A и создаваемые им вспомогательные компоненты антивирусы детектируют так:

Антивирус Kaspersky AntiVirus:
Основной файл: Virus.Win32.Perrun.a
файл extrk.exe: Virus.Win32.Perrun.a (декомпрессированный файл - Virus.Win32.Perrun.b)
"зараженные" JPG-файлы: Virus.Win32.Perrun.a (с 08.10.2007 может лечить, но не все)

Антивирус DrWeb:
Основной файл: Win32.HLLP.Perrun
файл extrk.exe: Win32.HLLP.Alcopaul.12288
"зараженные" JPG-файлы: не обнаруживает вирус

Антивирус BitDefender Professional:
Основной файл: Win32.Perrun.A
файл extrk.exe: Win32.Perrun.A
"зараженные" JPG-файлы: Win32.Perrun.A (с 04.12.2007 обнаруживает, но лечить не может)

Антивирус Касперского обнаруживал, но не мог лечить "зараженные" JPG-файлы, предлагая удалять их. Поэтому 07.10.2007 в Антивирусную Лабораторию Касперского были отправлены образцы таких файлов, чтобы инженеры компании могли добавить процедуру лечения. Начиная с 08.10.2007, Антивирус Касперского может лечить файлы. Однако в обновленной процедуре обнаружения и лечения "инфицированных" объектов была допущена ошибка (на момент написания этих строк она так и не была исправлена), в результате которой вирус, "заразивший" файлы размером порядка 100 кб или более, с большой вероятностью не будет обнаружен в коде последних. Поэтому "инфицированные" файлы, в которых вирус не был обнаружен антивирусами, можно просто оставить как есть - как уже было сказано выше, ничего криминального при запуске таких файлов на чистой машине не произойдет и при этом они будут абсолютно нормально открываться. Тем не менее, опытные юзеры могут удалить код вируса из файлов собственными пальчиками.
Для удаления троянца и его компонентов из машины рядовому пользователю рекомендуется проверить зараженный компьютер установленной на нем антивирусной программой, соглашаясь с удалением всех EXE-файлов, которые будут детектироваться как вирусы с вышеперечисленными идентификационными названиями. Файл reg.mp3 удалять необязательно.
С учетом того, что после создания троянцем вышеуказанной ветки ключей реестра со своим значением параметра, открытие JPG- и JPEG-файлов встроенными средствами Windows становится невозможным (даже при удалении вирусной записи, что связано с некоторыми дополнительными правками реестра, осуществляемыми уже непосредственно самой системой сразу же после появления вирусной записи), была разработана специальная утилита, которая аккуратно правит записи реестра и восстанавливает нормальную читабельность картинок и фотографий. Утилита добавлена в спец. набор от VirusHunter'а, который можно скачать здесь. Перед использованием утилиты настоятельно рекомендую прочитать прилагаемое к набору руководство пользователя.

На данный момент разработаны и выложены на нашем сайте описания следующих вариантов данного вируса:

Trojan.LameJPG.B


Исследование вредоносного кода и разработка описания: Бройде Герман (aka VirusHunter)
Дата создания: 09.04.2007
Дата внесения последних изменений: 04.12.2007
Автор описания: Бройде Герман (aka VirusHunter)


Rambler's Top100

0.00326013565063